[Android] Check write permission before deleting on TV and proper error display

Nicolas Pomepuy git at videolan.org
Tue Dec 10 10:57:49 UTC 2024


vlc-android | branch: master | Nicolas Pomepuy <nicolas at videolabs.io> | Tue Dec 10 11:36:34 2024 +0100| [a9f8e5c2a620d962a705b1a2a1f83d17a1c434c5] | committer: Nicolas Pomepuy

Check write permission before deleting on TV and proper error display

> https://code.videolan.org/videolan/vlc-android/commit/a9f8e5c2a620d962a705b1a2a1f83d17a1c434c5
---

 .../java/org/videolan/television/ui/MediaItemDetailsFragment.kt    | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/application/television/src/main/java/org/videolan/television/ui/MediaItemDetailsFragment.kt b/application/television/src/main/java/org/videolan/television/ui/MediaItemDetailsFragment.kt
index fec35b7f90..5e04b4d51d 100644
--- a/application/television/src/main/java/org/videolan/television/ui/MediaItemDetailsFragment.kt
+++ b/application/television/src/main/java/org/videolan/television/ui/MediaItemDetailsFragment.kt
@@ -70,6 +70,7 @@ import org.videolan.vlc.gui.video.VideoPlayerActivity
 import org.videolan.vlc.media.MediaUtils
 import org.videolan.vlc.repository.BrowserFavRepository
 import org.videolan.vlc.util.FileUtils
+import org.videolan.vlc.util.Permissions
 import org.videolan.vlc.util.convertFavorites
 import org.videolan.vlc.util.getScreenWidth
 import org.videolan.vlc.util.isSchemeFile
@@ -186,7 +187,7 @@ class MediaItemDetailsFragment : DetailsSupportFragment(), CoroutineScope by Mai
     }
 
     private fun onDeleteFailed(item: MediaLibraryItem) {
-        if (isAdded) UiTools.snacker(requireActivity(), getString(R.string.msg_delete_failed, item.title))
+        Toast.makeText(requireActivity(), getString(R.string.msg_delete_failed, item.title), Toast.LENGTH_LONG).show()
     }
 
     override fun onSaveInstanceState(outState: Bundle) {
@@ -351,6 +352,10 @@ class MediaItemDetailsFragment : DetailsSupportFragment(), CoroutineScope by Mai
                     }
                 }
                 ID_DELETE -> {
+                    if (!Permissions.canWriteStorage(requireActivity())) {
+                        onDeleteFailed(viewModel.media)
+                        return at OnActionClickedListener
+                    }
                     val dialog = ConfirmDeleteDialog.newInstance(arrayListOf(viewModel.media))
                     dialog.show(requireActivity().supportFragmentManager, ConfirmDeleteDialog::class.simpleName)
                     dialog.setListener {



More information about the Android mailing list