From 5b0cbbf09f7632af4eea8c14265e2859d0cf6f6b Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Nov 2023 14:14:16 -0600 Subject: [PATCH] Use nicer grid layout for account select on TV (#737) --- .../cloudstream3/ui/account/AccountAdapter.kt | 8 ------ .../ui/account/AccountSelectActivity.kt | 18 ++++++------- .../res/layout/activity_account_select.xml | 2 +- .../res/layout/activity_account_select_tv.xml | 27 ------------------- 4 files changed, 10 insertions(+), 45 deletions(-) delete mode 100644 app/src/main/res/layout/activity_account_select_tv.xml 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 72551199..aea55392 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 @@ -43,14 +43,6 @@ class AccountAdapter( LayoutInflater.from(parent.context), parent, false ) - if (isTvSettings()) { - val layoutParams = binding.root.layoutParams as RecyclerView.LayoutParams - val marginInDp = 5 // Set the margin to 5dp - val marginInPixels = (marginInDp * parent.resources.displayMetrics.density).toInt() - layoutParams.setMargins(marginInPixels, marginInPixels, marginInPixels, marginInPixels) - binding.root.layoutParams = layoutParams - } - return AccountViewHolder(binding) } 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 a2c34bf0..457d4b81 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,14 +4,12 @@ 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.CommonActivity.loadThemes import com.lagradost.cloudstream3.MainActivity import com.lagradost.cloudstream3.R import com.lagradost.cloudstream3.databinding.ActivityAccountSelectBinding -import com.lagradost.cloudstream3.databinding.ActivityAccountSelectTvBinding import com.lagradost.cloudstream3.ui.account.AccountDialog.showPinInputDialog import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.isTvSettings import com.lagradost.cloudstream3.utils.DataStoreHelper @@ -36,13 +34,11 @@ class AccountSelectActivity : AppCompatActivity() { window.navigationBarColor = colorFromAttribute(R.attr.primaryBlackBackground) - val binding = if (isTvSettings()) { - ActivityAccountSelectTvBinding.inflate(layoutInflater) - } else ActivityAccountSelectBinding.inflate(layoutInflater) + val binding = ActivityAccountSelectBinding.inflate(layoutInflater) setContentView(binding.root) - val recyclerView: RecyclerView = binding.root.findViewById(R.id.account_recycler_view) + val recyclerView: RecyclerView = binding.accountRecyclerView val adapter = AccountAdapter(accounts) { selectedAccount -> @@ -51,9 +47,13 @@ class AccountSelectActivity : AppCompatActivity() { } recyclerView.adapter = adapter - recyclerView.layoutManager = if (isTvSettings()) { - LinearLayoutManager(this) - } else GridLayoutManager(this, 2) + if (isTvSettings()) { + val spanSize = if (accounts.count() <= 6) { + accounts.count() + } else 6 + + recyclerView.layoutManager = GridLayoutManager(this, spanSize) + } } private fun onAccountSelected(selectedAccount: DataStoreHelper.Account) { diff --git a/app/src/main/res/layout/activity_account_select.xml b/app/src/main/res/layout/activity_account_select.xml index 9138f82d..d5870f24 100644 --- a/app/src/main/res/layout/activity_account_select.xml +++ b/app/src/main/res/layout/activity_account_select.xml @@ -17,7 +17,7 @@ android:layout_marginTop="16dp" android:layout_marginBottom="16dp" /> - - - - - - - - - \ No newline at end of file