Chromium Code Reviews| Index: chrome/android/java/src/org/chromium/chrome/browser/ntp/ContentSuggestionsNotificationHelper.java |
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/ContentSuggestionsNotificationHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/ContentSuggestionsNotificationHelper.java |
| index ed299336897ca1d862100d376a09133bc6367664..fb427491cd0dcaa4efe154768d02a3b0c017afc9 100644 |
| --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/ContentSuggestionsNotificationHelper.java |
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/ContentSuggestionsNotificationHelper.java |
| @@ -30,8 +30,9 @@ |
| import org.chromium.chrome.browser.notifications.NotificationConstants; |
| import org.chromium.chrome.browser.notifications.NotificationUmaTracker; |
| import org.chromium.chrome.browser.ntp.snippets.ContentSuggestionsNotificationAction; |
| +import org.chromium.chrome.browser.ntp.snippets.ContentSuggestionsNotificationAction.ContentSuggestionsNotificationActionEnum; |
| +import org.chromium.chrome.browser.ntp.snippets.ContentSuggestionsNotificationOptOut.ContentSuggestionsNotificationOptOutEnum; |
| import org.chromium.chrome.browser.preferences.ContentSuggestionsPreferences; |
| -import org.chromium.chrome.browser.preferences.PreferencesLauncher; |
| import java.util.Collection; |
| import java.util.Collections; |
| @@ -73,6 +74,15 @@ |
| private ContentSuggestionsNotificationHelper() {} // Prevent instantiation |
| + public static void recordNotificationOptOut( |
| + @ContentSuggestionsNotificationOptOutEnum int reason) { |
| + nativeRecordNotificationOptOut(reason); |
| + } |
| + public static void recordNotificationAction( |
|
Michael van Ouwerkerk
2017/04/05 15:47:31
nit: empty line between methods, and docs for publ
dgn
2017/04/05 16:53:54
Done.
|
| + @ContentSuggestionsNotificationActionEnum int action) { |
| + nativeRecordNotificationAction(action); |
| + } |
| + |
| /** |
| * Opens the content suggestion when notification is tapped. |
| */ |
| @@ -82,7 +92,7 @@ public void onReceive(Context context, Intent intent) { |
| int category = intent.getIntExtra(NOTIFICATION_CATEGORY_EXTRA, -1); |
| String idWithinCategory = intent.getStringExtra(NOTIFICATION_ID_WITHIN_CATEGORY_EXTRA); |
| openUrl(intent.getData()); |
| - recordCachedActionMetric(ContentSuggestionsNotificationAction.CONTENT_SUGGESTIONS_TAP); |
| + recordCachedActionMetric(ContentSuggestionsNotificationAction.TAP); |
| removeActiveNotification(category, idWithinCategory); |
| } |
| } |
| @@ -95,8 +105,7 @@ public void onReceive(Context context, Intent intent) { |
| public void onReceive(Context context, Intent intent) { |
| int category = intent.getIntExtra(NOTIFICATION_CATEGORY_EXTRA, -1); |
| String idWithinCategory = intent.getStringExtra(NOTIFICATION_ID_WITHIN_CATEGORY_EXTRA); |
| - recordCachedActionMetric( |
| - ContentSuggestionsNotificationAction.CONTENT_SUGGESTIONS_DISMISSAL); |
| + recordCachedActionMetric(ContentSuggestionsNotificationAction.DISMISSAL); |
| removeActiveNotification(category, idWithinCategory); |
| } |
| } |
| @@ -113,8 +122,8 @@ public void onReceive(Context context, Intent intent) { |
| return; // tapped or swiped |
| } |
| - hideNotification(category, idWithinCategory, |
| - ContentSuggestionsNotificationAction.CONTENT_SUGGESTIONS_HIDE_DEADLINE); |
| + hideNotification( |
| + category, idWithinCategory, ContentSuggestionsNotificationAction.HIDE_DEADLINE); |
| } |
| } |
| @@ -173,8 +182,8 @@ private static boolean showNotification(int category, String idWithinCategory, S |
| .setSmallIcon(R.drawable.ic_chrome); |
| if (ChromeFeatureList.isEnabled(ChromeFeatureList.CONTENT_SUGGESTIONS_SETTINGS)) { |
| PendingIntent settingsIntent = PendingIntent.getActivity(context, 0, |
| - PreferencesLauncher.createIntentForSettingsPage( |
| - context, ContentSuggestionsPreferences.class.getName()), |
| + ContentSuggestionsPreferences.createLaunchIntent( |
| + context, ContentSuggestionsPreferences.LAUNCH_SOURCE_NOTIFICATION), |
| 0); |
| builder.addAction(R.drawable.settings_cog, context.getString(R.string.preferences), |
| settingsIntent); |
| @@ -349,22 +358,21 @@ private static int nextNotificationId() { |
| } |
| private static String cachedMetricNameForAction( |
| - @ContentSuggestionsNotificationAction.ContentSuggestionsNotificationActionEnum |
| - int action) { |
| + @ContentSuggestionsNotificationActionEnum int action) { |
| switch (action) { |
| - case ContentSuggestionsNotificationAction.CONTENT_SUGGESTIONS_TAP: |
| + case ContentSuggestionsNotificationAction.TAP: |
| return PREF_CACHED_ACTION_TAP; |
| - case ContentSuggestionsNotificationAction.CONTENT_SUGGESTIONS_DISMISSAL: |
| + case ContentSuggestionsNotificationAction.DISMISSAL: |
| return PREF_CACHED_ACTION_DISMISSAL; |
| - case ContentSuggestionsNotificationAction.CONTENT_SUGGESTIONS_HIDE_DEADLINE: |
| + case ContentSuggestionsNotificationAction.HIDE_DEADLINE: |
| return PREF_CACHED_ACTION_HIDE_DEADLINE; |
| - case ContentSuggestionsNotificationAction.CONTENT_SUGGESTIONS_HIDE_EXPIRY: |
| + case ContentSuggestionsNotificationAction.HIDE_EXPIRY: |
| return PREF_CACHED_ACTION_HIDE_EXPIRY; |
| - case ContentSuggestionsNotificationAction.CONTENT_SUGGESTIONS_HIDE_FRONTMOST: |
| + case ContentSuggestionsNotificationAction.HIDE_FRONTMOST: |
| return PREF_CACHED_ACTION_HIDE_FRONTMOST; |
| - case ContentSuggestionsNotificationAction.CONTENT_SUGGESTIONS_HIDE_DISABLED: |
| + case ContentSuggestionsNotificationAction.HIDE_DISABLED: |
| return PREF_CACHED_ACTION_HIDE_DISABLED; |
| - case ContentSuggestionsNotificationAction.CONTENT_SUGGESTIONS_HIDE_SHUTDOWN: |
| + case ContentSuggestionsNotificationAction.HIDE_SHUTDOWN: |
| return PREF_CACHED_ACTION_HIDE_SHUTDOWN; |
| } |
| return ""; |
| @@ -383,8 +391,7 @@ private static String cachedMetricNameForAction( |
| * @param action The action to update the pref for. |
| */ |
| private static void recordCachedActionMetric( |
| - @ContentSuggestionsNotificationAction.ContentSuggestionsNotificationActionEnum |
| - int action) { |
| + @ContentSuggestionsNotificationActionEnum int action) { |
| String prefName = cachedMetricNameForAction(action); |
| assert !prefName.isEmpty(); |
| @@ -393,17 +400,17 @@ private static void recordCachedActionMetric( |
| int consecutiveIgnored = prefs.getInt(PREF_CACHED_CONSECUTIVE_IGNORED, 0); |
| switch (action) { |
| - case ContentSuggestionsNotificationAction.CONTENT_SUGGESTIONS_TAP: |
| + case ContentSuggestionsNotificationAction.TAP: |
| consecutiveIgnored = 0; |
| break; |
| - case ContentSuggestionsNotificationAction.CONTENT_SUGGESTIONS_DISMISSAL: |
| - case ContentSuggestionsNotificationAction.CONTENT_SUGGESTIONS_HIDE_DEADLINE: |
| - case ContentSuggestionsNotificationAction.CONTENT_SUGGESTIONS_HIDE_EXPIRY: |
| + case ContentSuggestionsNotificationAction.DISMISSAL: |
| + case ContentSuggestionsNotificationAction.HIDE_DEADLINE: |
| + case ContentSuggestionsNotificationAction.HIDE_EXPIRY: |
| ++consecutiveIgnored; |
| break; |
| - case ContentSuggestionsNotificationAction.CONTENT_SUGGESTIONS_HIDE_FRONTMOST: |
| - case ContentSuggestionsNotificationAction.CONTENT_SUGGESTIONS_HIDE_DISABLED: |
| - case ContentSuggestionsNotificationAction.CONTENT_SUGGESTIONS_HIDE_SHUTDOWN: |
| + case ContentSuggestionsNotificationAction.HIDE_FRONTMOST: |
| + case ContentSuggestionsNotificationAction.HIDE_DISABLED: |
| + case ContentSuggestionsNotificationAction.HIDE_SHUTDOWN: |
| break; // no change |
| } |
| @@ -457,4 +464,8 @@ private static void flushCachedMetrics() { |
| private static native void nativeReceiveFlushedMetrics(int tapCount, int dismissalCount, |
| int hideDeadlineCount, int hideExpiryCount, int hideFrontmostCount, |
| int hideDisabledCount, int hideShutdownCount, int consecutiveIgnored); |
| + private static native void nativeRecordNotificationOptOut( |
| + @ContentSuggestionsNotificationOptOutEnum int reason); |
| + private static native void nativeRecordNotificationAction( |
| + @ContentSuggestionsNotificationActionEnum int action); |
| } |