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..c5cec17a566e46ee08b297d0c7b7d2d42281bdc7 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(null); |
+ PreferenceScreen preferenceScreen = getPreferenceScreen(); |
+ preferenceScreen.removePreference( |
+ preferenceScreen.findPreference(PREF_FULLSCREEN_PERMISSION)); |
+ } |
+ |
private void popBackIfNoSettings() { |
if (!hasPermissionsPreferences() && !hasUsagePreferences()) { |
getActivity().finish(); |