Refactor permission code

- Remove write permission (was never needed)
- Only use read permission for Android 5 and 6
- Simplify logic by mocking a valid permission result if permission
  already granted
This commit is contained in:
Sylvia van Os
2023-01-24 20:28:26 +01:00
parent 9ef014e05c
commit fd2400eaf5
38 changed files with 186 additions and 129 deletions

View File

@@ -53,6 +53,8 @@ public class ScanActivity extends CatimaAppCompatActivity {
private static final int MEDIUM_SCALE_FACTOR_DIP = 460;
private static final int COMPAT_SCALE_FACTOR_DIP = 320;
private static final int PERMISSION_SCAN_ADD_FROM_IMAGE = 100;
private CaptureManager capture;
private DecoratedBarcodeView barcodeScannerView;
@@ -226,6 +228,10 @@ public class ScanActivity extends CatimaAppCompatActivity {
}
public void addFromImage(View view) {
PermissionUtils.requestStorageReadPermission(this, PERMISSION_SCAN_ADD_FROM_IMAGE);
}
private void addFromImageAfterPermission() {
Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
photoPickerIntent.setType("image/*");
Intent contentIntent = new Intent(Intent.ACTION_GET_CONTENT);
@@ -275,9 +281,15 @@ public class ScanActivity extends CatimaAppCompatActivity {
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == CaptureManager.getCameraPermissionReqCode())
if (requestCode == CaptureManager.getCameraPermissionReqCode()) {
showCameraPermissionMissingText(grantResults[0] != PackageManager.PERMISSION_GRANTED);
} else if (requestCode == PERMISSION_SCAN_ADD_FROM_IMAGE) {
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
addFromImageAfterPermission();
} else {
Toast.makeText(this, R.string.storageReadPermissionRequired, Toast.LENGTH_LONG).show();
}
}
}
}