package com.shukria.kiosklauncher.ui import android.content.IntentFilter import android.os.Bundle import android.os.Environment import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.Button import android.widget.ProgressBar import android.widget.TextView import android.widget.Toast import androidx.fragment.app.Fragment import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import androidx.swiperefreshlayout.widget.SwipeRefreshLayout import com.shukria.kiosklauncher.R import com.shukria.kiosklauncher.adapter.MarketplaceAdapter import com.shukria.kiosklauncher.model.AppCatalogItem import com.shukria.kiosklauncher.network.RetrofitClient import com.shukria.kiosklauncher.receiver.PackageStateReceiver import com.shukria.kiosklauncher.util.MQTTConfig import com.shukria.kiosklauncher.util.YSDKManager import okhttp3.Request import retrofit2.Call import retrofit2.Callback import java.io.File class MarketplaceFragment : Fragment() { private val TAG = "MarketplaceFragment" private lateinit var recyclerView: RecyclerView private lateinit var swipeRefresh: SwipeRefreshLayout private lateinit var progressBar: ProgressBar private lateinit var tvEmpty: TextView private var catalogItems: List = emptyList() private val installedPackages = mutableSetOf() private val packageReceiver = PackageStateReceiver { pkg, installed -> if (installed) { installedPackages.add(pkg) requireActivity().runOnUiThread { Toast.makeText(requireContext(), "Installed successfully: $pkg", Toast.LENGTH_LONG).show() Log.i(TAG, "Install confirmed by system: $pkg") } } else { installedPackages.remove(pkg) Log.i(TAG, "Package removed: $pkg") } refreshAdapter() } override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { val view = inflater.inflate(R.layout.fragment_marketplace, container, false) recyclerView = view.findViewById(R.id.rv_marketplace) swipeRefresh = view.findViewById(R.id.swipe_refresh) progressBar = view.findViewById(R.id.progress_bar) tvEmpty = view.findViewById(R.id.tv_empty) recyclerView.layoutManager = LinearLayoutManager(requireContext()) view.findViewById