Skip to content
This repository was archived by the owner on Feb 22, 2023. It is now read-only.

[image_picker] Change storage location for camera captures to internal cache on Android, to comply with new Google Play storage requirements. #3956

Merged
merged 20 commits into from
Jun 1, 2021
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
7be1c7c
Switch to app-specific folder for writing camera captures.
BeMacized May 21, 2021
d79bac3
Merge branch 'master' into issue/80502
BeMacized May 21, 2021
df306e2
Update documentation
BeMacized May 21, 2021
467bb5c
Update targetSdkVersion for example. Update tests.
BeMacized May 21, 2021
b2e902e
Updated changelog and pubspec version
BeMacized May 21, 2021
84a5ad1
Update packages/image_picker/image_picker/android/src/main/AndroidMan…
BeMacized May 21, 2021
46df81f
Update packages/image_picker/image_picker/example/android/app/src/tes…
BeMacized May 21, 2021
15d841d
Update packages/image_picker/image_picker/android/src/main/res/xml/fl…
BeMacized May 21, 2021
e1cb24e
Implemented PR feedback
BeMacized May 21, 2021
eafa023
Add test to check if file is created in cache directory
BeMacized May 26, 2021
aa3c24d
Upgrade PR to breaking change
BeMacized May 26, 2021
a3c737c
Update packages/image_picker/image_picker/CHANGELOG.md
BeMacized May 26, 2021
bc3e4d5
Update CHANGELOG.md
BeMacized May 26, 2021
121a7ca
Merge branch 'master' into issue/80502
BeMacized May 26, 2021
1143108
Removed redundant robolectric.properties
BeMacized May 26, 2021
bfb2b6a
Fix merge issue
BeMacized May 26, 2021
e973353
Removed WRITE_EXTERNAL_STORAGE permission completely
BeMacized Jun 1, 2021
ca846ba
Remove READ_EXTERNAL_STORAGE permission checks
BeMacized Jun 1, 2021
fa3c577
Ran format and removed redundant unit tests
BeMacized Jun 1, 2021
80906ca
Merge branch 'master' into issue/80502
BeMacized Jun 1, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Ran format and removed redundant unit tests
  • Loading branch information
BeMacized committed Jun 1, 2021
commit fa3c577b71d94f6a8eb7930684eb0e4e16337bb9
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,8 @@ enum CameraDevice {
* means that the chooseImageFromGallery() or takeImageWithCamera() method was called at least
* twice. In this case, stop executing and finish with an error.
*
* <p>2. Check that a required runtime permission has been granted.
* The takeImageWithCamera() method checks that {@link Manifest.permission#CAMERA} has been granted.
* <p>2. Check that a required runtime permission has been granted. The takeImageWithCamera() method
* checks that {@link Manifest.permission#CAMERA} has been granted.
*
* <p>The permission check can end up in two different outcomes:
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,20 +103,6 @@ public void chooseImageFromGallery_WhenPendingResultExists_FinishesWithAlreadyAc
verifyNoMoreInteractions(mockResult);
}

@Test
public void chooseImageFromGallery_WhenHasNoExternalStoragePermission_RequestsForPermission() {
when(mockPermissionManager.isPermissionGranted(Manifest.permission.READ_EXTERNAL_STORAGE))
.thenReturn(false);

ImagePickerDelegate delegate = createDelegate();
delegate.chooseImageFromGallery(mockMethodCall, mockResult);

verify(mockPermissionManager)
.askForPermission(
Manifest.permission.READ_EXTERNAL_STORAGE,
ImagePickerDelegate.REQUEST_EXTERNAL_IMAGE_STORAGE_PERMISSION);
}

@Test
public void
chooseImageFromGallery_WhenHasExternalStoragePermission_LaunchesChooseFromGalleryIntent() {
Expand Down Expand Up @@ -213,50 +199,6 @@ public void takeImageWithCamera_WritesImageToCacheDirectory() {
times(1));
}

@Test
public void
onRequestPermissionsResult_WhenReadExternalStoragePermissionDenied_FinishesWithError() {
ImagePickerDelegate delegate = createDelegateWithPendingResultAndMethodCall();

delegate.onRequestPermissionsResult(
ImagePickerDelegate.REQUEST_EXTERNAL_IMAGE_STORAGE_PERMISSION,
new String[] {Manifest.permission.READ_EXTERNAL_STORAGE},
new int[] {PackageManager.PERMISSION_DENIED});

verify(mockResult).error("photo_access_denied", "The user did not allow photo access.", null);
verifyNoMoreInteractions(mockResult);
}

@Test
public void
onRequestChooseImagePermissionsResult_WhenReadExternalStorageGranted_LaunchesChooseImageFromGalleryIntent() {
ImagePickerDelegate delegate = createDelegateWithPendingResultAndMethodCall();

delegate.onRequestPermissionsResult(
ImagePickerDelegate.REQUEST_EXTERNAL_IMAGE_STORAGE_PERMISSION,
new String[] {Manifest.permission.READ_EXTERNAL_STORAGE},
new int[] {PackageManager.PERMISSION_GRANTED});

verify(mockActivity)
.startActivityForResult(
any(Intent.class), eq(ImagePickerDelegate.REQUEST_CODE_CHOOSE_IMAGE_FROM_GALLERY));
}

@Test
public void
onRequestChooseVideoPermissionsResult_WhenReadExternalStorageGranted_LaunchesChooseVideoFromGalleryIntent() {
ImagePickerDelegate delegate = createDelegateWithPendingResultAndMethodCall();

delegate.onRequestPermissionsResult(
ImagePickerDelegate.REQUEST_EXTERNAL_VIDEO_STORAGE_PERMISSION,
new String[] {Manifest.permission.READ_EXTERNAL_STORAGE},
new int[] {PackageManager.PERMISSION_GRANTED});

verify(mockActivity)
.startActivityForResult(
any(Intent.class), eq(ImagePickerDelegate.REQUEST_CODE_CHOOSE_VIDEO_FROM_GALLERY));
}

@Test
public void onRequestPermissionsResult_WhenCameraPermissionDenied_FinishesWithError() {
ImagePickerDelegate delegate = createDelegateWithPendingResultAndMethodCall();
Expand Down