Index: chrome/android/java/src/org/chromium/chrome/browser/preferences/ContentSuggestionsPreferences.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/ContentSuggestionsPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/ContentSuggestionsPreferences.java |
index aa07ccc7da530071aff67eeecc81bd42fe6f0e01..4b2acd8c4472b684a7250d082cf8e315f2821f36 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/ContentSuggestionsPreferences.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/ContentSuggestionsPreferences.java |
@@ -12,10 +12,12 @@ |
import android.view.MenuInflater; |
import android.view.MenuItem; |
+import org.chromium.base.metrics.RecordUserAction; |
import org.chromium.chrome.R; |
import org.chromium.chrome.browser.help.HelpAndFeedback; |
import org.chromium.chrome.browser.ntp.snippets.SnippetsBridge; |
import org.chromium.chrome.browser.profiles.Profile; |
+import org.chromium.chrome.browser.suggestions.ContentSuggestionsUma; |
/** |
* Settings fragment that allows the user to configure content suggestions. |
@@ -26,6 +28,7 @@ |
private static final String PREF_CAVEATS = "suggestions_caveats"; |
private static final String PREF_LEARN_MORE = "suggestions_learn_more"; |
+ private boolean mWasEnabledAtCreation; |
private boolean mIsEnabled; |
// Preferences, modified as the state of the screen changes. |
@@ -42,9 +45,9 @@ public void onCreate(Bundle savedInstanceState) { |
setHasOptionsMenu(true); |
finishSwitchInitialisation(); |
- boolean isEnabled = SnippetsBridge.isRemoteSuggestionsServiceEnabled(); |
- mIsEnabled = !isEnabled; // Opposite so that we trigger side effects below. |
- updatePreferences(isEnabled); |
+ mWasEnabledAtCreation = SnippetsBridge.isRemoteSuggestionsServiceEnabled(); |
+ mIsEnabled = !mWasEnabledAtCreation; // Opposite so that we trigger side effects below. |
+ updatePreferences(mWasEnabledAtCreation); |
} |
@Override |
@@ -67,6 +70,21 @@ public boolean onOptionsItemSelected(MenuItem item) { |
return false; |
} |
+ @Override |
+ public void onDestroy() { |
+ super.onDestroy(); |
+ |
+ int statusChange; |
+ if (mWasEnabledAtCreation) { |
+ statusChange = mIsEnabled ? ContentSuggestionsUma.PREFERENCE_TOGGLE_ON_TO_ON |
+ : ContentSuggestionsUma.PREFERENCE_TOGGLE_ON_TO_OFF; |
+ } else { |
+ statusChange = mIsEnabled ? ContentSuggestionsUma.PREFERENCE_TOGGLE_OFF_TO_ON |
+ : ContentSuggestionsUma.PREFERENCE_TOGGLE_OFF_TO_OFF; |
+ } |
+ ContentSuggestionsUma.remoteSuggestionsPreferencesUIAction(statusChange); |
+ } |
+ |
/** |
* Switches preference screens depending on whether the remote suggestions are enabled/disabled. |
* @param isEnabled Indicates whether the remote suggestions are enabled. |
@@ -88,10 +106,12 @@ public void updatePreferences(boolean isEnabled) { |
private void setNotificationsPrefState(boolean visible) { |
if (visible) { |
+ RecordUserAction.record("ContentSuggestions.RemoteSuggestionsPreferenceOn"); |
if (findPreference(PREF_NOTIFICATIONS_SWITCH) != null) return; |
getPreferenceScreen().addPreference(mNotificationsSwitch); |
mNotificationsSwitch.setChecked(true); // TODO(dgn): initialise properly. |
} else { |
+ RecordUserAction.record("ContentSuggestions.RemoteSuggestionsPreferenceOff"); |
getPreferenceScreen().removePreference(mNotificationsSwitch); |
} |
} |