mirror of
				https://github.com/commons-app/apps-android-commons.git
				synced 2025-10-31 06:43:56 +01:00 
			
		
		
		
	Toggle photo picker switch behaviour and tweak phrases (#5250)
* photo picker: toggle behaviour of switch and adjust phrasing for better UX The enable state used to trigger the GET_CONTENT intent. Alter the flow such that the GET_CONTENT intent is triggered when switch is disabled. Adjust default value and other parts of code naming to reflect this. The existing phrasing had a lot of tech jargon in it which could result in the non-technical users being confused. Tweak the phrasing to avoid such phrases. The documentation in the website could also use some follow up improvements. * Adjust strings to clearly convey that location loss is a "risk"
This commit is contained in:
		
							parent
							
								
									8a9aa962bc
								
							
						
					
					
						commit
						a1b6973614
					
				
					 5 changed files with 25 additions and 24 deletions
				
			
		|  | @ -79,8 +79,8 @@ public class ContributionController { | ||||||
|      */ |      */ | ||||||
|     private void initiateGalleryUpload(final Activity activity, final boolean allowMultipleUploads) { |     private void initiateGalleryUpload(final Activity activity, final boolean allowMultipleUploads) { | ||||||
|         setPickerConfiguration(activity, allowMultipleUploads); |         setPickerConfiguration(activity, allowMultipleUploads); | ||||||
|         boolean isGetContentPickerPreferred = defaultKvStore.getBoolean("getContentPhotoPickerPref"); |         boolean openDocumentIntentPreferred = defaultKvStore.getBoolean("openDocumentPhotoPickerPref"); | ||||||
|         FilePicker.openGallery(activity, 0, isGetContentPickerPreferred); |         FilePicker.openGallery(activity, 0, openDocumentIntentPreferred); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     /** |     /** | ||||||
|  |  | ||||||
|  | @ -47,10 +47,10 @@ public class FilePicker implements Constants { | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     private static Intent createGalleryIntent(@NonNull Context context, int type, |     private static Intent createGalleryIntent(@NonNull Context context, int type, | ||||||
|                                               boolean isGetContentPickerPreferred) { |                                               boolean openDocumentIntentPreferred) { | ||||||
|         // storing picked image type to shared preferences |         // storing picked image type to shared preferences | ||||||
|         storeType(context, type); |         storeType(context, type); | ||||||
|         return plainGalleryPickerIntent(isGetContentPickerPreferred) |         return plainGalleryPickerIntent(openDocumentIntentPreferred) | ||||||
|                 .putExtra(Intent.EXTRA_ALLOW_MULTIPLE, configuration(context).allowsMultiplePickingInGallery()); |                 .putExtra(Intent.EXTRA_ALLOW_MULTIPLE, configuration(context).allowsMultiplePickingInGallery()); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | @ -106,8 +106,8 @@ public class FilePicker implements Constants { | ||||||
|      * |      * | ||||||
|      * @param type Custom type of your choice, which will be returned with the images |      * @param type Custom type of your choice, which will be returned with the images | ||||||
|      */ |      */ | ||||||
|     public static void openGallery(Activity activity, int type, boolean isGetContentPickerPreferred) { |     public static void openGallery(Activity activity, int type, boolean openDocumentIntentPreferred) { | ||||||
|         Intent intent = createGalleryIntent(activity, type, isGetContentPickerPreferred); |         Intent intent = createGalleryIntent(activity, type, openDocumentIntentPreferred); | ||||||
|         activity.startActivityForResult(intent, RequestCodes.PICK_PICTURE_FROM_GALLERY); |         activity.startActivityForResult(intent, RequestCodes.PICK_PICTURE_FROM_GALLERY); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | @ -201,8 +201,8 @@ public class FilePicker implements Constants { | ||||||
|         return data == null || (data.getData() == null && data.getClipData() == null); |         return data == null || (data.getData() == null && data.getClipData() == null); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     private static Intent plainGalleryPickerIntent(boolean isGetContentPickerPreferred) { |     private static Intent plainGalleryPickerIntent(boolean openDocumentIntentPreferred) { | ||||||
|         /** |         /* | ||||||
|          * Asking for ACCESS_MEDIA_LOCATION at runtime solved the location-loss issue |          * Asking for ACCESS_MEDIA_LOCATION at runtime solved the location-loss issue | ||||||
|          * in the custom selector in Contributions fragment. |          * in the custom selector in Contributions fragment. | ||||||
|          * Detailed discussion: https://github.com/commons-app/apps-android-commons/issues/5015 |          * Detailed discussion: https://github.com/commons-app/apps-android-commons/issues/5015 | ||||||
|  | @ -217,8 +217,8 @@ public class FilePicker implements Constants { | ||||||
|          * Reported on the Google Issue Tracker: https://issuetracker.google.com/issues/243294058 |          * Reported on the Google Issue Tracker: https://issuetracker.google.com/issues/243294058 | ||||||
|          * Status: Won't fix (Intended behaviour) |          * Status: Won't fix (Intended behaviour) | ||||||
|          * |          * | ||||||
|          * Switched intent from ACTION_GET_CONTENT to ACTION_OPEN_DOCUMENT |          * Switched intent from ACTION_GET_CONTENT to ACTION_OPEN_DOCUMENT (by default; can | ||||||
|          * (based on user's preference) as: |          * be changed through the Setting page) as: | ||||||
|          * |          * | ||||||
|          * ACTION_GET_CONTENT opens the 'best application' for choosing that kind of data |          * ACTION_GET_CONTENT opens the 'best application' for choosing that kind of data | ||||||
|          * The best application is the new Photo Picker that redacts the location tags |          * The best application is the new Photo Picker that redacts the location tags | ||||||
|  | @ -226,14 +226,15 @@ public class FilePicker implements Constants { | ||||||
|          * ACTION_OPEN_DOCUMENT, however,  displays the various DocumentsProvider instances |          * ACTION_OPEN_DOCUMENT, however,  displays the various DocumentsProvider instances | ||||||
|          * installed on the device, letting the user interactively navigate through them. |          * installed on the device, letting the user interactively navigate through them. | ||||||
|          * |          * | ||||||
|          * So, this allows us to use the traditional file picker that does not redact location tags from EXIF. |          * So, this allows us to use the traditional file picker that does not redact location tags | ||||||
|  |          * from EXIF. | ||||||
|          * |          * | ||||||
|          */ |          */ | ||||||
|         Intent intent; |         Intent intent; | ||||||
|         if (isGetContentPickerPreferred) { |         if (openDocumentIntentPreferred) { | ||||||
|             intent = new Intent(Intent.ACTION_GET_CONTENT); |  | ||||||
|         } else { |  | ||||||
|             intent = new Intent(Intent.ACTION_OPEN_DOCUMENT); |             intent = new Intent(Intent.ACTION_OPEN_DOCUMENT); | ||||||
|  |         } else { | ||||||
|  |             intent = new Intent(Intent.ACTION_GET_CONTENT); | ||||||
|         } |         } | ||||||
|         intent.setType("image/*"); |         intent.setType("image/*"); | ||||||
|         return intent; |         return intent; | ||||||
|  |  | ||||||
|  | @ -153,10 +153,10 @@ public class SettingsFragment extends PreferenceFragmentCompat { | ||||||
|             return true; |             return true; | ||||||
|         }); |         }); | ||||||
| 
 | 
 | ||||||
|         Preference getContentPickerPreference = findPreference("getContentPhotoPickerPref"); |         Preference documentBasedPickerPreference = findPreference("openDocumentPhotoPickerPref"); | ||||||
|         getContentPickerPreference.setOnPreferenceChangeListener( |         documentBasedPickerPreference.setOnPreferenceChangeListener( | ||||||
|             (preference, newValue) -> { |             (preference, newValue) -> { | ||||||
|                 boolean isGetContentPickerTurnedOn = (boolean) newValue; |                 boolean isGetContentPickerTurnedOn = !(boolean) newValue; | ||||||
|                 if (isGetContentPickerTurnedOn) { |                 if (isGetContentPickerTurnedOn) { | ||||||
|                     showLocationLossWarning(); |                     showLocationLossWarning(); | ||||||
|                 } |                 } | ||||||
|  |  | ||||||
|  | @ -440,9 +440,9 @@ Upload your first media by tapping on the add button.</string> | ||||||
|   <string name="ends_on">Ends on:</string> |   <string name="ends_on">Ends on:</string> | ||||||
|   <string name="display_campaigns">Display campaigns</string> |   <string name="display_campaigns">Display campaigns</string> | ||||||
|   <string name="display_campaigns_explanation">See the ongoing campaigns</string> |   <string name="display_campaigns_explanation">See the ongoing campaigns</string> | ||||||
|   <string name="get_content_photo_picker_title">Use GET_CONTENT photo picker</string> |   <string name="open_document_photo_picker_title">Use document based photo picker</string> | ||||||
|   <string name="get_content_photo_picker_explanation">Disable if your pictures get uploaded without location</string> |   <string name="open_document_photo_picker_explanation">The new Android photo picker risks losing location information. Enable if you seem to be using it.</string> | ||||||
|   <string name="location_loss_warning">Please make sure that this new Android picker does not strip location from your pictures.</string> |   <string name="location_loss_warning">Turning this off could trigger the new Android photo picker. It risks losing location information.\n\nTap on \'Read more\' for more information.</string> | ||||||
| 
 | 
 | ||||||
|   <string name="nearby_campaign_dismiss_message">You won\'t see the campaigns anymore. However, you can re-enable this notification in Settings if you wish.</string> |   <string name="nearby_campaign_dismiss_message">You won\'t see the campaigns anymore. However, you can re-enable this notification in Settings if you wish.</string> | ||||||
|   <string name="this_function_needs_network_connection">This function requires network connection, please check your connection settings.</string> |   <string name="this_function_needs_network_connection">This function requires network connection, please check your connection settings.</string> | ||||||
|  |  | ||||||
|  | @ -72,10 +72,10 @@ | ||||||
|           android:title="@string/display_campaigns" /> |           android:title="@string/display_campaigns" /> | ||||||
| 
 | 
 | ||||||
|         <SwitchPreference |         <SwitchPreference | ||||||
|             android:defaultValue="false" |             android:defaultValue="true" | ||||||
|             android:key="getContentPhotoPickerPref" |             android:key="openDocumentPhotoPickerPref" | ||||||
|             android:summary="@string/get_content_photo_picker_explanation" |             android:summary="@string/open_document_photo_picker_explanation" | ||||||
|             android:title="@string/get_content_photo_picker_title"/> |             android:title="@string/open_document_photo_picker_title"/> | ||||||
|     </PreferenceCategory> |     </PreferenceCategory> | ||||||
| 
 | 
 | ||||||
|     <PreferenceCategory |     <PreferenceCategory | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Kaartic Sivaraam
						Kaartic Sivaraam