From a9f8e5c2a620d962a705b1a2a1f83d17a1c434c5 Mon Sep 17 00:00:00 2001 From: Nicolas Pomepuy Date: Tue, 10 Dec 2024 11:36:34 +0100 Subject: [PATCH] Check write permission before deleting on TV and proper error display --- .../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 fec35b7f9..5e04b4d51 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@OnActionClickedListener + } val dialog = ConfirmDeleteDialog.newInstance(arrayListOf(viewModel.media)) dialog.show(requireActivity().supportFragmentManager, ConfirmDeleteDialog::class.simpleName) dialog.setListener {