Messaging: Replace permission requests with launchers

Change-Id: I0d12fd05fb0abaeb9bd64c8c77e0e776d5459e4d
This commit is contained in:
Michael W
2024-12-26 15:54:37 +01:00
parent 7f464b401c
commit c73fdc5064
2 changed files with 20 additions and 30 deletions
@@ -48,6 +48,7 @@ class CameraMediaChooser extends MediaChooser {
private View mMissingPermissionView;
private final ActivityResultLauncher<Uri> mPictureLauncher;
private final ActivityResultLauncher<Uri> mVideoLauncher;
private final ActivityResultLauncher<String> mRequestPermissionLauncher;
private final DocumentImagePicker mDocumentImagePicker;
private Uri mOutputUri;
@@ -83,6 +84,10 @@ class CameraMediaChooser extends MediaChooser {
true /* dismissMediaPicker */);
}
});
mRequestPermissionLauncher = mediaPicker.registerForActivityResult(
new ActivityResultContracts.RequestPermission(), granted -> {
updateForPermissionState(granted);
});
}
@Override
@@ -152,22 +157,11 @@ class CameraMediaChooser extends MediaChooser {
}
private void requestCameraPermission() {
mMediaPicker.requestPermissions(new String[] { Manifest.permission.CAMERA },
MediaPicker.CAMERA_PERMISSION_REQUEST_CODE);
mRequestPermissionLauncher.launch(Manifest.permission.CAMERA);
}
private void requestRecordAudioPermission() {
mMediaPicker.requestPermissions(new String[] { Manifest.permission.RECORD_AUDIO },
MediaPicker.RECORD_AUDIO_PERMISSION_REQUEST_CODE);
}
@Override
protected void onRequestPermissionsResult(
final int requestCode, final String[] permissions, final int[] grantResults) {
if (requestCode == MediaPicker.CAMERA_PERMISSION_REQUEST_CODE) {
final boolean permissionGranted = grantResults[0] == PackageManager.PERMISSION_GRANTED;
updateForPermissionState(permissionGranted);
}
mRequestPermissionLauncher.launch(Manifest.permission.RECORD_AUDIO);
}
private void updateForPermissionState(final boolean granted) {