Skip to content

Commit 8317a4b

Browse files
authored
Merge pull request #4233 from wordpress-mobile/feature/gravatar-permission-denied-analytics
Gravatar permission-denied analytics
2 parents 72befc2 + f5f27c0 commit 8317a4b

File tree

4 files changed

+35
-11
lines changed

4 files changed

+35
-11
lines changed

WordPress/src/main/java/org/wordpress/android/ui/main/MeFragment.java

Lines changed: 27 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,11 @@
6363
import java.io.IOException;
6464
import java.lang.ref.WeakReference;
6565
import java.text.SimpleDateFormat;
66+
import java.util.ArrayList;
6667
import java.util.Date;
68+
import java.util.HashMap;
69+
import java.util.List;
70+
import java.util.Map;
6771
import java.util.TreeMap;
6872

6973
import de.greenrobot.event.EventBus;
@@ -428,21 +432,33 @@ public void onRequestPermissionsResult(int requestCode, @NonNull String permissi
428432
grantResults) {
429433
switch (requestCode) {
430434
case CAMERA_AND_MEDIA_PERMISSION_REQUEST_CODE:
431-
for (int grantResult : grantResults) {
432-
if (grantResult == PackageManager.PERMISSION_DENIED) {
435+
if (permissions.length == 0) {
436+
AnalyticsTracker.track(AnalyticsTracker.Stat.ME_GRAVATAR_PERMISSIONS_INTERRUPTED);
437+
} else {
438+
List<String> granted = new ArrayList<>();
439+
List<String> denied = new ArrayList<>();
440+
441+
for (int i = 0; i < grantResults.length; i++) {
442+
if (grantResults[i] == PackageManager.PERMISSION_GRANTED) {
443+
granted.add(permissions[i]);
444+
} else {
445+
denied.add(permissions[i]);
446+
}
447+
}
448+
449+
if (denied.size() == 0) {
450+
AnalyticsTracker.track(AnalyticsTracker.Stat.ME_GRAVATAR_PERMISSIONS_ACCEPTED);
451+
askForCameraOrGallery();
452+
} else {
433453
ToastUtils.showToast(this.getActivity(), getString(R.string
434454
.gravatar_camera_and_media_permission_required), ToastUtils.Duration.LONG);
435-
436-
AnalyticsTracker.track(AnalyticsTracker.Stat
437-
.ME_GRAVATAR_PERMISSIONS_DENIED);
438-
439-
return;
455+
Map<String, Object> properties = new HashMap<>();
456+
properties.put("permissions granted", granted.size() == 0 ? "[none]" : TextUtils
457+
.join(",", granted));
458+
properties.put("permissions denied", TextUtils.join(",", denied));
459+
AnalyticsTracker.track(AnalyticsTracker.Stat.ME_GRAVATAR_PERMISSIONS_DENIED, properties);
440460
}
441461
}
442-
443-
AnalyticsTracker.track(AnalyticsTracker.Stat.ME_GRAVATAR_PERMISSIONS_ACCEPTED);
444-
445-
askForCameraOrGallery();
446462
break;
447463
}
448464
}

libs/analytics/WordPressAnalytics/src/main/java/org/wordpress/android/analytics/AnalyticsTracker.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ public enum Stat {
8585
ME_ACCESSED,
8686
ME_GRAVATAR_TAPPED,
8787
ME_GRAVATAR_TOOLTIP_TAPPED,
88+
ME_GRAVATAR_PERMISSIONS_INTERRUPTED,
8889
ME_GRAVATAR_PERMISSIONS_DENIED,
8990
ME_GRAVATAR_PERMISSIONS_ACCEPTED,
9091
ME_GRAVATAR_SHOT_NEW,

libs/analytics/WordPressAnalytics/src/main/java/org/wordpress/android/analytics/AnalyticsTrackerMixpanel.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -874,6 +874,10 @@ private AnalyticsTrackerMixpanelInstructionsForStat instructionsForStat(
874874
instructions = AnalyticsTrackerMixpanelInstructionsForStat.
875875
mixpanelInstructionsForEventName("Me - Tapped Gravatar Tooltip");
876876
break;
877+
case ME_GRAVATAR_PERMISSIONS_INTERRUPTED:
878+
instructions = AnalyticsTrackerMixpanelInstructionsForStat.
879+
mixpanelInstructionsForEventName("Me - Gravatar Permissions Interrupted");
880+
break;
877881
case ME_GRAVATAR_PERMISSIONS_DENIED:
878882
instructions = AnalyticsTrackerMixpanelInstructionsForStat.
879883
mixpanelInstructionsForEventName("Me - Gravatar Permissions Denied");

libs/analytics/WordPressAnalytics/src/main/java/org/wordpress/android/analytics/AnalyticsTrackerNosara.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -435,6 +435,9 @@ public void track(AnalyticsTracker.Stat stat, Map<String, ?> properties) {
435435
case ME_GRAVATAR_TOOLTIP_TAPPED:
436436
eventName = "me_gravatar_tooltip_tapped";
437437
break;
438+
case ME_GRAVATAR_PERMISSIONS_INTERRUPTED:
439+
eventName = "me_gravatar_permissions_interrupted";
440+
break;
438441
case ME_GRAVATAR_PERMISSIONS_DENIED:
439442
eventName = "me_gravatar_permissions_denied";
440443
break;

0 commit comments

Comments
 (0)