Request storage permission when adding additional media.

This commit is contained in:
Yannick Verdie 2021-03-15 14:13:03 +00:00 committed by Greyson Parrelli
parent 0c535904fc
commit 21252aad0f

View file

@ -637,21 +637,29 @@ public class MediaSendActivity extends PassphraseRequiredActivity implements Med
private void onAddMediaClicked(@NonNull String bucketId) { private void onAddMediaClicked(@NonNull String bucketId) {
hud.hideCurrentInput(composeText); Permissions.with(this)
.request(Manifest.permission.READ_EXTERNAL_STORAGE)
.ifNecessary()
.withPermanentDenialDialog(getString(R.string.AttachmentKeyboard_Signal_needs_permission_to_show_your_photos_and_videos))
.onAllGranted(() -> {
hud.hideCurrentInput(composeText);
// TODO: Get actual folder title somehow // TODO: Get actual folder title somehow
MediaPickerFolderFragment folderFragment = MediaPickerFolderFragment.newInstance(this, recipient != null ? recipient.get() : null); MediaPickerFolderFragment folderFragment = MediaPickerFolderFragment.newInstance(this, recipient != null ? recipient.get() : null);
MediaPickerItemFragment itemFragment = MediaPickerItemFragment.newInstance(bucketId, "", viewModel.getMaxSelection()); MediaPickerItemFragment itemFragment = MediaPickerItemFragment.newInstance(bucketId, "", viewModel.getMaxSelection());
getSupportFragmentManager().beginTransaction() getSupportFragmentManager().beginTransaction()
.replace(R.id.mediasend_fragment_container, folderFragment, TAG_FOLDER_PICKER) .replace(R.id.mediasend_fragment_container, folderFragment, TAG_FOLDER_PICKER)
.addToBackStack(null) .addToBackStack(null)
.commit(); .commit();
getSupportFragmentManager().beginTransaction() getSupportFragmentManager().beginTransaction()
.replace(R.id.mediasend_fragment_container, itemFragment, TAG_ITEM_PICKER) .replace(R.id.mediasend_fragment_container, itemFragment, TAG_ITEM_PICKER)
.addToBackStack(null) .addToBackStack(null)
.commit(); .commit();
})
.onAnyDenied(() -> Toast.makeText(MediaSendActivity.this, R.string.AttachmentKeyboard_Signal_needs_permission_to_show_your_photos_and_videos, Toast.LENGTH_LONG).show())
.execute();
} }
private void onNoMediaAvailable() { private void onNoMediaAvailable() {