From 25f9174ff1009e8ad0fffc13ebad52016d7813cf Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 29 Oct 2023 17:36:12 -0600 Subject: [PATCH] Focus on last used account and improve layout for TV --- .../cloudstream3/ui/account/AccountAdapter.kt | 11 +++++++++++ .../ui/account/AccountSelectActivity.kt | 9 ++++++++- app/src/main/res/layout/account_list_item.xml | 14 +++++++++++--- 3 files changed, 30 insertions(+), 4 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 eb3e5e54..eb478c83 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,11 +1,14 @@ package com.lagradost.cloudstream3.ui.account +import android.os.Build import android.view.LayoutInflater import android.view.ViewGroup +import androidx.annotation.RequiresApi import androidx.core.view.isVisible import androidx.recyclerview.widget.RecyclerView import com.lagradost.cloudstream3.databinding.AccountListItemBinding import com.lagradost.cloudstream3.ui.result.setImage +import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.isTrueTvSettings import com.lagradost.cloudstream3.utils.DataStoreHelper class AccountAdapter( @@ -17,9 +20,17 @@ class AccountAdapter( RecyclerView.ViewHolder(binding.root) { fun bind(account: DataStoreHelper.Account) { + val isLastUsedAccount = account.keyIndex == DataStoreHelper.selectedKeyIndex + binding.accountName.text = account.name binding.accountImage.setImage(account.image) binding.lockIcon.isVisible = account.lockPin != null + binding.outline.isVisible = isLastUsedAccount + + @RequiresApi(Build.VERSION_CODES.O) + if (isTrueTvSettings()) { + binding.root.isFocusedByDefault = isLastUsedAccount + } binding.root.setOnClickListener { onItemClick(account) 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 a629c444..991759b9 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 @@ -4,10 +4,13 @@ import android.content.Intent import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import androidx.recyclerview.widget.GridLayoutManager +import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView +import com.lagradost.cloudstream3.CommonActivity import com.lagradost.cloudstream3.MainActivity import com.lagradost.cloudstream3.databinding.ActivityAccountSelectBinding 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.getAccounts @@ -17,6 +20,8 @@ class AccountSelectActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + CommonActivity.init(this) + binding = ActivityAccountSelectBinding.inflate(layoutInflater) setContentView(binding.root) @@ -30,7 +35,9 @@ class AccountSelectActivity : AppCompatActivity() { } recyclerView.adapter = adapter - recyclerView.layoutManager = GridLayoutManager(this, 3) + recyclerView.layoutManager = if (isTvSettings()) { + LinearLayoutManager(this) + } else GridLayoutManager(this, 3) } private fun onAccountSelected(selectedAccount: DataStoreHelper.Account) { diff --git a/app/src/main/res/layout/account_list_item.xml b/app/src/main/res/layout/account_list_item.xml index 1a740c06..17ccf26a 100644 --- a/app/src/main/res/layout/account_list_item.xml +++ b/app/src/main/res/layout/account_list_item.xml @@ -1,14 +1,14 @@ - + +