handle gallery picker result based on preference

Signed-off-by: parneet-guraya <gurayaparneet@gmail.com>
This commit is contained in:
parneet-guraya 2024-10-17 20:31:06 +05:30
parent 7a1090911f
commit a28d32b7ee
No known key found for this signature in database
GPG key ID: 63B807C4B2A9064B
2 changed files with 27 additions and 16 deletions

View file

@ -234,9 +234,7 @@ public class ContributionController {
private void initiateGalleryUpload(final Activity activity, ActivityResultLauncher<Intent> resultLauncher, private void initiateGalleryUpload(final Activity activity, ActivityResultLauncher<Intent> resultLauncher,
final boolean allowMultipleUploads) { final boolean allowMultipleUploads) {
setPickerConfiguration(activity, allowMultipleUploads); setPickerConfiguration(activity, allowMultipleUploads);
boolean openDocumentIntentPreferred = defaultKvStore.getBoolean( FilePicker.openGallery(activity, resultLauncher,0, isDocumentPhotoPickerPreferred());
"openDocumentPhotoPickerPref", true);
FilePicker.openGallery(activity, resultLauncher,0, openDocumentIntentPreferred);
} }
/** /**
@ -262,8 +260,17 @@ public class ContributionController {
FilePicker.openCameraForImage(activity, resultLauncher,0); FilePicker.openCameraForImage(activity, resultLauncher,0);
} }
private boolean isDocumentPhotoPickerPreferred(){
return defaultKvStore.getBoolean(
"openDocumentPhotoPickerPref", true);
}
public void onPictureReturnedFromGallery(ActivityResult result, Activity activity, FilePicker.Callbacks callbacks){ public void onPictureReturnedFromGallery(ActivityResult result, Activity activity, FilePicker.Callbacks callbacks){
FilePicker.onPictureReturnedFromGallery(result,activity,callbacks); if(isDocumentPhotoPickerPreferred()){
FilePicker.onPictureReturnedFromDocuments(result, activity, callbacks);
} else {
FilePicker.onPictureReturnedFromGallery(result,activity,callbacks);
}
} }
public void onPictureReturnedFromCustomSelector(ActivityResult result, Activity activity, @NonNull FilePicker.Callbacks callbacks) { public void onPictureReturnedFromCustomSelector(ActivityResult result, Activity activity, @NonNull FilePicker.Callbacks callbacks) {

View file

@ -172,7 +172,7 @@ public class FilePicker implements Constants {
requestCode == RequestCodes.PICK_PICTURE_FROM_CUSTOM_SELECTOR) { requestCode == RequestCodes.PICK_PICTURE_FROM_CUSTOM_SELECTOR) {
if (resultCode == Activity.RESULT_OK) { if (resultCode == Activity.RESULT_OK) {
if (requestCode == RequestCodes.PICK_PICTURE_FROM_DOCUMENTS && !isPhoto(data)) { if (requestCode == RequestCodes.PICK_PICTURE_FROM_DOCUMENTS && !isPhoto(data)) {
onPictureReturnedFromDocuments(data, activity, callbacks); // onPictureReturnedFromDocuments(data, activity, callbacks);
} else if (requestCode == RequestCodes.PICK_PICTURE_FROM_GALLERY && !isPhoto(data)) { } else if (requestCode == RequestCodes.PICK_PICTURE_FROM_GALLERY && !isPhoto(data)) {
// onPictureReturnedFromGallery(data, activity, callbacks); // onPictureReturnedFromGallery(data, activity, callbacks);
} else if (requestCode == RequestCodes.PICK_PICTURE_FROM_CUSTOM_SELECTOR) { } else if (requestCode == RequestCodes.PICK_PICTURE_FROM_CUSTOM_SELECTOR) {
@ -248,18 +248,22 @@ public class FilePicker implements Constants {
return intent; return intent;
} }
private static void onPictureReturnedFromDocuments(Intent data, Activity activity, @NonNull FilePicker.Callbacks callbacks) { public static void onPictureReturnedFromDocuments(ActivityResult result, Activity activity, @NonNull FilePicker.Callbacks callbacks) {
try { if(result.getResultCode() == Activity.RESULT_OK){
Uri photoPath = data.getData(); try {
UploadableFile photoFile = PickedFiles.pickedExistingPicture(activity, photoPath); Uri photoPath = result.getData().getData();
callbacks.onImagesPicked(singleFileList(photoFile), FilePicker.ImageSource.DOCUMENTS, restoreType(activity)); UploadableFile photoFile = PickedFiles.pickedExistingPicture(activity, photoPath);
callbacks.onImagesPicked(singleFileList(photoFile), FilePicker.ImageSource.DOCUMENTS, restoreType(activity));
if (configuration(activity).shouldCopyPickedImagesToPublicGalleryAppFolder()) { if (configuration(activity).shouldCopyPickedImagesToPublicGalleryAppFolder()) {
PickedFiles.copyFilesInSeparateThread(activity, singleFileList(photoFile)); PickedFiles.copyFilesInSeparateThread(activity, singleFileList(photoFile));
}
} catch (Exception e) {
e.printStackTrace();
callbacks.onImagePickerError(e, FilePicker.ImageSource.DOCUMENTS, restoreType(activity));
} }
} catch (Exception e) { } else {
e.printStackTrace(); callbacks.onCanceled(FilePicker.ImageSource.DOCUMENTS, restoreType(activity));
callbacks.onImagePickerError(e, FilePicker.ImageSource.DOCUMENTS, restoreType(activity));
} }
} }
@ -310,7 +314,7 @@ public class FilePicker implements Constants {
e.printStackTrace(); e.printStackTrace();
callbacks.onImagePickerError(e, FilePicker.ImageSource.GALLERY, restoreType(activity)); callbacks.onImagePickerError(e, FilePicker.ImageSource.GALLERY, restoreType(activity));
} }
}else{ } else{
callbacks.onCanceled(FilePicker.ImageSource.GALLERY, restoreType(activity)); callbacks.onCanceled(FilePicker.ImageSource.GALLERY, restoreType(activity));
} }
} }