You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Added permission for Dexter, the runtime permission handling library
* [Preparing fir issue commons-app#1773] Added a utility function which would take the user to app settings screen where he could manually give us the required permission
* Added an alert dialog with positive and negative callback [Preparing fir issue commons-app#1773]
* Improvements in the way External Storage Permission is handled in MultipleShareActivity[Bug fixcommons-app#1697]
1. Used dexter to handle the external storage permission
2. Behaviour changes : When user tries to share(uppload) images to commons via MultipleShareActivity, following decision tree is followed
a. If the app has permission for external storage, normal upload operation is followed
b. If the app does not has the permission for external storage, dexter is used to ask for the same
c. If the user gives us the required permission, normal upload flow is proceeded
d. If the doesnot gives us the required permission a rationale dialog is shown with the appropriate message to let him know why we need the permission
e. If he presses okay, steps a-c are followed and if he presses cancel, we close the app.
f. If while asking for permission, the user chooses never ask again, then next time he tries to upload an image via MSA, the rational dialog follows the app setting screen where he could manually give us the required permission and the onActivityResult of same is handled
* Added a Constants class to handle request and result codes from one place and other related constants common to the all app elements
* replaced hardcoded strings ok and cancel in DialogUtil to string resources
* init permission rationale dialog in activities onCreate
* Code formatting, updated access modifiers wherever required, added javadocs for new methods created
* *shifted constants to app class
*Added JavaDocs in PermissionUtils
* removed class REQUEST_CODES from CommonsApplication and instead put the enclosing constants in the App class itself
//If permission is not there, handle the negative cases
324
+
askDexterToHandleExternalStoragePermission();
279
325
isMultipleUploadsPrepared = false;
280
326
return; // Postpone operation to do after gettion permission
281
327
} else {
282
328
isMultipleUploadsPrepared = true;
283
-
prepareMultipleUpoadList();
329
+
prepareMultipleUploadList();
330
+
}
331
+
}
332
+
333
+
/**
334
+
* This method initialised the Dexter's permission builder (if not already initialised). Also makes sure that the builder is initialised
335
+
* only once, otherwise we would'nt know on which instance of it, the user is working on. And after the builder is initialised, it checks for the required
336
+
* permission and then handles the permission status, thanks to Dexter's appropriate callbacks.
<stringname="write_storage_permission_rationale_for_image_share">We need your permission to access the external storage of your device in order to upload images.</string>
0 commit comments