From 3c94fbcb866f0a389b02a203b908b111fe9060c5 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 29 Oct 2023 16:54:37 -0600 Subject: [PATCH] ViewBinding --- .../cloudstream3/ui/account/AccountAdapter.kt | 47 +++++++++---------- .../ui/account/AccountSelectActivity.kt | 11 +++-- app/src/main/res/layout/account_list_item.xml | 1 + .../res/layout/activity_account_select.xml | 2 +- 4 files changed, 30 insertions(+), 31 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/account/AccountAdapter.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/account/AccountAdapter.kt index c1566ce4..eb3e5e54 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/account/AccountAdapter.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/account/AccountAdapter.kt @@ -1,44 +1,41 @@ package com.lagradost.cloudstream3.ui.account import android.view.LayoutInflater -import android.view.View import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView import androidx.core.view.isVisible import androidx.recyclerview.widget.RecyclerView -import com.lagradost.cloudstream3.R +import com.lagradost.cloudstream3.databinding.AccountListItemBinding import com.lagradost.cloudstream3.ui.result.setImage import com.lagradost.cloudstream3.utils.DataStoreHelper -class AccountAdapter(private val accounts: List, private val onItemClick: (DataStoreHelper.Account) -> Unit) : - RecyclerView.Adapter() { +class AccountAdapter( + private val accounts: List, + private val onItemClick: (DataStoreHelper.Account) -> Unit +) : RecyclerView.Adapter() { - inner class AccountViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val accountName: TextView = itemView.findViewById(R.id.account_name) - val accountImage: ImageView = itemView.findViewById(R.id.account_image) - val lockIcon: ImageView = itemView.findViewById(R.id.lock_icon) + inner class AccountViewHolder(private val binding: AccountListItemBinding) : + RecyclerView.ViewHolder(binding.root) { + + fun bind(account: DataStoreHelper.Account) { + binding.accountName.text = account.name + binding.accountImage.setImage(account.image) + binding.lockIcon.isVisible = account.lockPin != null + + binding.root.setOnClickListener { + onItemClick(account) + } + } } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): AccountViewHolder { - val view = LayoutInflater.from(parent.context).inflate(R.layout.account_list_item, parent, false) - return AccountViewHolder(view) + val binding = AccountListItemBinding.inflate( + LayoutInflater.from(parent.context), parent, false + ) + return AccountViewHolder(binding) } override fun onBindViewHolder(holder: AccountViewHolder, position: Int) { - val account = accounts[position] - - // Populate data into the UI elements - holder.accountName.text = account.name - holder.accountImage.setImage(account.image) - - if (account.lockPin != null) { - holder.lockIcon.isVisible = true - } - - holder.itemView.setOnClickListener { - onItemClick(account) - } + holder.bind(accounts[position]) } override fun getItemCount(): Int { diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/account/AccountSelectActivity.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/account/AccountSelectActivity.kt index 9e5da5af..a629c444 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/account/AccountSelectActivity.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/account/AccountSelectActivity.kt @@ -6,18 +6,21 @@ import androidx.appcompat.app.AppCompatActivity import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.RecyclerView import com.lagradost.cloudstream3.MainActivity -import com.lagradost.cloudstream3.R +import com.lagradost.cloudstream3.databinding.ActivityAccountSelectBinding import com.lagradost.cloudstream3.ui.account.AccountDialog.showPinInputDialog import com.lagradost.cloudstream3.utils.DataStoreHelper import com.lagradost.cloudstream3.utils.DataStoreHelper.getAccounts class AccountSelectActivity : AppCompatActivity() { + private lateinit var binding: ActivityAccountSelectBinding + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContentView(R.layout.activity_account_select) + binding = ActivityAccountSelectBinding.inflate(layoutInflater) + setContentView(binding.root) - val recyclerView: RecyclerView = findViewById(R.id.accountRecyclerView) + val recyclerView: RecyclerView = binding.accountRecyclerView val accounts = getAccounts(this@AccountSelectActivity) @@ -51,6 +54,4 @@ class AccountSelectActivity : AppCompatActivity() { startActivity(mainIntent) finish() // Finish the account selection activity } - - } diff --git a/app/src/main/res/layout/account_list_item.xml b/app/src/main/res/layout/account_list_item.xml index a6f96242..1a740c06 100644 --- a/app/src/main/res/layout/account_list_item.xml +++ b/app/src/main/res/layout/account_list_item.xml @@ -35,6 +35,7 @@ android:layout_margin="4dp" android:src="@drawable/video_locked" android:visibility="gone" /> +