diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/download/DownloadChildFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/download/DownloadChildFragment.kt
index ae083a74..71158204 100644
--- a/app/src/main/java/com/lagradost/cloudstream3/ui/download/DownloadChildFragment.kt
+++ b/app/src/main/java/com/lagradost/cloudstream3/ui/download/DownloadChildFragment.kt
@@ -97,6 +97,8 @@ class DownloadChildFragment : Fragment() {
setAppBarNoScrollFlagsOnTV()
}
+ binding?.downloadDeleteAppbar?.setAppBarNoScrollFlagsOnTV()
+
observe(downloadsViewModel.childCards) {
if (it.isEmpty()) {
activity?.onBackPressedDispatcher?.onBackPressed()
@@ -126,8 +128,9 @@ class DownloadChildFragment : Fragment() {
binding?.selectItemsText?.isVisible = it.isEmpty()
val allSelected = downloadsViewModel.isAllSelected()
- binding?.btnSelectAll?.isVisible = !allSelected
- binding?.btnDeselectAll?.isVisible = allSelected
+ if (allSelected) {
+ binding?.btnToggleAll?.setText(R.string.deselect_all)
+ } else binding?.btnToggleAll?.setText(R.string.select_all)
}
val adapter = DownloadAdapter(
@@ -180,14 +183,16 @@ class DownloadChildFragment : Fragment() {
downloadsViewModel.setIsMultiDeleteState(false)
}
- binding?.btnSelectAll?.setOnClickListener {
- (binding?.downloadChildList?.adapter as? DownloadAdapter)?.selectAllItems()
- downloadsViewModel.selectAllItems()
- }
-
- binding?.btnDeselectAll?.setOnClickListener {
- (binding?.downloadChildList?.adapter as? DownloadAdapter)?.clearSelectedItems()
- downloadsViewModel.clearSelectedItems()
+ binding?.btnToggleAll?.setOnClickListener {
+ val allSelected = downloadsViewModel.isAllSelected()
+ val binding = binding?.downloadChildList?.adapter as? DownloadAdapter
+ if (allSelected) {
+ binding?.clearSelectedItems()
+ downloadsViewModel.clearSelectedItems()
+ } else {
+ binding?.selectAllItems()
+ downloadsViewModel.selectAllItems()
+ }
}
downloadsViewModel.setIsMultiDeleteState(true)
diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/download/DownloadFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/download/DownloadFragment.kt
index 6e23e98b..2083a2ad 100644
--- a/app/src/main/java/com/lagradost/cloudstream3/ui/download/DownloadFragment.kt
+++ b/app/src/main/java/com/lagradost/cloudstream3/ui/download/DownloadFragment.kt
@@ -94,6 +94,7 @@ class DownloadFragment : Fragment() {
super.onViewCreated(view, savedInstanceState)
hideKeyboard()
binding?.downloadStorageAppbar?.setAppBarNoScrollFlagsOnTV()
+ binding?.downloadDeleteAppbar?.setAppBarNoScrollFlagsOnTV()
/**
* We never want to retain multi-delete state
@@ -167,8 +168,9 @@ class DownloadFragment : Fragment() {
binding?.selectItemsText?.isVisible = it.isEmpty()
val allSelected = downloadsViewModel.isAllSelected()
- binding?.btnSelectAll?.isVisible = !allSelected
- binding?.btnDeselectAll?.isVisible = allSelected
+ if (allSelected) {
+ binding?.btnToggleAll?.setText(R.string.deselect_all)
+ } else binding?.btnToggleAll?.setText(R.string.select_all)
}
val adapter = DownloadAdapter(
@@ -193,7 +195,6 @@ class DownloadFragment : Fragment() {
setLinearListLayout(
isHorizontal = false,
nextRight = FOCUS_SELF,
- nextUp = FOCUS_SELF,
nextDown = FOCUS_SELF,
)
}
@@ -257,14 +258,16 @@ class DownloadFragment : Fragment() {
downloadsViewModel.setIsMultiDeleteState(false)
}
- binding?.btnSelectAll?.setOnClickListener {
- (binding?.downloadList?.adapter as? DownloadAdapter)?.selectAllItems()
- downloadsViewModel.selectAllItems()
- }
-
- binding?.btnDeselectAll?.setOnClickListener {
- (binding?.downloadList?.adapter as? DownloadAdapter)?.clearSelectedItems()
- downloadsViewModel.clearSelectedItems()
+ binding?.btnToggleAll?.setOnClickListener {
+ val allSelected = downloadsViewModel.isAllSelected()
+ val binding = binding?.downloadList?.adapter as? DownloadAdapter
+ if (allSelected) {
+ binding?.clearSelectedItems()
+ downloadsViewModel.clearSelectedItems()
+ } else {
+ binding?.selectAllItems()
+ downloadsViewModel.selectAllItems()
+ }
}
downloadsViewModel.setIsMultiDeleteState(true)
diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/download/DownloadViewModel.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/download/DownloadViewModel.kt
index 9dab76d9..4d1010d2 100644
--- a/app/src/main/java/com/lagradost/cloudstream3/ui/download/DownloadViewModel.kt
+++ b/app/src/main/java/com/lagradost/cloudstream3/ui/download/DownloadViewModel.kt
@@ -92,7 +92,9 @@ class DownloadViewModel : ViewModel() {
}
fun clearSelectedItems() {
- _selectedItems.postValue(mutableListOf())
+ // We need this to be done immediately
+ // so we can't use postValue
+ _selectedItems.value = mutableListOf()
}
fun isAllSelected(): Boolean {
diff --git a/app/src/main/res/layout/fragment_child_downloads.xml b/app/src/main/res/layout/fragment_child_downloads.xml
index 9275f099..64ed1d70 100644
--- a/app/src/main/res/layout/fragment_child_downloads.xml
+++ b/app/src/main/res/layout/fragment_child_downloads.xml
@@ -23,7 +23,7 @@
android:padding="8dp"
android:visibility="gone">
-
-
-
+ android:nextFocusDown="@id/download_child_list" />
-
-
-
+ android:nextFocusDown="@id/download_list" />