Focus on last used account and improve layout for TV

This commit is contained in:
Luna712 2023-10-29 17:36:12 -06:00
parent 3c94fbcb86
commit 25f9174ff1
3 changed files with 30 additions and 4 deletions

View file

@ -1,11 +1,14 @@
package com.lagradost.cloudstream3.ui.account package com.lagradost.cloudstream3.ui.account
import android.os.Build
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.ViewGroup import android.view.ViewGroup
import androidx.annotation.RequiresApi
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.lagradost.cloudstream3.databinding.AccountListItemBinding import com.lagradost.cloudstream3.databinding.AccountListItemBinding
import com.lagradost.cloudstream3.ui.result.setImage import com.lagradost.cloudstream3.ui.result.setImage
import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.isTrueTvSettings
import com.lagradost.cloudstream3.utils.DataStoreHelper import com.lagradost.cloudstream3.utils.DataStoreHelper
class AccountAdapter( class AccountAdapter(
@ -17,9 +20,17 @@ class AccountAdapter(
RecyclerView.ViewHolder(binding.root) { RecyclerView.ViewHolder(binding.root) {
fun bind(account: DataStoreHelper.Account) { fun bind(account: DataStoreHelper.Account) {
val isLastUsedAccount = account.keyIndex == DataStoreHelper.selectedKeyIndex
binding.accountName.text = account.name binding.accountName.text = account.name
binding.accountImage.setImage(account.image) binding.accountImage.setImage(account.image)
binding.lockIcon.isVisible = account.lockPin != null binding.lockIcon.isVisible = account.lockPin != null
binding.outline.isVisible = isLastUsedAccount
@RequiresApi(Build.VERSION_CODES.O)
if (isTrueTvSettings()) {
binding.root.isFocusedByDefault = isLastUsedAccount
}
binding.root.setOnClickListener { binding.root.setOnClickListener {
onItemClick(account) onItemClick(account)

View file

@ -4,10 +4,13 @@ import android.content.Intent
import android.os.Bundle import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.lagradost.cloudstream3.CommonActivity
import com.lagradost.cloudstream3.MainActivity import com.lagradost.cloudstream3.MainActivity
import com.lagradost.cloudstream3.databinding.ActivityAccountSelectBinding 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.ui.settings.SettingsFragment.Companion.isTvSettings
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
@ -17,6 +20,8 @@ class AccountSelectActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
CommonActivity.init(this)
binding = ActivityAccountSelectBinding.inflate(layoutInflater) binding = ActivityAccountSelectBinding.inflate(layoutInflater)
setContentView(binding.root) setContentView(binding.root)
@ -30,7 +35,9 @@ class AccountSelectActivity : AppCompatActivity() {
} }
recyclerView.adapter = adapter recyclerView.adapter = adapter
recyclerView.layoutManager = GridLayoutManager(this, 3) recyclerView.layoutManager = if (isTvSettings()) {
LinearLayoutManager(this)
} else GridLayoutManager(this, 3)
} }
private fun onAccountSelected(selectedAccount: DataStoreHelper.Account) { private fun onAccountSelected(selectedAccount: DataStoreHelper.Account) {

View file

@ -1,14 +1,14 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView <androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/card_view" android:id="@+id/card_view"
android:layout_width="100dp" android:layout_width="100dp"
android:layout_height="100dp" android:layout_height="100dp"
android:animateLayoutChanges="true" android:animateLayoutChanges="true"
android:backgroundTint="?attr/primaryGrayBackground" android:backgroundTint="?attr/primaryGrayBackground"
android:foreground="?attr/selectableItemBackgroundBorderless" android:foreground="?attr/selectableItemBackground"
app:cardCornerRadius="@dimen/rounded_image_radius" app:cardCornerRadius="@dimen/rounded_image_radius"
android:layout_margin="5dp" android:layout_margin="5dp"
android:focusable="true" android:focusable="true"
@ -27,6 +27,14 @@
android:contentDescription="@string/profile_background_des" android:contentDescription="@string/profile_background_des"
android:scaleType="centerCrop" /> android:scaleType="centerCrop" />
<View
android:id="@+id/outline"
tools:visibility="visible"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/outline_card"
android:visibility="gone" />
<ImageView <ImageView
android:id="@+id/lock_icon" android:id="@+id/lock_icon"
android:layout_width="24dp" android:layout_width="24dp"