[Android] SubDownload: check futur file canWrite()
Duncan McNamara
git at videolan.org
Tue Jan 28 07:20:41 UTC 2025
vlc-android | branch: master | Duncan McNamara <dcn.mcnamara at gmail.com> | Mon Jan 27 15:47:18 2025 +0100| [68ffc2f950f3c5f7c129b03048130e25f2f5eb6f] | committer: Nicolas Pomepuy
SubDownload: check futur file canWrite()
Because of all the different permission APIs, it is easier to create a
File where we want to extract the subtitle file, and check if we have
write permission.
> https://code.videolan.org/videolan/vlc-android/commit/68ffc2f950f3c5f7c129b03048130e25f2f5eb6f
---
.../vlc-android/src/org/videolan/vlc/util/VLCDownloadManager.kt | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/application/vlc-android/src/org/videolan/vlc/util/VLCDownloadManager.kt b/application/vlc-android/src/org/videolan/vlc/util/VLCDownloadManager.kt
index ef7b801c03..fc5598e5ed 100644
--- a/application/vlc-android/src/org/videolan/vlc/util/VLCDownloadManager.kt
+++ b/application/vlc-android/src/org/videolan/vlc/util/VLCDownloadManager.kt
@@ -109,7 +109,8 @@ object VLCDownloadManager: BroadcastReceiver(), DefaultLifecycleObserver {
if (!this::defaultSubsDirectory.isInitialized) defaultSubsDirectory = "${context.applicationContext.getExternalFilesDir(null)!!.absolutePath}/subtitles"
if (subtitleItem.mediaUri.scheme != "file") return defaultSubsDirectory
val folder = subtitleItem.mediaUri.path.getParentFolder() ?: return context.getExternalFilesDir("subs")?.absolutePath
- val canWrite = context.isStarted() && context.getExtWritePermission(folder.toUri())
+ val subFile = subtitleItem.mediaUri.path?.let { File(it) }
+ val canWrite = context.isStarted() && context.getExtWritePermission(folder.toUri()) && subFile?.canWrite() ?: false
return if (canWrite) folder
else (context.applicationContext.getExternalFilesDir(null))?.absolutePath ?: defaultSubsDirectory
}
More information about the Android
mailing list