From 69d62d385e3c8a91089947408cad02218774e270 Mon Sep 17 00:00:00 2001 From: Nicholas Tinsley Date: Fri, 23 Aug 2024 12:16:04 -0400 Subject: [PATCH] Small fixes for the video transcoding playground app. --- .../app/transcode/TranscodeTestRepository.kt | 4 ++-- .../app/transcode/TranscodeTestViewModel.kt | 2 +- .../video/app/transcode/TranscodeWorker.kt | 23 +++++++++++++------ 3 files changed, 19 insertions(+), 10 deletions(-) diff --git a/video/app/src/main/java/org/thoughtcrime/video/app/transcode/TranscodeTestRepository.kt b/video/app/src/main/java/org/thoughtcrime/video/app/transcode/TranscodeTestRepository.kt index af8554fb0f..9d220b03bc 100644 --- a/video/app/src/main/java/org/thoughtcrime/video/app/transcode/TranscodeTestRepository.kt +++ b/video/app/src/main/java/org/thoughtcrime/video/app/transcode/TranscodeTestRepository.kt @@ -99,8 +99,8 @@ class TranscodeTestRepository(context: Context) { workManager.pruneWork() } - fun cleanFailedTranscodes(context: Context) { - context.filesDir.listFiles()?.filter { it.name.endsWith(TranscodeWorker.TEMP_FILE_EXTENSION) }?.forEach { + fun cleanPrivateStorage(context: Context) { + context.filesDir.listFiles()?.forEach { it.delete() } } diff --git a/video/app/src/main/java/org/thoughtcrime/video/app/transcode/TranscodeTestViewModel.kt b/video/app/src/main/java/org/thoughtcrime/video/app/transcode/TranscodeTestViewModel.kt index 98def8ebe2..4a225b69ba 100644 --- a/video/app/src/main/java/org/thoughtcrime/video/app/transcode/TranscodeTestViewModel.kt +++ b/video/app/src/main/java/org/thoughtcrime/video/app/transcode/TranscodeTestViewModel.kt @@ -90,7 +90,7 @@ class TranscodeTestViewModel : ViewModel() { fun setOutputDirectoryAndCleanFailedTranscodes(context: Context, folderUri: Uri) { outputDirectory = folderUri - repository.cleanFailedTranscodes(context) + repository.cleanPrivateStorage(context) } fun reset() { diff --git a/video/app/src/main/java/org/thoughtcrime/video/app/transcode/TranscodeWorker.kt b/video/app/src/main/java/org/thoughtcrime/video/app/transcode/TranscodeWorker.kt index 48b3086a6b..e5bf336ad7 100644 --- a/video/app/src/main/java/org/thoughtcrime/video/app/transcode/TranscodeWorker.kt +++ b/video/app/src/main/java/org/thoughtcrime/video/app/transcode/TranscodeWorker.kt @@ -51,7 +51,7 @@ class TranscodeWorker(ctx: Context, params: WorkerParameters) : CoroutineWorker( } val inputParams = InputParams(inputData) - val inputFilename = DocumentFile.fromSingleUri(applicationContext, inputParams.inputUri)?.name + val inputFilename = DocumentFile.fromSingleUri(applicationContext, inputParams.inputUri)?.name?.removeFileExtension() if (inputFilename == null) { Log.w(TAG, "$logPrefix Could not read input file name!") return Result.failure() @@ -151,13 +151,13 @@ class TranscodeWorker(ctx: Context, params: WorkerParameters) : CoroutineWorker( return Result.failure() } - val tempFile = File(applicationContext.filesDir, tempFilename) - if (!tempFile.delete()) { - Log.w(TAG, "$logPrefix Failed to delete temp file after processing!") - return Result.failure() - } + Log.v(TAG, "$logPrefix Faststart postprocess successful.") + } + val tempFile = File(applicationContext.filesDir, tempFilename) + if (!tempFile.delete()) { + Log.w(TAG, "$logPrefix Failed to delete temp file after processing!") + return Result.failure() } - Log.v(TAG, "$logPrefix Faststart postprocess successful.") } Log.v(TAG, "$logPrefix Overall transcode job successful.") return Result.success() @@ -199,6 +199,15 @@ class TranscodeWorker(ctx: Context, params: WorkerParameters) : CoroutineWorker( return DocumentFile.fromTreeUri(applicationContext, treeUri)?.createFile(VideoConstants.VIDEO_MIME_TYPE, filename) } + private fun String.removeFileExtension(): String { + val lastDot = this.lastIndexOf('.') + return if (lastDot != -1) { + this.substring(0, lastDot) + } else { + this + } + } + private class WorkerMediaDataSource(private val file: File) : InputStreamMediaDataSource() { private val size = file.length()