Use human readable name for filename of taken photos and videos. Fixes #3894.

This commit is contained in:
Benoit Marty 2024-11-20 14:32:22 +01:00
parent b054bebce7
commit 7324c4fedf

View file

@ -24,7 +24,6 @@ import io.element.android.libraries.mediapickers.api.PickerLauncher
import io.element.android.libraries.mediapickers.api.PickerProvider import io.element.android.libraries.mediapickers.api.PickerProvider
import io.element.android.libraries.mediapickers.api.PickerType import io.element.android.libraries.mediapickers.api.PickerType
import java.io.File import java.io.File
import java.util.UUID
import javax.inject.Inject import javax.inject.Inject
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@ -111,7 +110,7 @@ class DefaultPickerProvider(private val isInTest: Boolean) : PickerProvider {
NoOpPickerLauncher { onResult(null) } NoOpPickerLauncher { onResult(null) }
} else { } else {
val context = LocalContext.current val context = LocalContext.current
val tmpFile = remember { getTemporaryFile(context) } val tmpFile = remember { getTemporaryFile(context, "photo.jpg") }
val tmpFileUri = remember(tmpFile) { getTemporaryUri(context, tmpFile) } val tmpFileUri = remember(tmpFile) { getTemporaryUri(context, tmpFile) }
rememberPickerLauncher(type = PickerType.Camera.Photo(tmpFileUri)) { success -> rememberPickerLauncher(type = PickerType.Camera.Photo(tmpFileUri)) { success ->
// Execute callback // Execute callback
@ -131,7 +130,7 @@ class DefaultPickerProvider(private val isInTest: Boolean) : PickerProvider {
NoOpPickerLauncher { onResult(null) } NoOpPickerLauncher { onResult(null) }
} else { } else {
val context = LocalContext.current val context = LocalContext.current
val tmpFile = remember { getTemporaryFile(context) } val tmpFile = remember { getTemporaryFile(context, "video.mp4") }
val tmpFileUri = remember(tmpFile) { getTemporaryUri(context, tmpFile) } val tmpFileUri = remember(tmpFile) { getTemporaryUri(context, tmpFile) }
rememberPickerLauncher(type = PickerType.Camera.Video(tmpFileUri)) { success -> rememberPickerLauncher(type = PickerType.Camera.Video(tmpFileUri)) { success ->
// Execute callback // Execute callback
@ -142,8 +141,8 @@ class DefaultPickerProvider(private val isInTest: Boolean) : PickerProvider {
private fun getTemporaryFile( private fun getTemporaryFile(
context: Context, context: Context,
filename: String,
baseFolder: File = context.cacheDir, baseFolder: File = context.cacheDir,
filename: String = UUID.randomUUID().toString(),
): File { ): File {
return File(baseFolder, filename) return File(baseFolder, filename)
} }