From 842ea97415597b1a9db90ab413808eda8398770e Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 4 Nov 2023 14:56:06 -0600 Subject: [PATCH] A few bug fixes and cleanup --- .../cloudstream3/ui/account/AccountAdapter.kt | 6 ++++-- .../ui/account/AccountSelectActivity.kt | 15 +++++++++------ .../cloudstream3/ui/account/AccountViewModel.kt | 2 +- .../cloudstream3/ui/library/LibraryViewModel.kt | 4 ++-- .../main/res/layout/activity_account_select.xml | 2 +- 5 files changed, 17 insertions(+), 12 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 ebd3e2cb..76aa021a 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 @@ -80,12 +80,14 @@ class AccountAdapter( is AccountListItemEditBinding -> binding.apply { if (account == null) return@apply + val isTv = isTvSettings() || !root.isInTouchMode + val isLastUsedAccount = account.keyIndex == DataStoreHelper.selectedKeyIndex accountName.text = account.name accountImage.setImage(account.image) lockIcon.isVisible = account.lockPin != null - outline.isVisible = !isTvSettings() && isLastUsedAccount + outline.isVisible = !isTv && isLastUsedAccount if (Build.VERSION.SDK_INT >= 33) { accountImage.setRenderEffect( @@ -95,7 +97,7 @@ class AccountAdapter( ) } - if (isTvSettings()) { + if (isTv) { root.isFocusableInTouchMode = true if (isLastUsedAccount) { root.requestFocus() 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 8ac75e02..231fe91e 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 @@ -5,14 +5,13 @@ import android.content.Intent import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import androidx.lifecycle.ViewModelProvider -import androidx.recyclerview.widget.GridLayoutManager -import androidx.recyclerview.widget.RecyclerView import com.lagradost.cloudstream3.CommonActivity import com.lagradost.cloudstream3.CommonActivity.loadThemes import com.lagradost.cloudstream3.MainActivity import com.lagradost.cloudstream3.R import com.lagradost.cloudstream3.databinding.ActivityAccountSelectBinding import com.lagradost.cloudstream3.mvvm.observe +import com.lagradost.cloudstream3.ui.AutofitRecyclerView import com.lagradost.cloudstream3.ui.account.AccountAdapter.Companion.VIEW_TYPE_EDIT_ACCOUNT import com.lagradost.cloudstream3.ui.account.AccountAdapter.Companion.VIEW_TYPE_SELECT_ACCOUNT import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.isTvSettings @@ -50,7 +49,7 @@ class AccountSelectActivity : AppCompatActivity() { val binding = ActivityAccountSelectBinding.inflate(layoutInflater) setContentView(binding.root) - val recyclerView: RecyclerView = binding.accountRecyclerView + val recyclerView: AutofitRecyclerView = binding.accountRecyclerView val viewModel = ViewModelProvider(this)[AccountViewModel::class.java] @@ -83,6 +82,12 @@ class AccountSelectActivity : AppCompatActivity() { recyclerView.adapter = adapter + if (isTvSettings()) { + binding.editAccountButton.setBackgroundResource( + R.drawable.player_button_tv_attr_no_bg + ) + } + observe(viewModel.isEditing) { isEditing -> if (isEditing) { binding.editAccountButton.setImageResource(R.drawable.ic_baseline_close_24) @@ -114,11 +119,9 @@ class AccountSelectActivity : AppCompatActivity() { } if (isTvSettings()) { - val spanSize = if (accounts.count() <= 6) { + recyclerView.spanCount = if (accounts.count() <= 6) { accounts.count() } else 6 - - recyclerView.layoutManager = GridLayoutManager(this, spanSize) } } diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/account/AccountViewModel.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/account/AccountViewModel.kt index 1fbe036f..4240d1f1 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/account/AccountViewModel.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/account/AccountViewModel.kt @@ -35,7 +35,7 @@ class AccountViewModel : ViewModel() { account: DataStoreHelper.Account, context: Context ) { - val currentAccounts = getAccounts(context).toMutableList() + val currentAccounts = DataStoreHelper.accounts.toMutableList() val overrideIndex = currentAccounts.indexOfFirst { it.keyIndex == account.keyIndex } diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/library/LibraryViewModel.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/library/LibraryViewModel.kt index b44913d9..56f3302c 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/library/LibraryViewModel.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/library/LibraryViewModel.kt @@ -120,11 +120,11 @@ class LibraryViewModel : ViewModel() { } init { - MainActivity.reloadHomeEvent += ::reloadPages + MainActivity.bookmarksUpdatedEvent += ::reloadPages } override fun onCleared() { - MainActivity.reloadHomeEvent -= ::reloadPages + MainActivity.bookmarksUpdatedEvent -= ::reloadPages super.onCleared() } } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_account_select.xml b/app/src/main/res/layout/activity_account_select.xml index c0038acd..3bf5e065 100644 --- a/app/src/main/res/layout/activity_account_select.xml +++ b/app/src/main/res/layout/activity_account_select.xml @@ -16,7 +16,7 @@ android:src="@drawable/ic_baseline_edit_24" android:focusable="true" android:nextFocusDown="@id/account_recycler_view" - android:background="@drawable/player_button_tv_attr_no_bg" + android:background="?attr/selectableItemBackgroundBorderless" android:contentDescription="@string/manage_accounts" app:tint="@color/player_on_button_tv_attr" />