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