diff --git a/build/patches/Timezone-Override.patch b/build/patches/Timezone-Override.patch index 940945d7..8d76125a 100644 --- a/build/patches/Timezone-Override.patch +++ b/build/patches/Timezone-Override.patch @@ -1,6 +1,6 @@ From: uazo -Date: Thu, 3 Sep 2020 06:15:07 +0000 -Subject: rev2 +Date: Thu, 3 Sep 2020 15:53:15 +0000 +Subject: second version --- .../ChromeSiteSettingsHelpClient.java | 20 ++ @@ -13,7 +13,7 @@ Subject: rev2 .../ContentSettingException.java | 7 +- .../ContentSettingsResources.java | 29 +++ .../site_settings/SingleCategorySettings.java | 70 ++++++- - .../site_settings/SingleWebsiteSettings.java | 21 +- + .../site_settings/SingleWebsiteSettings.java | 18 ++ .../site_settings/SiteSettings.java | 2 +- .../site_settings/SiteSettingsCategory.java | 11 +- .../site_settings/SiteSettingsHelpClient.java | 7 + @@ -39,7 +39,7 @@ Subject: rev2 .../content_settings/core/common/pref_names.h | 2 + .../renderer/content_settings_agent_impl.cc | 92 +++++++++ .../renderer/content_settings_agent_impl.h | 4 + - 36 files changed, 724 insertions(+), 14 deletions(-) + 36 files changed, 723 insertions(+), 12 deletions(-) create mode 100755 components/browser_ui/site_settings/android/java/res/layout/time_zone_select_dialog.xml create mode 100755 components/browser_ui/site_settings/android/java/res/layout/timezoneoverride_site_settings_preference.xml create mode 100755 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/TimezoneOverrideSiteSettingsPreference.java @@ -315,7 +315,31 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c sResourceInfo = localMap; } return sResourceInfo; -@@ -420,6 +425,13 @@ public class ContentSettingsResources { +@@ -315,6 +320,23 @@ public class ContentSettingsResources { + } + } + ++ public static int getCategorySummary(int contentType, @ContentSettingValues int value) { ++ if(contentType == ContentSettingsType.TIMEZONE_OVERRIDE) { ++ switch (value) { ++ case ContentSettingValues.ALLOW: ++ return R.string.website_settings_category_timezone_override_allowed; ++ case ContentSettingValues.ASK: ++ return R.string.website_settings_category_timezone_override_custom; ++ case ContentSettingValues.BLOCK: ++ return R.string.website_settings_category_timezone_override_random; ++ default: ++ return 0; ++ } ++ } ++ else ++ return getCategorySummary(value); ++ } ++ + /** + * Returns the string resource id for a content type to show with a permission category. + * @param enabled Whether the content type is enabled. +@@ -418,6 +440,13 @@ public class ContentSettingsResources { return descriptionIDs; } } @@ -329,28 +353,6 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c assert false; return null; -@@ -431,4 +443,21 @@ public class ContentSettingsResources { - public static int getCookieSessionOnlySummary() { - return R.string.website_settings_category_cookie_session_only_title; - } -+ -+ public static int getCategorySummary(int contentType, @ContentSettingValues int value) { -+ if(contentType == ContentSettingsType.TIMEZONE_OVERRIDE) { -+ switch (value) { -+ case ContentSettingValues.ALLOW: -+ return R.string.website_settings_category_timezone_override_allowed; -+ case ContentSettingValues.ASK: -+ return R.string.website_settings_category_timezone_override_custom; -+ case ContentSettingValues.BLOCK: -+ return R.string.website_settings_category_timezone_override_random; -+ default: -+ return 0; -+ } -+ } -+ else -+ return getCategorySummary(value); -+ } - } diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java @@ -426,7 +428,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } else if (FOUR_STATE_COOKIE_TOGGLE_KEY.equals(preference.getKey())) { setCookieSettingsPreference((CookieSettingsState) newValue); getInfoForOrigins(); -@@ -664,6 +683,8 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment +@@ -642,6 +661,8 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment ? R.string.website_settings_add_site_description_cookies_block : R.string.website_settings_add_site_description_cookies_allow; } @@ -435,7 +437,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } assert resource > 0; return getString(resource); -@@ -704,6 +725,13 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment +@@ -682,6 +703,13 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment if (mCategory.showSites(SiteSettingsCategory.Type.COOKIES) && mRequiresFourStateSetting) { setting = cookieSettingsExceptionShouldBlock() ? ContentSettingValues.BLOCK : ContentSettingValues.ALLOW; @@ -449,7 +451,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } else { setting = (WebsitePreferenceBridge.isCategoryEnabled( browserContextHandle, mCategory.getContentSettingsType())) -@@ -761,6 +789,8 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment +@@ -739,6 +767,8 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment && !WebsitePreferenceBridge.isCategoryEnabled( browserContextHandle, ContentSettingsType.AUTOMATIC_DOWNLOADS)) { exception = true; @@ -458,7 +460,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } if (exception) { getPreferenceScreen().addPreference(new AddExceptionPreference(getStyledContext(), -@@ -934,7 +964,14 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment +@@ -912,7 +942,14 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment TriStateSiteSettingsPreference triStateToggle = (TriStateSiteSettingsPreference) getPreferenceScreen().findPreference( TRI_STATE_TOGGLE_KEY); @@ -474,7 +476,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } else if (mRequiresFourStateSetting) { FourStateCookieSettingsPreference fourStateCookieToggle = (FourStateCookieSettingsPreference) getPreferenceScreen().findPreference( -@@ -962,6 +999,9 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment +@@ -940,6 +977,9 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment FourStateCookieSettingsPreference fourStateCookieToggle = (FourStateCookieSettingsPreference) screen.findPreference( FOUR_STATE_COOKIE_TOGGLE_KEY); @@ -484,7 +486,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c Preference thirdPartyCookies = screen.findPreference(THIRD_PARTY_COOKIES_TOGGLE_KEY); Preference notificationsVibrate = screen.findPreference(NOTIFICATIONS_VIBRATE_TOGGLE_KEY); Preference notificationsQuietUi = screen.findPreference(NOTIFICATIONS_QUIET_UI_TOGGLE_KEY); -@@ -979,17 +1019,27 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment +@@ -957,17 +997,27 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment screen.removePreference(binaryToggle); screen.removePreference(triStateToggle); screen.removePreference(fourStateCookieToggle); @@ -513,7 +515,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c configureBinaryToggle(binaryToggle, contentType); } -@@ -1002,6 +1052,9 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment +@@ -980,6 +1030,9 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment ContentSettingsFeatureList.IMPROVED_COOKIE_CONTROLS))) { screen.removePreference(screen.findPreference(COOKIE_INFO_TEXT_KEY)); } @@ -523,7 +525,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c if (hideSecondaryToggles) { screen.removePreference(thirdPartyCookies); -@@ -1132,6 +1185,15 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment +@@ -1103,6 +1156,15 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment triStateToggle.initialize(setting, descriptionIds); } @@ -550,51 +552,34 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c }; private static final int REQUEST_CODE_NOTIFICATION_CHANNEL_SETTINGS = 1; -@@ -750,6 +751,7 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment +@@ -750,6 +751,23 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment setUpPreferenceCommon(preference); ListPreference listPreference = (ListPreference) preference; -+ int index = (value == ContentSettingValues.ALLOW ? 0 : 1); - if (getContentSettingsTypeFromPreferenceKey(preference.getKey()) == ContentSettingsType.COOKIES) { - CharSequence[] keys = new String[3]; - CharSequence[] descriptions = new String[3]; -@@ -764,7 +766,23 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment - getString(ContentSettingsResources.getSiteSummary(ContentSettingValues.SESSION_ONLY)); - listPreference.setEntryValues(keys); - listPreference.setEntries(descriptions); -- } else { -+ index = (value == ContentSettingValues.SESSION_ONLY ? 2 : (value == ContentSettingValues.ALLOW ? 0 : 1)); ++ if (getContentSettingsTypeFromPreferenceKey(preference.getKey()) == ContentSettingsType.TIMEZONE_OVERRIDE) { ++ CharSequence[] keys = new String[3]; ++ keys[0] = ContentSetting.toString(ContentSettingValues.ALLOW); ++ keys[1] = ContentSetting.toString(ContentSettingValues.ASK); ++ keys[2] = ContentSetting.toString(ContentSettingValues.BLOCK); ++ int[] descriptionsId = ContentSettingsResources.getTriStateSettingDescriptionIDs(ContentSettingsType.TIMEZONE_OVERRIDE); ++ CharSequence[] descriptions = new String[3]; ++ descriptions[0] = getString(descriptionsId[0]); ++ descriptions[1] = getString(descriptionsId[1]); ++ descriptions[2] = getString(descriptionsId[2]); ++ listPreference.setEntryValues(keys); ++ listPreference.setEntries(descriptions); ++ int indexSelected = (value == ContentSettingValues.ASK ? 1 : (value == ContentSettingValues.ALLOW ? 0 : 2)); ++ listPreference.setValueIndex(indexSelected); ++ return; + } -+ else if (getContentSettingsTypeFromPreferenceKey(preference.getKey()) == ContentSettingsType.TIMEZONE_OVERRIDE) { -+ CharSequence[] keys = new String[3]; -+ keys[0] = ContentSetting.toString(ContentSettingValues.ALLOW); -+ keys[1] = ContentSetting.toString(ContentSettingValues.ASK); -+ keys[2] = ContentSetting.toString(ContentSettingValues.BLOCK); -+ int[] descriptionsId = ContentSettingsResources.getTriStateSettingDescriptionIDs(ContentSettingsType.TIMEZONE_OVERRIDE); -+ CharSequence[] descriptions = new String[3]; -+ descriptions[0] = getString(descriptionsId[0]); -+ descriptions[1] = getString(descriptionsId[1]); -+ descriptions[2] = getString(descriptionsId[2]); -+ listPreference.setEntryValues(keys); -+ listPreference.setEntries(descriptions); -+ index = (value == ContentSettingValues.ASK ? 1 : (value == ContentSettingValues.ALLOW ? 0 : 2)); -+ } -+ else { - CharSequence[] keys = new String[2]; - CharSequence[] descriptions = new String[2]; - keys[0] = ContentSetting.toString(ContentSettingValues.ALLOW); -@@ -780,7 +798,6 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment - listPreference.setSummary(isEmbargoed ? getString(R.string.automatically_blocked) : "%s"); - // TODO(crbug.com/735110): Figure out if this is the correct thing to do - here we are - // effectively treating non-ALLOW values as BLOCK. -- int index = (value == ContentSettingValues.SESSION_ONLY ? 2 : (value == ContentSettingValues.ALLOW ? 0 : 1)); - listPreference.setValueIndex(index); - } - ++ + CharSequence[] keys = new String[2]; + CharSequence[] descriptions = new String[2]; + keys[0] = ContentSetting.toString(ContentSettingValues.ALLOW); diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettings.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettings.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettings.java -@@ -120,7 +120,7 @@ public class SiteSettings +@@ -111,7 +111,7 @@ public class SiteSettings } else if (Type.SOUND == prefCategory && !checked) { p.setSummary(ContentSettingsResources.getSoundBlockedListSummary()); } else if (requiresTriStateSetting) { @@ -973,7 +958,7 @@ diff --git a/components/browser_ui/strings/android/site_settings.grdp b/componen -@@ -468,6 +471,38 @@ +@@ -462,6 +465,38 @@ Block sites from playing protected content