Browse Source

Ask write permission before deleting files on TV

merge-requests/2174/head
Nicolas Pomepuy 1 year ago
parent
commit
4e2fec9a2f
  1. 30
      application/television/src/main/java/org/videolan/television/ui/MediaItemDetailsFragment.kt

30
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@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@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() {

Loading…
Cancel
Save