[Android] Ask write permission before deleting files on TV
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:45:36 2024 +0100| [4e2fec9a2f0a472592f7ab062d7c7a3f925e925a] | committer: Nicolas Pomepuy
Ask write permission before deleting files on TV
> https://code.videolan.org/videolan/vlc-android/commit/4e2fec9a2f0a472592f7ab062d7c7a3f925e925a
---
.../television/ui/MediaItemDetailsFragment.kt | 30 +++++++++++++---------
1 file changed, 18 insertions(+), 12 deletions(-)
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 5e04b4d51d..a07a69b186 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
@@ -353,20 +353,12 @@ 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 {
- dialog.dismiss()
- var preventFinish = false
- MediaUtils.deleteItem(requireActivity(), viewModel.media) {
- onDeleteFailed(it)
- preventFinish = true
+ Permissions.askWriteStoragePermission(requireActivity(), false) {
+ delete()
}
- if (!preventFinish) requireActivity().finish()
+ return at OnActionClickedListener
}
+ delete()
}
ID_PLAYLIST -> requireActivity().addToPlaylist(arrayListOf(viewModel.media))
ID_FAVORITE_ADD -> {
@@ -484,6 +476,20 @@ class MediaItemDetailsFragment : DetailsSupportFragment(), CoroutineScope by Mai
// updateMetadata(mediaMetadataModel.updateLiveData.value)
}
}
+
+ private fun delete() {
+ val dialog = ConfirmDeleteDialog.newInstance(arrayListOf(viewModel.media))
+ dialog.show(requireActivity().supportFragmentManager, ConfirmDeleteDialog::class.simpleName)
+ dialog.setListener {
+ dialog.dismiss()
+ var preventFinish = false
+ MediaUtils.deleteItem(requireActivity(), viewModel.media) {
+ onDeleteFailed(it)
+ preventFinish = true
+ }
+ if (!preventFinish) requireActivity().finish()
+ }
+ }
}
class MediaItemDetailsModel(context: Application) : AndroidViewModel(context), CoroutineScope by MainScope() {
More information about the Android
mailing list