package com.shukria.kiosklauncher.adapter import android.content.Context import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.Button import android.widget.TextView import androidx.recyclerview.widget.RecyclerView import com.shukria.kiosklauncher.R import com.shukria.kiosklauncher.model.AppCatalogItem class MarketplaceAdapter( private val context: Context, private val items: List, private val installedPackages: Set, private val onInstall: (AppCatalogItem) -> Unit, private val onUninstall: (AppCatalogItem) -> Unit ) : RecyclerView.Adapter() { inner class ViewHolder(view: View) : RecyclerView.ViewHolder(view) { val name: TextView = view.findViewById(R.id.tv_app_name) val version: TextView = view.findViewById(R.id.tv_app_version) val description: TextView = view.findViewById(R.id.tv_app_description) val button: Button = view.findViewById(R.id.btn_install) } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder = ViewHolder(LayoutInflater.from(context).inflate(R.layout.item_marketplace_app, parent, false)) override fun onBindViewHolder(holder: ViewHolder, position: Int) { val item = items[position] holder.name.text = item.displayName holder.version.text = "v${item.appVersion}" holder.description.text = item.remark ?: "" val isInstalled = item.packageName in installedPackages holder.button.text = if (isInstalled) context.getString(R.string.uninstall) else context.getString(R.string.install) holder.button.setOnClickListener { if (isInstalled) onUninstall(item) else onInstall(item) } } override fun getItemCount(): Int = items.size }