diff --git a/WordPress/src/main/java/org/wordpress/android/ui/main/MeFragment.java b/WordPress/src/main/java/org/wordpress/android/ui/main/MeFragment.java index 74409bee7576..316cf2a3cc18 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/main/MeFragment.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/main/MeFragment.java @@ -63,7 +63,11 @@ import java.io.IOException; import java.lang.ref.WeakReference; import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.TreeMap; import de.greenrobot.event.EventBus; @@ -428,21 +432,33 @@ public void onRequestPermissionsResult(int requestCode, @NonNull String permissi grantResults) { switch (requestCode) { case CAMERA_AND_MEDIA_PERMISSION_REQUEST_CODE: - for (int grantResult : grantResults) { - if (grantResult == PackageManager.PERMISSION_DENIED) { + if (permissions.length == 0) { + AnalyticsTracker.track(AnalyticsTracker.Stat.ME_GRAVATAR_PERMISSIONS_INTERRUPTED); + } else { + List granted = new ArrayList<>(); + List denied = new ArrayList<>(); + + for (int i = 0; i < grantResults.length; i++) { + if (grantResults[i] == PackageManager.PERMISSION_GRANTED) { + granted.add(permissions[i]); + } else { + denied.add(permissions[i]); + } + } + + if (denied.size() == 0) { + AnalyticsTracker.track(AnalyticsTracker.Stat.ME_GRAVATAR_PERMISSIONS_ACCEPTED); + askForCameraOrGallery(); + } else { ToastUtils.showToast(this.getActivity(), getString(R.string .gravatar_camera_and_media_permission_required), ToastUtils.Duration.LONG); - - AnalyticsTracker.track(AnalyticsTracker.Stat - .ME_GRAVATAR_PERMISSIONS_DENIED); - - return; + Map properties = new HashMap<>(); + properties.put("permissions granted", granted.size() == 0 ? "[none]" : TextUtils + .join(",", granted)); + properties.put("permissions denied", TextUtils.join(",", denied)); + AnalyticsTracker.track(AnalyticsTracker.Stat.ME_GRAVATAR_PERMISSIONS_DENIED, properties); } } - - AnalyticsTracker.track(AnalyticsTracker.Stat.ME_GRAVATAR_PERMISSIONS_ACCEPTED); - - askForCameraOrGallery(); break; } } diff --git a/libs/analytics/WordPressAnalytics/src/main/java/org/wordpress/android/analytics/AnalyticsTracker.java b/libs/analytics/WordPressAnalytics/src/main/java/org/wordpress/android/analytics/AnalyticsTracker.java index 69756225f98c..6a4d6f3afa68 100644 --- a/libs/analytics/WordPressAnalytics/src/main/java/org/wordpress/android/analytics/AnalyticsTracker.java +++ b/libs/analytics/WordPressAnalytics/src/main/java/org/wordpress/android/analytics/AnalyticsTracker.java @@ -85,6 +85,7 @@ public enum Stat { ME_ACCESSED, ME_GRAVATAR_TAPPED, ME_GRAVATAR_TOOLTIP_TAPPED, + ME_GRAVATAR_PERMISSIONS_INTERRUPTED, ME_GRAVATAR_PERMISSIONS_DENIED, ME_GRAVATAR_PERMISSIONS_ACCEPTED, ME_GRAVATAR_SHOT_NEW, diff --git a/libs/analytics/WordPressAnalytics/src/main/java/org/wordpress/android/analytics/AnalyticsTrackerMixpanel.java b/libs/analytics/WordPressAnalytics/src/main/java/org/wordpress/android/analytics/AnalyticsTrackerMixpanel.java index 0a3f9b44ec0c..54a8c4ed6671 100644 --- a/libs/analytics/WordPressAnalytics/src/main/java/org/wordpress/android/analytics/AnalyticsTrackerMixpanel.java +++ b/libs/analytics/WordPressAnalytics/src/main/java/org/wordpress/android/analytics/AnalyticsTrackerMixpanel.java @@ -874,6 +874,10 @@ private AnalyticsTrackerMixpanelInstructionsForStat instructionsForStat( instructions = AnalyticsTrackerMixpanelInstructionsForStat. mixpanelInstructionsForEventName("Me - Tapped Gravatar Tooltip"); break; + case ME_GRAVATAR_PERMISSIONS_INTERRUPTED: + instructions = AnalyticsTrackerMixpanelInstructionsForStat. + mixpanelInstructionsForEventName("Me - Gravatar Permissions Interrupted"); + break; case ME_GRAVATAR_PERMISSIONS_DENIED: instructions = AnalyticsTrackerMixpanelInstructionsForStat. mixpanelInstructionsForEventName("Me - Gravatar Permissions Denied"); diff --git a/libs/analytics/WordPressAnalytics/src/main/java/org/wordpress/android/analytics/AnalyticsTrackerNosara.java b/libs/analytics/WordPressAnalytics/src/main/java/org/wordpress/android/analytics/AnalyticsTrackerNosara.java index 5a5421064014..9fd404106a33 100644 --- a/libs/analytics/WordPressAnalytics/src/main/java/org/wordpress/android/analytics/AnalyticsTrackerNosara.java +++ b/libs/analytics/WordPressAnalytics/src/main/java/org/wordpress/android/analytics/AnalyticsTrackerNosara.java @@ -435,6 +435,9 @@ public void track(AnalyticsTracker.Stat stat, Map properties) { case ME_GRAVATAR_TOOLTIP_TAPPED: eventName = "me_gravatar_tooltip_tapped"; break; + case ME_GRAVATAR_PERMISSIONS_INTERRUPTED: + eventName = "me_gravatar_permissions_interrupted"; + break; case ME_GRAVATAR_PERMISSIONS_DENIED: eventName = "me_gravatar_permissions_denied"; break;