Chromium Code Reviews| Index: chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java |
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java |
| index dbb3d88e957119edf6c313e1e3bf16c624e7579e..6ce90cae805345c22f92e1cd0d94cff86b8e1e2b 100644 |
| --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java |
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java |
| @@ -32,8 +32,7 @@ import java.util.Set; |
| * Shows a list of HTML5 settings for a single website. |
| */ |
| public class SingleWebsitePreferences extends PreferenceFragment |
| - implements DialogInterface.OnClickListener, OnPreferenceChangeListener, |
| - OnPreferenceClickListener { |
| + implements OnPreferenceChangeListener, OnPreferenceClickListener { |
| // SingleWebsitePreferences expects either EXTRA_SITE (a Website) or |
| // EXTRA_ADDRESS (a WebsiteAddress) to be present (but not both). If |
| // EXTRA_SITE is present, the fragment will display the permissions in that |
| @@ -53,7 +52,7 @@ public class SingleWebsitePreferences extends PreferenceFragment |
| public static final String PREF_RESET_SITE = "reset_site_button"; |
| // Website permissions (if adding new, see hasPermissionsPreferences and resetSite below): |
| public static final String PREF_COOKIES_PERMISSION = "cookies_permission_list"; |
| - public static final String PREF_FULLSCREEN_PERMISSION = "fullscreen_permission_list"; |
| + public static final String PREF_FULLSCREEN_PERMISSION = "reset_fullscreen_permission"; |
| public static final String PREF_JAVASCRIPT_PERMISSION = "javascript_permission_list"; |
| public static final String PREF_LOCATION_ACCESS = "location_access_list"; |
| public static final String PREF_MIDI_SYSEX_PERMISSION = "midi_sysex_permission_list"; |
| @@ -107,6 +106,20 @@ public class SingleWebsitePreferences extends PreferenceFragment |
| } |
| } |
| + private class ClearWebsiteStorageListener implements DialogInterface.OnClickListener { |
| + @Override |
| + public void onClick(DialogInterface dialog, int which) { |
| + clearStoredData(); |
| + } |
| + } |
| + |
| + private class ResetFullscreenPermissionListener implements DialogInterface.OnClickListener { |
| + @Override |
| + public void onClick(DialogInterface dialog, int which) { |
| + resetFullscreenPermission(); |
| + } |
| + } |
| + |
| /** |
| * Creates a Bundle with the correct arguments for opening this fragment for |
| * the website with the given url. |
| @@ -251,7 +264,8 @@ public class SingleWebsitePreferences extends PreferenceFragment |
| preference.setTitle(String.format( |
| context.getString(R.string.origin_settings_storage_usage_brief), |
| Formatter.formatShortFileSize(context, usage))); |
| - ((ClearWebsiteStorage) preference).setConfirmationListener(this); |
| + ((ClearWebsiteStorage) preference).setConfirmationListener( |
| + new ClearWebsiteStorageListener()); |
| } else { |
| getPreferenceScreen().removePreference(preference); |
| } |
| @@ -260,7 +274,7 @@ public class SingleWebsitePreferences extends PreferenceFragment |
| } else if (PREF_COOKIES_PERMISSION.equals(preference.getKey())) { |
| setUpListPreference(preference, mSite.getCookiePermission()); |
| } else if (PREF_FULLSCREEN_PERMISSION.equals(preference.getKey())) { |
| - setUpListPreference(preference, mSite.getFullscreenPermission()); |
| + configureFullscreenPreference(preference, mSite.getFullscreenPermission()); |
| } else if (PREF_JAVASCRIPT_PERMISSION.equals(preference.getKey())) { |
| setUpListPreference(preference, mSite.getJavaScriptPermission()); |
| } else if (PREF_LOCATION_ACCESS.equals(preference.getKey())) { |
| @@ -371,6 +385,19 @@ public class SingleWebsitePreferences extends PreferenceFragment |
| return null; |
| } |
| + private void configureFullscreenPreference(Preference preference, ContentSetting value) { |
| + if (value == null) { |
| + getPreferenceScreen().removePreference(preference); |
| + return; |
| + } |
| + Website.PermissionDataEntry entry = getPermissionDataEntry(preference.getKey()); |
| + preference.setTitle(entry.explanationResourceId); |
| + preference.setIcon(entry.iconResourceId); |
| + preference.setSummary(mListPreferenceSummaries[0]); |
| + ((ResetFullscreenPermission) preference).setConfirmationListener( |
| + new ResetFullscreenPermissionListener()); |
| + } |
| + |
| /** |
| * Based on the type of media allowed or denied for this website, the title and summary |
| * of the CheckBoxPreference will change. If this website has no media related permission, then |
| @@ -411,11 +438,6 @@ public class SingleWebsitePreferences extends PreferenceFragment |
| ContentSetting.BLOCK); |
| } |
| - @Override |
| - public void onClick(DialogInterface dialog, int which) { |
| - clearStoredData(); |
| - } |
| - |
| private void clearStoredData() { |
| mSite.clearAllStoredData( |
| new Website.StoredDataClearedCallback() { |
| @@ -433,6 +455,13 @@ public class SingleWebsitePreferences extends PreferenceFragment |
| }); |
| } |
| + private void resetFullscreenPermission() { |
| + mSite.setFullscreenPermission(ContentSetting.ASK); |
|
Finnur
2015/03/31 12:11:34
This is not correct. You should pass in null here
qinmin
2015/03/31 16:57:48
Done.
|
| + PreferenceScreen preferenceScreen = getPreferenceScreen(); |
|
Finnur
2015/03/31 12:11:34
nit: Use this variable on lines 461 and 462?
qinmin
2015/03/31 16:57:48
Done.
|
| + getPreferenceScreen().removePreference( |
| + getPreferenceScreen().findPreference(PREF_FULLSCREEN_PERMISSION)); |
| + } |
| + |
| private void popBackIfNoSettings() { |
| if (!hasPermissionsPreferences() && !hasUsagePreferences()) { |
| getActivity().finish(); |