Add select all UI

This commit is contained in:
Luna712 2024-07-07 13:52:48 -06:00 committed by GitHub
parent e69aaf9749
commit 0f04e20637
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 39 additions and 17 deletions

View file

@ -205,14 +205,21 @@ class DownloadFragment : Fragment() {
if (selected.isNotEmpty()) { if (selected.isNotEmpty()) {
binding?.downloadDeleteToolbar?.downloadDeleteToolbar?.isVisible = true binding?.downloadDeleteToolbar?.downloadDeleteToolbar?.isVisible = true
binding?.downloadStorageAppbar?.isVisible = false binding?.downloadStorageAppbar?.isVisible = false
binding?.downloadDeleteToolbar?.btnDelete?.setOnClickListener { binding?.downloadDeleteToolbar?.btnDelete?.setOnClickListener {
context?.let { ctx -> downloadsViewModel.handleMultiDelete(ctx) } context?.let { ctx -> downloadsViewModel.handleMultiDelete(ctx) }
} }
binding?.downloadDeleteToolbar?.btnCancel?.setOnClickListener { binding?.downloadDeleteToolbar?.btnCancel?.setOnClickListener {
adapter?.setIsMultiDeleteState(false) adapter?.setIsMultiDeleteState(false)
downloadsViewModel.clearSelectedIds() downloadsViewModel.clearSelectedIds()
} }
binding?.downloadDeleteToolbar?.btnSelectAll?.setOnClickListener {
adapter?.selectAllItems()
downloadsViewModel.selectAllItems()
}
adapter?.setIsMultiDeleteState(true) adapter?.setIsMultiDeleteState(true)
} else { } else {
binding?.downloadDeleteToolbar?.downloadDeleteToolbar?.isVisible = false binding?.downloadDeleteToolbar?.downloadDeleteToolbar?.isVisible = false

View file

@ -18,24 +18,38 @@
android:id="@+id/download_delete_toolbar" android:id="@+id/download_delete_toolbar"
android:visibility="gone"> android:visibility="gone">
<ImageView <ImageView
android:id="@+id/btnCancel" android:id="@+id/btnCancel"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:src="@drawable/ic_baseline_close_24" android:src="@drawable/ic_baseline_close_24"
android:contentDescription="@string/cancel" android:contentDescription="@string/cancel"
android:padding="8dp" android:padding="8dp"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
app:tint="@android:color/white" /> app:tint="@android:color/white" />
<Button <Button
android:id="@+id/btnDelete" android:id="@+id/btnDelete"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="?attr/selectableItemBackground" android:background="?attr/selectableItemBackground"
android:text="@string/delete" android:text="@string/delete"
android:textColor="@android:color/white" android:textColor="@android:color/white"
android:layout_gravity="center_vertical" /> android:layout_gravity="center_vertical" />
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="1" />
<Button
android:id="@+id/btnSelectAll"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="?attr/selectableItemBackground"
android:text="@string/select_all"
android:textColor="@android:color/white"
android:layout_marginEnd="8dp" />
</LinearLayout> </LinearLayout>
</com.google.android.material.appbar.AppBarLayout> </com.google.android.material.appbar.AppBarLayout>

View file

@ -150,6 +150,7 @@
<string name="download_done">Download Done</string> <string name="download_done">Download Done</string>
<string name="download_format" translatable="false">%s - %s</string> <string name="download_format" translatable="false">%s - %s</string>
<string name="downloads_empty">There are currently no downloads.</string> <string name="downloads_empty">There are currently no downloads.</string>
<string name="select_all">Select All</string>
<string name="update_started">Update Started</string> <string name="update_started">Update Started</string>
<string name="stream">Network stream</string> <string name="stream">Network stream</string>
<string name="open_local_video">Open local video</string> <string name="open_local_video">Open local video</string>