From 8fe4f58b5ac4893851ec4a19a8581fc309e6d77c Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 29 Oct 2023 21:43:03 -0600 Subject: [PATCH] Improve layout --- .../cloudstream3/ui/account/AccountAdapter.kt | 13 +++++++-- .../ui/account/AccountSelectActivity.kt | 13 +++++---- app/src/main/res/layout/account_list_item.xml | 6 ++-- .../res/layout/activity_account_select.xml | 8 ++++-- .../res/layout/activity_account_select_tv.xml | 28 +++++++++++++++++++ 5 files changed, 55 insertions(+), 13 deletions(-) create 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 eb478c83..c94aa166 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 @@ -8,7 +8,7 @@ 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.ui.settings.SettingsFragment.Companion.isTvSettings import com.lagradost.cloudstream3.utils.DataStoreHelper class AccountAdapter( @@ -28,7 +28,7 @@ class AccountAdapter( binding.outline.isVisible = isLastUsedAccount @RequiresApi(Build.VERSION_CODES.O) - if (isTrueTvSettings()) { + if (isTvSettings()) { binding.root.isFocusedByDefault = isLastUsedAccount } @@ -42,6 +42,15 @@ class AccountAdapter( val binding = AccountListItemBinding.inflate( 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 95579a29..28777206 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 @@ -8,7 +8,9 @@ import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import com.lagradost.cloudstream3.CommonActivity 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 @@ -16,16 +18,17 @@ import com.lagradost.cloudstream3.utils.DataStoreHelper.getAccounts class AccountSelectActivity : AppCompatActivity() { - private lateinit var binding: ActivityAccountSelectBinding - override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) CommonActivity.init(this) - binding = ActivityAccountSelectBinding.inflate(layoutInflater) + val binding = if (isTvSettings()) { + ActivityAccountSelectTvBinding.inflate(layoutInflater) + } else ActivityAccountSelectBinding.inflate(layoutInflater) + setContentView(binding.root) - val recyclerView: RecyclerView = binding.accountRecyclerView + val recyclerView: RecyclerView = binding.root.findViewById(R.id.account_recycler_view) val accounts = getAccounts(this@AccountSelectActivity) @@ -44,7 +47,7 @@ class AccountSelectActivity : AppCompatActivity() { recyclerView.layoutManager = if (isTvSettings()) { LinearLayoutManager(this) - } else GridLayoutManager(this, 3) + } else GridLayoutManager(this, 2) } 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 17ccf26a..7a97a641 100644 --- a/app/src/main/res/layout/account_list_item.xml +++ b/app/src/main/res/layout/account_list_item.xml @@ -4,13 +4,13 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/card_view" - android:layout_width="100dp" - android:layout_height="100dp" + android:layout_width="110dp" + android:layout_height="110dp" android:animateLayoutChanges="true" android:backgroundTint="?attr/primaryGrayBackground" android:foreground="?attr/selectableItemBackground" app:cardCornerRadius="@dimen/rounded_image_radius" - android:layout_margin="5dp" + android:layout_margin="15dp" android:focusable="true" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintDimensionRatio="1" diff --git a/app/src/main/res/layout/activity_account_select.xml b/app/src/main/res/layout/activity_account_select.xml index 8b510c16..09063470 100644 --- a/app/src/main/res/layout/activity_account_select.xml +++ b/app/src/main/res/layout/activity_account_select.xml @@ -2,7 +2,7 @@ + android:layout_gravity="center_horizontal" + android:paddingLeft="16dp" + android:paddingRight="16dp" /> diff --git a/app/src/main/res/layout/activity_account_select_tv.xml b/app/src/main/res/layout/activity_account_select_tv.xml new file mode 100644 index 00000000..349c8c5e --- /dev/null +++ b/app/src/main/res/layout/activity_account_select_tv.xml @@ -0,0 +1,28 @@ + + + + + + + + + \ No newline at end of file