Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3601)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java

Issue 1049083002: UI fix for fullscreen permission on single website preference. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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();

Powered by Google App Engine
This is Rietveld 408576698