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
This commit is contained in:
tofunmi 2024-01-23 02:31:56 -08:00 committed by Copybara-Service
parent 5863ce7dd5
commit 94ce356bc1

View File

@ -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<Intent> localFilePickerLauncher, String mimeType) {
ActivityResultLauncher<Intent> 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<Intent> localFilePickerLauncher, String mimeType) {
ActivityResultLauncher<Intent> 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)