From 94ce356bc1bea34edeba02181f3793ec7da7c2f4 Mon Sep 17 00:00:00 2001 From: tofunmi Date: Tue, 23 Jan 2024 02:31:56 -0800 Subject: [PATCH] Transformer demo: support selecting all media MIME types It's useful for development and debugging to select a local image or audio (only) file as well as a video file in the transformer demo app. I tested manually that you can select a local video, audio and image but not e.g. a pdf with the main "choose local file" picker and only an image with the choose local image picker for the bitmap overlay demo. PiperOrigin-RevId: 600722622 --- .../demo/transformer/ConfigurationActivity.java | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/demos/transformer/src/main/java/androidx/media3/demo/transformer/ConfigurationActivity.java b/demos/transformer/src/main/java/androidx/media3/demo/transformer/ConfigurationActivity.java index cbec6ddc18..433704cbd7 100644 --- a/demos/transformer/src/main/java/androidx/media3/demo/transformer/ConfigurationActivity.java +++ b/demos/transformer/src/main/java/androidx/media3/demo/transformer/ConfigurationActivity.java @@ -282,7 +282,8 @@ public final class ConfigurationActivity extends AppCompatActivity { selectLocalFileButton.setOnClickListener( view -> selectLocalFile( - view, checkNotNull(videoLocalFilePickerLauncher), /* mimeType= */ "video/*")); + checkNotNull(videoLocalFilePickerLauncher), + /* mimeTypes= */ new String[] {"image/*", "video/*", "audio/*"})); selectedFileTextView = findViewById(R.id.selected_file_text_view); selectedFileTextView.setText(PRESET_FILE_URI_DESCRIPTIONS[inputUriPosition]); @@ -509,22 +510,23 @@ public final class ConfigurationActivity extends AppCompatActivity { } private void selectLocalFile( - View view, ActivityResultLauncher localFilePickerLauncher, String mimeType) { + ActivityResultLauncher localFilePickerLauncher, String[] mimeTypes) { String permission = SDK_INT >= 33 ? READ_MEDIA_VIDEO : READ_EXTERNAL_STORAGE; if (ActivityCompat.checkSelfPermission(/* context= */ this, permission) != PackageManager.PERMISSION_GRANTED) { - onPermissionsGranted = () -> launchLocalFilePicker(localFilePickerLauncher, mimeType); + onPermissionsGranted = () -> launchLocalFilePicker(localFilePickerLauncher, mimeTypes); ActivityCompat.requestPermissions( /* activity= */ this, new String[] {permission}, FILE_PERMISSION_REQUEST_CODE); } else { - launchLocalFilePicker(localFilePickerLauncher, mimeType); + launchLocalFilePicker(localFilePickerLauncher, mimeTypes); } } private void launchLocalFilePicker( - ActivityResultLauncher localFilePickerLauncher, String mimeType) { + ActivityResultLauncher localFilePickerLauncher, String[] mimeTypes) { Intent intent = new Intent(Intent.ACTION_GET_CONTENT); - intent.setType(mimeType); + intent.setType("*/*"); + intent.putExtra(Intent.EXTRA_MIME_TYPES, mimeTypes); checkNotNull(localFilePickerLauncher).launch(intent); } @@ -740,7 +742,8 @@ public final class ConfigurationActivity extends AppCompatActivity { uriButton.setOnClickListener( (view -> selectLocalFile( - view, checkNotNull(overlayLocalFilePickerLauncher), /* mimeType= */ "image/*"))); + checkNotNull(overlayLocalFilePickerLauncher), + /* mimeTypes= */ new String[] {"image/*"}))); Slider alphaSlider = checkNotNull(dialogView.findViewById(R.id.bitmap_overlay_alpha_slider)); new AlertDialog.Builder(/* context= */ this) .setTitle(R.string.bitmap_overlay_settings)