| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 package org.chromium.chrome.browser.preferences.website; | 5 package org.chromium.chrome.browser.preferences.website; |
| 6 | 6 |
| 7 import android.os.Bundle; | 7 import android.os.Bundle; |
| 8 import android.preference.Preference; | 8 import android.preference.Preference; |
| 9 import android.preference.Preference.OnPreferenceChangeListener; | 9 import android.preference.Preference.OnPreferenceChangeListener; |
| 10 import android.preference.Preference.OnPreferenceClickListener; | 10 import android.preference.Preference.OnPreferenceClickListener; |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 74 // Whether the Allowed list should be shown expanded. | 74 // Whether the Allowed list should be shown expanded. |
| 75 private boolean mAllowListExpanded = true; | 75 private boolean mAllowListExpanded = true; |
| 76 // Whether this is the first time this screen is shown. | 76 // Whether this is the first time this screen is shown. |
| 77 private boolean mIsInitialRun = true; | 77 private boolean mIsInitialRun = true; |
| 78 // The number of sites that are on the Allowed list. | 78 // The number of sites that are on the Allowed list. |
| 79 private int mAllowedSiteCount = 0; | 79 private int mAllowedSiteCount = 0; |
| 80 | 80 |
| 81 // Keys for individual preferences. | 81 // Keys for individual preferences. |
| 82 public static final String READ_WRITE_TOGGLE_KEY = "read_write_toggle"; | 82 public static final String READ_WRITE_TOGGLE_KEY = "read_write_toggle"; |
| 83 public static final String THIRD_PARTY_COOKIES_TOGGLE_KEY = "third_party_coo
kies"; | 83 public static final String THIRD_PARTY_COOKIES_TOGGLE_KEY = "third_party_coo
kies"; |
| 84 public static final String NOTIFICATIONS_VIBRATE_TOGGLE_KEY = "notifications
_vibrate"; |
| 84 public static final String EXPLAIN_PROTECTED_MEDIA_KEY = "protected_content_
learn_more"; | 85 public static final String EXPLAIN_PROTECTED_MEDIA_KEY = "protected_content_
learn_more"; |
| 85 private static final String ADD_EXCEPTION_KEY = "add_exception"; | 86 private static final String ADD_EXCEPTION_KEY = "add_exception"; |
| 86 // Keys for Allowed/Blocked preference groups/headers. | 87 // Keys for Allowed/Blocked preference groups/headers. |
| 87 private static final String ALLOWED_GROUP = "allowed_group"; | 88 private static final String ALLOWED_GROUP = "allowed_group"; |
| 88 private static final String BLOCKED_GROUP = "blocked_group"; | 89 private static final String BLOCKED_GROUP = "blocked_group"; |
| 89 | 90 |
| 90 private void getInfoForOrigins() { | 91 private void getInfoForOrigins() { |
| 91 if (!mCategory.enabledInAndroid(getActivity())) { | 92 if (!mCategory.enabledInAndroid(getActivity())) { |
| 92 // No need to fetch any data if we're not going to show it, but we d
o need to update | 93 // No need to fetch any data if we're not going to show it, but we d
o need to update |
| 93 // the global toggle to reflect updates in Android settings (e.g. Lo
cation). | 94 // the global toggle to reflect updates in Android settings (e.g. Lo
cation). |
| (...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 411 } else if (mCategory.showFullscreenSites()) { | 412 } else if (mCategory.showFullscreenSites()) { |
| 412 PrefServiceBridge.getInstance().setFullscreenAllowed((boolean) n
ewValue); | 413 PrefServiceBridge.getInstance().setFullscreenAllowed((boolean) n
ewValue); |
| 413 } else if (mCategory.showGeolocationSites()) { | 414 } else if (mCategory.showGeolocationSites()) { |
| 414 PrefServiceBridge.getInstance().setAllowLocationEnabled((boolean
) newValue); | 415 PrefServiceBridge.getInstance().setAllowLocationEnabled((boolean
) newValue); |
| 415 } else if (mCategory.showJavaScriptSites()) { | 416 } else if (mCategory.showJavaScriptSites()) { |
| 416 PrefServiceBridge.getInstance().setJavaScriptEnabled((boolean) n
ewValue); | 417 PrefServiceBridge.getInstance().setJavaScriptEnabled((boolean) n
ewValue); |
| 417 } else if (mCategory.showMicrophoneSites()) { | 418 } else if (mCategory.showMicrophoneSites()) { |
| 418 PrefServiceBridge.getInstance().setMicEnabled((boolean) newValue
); | 419 PrefServiceBridge.getInstance().setMicEnabled((boolean) newValue
); |
| 419 } else if (mCategory.showNotificationsSites()) { | 420 } else if (mCategory.showNotificationsSites()) { |
| 420 PrefServiceBridge.getInstance().setNotificationsEnabled((boolean
) newValue); | 421 PrefServiceBridge.getInstance().setNotificationsEnabled((boolean
) newValue); |
| 422 updateNotificationsVibrateCheckBox(); |
| 421 } else if (mCategory.showPopupSites()) { | 423 } else if (mCategory.showPopupSites()) { |
| 422 PrefServiceBridge.getInstance().setAllowPopupsEnabled((boolean)
newValue); | 424 PrefServiceBridge.getInstance().setAllowPopupsEnabled((boolean)
newValue); |
| 423 } else if (mCategory.showProtectedMediaSites()) { | 425 } else if (mCategory.showProtectedMediaSites()) { |
| 424 PrefServiceBridge.getInstance().setProtectedMediaIdentifierEnabl
ed( | 426 PrefServiceBridge.getInstance().setProtectedMediaIdentifierEnabl
ed( |
| 425 (boolean) newValue); | 427 (boolean) newValue); |
| 426 } | 428 } |
| 427 | 429 |
| 428 // Categories that support adding exceptions also manage the 'Add si
te' preference. | 430 // Categories that support adding exceptions also manage the 'Add si
te' preference. |
| 429 if (mCategory.showAutoplaySites() || mCategory.showBackgroundSyncSit
es() | 431 if (mCategory.showAutoplaySites() || mCategory.showBackgroundSyncSit
es() |
| 430 || mCategory.showJavaScriptSites()) { | 432 || mCategory.showJavaScriptSites()) { |
| (...skipping 10 matching lines...) Expand all Loading... |
| 441 } | 443 } |
| 442 } | 444 } |
| 443 | 445 |
| 444 ChromeSwitchPreference globalToggle = (ChromeSwitchPreference) | 446 ChromeSwitchPreference globalToggle = (ChromeSwitchPreference) |
| 445 getPreferenceScreen().findPreference(READ_WRITE_TOGGLE_KEY); | 447 getPreferenceScreen().findPreference(READ_WRITE_TOGGLE_KEY); |
| 446 updateAllowedHeader(mAllowedSiteCount, !globalToggle.isChecked()); | 448 updateAllowedHeader(mAllowedSiteCount, !globalToggle.isChecked()); |
| 447 | 449 |
| 448 getInfoForOrigins(); | 450 getInfoForOrigins(); |
| 449 } else if (THIRD_PARTY_COOKIES_TOGGLE_KEY.equals(preference.getKey())) { | 451 } else if (THIRD_PARTY_COOKIES_TOGGLE_KEY.equals(preference.getKey())) { |
| 450 PrefServiceBridge.getInstance().setBlockThirdPartyCookiesEnabled(!((
boolean) newValue)); | 452 PrefServiceBridge.getInstance().setBlockThirdPartyCookiesEnabled(!((
boolean) newValue)); |
| 453 } else if (NOTIFICATIONS_VIBRATE_TOGGLE_KEY.equals(preference.getKey()))
{ |
| 454 PrefServiceBridge.getInstance().setNotificationsVibrateEnabled((bool
ean) newValue); |
| 451 } | 455 } |
| 452 return true; | 456 return true; |
| 453 } | 457 } |
| 454 | 458 |
| 455 private String getAddExceptionDialogMessage() { | 459 private String getAddExceptionDialogMessage() { |
| 456 int resource = 0; | 460 int resource = 0; |
| 457 if (mCategory.showAutoplaySites()) { | 461 if (mCategory.showAutoplaySites()) { |
| 458 resource = R.string.website_settings_add_site_description_autoplay; | 462 resource = R.string.website_settings_add_site_description_autoplay; |
| 459 } else if (mCategory.showBackgroundSyncSites()) { | 463 } else if (mCategory.showBackgroundSyncSites()) { |
| 460 resource = R.string.website_settings_add_site_description_background
_sync; | 464 resource = R.string.website_settings_add_site_description_background
_sync; |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 531 // Configure/hide the third-party cookie toggle, as needed. | 535 // Configure/hide the third-party cookie toggle, as needed. |
| 532 Preference thirdPartyCookies = getPreferenceScreen().findPreference( | 536 Preference thirdPartyCookies = getPreferenceScreen().findPreference( |
| 533 THIRD_PARTY_COOKIES_TOGGLE_KEY); | 537 THIRD_PARTY_COOKIES_TOGGLE_KEY); |
| 534 if (mCategory.showCookiesSites()) { | 538 if (mCategory.showCookiesSites()) { |
| 535 thirdPartyCookies.setOnPreferenceChangeListener(this); | 539 thirdPartyCookies.setOnPreferenceChangeListener(this); |
| 536 updateThirdPartyCookiesCheckBox(); | 540 updateThirdPartyCookiesCheckBox(); |
| 537 } else { | 541 } else { |
| 538 getPreferenceScreen().removePreference(thirdPartyCookies); | 542 getPreferenceScreen().removePreference(thirdPartyCookies); |
| 539 } | 543 } |
| 540 | 544 |
| 545 // Configure/hide the notifications vibrate toggle, as needed. |
| 546 Preference notificationsVibrate = |
| 547 getPreferenceScreen().findPreference(NOTIFICATIONS_VIBRATE_TOGGL
E_KEY); |
| 548 if (mCategory.showNotificationsSites()) { |
| 549 notificationsVibrate.setOnPreferenceChangeListener(this); |
| 550 updateNotificationsVibrateCheckBox(); |
| 551 } else { |
| 552 getPreferenceScreen().removePreference(notificationsVibrate); |
| 553 } |
| 554 |
| 541 // Show/hide the link that explains protected media settings, as needed. | 555 // Show/hide the link that explains protected media settings, as needed. |
| 542 if (!mCategory.showProtectedMediaSites()) { | 556 if (!mCategory.showProtectedMediaSites()) { |
| 543 getPreferenceScreen().removePreference( | 557 getPreferenceScreen().removePreference( |
| 544 getPreferenceScreen().findPreference(EXPLAIN_PROTECTED_MEDIA
_KEY)); | 558 getPreferenceScreen().findPreference(EXPLAIN_PROTECTED_MEDIA
_KEY)); |
| 545 } | 559 } |
| 546 | 560 |
| 547 if (mCategory.showAllSites() | 561 if (mCategory.showAllSites() |
| 548 || mCategory.showStorageSites()) { | 562 || mCategory.showStorageSites()) { |
| 549 getPreferenceScreen().removePreference(globalToggle); | 563 getPreferenceScreen().removePreference(globalToggle); |
| 550 getPreferenceScreen().removePreference( | 564 getPreferenceScreen().removePreference( |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 645 getPreferenceScreen().findPreference(THIRD_PARTY_COOKIES_TOGGLE_
KEY); | 659 getPreferenceScreen().findPreference(THIRD_PARTY_COOKIES_TOGGLE_
KEY); |
| 646 thirdPartyCookiesPref.setEnabled(PrefServiceBridge.getInstance().isAccep
tCookiesEnabled()); | 660 thirdPartyCookiesPref.setEnabled(PrefServiceBridge.getInstance().isAccep
tCookiesEnabled()); |
| 647 thirdPartyCookiesPref.setManagedPreferenceDelegate(new ManagedPreference
Delegate() { | 661 thirdPartyCookiesPref.setManagedPreferenceDelegate(new ManagedPreference
Delegate() { |
| 648 @Override | 662 @Override |
| 649 public boolean isPreferenceControlledByPolicy(Preference preference)
{ | 663 public boolean isPreferenceControlledByPolicy(Preference preference)
{ |
| 650 return PrefServiceBridge.getInstance().isBlockThirdPartyCookiesM
anaged(); | 664 return PrefServiceBridge.getInstance().isBlockThirdPartyCookiesM
anaged(); |
| 651 } | 665 } |
| 652 }); | 666 }); |
| 653 } | 667 } |
| 654 | 668 |
| 669 private void updateNotificationsVibrateCheckBox() { |
| 670 ChromeBaseCheckBoxPreference preference = |
| 671 (ChromeBaseCheckBoxPreference) getPreferenceScreen().findPrefere
nce( |
| 672 NOTIFICATIONS_VIBRATE_TOGGLE_KEY); |
| 673 preference.setEnabled(PrefServiceBridge.getInstance().isNotificationsEna
bled()); |
| 674 } |
| 675 |
| 655 private void showManagedToast() { | 676 private void showManagedToast() { |
| 656 if (mCategory.isManagedByCustodian()) { | 677 if (mCategory.isManagedByCustodian()) { |
| 657 ManagedPreferencesUtils.showManagedByParentToast(getActivity()); | 678 ManagedPreferencesUtils.showManagedByParentToast(getActivity()); |
| 658 } else { | 679 } else { |
| 659 ManagedPreferencesUtils.showManagedByAdministratorToast(getActivity(
)); | 680 ManagedPreferencesUtils.showManagedByAdministratorToast(getActivity(
)); |
| 660 } | 681 } |
| 661 } | 682 } |
| 662 | 683 |
| 663 // ProtectedContentResetCredentialConfirmDialogFragment.Listener: | 684 // ProtectedContentResetCredentialConfirmDialogFragment.Listener: |
| 664 @Override | 685 @Override |
| 665 public void resetDeviceCredential() { | 686 public void resetDeviceCredential() { |
| 666 MediaDrmCredentialManager.resetCredentials(new MediaDrmCredentialManager
Callback() { | 687 MediaDrmCredentialManager.resetCredentials(new MediaDrmCredentialManager
Callback() { |
| 667 @Override | 688 @Override |
| 668 public void onCredentialResetFinished(boolean succeeded) { | 689 public void onCredentialResetFinished(boolean succeeded) { |
| 669 if (succeeded) return; | 690 if (succeeded) return; |
| 670 String message = getString(R.string.protected_content_reset_fail
ed); | 691 String message = getString(R.string.protected_content_reset_fail
ed); |
| 671 Toast.makeText(getActivity(), message, Toast.LENGTH_SHORT).show(
); | 692 Toast.makeText(getActivity(), message, Toast.LENGTH_SHORT).show(
); |
| 672 } | 693 } |
| 673 }); | 694 }); |
| 674 } | 695 } |
| 675 } | 696 } |
| OLD | NEW |