ViewBinding

This commit is contained in:
Luna712 2023-10-29 16:54:37 -06:00
parent 512a58b49c
commit 3c94fbcb86
4 changed files with 30 additions and 31 deletions

View file

@ -1,44 +1,41 @@
package com.lagradost.cloudstream3.ui.account package com.lagradost.cloudstream3.ui.account
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.ImageView
import android.widget.TextView
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.recyclerview.widget.RecyclerView 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.ui.result.setImage
import com.lagradost.cloudstream3.utils.DataStoreHelper import com.lagradost.cloudstream3.utils.DataStoreHelper
class AccountAdapter(private val accounts: List<DataStoreHelper.Account>, private val onItemClick: (DataStoreHelper.Account) -> Unit) : class AccountAdapter(
RecyclerView.Adapter<AccountAdapter.AccountViewHolder>() { private val accounts: List<DataStoreHelper.Account>,
private val onItemClick: (DataStoreHelper.Account) -> Unit
) : RecyclerView.Adapter<AccountAdapter.AccountViewHolder>() {
inner class AccountViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { inner class AccountViewHolder(private val binding: AccountListItemBinding) :
val accountName: TextView = itemView.findViewById(R.id.account_name) RecyclerView.ViewHolder(binding.root) {
val accountImage: ImageView = itemView.findViewById(R.id.account_image)
val lockIcon: ImageView = itemView.findViewById(R.id.lock_icon) 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 { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): AccountViewHolder {
val view = LayoutInflater.from(parent.context).inflate(R.layout.account_list_item, parent, false) val binding = AccountListItemBinding.inflate(
return AccountViewHolder(view) LayoutInflater.from(parent.context), parent, false
)
return AccountViewHolder(binding)
} }
override fun onBindViewHolder(holder: AccountViewHolder, position: Int) { override fun onBindViewHolder(holder: AccountViewHolder, position: Int) {
val account = accounts[position] holder.bind(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)
}
} }
override fun getItemCount(): Int { override fun getItemCount(): Int {

View file

@ -6,18 +6,21 @@ import androidx.appcompat.app.AppCompatActivity
import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.lagradost.cloudstream3.MainActivity 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.ui.account.AccountDialog.showPinInputDialog
import com.lagradost.cloudstream3.utils.DataStoreHelper import com.lagradost.cloudstream3.utils.DataStoreHelper
import com.lagradost.cloudstream3.utils.DataStoreHelper.getAccounts import com.lagradost.cloudstream3.utils.DataStoreHelper.getAccounts
class AccountSelectActivity : AppCompatActivity() { class AccountSelectActivity : AppCompatActivity() {
private lateinit var binding: ActivityAccountSelectBinding
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) 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) val accounts = getAccounts(this@AccountSelectActivity)
@ -51,6 +54,4 @@ class AccountSelectActivity : AppCompatActivity() {
startActivity(mainIntent) startActivity(mainIntent)
finish() // Finish the account selection activity finish() // Finish the account selection activity
} }
} }

View file

@ -35,6 +35,7 @@
android:layout_margin="4dp" android:layout_margin="4dp"
android:src="@drawable/video_locked" android:src="@drawable/video_locked"
android:visibility="gone" /> android:visibility="gone" />
<TextView <TextView
android:id="@+id/account_name" android:id="@+id/account_name"
android:layout_width="wrap_content" android:layout_width="wrap_content"

View file

@ -18,7 +18,7 @@
android:layout_marginBottom="16dp" /> android:layout_marginBottom="16dp" />
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/accountRecyclerView" android:id="@+id/account_recycler_view"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:padding="16dp" /> android:padding="16dp" />