Index: chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleCategoryPreferences.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleCategoryPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleCategoryPreferences.java |
index b12bb5c92b73e05fc001f2623ceed95da392fbd2..71ea4df7deaf6b9bf8ee60a7cec7a391ce3b12a0 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleCategoryPreferences.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleCategoryPreferences.java |
@@ -81,6 +81,7 @@ |
// Keys for individual preferences. |
public static final String READ_WRITE_TOGGLE_KEY = "read_write_toggle"; |
public static final String THIRD_PARTY_COOKIES_TOGGLE_KEY = "third_party_cookies"; |
+ public static final String NOTIFICATIONS_VIBRATE_TOGGLE_KEY = "notifications_vibrate"; |
public static final String EXPLAIN_PROTECTED_MEDIA_KEY = "protected_content_learn_more"; |
private static final String ADD_EXCEPTION_KEY = "add_exception"; |
// Keys for Allowed/Blocked preference groups/headers. |
@@ -418,6 +419,7 @@ public boolean onPreferenceChange(Preference preference, Object newValue) { |
PrefServiceBridge.getInstance().setMicEnabled((boolean) newValue); |
} else if (mCategory.showNotificationsSites()) { |
PrefServiceBridge.getInstance().setNotificationsEnabled((boolean) newValue); |
+ updateNotificationsVibrateCheckBox(); |
} else if (mCategory.showPopupSites()) { |
PrefServiceBridge.getInstance().setAllowPopupsEnabled((boolean) newValue); |
} else if (mCategory.showProtectedMediaSites()) { |
@@ -448,6 +450,8 @@ public boolean onPreferenceChange(Preference preference, Object newValue) { |
getInfoForOrigins(); |
} else if (THIRD_PARTY_COOKIES_TOGGLE_KEY.equals(preference.getKey())) { |
PrefServiceBridge.getInstance().setBlockThirdPartyCookiesEnabled(!((boolean) newValue)); |
+ } else if (NOTIFICATIONS_VIBRATE_TOGGLE_KEY.equals(preference.getKey())) { |
+ PrefServiceBridge.getInstance().setNotificationsVibrateEnabled((boolean) newValue); |
} |
return true; |
} |
@@ -538,6 +542,16 @@ private void configureGlobalToggles() { |
getPreferenceScreen().removePreference(thirdPartyCookies); |
} |
+ // Configure/hide the notifications vibrate toggle, as needed. |
+ Preference notificationsVibrate = |
+ getPreferenceScreen().findPreference(NOTIFICATIONS_VIBRATE_TOGGLE_KEY); |
+ if (mCategory.showNotificationsSites()) { |
+ notificationsVibrate.setOnPreferenceChangeListener(this); |
+ updateNotificationsVibrateCheckBox(); |
+ } else { |
+ getPreferenceScreen().removePreference(notificationsVibrate); |
+ } |
+ |
// Show/hide the link that explains protected media settings, as needed. |
if (!mCategory.showProtectedMediaSites()) { |
getPreferenceScreen().removePreference( |
@@ -652,6 +666,13 @@ public boolean isPreferenceControlledByPolicy(Preference preference) { |
}); |
} |
+ private void updateNotificationsVibrateCheckBox() { |
+ ChromeBaseCheckBoxPreference preference = |
+ (ChromeBaseCheckBoxPreference) getPreferenceScreen().findPreference( |
+ NOTIFICATIONS_VIBRATE_TOGGLE_KEY); |
+ preference.setEnabled(PrefServiceBridge.getInstance().isNotificationsEnabled()); |
+ } |
+ |
private void showManagedToast() { |
if (mCategory.isManagedByCustodian()) { |
ManagedPreferencesUtils.showManagedByParentToast(getActivity()); |