diff --git a/app/src/main/java/com/owncloud/android/ui/adapter/CommonOCFileListAdapterInterface.kt b/app/src/main/java/com/owncloud/android/ui/adapter/CommonOCFileListAdapterInterface.kt index 314688f7283e..94962be8a753 100644 --- a/app/src/main/java/com/owncloud/android/ui/adapter/CommonOCFileListAdapterInterface.kt +++ b/app/src/main/java/com/owncloud/android/ui/adapter/CommonOCFileListAdapterInterface.kt @@ -33,7 +33,7 @@ interface CommonOCFileListAdapterInterface { fun removeCheckedFile(file: OCFile) fun notifyItemChanged(file: OCFile) fun getFilesCount(): Int - fun setMultiSelect(boolean: Boolean) + fun setMultiSelect(isMultiSelect: Boolean) fun clearCheckedItems() fun selectAll(value: Boolean) } diff --git a/app/src/main/java/com/owncloud/android/ui/adapter/GalleryAdapter.kt b/app/src/main/java/com/owncloud/android/ui/adapter/GalleryAdapter.kt index edbbe0d4a19d..864e856999c5 100644 --- a/app/src/main/java/com/owncloud/android/ui/adapter/GalleryAdapter.kt +++ b/app/src/main/java/com/owncloud/android/ui/adapter/GalleryAdapter.kt @@ -314,8 +314,29 @@ class GalleryAdapter( } } - override fun setMultiSelect(boolean: Boolean) { - ocFileListDelegate.isMultiSelect = boolean + /** + * Enables or disables multi-select mode in the gallery. + * + * When multi-select mode is enabled: + * - Checkboxes are shown for all items. + * - Users can select multiple files. + * + * When multi-select mode is disabled: + * - Checkboxes are hidden. + * - Selected files remain visually unselected. + * + * Note: + * - This function is only called when the user explicitly enters or exits multi-select mode. + * It is **not** called for individual file selection or deselection. + * - The entire adapter is refreshed using [notifyDataSetChanged] to properly show or hide + * checkboxes across all rows, as individual item updates are not sufficient in this case. + * + * @param isMultiSelect true to enable multi-select mode, false to disable it. + */ + @SuppressLint("NotifyDataSetChanged") + override fun setMultiSelect(isMultiSelect: Boolean) { + ocFileListDelegate.isMultiSelect = isMultiSelect + notifyDataSetChanged() } private fun getAllFiles(): List = cachedAllFiles ?: files.flatMap { galleryItem ->