Improve the Night Theme blue button color. https://redmine.stoutner.com/issues/879
authorSoren Stoutner <soren@stoutner.com>
Sat, 23 Jul 2022 23:25:00 +0000 (16:25 -0700)
committerSoren Stoutner <soren@stoutner.com>
Sat, 23 Jul 2022 23:25:00 +0000 (16:25 -0700)
27 files changed:
app/src/main/assets/ru/guide_local_storage.html
app/src/main/assets/ru/guide_tracking_ids.html
app/src/main/java/com/stoutner/privacybrowser/fragments/DomainSettingsFragment.java
app/src/main/res/color/button_background_color_selector_day.xml [deleted file]
app/src/main/res/color/button_background_color_selector_night.xml [deleted file]
app/src/main/res/color/button_background_selector.xml [new file with mode: 0644]
app/src/main/res/color/button_text_color_selector_day.xml [deleted file]
app/src/main/res/color/button_text_color_selector_night.xml [deleted file]
app/src/main/res/color/button_text_selector.xml [new file with mode: 0644]
app/src/main/res/color/checked_text_color_selector.xml [deleted file]
app/src/main/res/color/checked_text_selector.xml [new file with mode: 0644]
app/src/main/res/color/yellow_icon_selector.xml [new file with mode: 0644]
app/src/main/res/layout/appbar_spinner_dropdown_item.xml
app/src/main/res/layout/databaseview_spinner_dropdown_items.xml
app/src/main/res/layout/domain_settings_fragment.xml
app/src/main/res/layout/import_export_bottom_appbar.xml
app/src/main/res/layout/import_export_top_appbar.xml
app/src/main/res/layout/requests_appbar_spinner_dropdown_item.xml
app/src/main/res/layout/spinner_dropdown_items.xml
app/src/main/res/values-night-v27/styles.xml
app/src/main/res/values-night/colors.xml
app/src/main/res/values-night/styles.xml
app/src/main/res/values-ru/strings.xml
app/src/main/res/values-v27/styles.xml
app/src/main/res/values/attrs.xml
app/src/main/res/values/colors.xml
app/src/main/res/values/styles.xml

index aedd1e53cfcf3f8ded190d3e1355428747fd8ce2..118812032453fcd39ee99b12d1828fd929a87519 100644 (file)
         <p>Почти все сайты с логинами требуют, чтобы для авторизации пользователя были включены cookie.
             Именно так они удостоверяются, что это все еще вы, когда переходите со страницы на страницу на сайте, и, на мой взгляд, это единственное законное использование файлов cookie.</p>
 
-        <p>Android's System WebView treats cookies as an app level setting, meaning that cookies are either on or off for all tabs in Privacy Browser.
-            The result is that the cookies setting for whatever tab is currently displayed controls the cookies setting for all the background tabs as well.
-            If you have a tab in that background that has cookies enabled so that you can be logged into a website, and switch to a tab that doesn't have cookies enabled, it disabled cookies for all the tabs.
-            If the background tab makes a request, for example, to see if there is updated information, that request will be sent without cookies, which will cause the website to log you out.
-            This is a limitation that will be removed with the release of <a href="https://www.stoutner.com/category/privacy-browser-android-roadmap/">Privacy WebView</a> in the 4.x series.</p>
+        <p>Android System WebView рассматривает cookie как настройку на уровне приложения, что означает, что cookie либо включены, либо выключены для всех вкладок в Privacy Browser.
+            В результате настройка cookie для той вкладки, которая отображается в данный момент, управляет настройками cookies для всех фоновых вкладок.
+            Если у вас есть фоновая вкладка, на которой включены cookie, чтобы вы могли войти на сайт, и вы переключаетесь на вкладку, на которой cookie не включены,
+            это приведет к отключению cookies для всех вкладок.
+            Если фоновая вкладка делает запрос, например, чтобы узнать, есть ли обновленная информация, этот запрос будет отправлен без файлов cookie, что приведет к разлогиниванию.
+            Это ограничение будет устранено с выходом <a href="https://www.stoutner.com/category/privacy-browser-android-roadmap/">Privacy WebView</a> в версии 4.x.</p>
 
         <p>Если cookie включены и при этом JavaScript отключен, то значок конфиденциальности будет желтого цвета <img class="inline" src="../shared_images/warning.svg"> в качестве предупреждения.</p>
 
             Таким образом, элементы управления данными формы больше не отображаются на новых Android-устройствах.</p>
 
 
-        <h3><svg class="header"><use href="../shared_images/delete_forever.svg#icon"/></svg> Clear and Exit</h3>
+        <h3><svg class="header"><use href="../shared_images/delete_forever.svg#icon"/></svg> Очистить и выйти</h3>
 
-        <p>Clear and Exit runs every time the last tab is closed or Clear and Exit is selected from the navigation menu.
-            By default it clears the cookies, DOM storage, form data, the logcat, and the WebView cache. Then it manually deletes the entire <code>app_webview</code> and <code>cache</code> directories.
-            The behavior of Clear and Exit can be configured in the settings.</p>
+        <p>Функция Очистить и выйти запускается каждый раз при закрытии последней вкладки или выборе Очистить и выйти из меню навигации.
+            По умолчанию очищаются cookie, DOM-хранилище, данные формы, logcat и кэш WebView. Затем происходит ручное удаление всех каталогов <code>app_webview</code> и <code>cache</code>.
+            Поведение опции Очистить и выйти можно настроить в настройках.</p>
     </body>
 </html>
\ No newline at end of file
index da5258222fbacf6c09824fb66a802c7e334d5206..2b44c55d1714334705894a7bfe2a100977571e6b 100644 (file)
@@ -38,8 +38,8 @@
 
         <h3><svg class="header"><use href="../shared_images/link_off.svg#icon"/></svg> Модификация URL</h3>
 
-        <p>Privacy Browser removes tracking IDs and AMP (<a href="https://en.wikipedia.org/wiki/Accelerated_Mobile_Pages">Accelerated Mobile Pages</a>) redirects from URL queries.
-            There is a blog post that is updated with the <a href="https://www.stoutner.com/url-modification/">current list</a> of modifications.
-            URL modification can be turned off in the settings if it is causing issues.</p>
+        <p>Privacy Browser удаляет идентификаторы отслеживания и перенаправления AMP (<a href="https://en.wikipedia.org/wiki/Accelerated_Mobile_Pages">Accelerated Mobile Pages</a>) из URL.
+            В блоге опубликован обновляемый <a href="https://www.stoutner.com/url-modification/">актуальный список</a> модификаций.
+            Модификация URL может быть отключена в настройках, если она вызывает проблемы.</p>
     </body>
 </html>
\ No newline at end of file
index 365a4f799e17c4f41b74a444b6357444f26ed4ee..89f8513ed42072a13cd08a76906820af4894a9d9 100644 (file)
@@ -363,82 +363,11 @@ public class DomainSettingsFragment extends Fragment {
             }
         });
 
-        // Set the JavaScript switch status.
-        if (javaScriptInt == 1) {  // JavaScript is enabled.
-            javaScriptSwitch.setChecked(true);
-            javaScriptImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.javascript_enabled, null));
-        } else {  // JavaScript is disabled.
-            javaScriptSwitch.setChecked(false);
-            javaScriptImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.privacy_mode, null));
-        }
-
-        // Set the cookies switch status.  Once the minimum API >= 21 a selector can be used as the tint mode instead of specifying different icons.
-        // Doing this makes no sense until it can also be done with the preferences.
-        if (cookiesInt == 1) {  // Cookies are enabled.
-            // Turn the switch on.
-            cookiesSwitch.setChecked(true);
-
-            // Set the icon.
-            cookiesImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.cookies_enabled, null));
-        } else {  // Cookies are disabled.
-            // Turn the switch off
-            cookiesSwitch.setChecked(false);
-
-            // Set the icon.
-            cookiesImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.cookies_disabled, null));
-        }
-
-        // Only enable DOM storage if JavaScript is enabled.
-        if (javaScriptInt == 1) {  // JavaScript is enabled.
-            // Enable the DOM storage switch.
-            domStorageSwitch.setEnabled(true);
-
-            // Set the DOM storage status.  Once the minimum API >= 21 a selector can be used as the tint mode instead of specifying different icons.
-            // Doing this makes no sense until it can also be done with the preferences.
-            if (domStorageInt == 1) {  // Both JavaScript and DOM storage are enabled.
-                domStorageSwitch.setChecked(true);
-                domStorageImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.dom_storage_enabled, null));
-            } else {  // JavaScript is enabled but DOM storage is disabled.
-                // Set the DOM storage switch to off.
-                domStorageSwitch.setChecked(false);
-
-                // Set the icon.
-                domStorageImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.dom_storage_disabled, null));
-            }
-        } else {  // JavaScript is disabled.
-            // Disable the DOM storage switch.
-            domStorageSwitch.setEnabled(false);
-
-            // Set the checked status of DOM storage.
-            domStorageSwitch.setChecked(domStorageInt == 1);
-
-            // Set the icon.
-            domStorageImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.dom_storage_ghosted, null));
-        }
-
-        // Set the form data visibility.  Form data can be removed once the minimum API >= 26.
-        if (Build.VERSION.SDK_INT >= 26) {  // Form data no longer applies to newer versions of Android.
-            // Hide the form data image view and switch.
-            formDataImageView.setVisibility(View.GONE);
-            formDataSwitch.setVisibility(View.GONE);
-        } else {  // Form data should be displayed because this is an older version of Android.
-            if (formDataInt == 1) {  // Form data is on.
-                // Turn the form data switch on.
-                formDataSwitch.setChecked(true);
-
-                // Set the form data icon.
-                formDataImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.form_data_enabled, null));
-            } else {  // Form data is off.
-                // Turn the form data switch to off.
-                formDataSwitch.setChecked(false);
-
-                // Set the icon.  Once the minimum API >= 21 a selector can be used as the tint mode instead of specifying different icons.
-                // Doing this makes no sense until it can also be done with the preferences.
-                formDataImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.form_data_disabled, null));
-            }
-        }
-
         // Set the switch positions.
+        javaScriptSwitch.setChecked(javaScriptInt == 1);
+        cookiesSwitch.setChecked(cookiesInt == 1);
+        domStorageSwitch.setChecked(domStorageInt == 1);
+        formDataSwitch.setChecked(formDataInt == 1);  // Form data can be removed once the minimum API >= 26.
         easyListSwitch.setChecked(easyListInt == 1);
         easyPrivacySwitch.setChecked(easyPrivacyInt == 1);
         fanboysAnnoyanceListSwitch.setChecked(fanboysAnnoyanceListInt == 1);
@@ -446,8 +375,13 @@ public class DomainSettingsFragment extends Fragment {
         ultraListSwitch.setChecked(ultraListInt == 1);
         ultraPrivacySwitch.setChecked(ultraPrivacyInt == 1);
         blockAllThirdPartyRequestsSwitch.setChecked(blockAllThirdPartyRequestsInt == 1);
+        pinnedSslCertificateSwitch.setChecked(pinnedSslCertificateInt == 1);
+        pinnedIpAddressesSwitch.setChecked(pinnedIpAddressesInt == 1);
 
         // Set the switch icon colors.
+        cookiesImageView.setSelected(cookiesInt == 1);
+        domStorageImageView.setSelected(domStorageInt == 1);
+        formDataImageView.setSelected(formDataInt == 1);  // Form data can be removed once the minimum API >= 26.
         easyListImageView.setSelected(easyListInt == 1);
         easyPrivacyImageView.setSelected(easyPrivacyInt == 1);
         fanboysAnnoyanceListImageView.setSelected(fanboysAnnoyanceListInt == 1);
@@ -455,6 +389,27 @@ public class DomainSettingsFragment extends Fragment {
         ultraListImageView.setSelected(ultraListInt == 1);
         ultraPrivacyImageView.setSelected(ultraPrivacyInt == 1);
         blockAllThirdPartyRequestsImageView.setSelected(blockAllThirdPartyRequestsInt == 1);
+        pinnedSslCertificateImageView.setSelected(pinnedSslCertificateInt == 1);
+        pinnedIpAddressesImageView.setSelected(pinnedIpAddressesInt == 1);
+
+        // Set the JavaScript icon.
+        if (javaScriptInt == 1)
+            javaScriptImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.javascript_enabled, null));
+        else
+            javaScriptImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.privacy_mode, null));
+
+        // Set the DOM storage switch status based on the JavaScript status.
+        domStorageSwitch.setEnabled(javaScriptInt == 1);
+
+        // Set the DOM storage icon ghosted status based on the JavaScript status.
+        domStorageImageView.setEnabled(javaScriptInt == 1);
+
+        // Set the form data visibility.  Form data can be removed once the minimum API >= 26.
+        if (Build.VERSION.SDK_INT >= 26) {
+            // Hide the form data image view and switch.
+            formDataImageView.setVisibility(View.GONE);
+            formDataSwitch.setVisibility(View.GONE);
+        }
 
         // Set Fanboy's Social Blocking List switch status based on the Annoyance List status.
         fanboysSocialBlockingListSwitch.setEnabled(fanboysAnnoyanceListInt == 0);
@@ -829,14 +784,6 @@ public class DomainSettingsFragment extends Fragment {
             displayWebpageImagesSpinner.performClick();
         });
 
-        // Set the switch positions.
-        pinnedSslCertificateSwitch.setChecked(pinnedSslCertificateInt == 1);
-        pinnedIpAddressesSwitch.setChecked(pinnedIpAddressesInt == 1);
-
-        // Set the switch icon colors.
-        pinnedSslCertificateImageView.setSelected(pinnedSslCertificateInt == 1);
-        pinnedIpAddressesImageView.setSelected(pinnedIpAddressesInt == 1);
-
         // Store the current date.
         Date currentDate = Calendar.getInstance().getTime();
 
@@ -1051,63 +998,36 @@ public class DomainSettingsFragment extends Fragment {
 
         // Set the JavaScript switch listener.
         javaScriptSwitch.setOnCheckedChangeListener((CompoundButton buttonView, boolean isChecked) -> {
-            if (isChecked) {  // JavaScript is enabled.
-                // Update the JavaScript icon.
+            // Update the JavaScript icon.
+            if (isChecked)
                 javaScriptImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.javascript_enabled, null));
-
-                // Enable the DOM storage `Switch`.
-                domStorageSwitch.setEnabled(true);
-
-                // Update the DOM storage icon.
-                if (domStorageSwitch.isChecked()) {  // DOM storage is enabled.
-                    domStorageImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.dom_storage_enabled, null));
-                } else {  // DOM storage is disabled.
-                    // Set the icon.
-                    domStorageImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.dom_storage_disabled, null));
-                }
-            } else {  // JavaScript is disabled.
-                // Update the JavaScript icon.
+            else
                 javaScriptImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.privacy_mode, null));
 
-                // Disable the DOM storage switch.
-                domStorageSwitch.setEnabled(false);
+            // Set the DOM storage switch status.
+            domStorageSwitch.setEnabled(isChecked);
 
-                // Set the DOM storage icon.
-                domStorageImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.dom_storage_ghosted, null));
-            }
+            // Set the DOM storage ghosted icon status.
+            domStorageImageView.setEnabled(isChecked);
         });
 
         // Set the cookies switch listener.
         cookiesSwitch.setOnCheckedChangeListener((CompoundButton buttonView, boolean isChecked) -> {
-            // Update the cookies icon.
-            if (isChecked) {
-                cookiesImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.cookies_enabled, null));
-            } else {
-                cookiesImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.cookies_disabled, null));
-            }
+            // Update the icon color.
+            cookiesImageView.setSelected(isChecked);
         });
 
         // Set the DOM Storage switch listener.
         domStorageSwitch.setOnCheckedChangeListener((CompoundButton buttonView, boolean isChecked) -> {
-            // Update the icon.
-            if (isChecked) {
-                domStorageImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.dom_storage_enabled, null));
-            } else {
-                // Set the icon.
-                domStorageImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.dom_storage_disabled, null));
-            }
+            // Update the icon color.
+            domStorageImageView.setSelected(isChecked);
         });
 
         // Set the form data switch listener.  It can be removed once the minimum API >= 26.
         if (Build.VERSION.SDK_INT < 26) {
             formDataSwitch.setOnCheckedChangeListener((CompoundButton buttonView, boolean isChecked) -> {
-                // Update the icon.
-                if (isChecked) {
-                    formDataImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.form_data_enabled, null));
-                } else {
-                    // Set the icon.
-                    formDataImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.form_data_disabled, null));
-                }
+                // Update the icon color.
+                formDataImageView.setSelected(isChecked);
             });
         }
 
diff --git a/app/src/main/res/color/button_background_color_selector_day.xml b/app/src/main/res/color/button_background_color_selector_day.xml
deleted file mode 100644 (file)
index 5311c8e..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-  Copyright © 2017-2018,2020,2022 Soren Stoutner <soren@stoutner.com>.
-
-  This file is part of Privacy Browser Android <https://www.stoutner.com/privacy-browser-android>.
-
-  Privacy Browser Android is free software: you can redistribute it and/or modify
-  it under the terms of the GNU General Public License as published by
-  the Free Software Foundation, either version 3 of the License, or
-  (at your option) any later version.
-
-  Privacy Browser Android is distributed in the hope that it will be useful,
-  but WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  GNU General Public License for more details.
-
-  You should have received a copy of the GNU General Public License
-  along with Privacy Browser Android.  If not, see <http://www.gnu.org/licenses/>. -->
-
-<!-- Set an background color for a button based on the state. -->
-<selector xmlns:android="http://schemas.android.com/apk/res/android" >
-    <item android:state_enabled="true" android:color="@color/blue_600" />
-    <item android:color="@color/gray_300" />
-</selector>
\ No newline at end of file
diff --git a/app/src/main/res/color/button_background_color_selector_night.xml b/app/src/main/res/color/button_background_color_selector_night.xml
deleted file mode 100644 (file)
index a7618b2..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-  Copyright © 2017-2018,2020,2022 Soren Stoutner <soren@stoutner.com>.
-
-  This file is part of Privacy Browser Android <https://www.stoutner.com/privacy-browser-android>.
-
-  Privacy Browser Android is free software: you can redistribute it and/or modify
-  it under the terms of the GNU General Public License as published by
-  the Free Software Foundation, either version 3 of the License, or
-  (at your option) any later version.
-
-  Privacy Browser Android is distributed in the hope that it will be useful,
-  but WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  GNU General Public License for more details.
-
-  You should have received a copy of the GNU General Public License
-  along with Privacy Browser Android.  If not, see <http://www.gnu.org/licenses/>. -->
-
-<!-- Set a background color for a button based on the state. -->
-<selector xmlns:android="http://schemas.android.com/apk/res/android" >
-    <item android:state_enabled="true" android:color="@color/blue_600" />
-    <item android:color="@color/gray_750" />
-</selector>
\ No newline at end of file
diff --git a/app/src/main/res/color/button_background_selector.xml b/app/src/main/res/color/button_background_selector.xml
new file mode 100644 (file)
index 0000000..a21d272
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+  Copyright © 2017-2018,2020,2022 Soren Stoutner <soren@stoutner.com>.
+
+  This file is part of Privacy Browser Android <https://www.stoutner.com/privacy-browser-android>.
+
+  Privacy Browser Android is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+
+  Privacy Browser Android is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with Privacy Browser Android.  If not, see <http://www.gnu.org/licenses/>. -->
+
+<!-- Set an background color for a button based on the state. -->
+<selector xmlns:android="http://schemas.android.com/apk/res/android" >
+    <item android:state_enabled="true" android:color="@color/blue_button" />
+    <item android:state_enabled="false" android:color="@color/disabled_button" />
+</selector>
\ No newline at end of file
diff --git a/app/src/main/res/color/button_text_color_selector_day.xml b/app/src/main/res/color/button_text_color_selector_day.xml
deleted file mode 100644 (file)
index d596072..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-  Copyright © 2017-2018,2020,2022 Soren Stoutner <soren@stoutner.com>.
-
-  This file is part of Privacy Browser Android <https://www.stoutner.com/privacy-browser-android>.
-
-  Privacy Browser Android is free software: you can redistribute it and/or modify
-  it under the terms of the GNU General Public License as published by
-  the Free Software Foundation, either version 3 of the License, or
-  (at your option) any later version.
-
-  Privacy Browser Android is distributed in the hope that it will be useful,
-  but WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  GNU General Public License for more details.
-
-  You should have received a copy of the GNU General Public License
-  along with Privacy Browser Android.  If not, see <http://www.gnu.org/licenses/>. -->
-
-<!-- Set the text color for a button based on the state. -->
-<selector xmlns:android="http://schemas.android.com/apk/res/android" >
-    <item android:state_enabled="true" android:color="@color/white" />
-    <item android:color="@color/gray_400" />
-</selector>
\ No newline at end of file
diff --git a/app/src/main/res/color/button_text_color_selector_night.xml b/app/src/main/res/color/button_text_color_selector_night.xml
deleted file mode 100644 (file)
index a9e8d56..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-  Copyright © 2017-2018,2020,2022 Soren Stoutner <soren@stoutner.com>.
-
-  This file is part of Privacy Browser Android <https://www.stoutner.com/privacy-browser-android>.
-
-  Privacy Browser Android is free software: you can redistribute it and/or modify
-  it under the terms of the GNU General Public License as published by
-  the Free Software Foundation, either version 3 of the License, or
-  (at your option) any later version.
-
-  Privacy Browser Android is distributed in the hope that it will be useful,
-  but WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  GNU General Public License for more details.
-
-  You should have received a copy of the GNU General Public License
-  along with Privacy Browser Android.  If not, see <http://www.gnu.org/licenses/>. -->
-
-<!-- Set the text color for a button based on the state. -->
-<selector xmlns:android="http://schemas.android.com/apk/res/android" >
-    <item android:state_enabled="true" android:color="?android:attr/textColorPrimary" />
-    <item android:color="@color/gray_500" />
-</selector>
\ No newline at end of file
diff --git a/app/src/main/res/color/button_text_selector.xml b/app/src/main/res/color/button_text_selector.xml
new file mode 100644 (file)
index 0000000..ed2ecac
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+  Copyright © 2017-2018,2020,2022 Soren Stoutner <soren@stoutner.com>.
+
+  This file is part of Privacy Browser Android <https://www.stoutner.com/privacy-browser-android>.
+
+  Privacy Browser Android is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+
+  Privacy Browser Android is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with Privacy Browser Android.  If not, see <http://www.gnu.org/licenses/>. -->
+
+<!-- Set the text color for a button based on the state. -->
+<selector xmlns:android="http://schemas.android.com/apk/res/android" >
+    <item android:state_enabled="true" android:color="@color/button_text" />
+    <item android:state_enabled="false" android:color="@color/disabled_button_text" />
+</selector>
\ No newline at end of file
diff --git a/app/src/main/res/color/checked_text_color_selector.xml b/app/src/main/res/color/checked_text_color_selector.xml
deleted file mode 100644 (file)
index 6175d5c..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-  Copyright © 2017-2018,2020,2022 Soren Stoutner <soren@stoutner.com>.
-
-  This file is part of Privacy Browser Android <https://www.stoutner.com/privacy-browser-android>.
-
-  Privacy Browser Android is free software: you can redistribute it and/or modify
-  it under the terms of the GNU General Public License as published by
-  the Free Software Foundation, either version 3 of the License, or
-  (at your option) any later version.
-
-  Privacy Browser Android is distributed in the hope that it will be useful,
-  but WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  GNU General Public License for more details.
-
-  You should have received a copy of the GNU General Public License
-  along with Privacy Browser Android.  If not, see <http://www.gnu.org/licenses/>. -->
-
-<!-- Sets the color of non-checked items to be gray. -->
-<selector xmlns:android="http://schemas.android.com/apk/res/android" >
-    <item android:state_checked="true" android:color="?android:attr/textColorPrimary" />
-    <item android:color="@color/gray_500" />
-</selector>
\ No newline at end of file
diff --git a/app/src/main/res/color/checked_text_selector.xml b/app/src/main/res/color/checked_text_selector.xml
new file mode 100644 (file)
index 0000000..c76e723
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+  Copyright © 2017-2018,2020,2022 Soren Stoutner <soren@stoutner.com>.
+
+  This file is part of Privacy Browser Android <https://www.stoutner.com/privacy-browser-android>.
+
+  Privacy Browser Android is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+
+  Privacy Browser Android is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with Privacy Browser Android.  If not, see <http://www.gnu.org/licenses/>. -->
+
+<!-- Sets the color of non-checked items to be gray. -->
+<selector xmlns:android="http://schemas.android.com/apk/res/android" >
+    <item android:state_checked="true" android:color="?android:attr/textColorPrimary" />
+    <item android:state_checked="false" android:color="@color/gray_500" />
+</selector>
\ No newline at end of file
diff --git a/app/src/main/res/color/yellow_icon_selector.xml b/app/src/main/res/color/yellow_icon_selector.xml
new file mode 100644 (file)
index 0000000..4b8a91d
--- /dev/null
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+  Copyright © 2022 Soren Stoutner <soren@stoutner.com>.
+
+  This file is part of Privacy Browser Android <https://www.stoutner.com/privacy-browser-android>.
+
+  Privacy Browser Android is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+
+  Privacy Browser Android is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with Privacy Browser Android.  If not, see <http://www.gnu.org/licenses/>. -->
+
+<!-- Set the icon tint color based on the state. -->
+<selector xmlns:android="http://schemas.android.com/apk/res/android" >
+    <item android:state_enabled="false" android:color="@color/ghosted_icon" />
+    <item android:state_selected="true" android:color="@color/yellow_900" />
+    <item android:state_selected="false" android:color="@color/disabled_icon" />
+</selector>
\ No newline at end of file
index e677292438df8730bcf9099c46700caff532f127..f282449b8d676b86bf82caed603f05259f900bb9 100644 (file)
@@ -45,5 +45,5 @@
         android:paddingTop="8dp"
         android:paddingBottom="8dp"
         android:textSize="18sp"
-        android:textColor="@color/checked_text_color_selector" />
+        android:textColor="@color/checked_text_selector" />
 </com.stoutner.privacybrowser.views.CheckedLinearLayout>
\ No newline at end of file
index fa3196f6e5f2710ce6e85ebc2894abba8333a616..87c16a5206a70179d2df6d791b945059221774df 100644 (file)
@@ -45,5 +45,5 @@
         android:paddingTop="8dp"
         android:paddingBottom="8dp"
         android:textSize="18sp"
-        android:textColor="@color/checked_text_color_selector" />
+        android:textColor="@color/checked_text_selector" />
 </com.stoutner.privacybrowser.views.CheckedLinearLayout>
\ No newline at end of file
index c6be32b203ad8e9be2791dab117983c23be903e4..b741aed00cc72bd9900e8856d8849009eec989a2 100644 (file)
                 android:layout_marginTop="1dp"
                 android:layout_marginEnd="10dp"
                 android:layout_gravity="center_vertical"
+                android:src="@drawable/cookies_enabled"
+                app:tint="@color/yellow_icon_selector"
                 tools:ignore="contentDescription" />
 
             <androidx.appcompat.widget.SwitchCompat
                 android:layout_marginTop="1dp"
                 android:layout_marginEnd="10dp"
                 android:layout_gravity="center_vertical"
+                android:src="@drawable/dom_storage_enabled"
+                app:tint="@color/yellow_icon_selector"
                 tools:ignore="contentDescription" />
 
             <androidx.appcompat.widget.SwitchCompat
                 android:layout_marginTop="1dp"
                 android:layout_marginEnd="10dp"
                 android:layout_gravity="center_vertical"
+                android:src="@drawable/form_data_enabled"
+                app:tint="@color/yellow_icon_selector"
                 tools:ignore="contentDescription" />
 
             <androidx.appcompat.widget.SwitchCompat
index 6523fb1f4c24b4f3edb55913940a91e57d38b605..2c5759c9ee757cdacaa32ae89ec7a0f1ed7aab9e 100644 (file)
                             android:text="@string/import_button"
                             android:textSize="18sp"
                             android:onClick="importExport"
-                            app:backgroundTint="?attr/buttonBackgroundColorSelector"
-                            android:textColor="?attr/buttonTextColorSelector" />
+                            app:backgroundTint="@color/button_background_selector"
+                            android:textColor="@color/button_text_selector" />
                     </LinearLayout>
                 </androidx.cardview.widget.CardView>
             </LinearLayout>
index a970ca798916cd5fda9f3842b3f3b99669b7381f..3140bd1dbcc89cf3730450daaafc626a741940cc 100644 (file)
                             android:text="@string/import_button"
                             android:textSize="18sp"
                             android:onClick="importExport"
-                            app:backgroundTint="?attr/buttonBackgroundColorSelector"
-                            android:textColor="?attr/buttonTextColorSelector" />
+                            app:backgroundTint="@color/button_background_selector"
+                            android:textColor="@color/button_text_selector" />
                     </LinearLayout>
                 </androidx.cardview.widget.CardView>
             </LinearLayout>
index df16ebed82eea5698f29ef07b1c81e9a9bb6778f..bb3421fa4dfd55d74edbdd12eb8cb8cdd467d94f 100644 (file)
@@ -31,4 +31,4 @@
     android:paddingTop="8dp"
     android:paddingBottom="8dp"
     android:textSize="18sp"
-    android:textColor="@color/checked_text_color_selector" />
\ No newline at end of file
+    android:textColor="@color/checked_text_selector" />
\ No newline at end of file
index d531cc962da604e1c829036dda933011813738c1..aea349c155406e12b3a81d38ef167e08401db339 100644 (file)
@@ -31,4 +31,4 @@
     android:paddingTop="8dp"
     android:paddingBottom="8dp"
     android:textSize="18sp"
-    android:textColor="@color/checked_text_color_selector" />
\ No newline at end of file
+    android:textColor="@color/checked_text_selector" />
\ No newline at end of file
index bf43d8377cbc6c70e4316f4f82ea7b17be78e136..3e505dbe979b87caa1e08eda653c508cec21f3b6 100644 (file)
@@ -29,8 +29,6 @@
         <!-- Colors.  -->
         <item name="android:actionModeBackground">?android:attr/colorBackground</item>
         <item name="android:textColorHighlight">@color/violet_700</item>
-        <item name="buttonBackgroundColorSelector">@color/button_background_color_selector_night</item>
-        <item name="buttonTextColorSelector">@color/button_text_color_selector_night</item>
         <item name="colorAccent">@color/violet_500</item>
         <item name="redTextColor">@color/red_900</item>
 
index 39633670699bf5f3369c94b2a1c8074dfeb62c55..3fede87523fd2e3ac31bd47a250e429b8a6c1a2b 100644 (file)
 <resources>
     <!-- Nicknamed colors. -->
     <color name="alt_blue_text">@color/violet_700</color>
+    <color name="blue_button">@color/violet_700</color>
     <color name="blue_icon">@color/violet_500</color>
     <color name="blue_text">@color/violet_500</color>
     <color name="blue_title_text">@color/violet_500</color>
+    <color name="button_text">?android:attr/textColorPrimary</color>
+    <color name="disabled_button">@color/gray_750</color>
+    <color name="disabled_button_text">@color/gray_500</color>
     <color name="disabled_icon">@color/gray_500</color>
     <color name="ghosted_icon">@color/gray_700</color>
     <color name="icon">@color/white</color>
index 3ad61ec91213f8527d7b79df7d77cb5e49a985c6..77e1470a1c1be4cdfba530f8e962d52185f96094 100644 (file)
@@ -27,8 +27,6 @@
         <!-- Colors.  -->
         <item name="android:actionModeBackground">?android:attr/colorBackground</item>
         <item name="android:textColorHighlight">@color/violet_700</item>
-        <item name="buttonBackgroundColorSelector">@color/button_background_color_selector_night</item>
-        <item name="buttonTextColorSelector">@color/button_text_color_selector_night</item>
         <item name="colorAccent">@color/violet_500</item>
         <item name="redTextColor">@color/red_900</item>
 
index 38386032fadc51ad02bfa3313cfbf8ab4e7d9dfa..21c8eea2dbe4016153434897401557c85324b351 100644 (file)
         <string name="block_all_third_party_requests">Блокировать все сторонние запросы</string>
         <string name="block_all_third_party_requests_summary">Блокировка всех сторонних запросов повышает конфиденциальность, но ломает многие веб-сайты.</string>
     <string name="url_modification">Модификация URL</string>
+        <string name="tracking_queries">Параметры отслеживания</string>
+        <string name="tracking_queries_summary">Удалять известные параметры отслеживания из URL.</string>
+        <string name="amp_redirects">Перенаправления AMP</string>
+        <string name="amp_redirects_summary">Удалять перенаправляющие параметры из URL известных AMP (Accelerated Mobil Pages).</string>
     <string name="search">Поиск</string>
         <string-array name="search_entries">
             <item>Mojeek</item>
index 1a670d419adf18056b98eeada5586893283cc27a..e9833d6fb84e7bba693e2c1b804b7003f363564a 100644 (file)
@@ -29,8 +29,6 @@
         <!-- Colors. -->
         <item name="android:actionModeBackground">?android:attr/colorBackground</item>
         <item name="android:textColorHighlight">@color/blue_200</item>
-        <item name="buttonBackgroundColorSelector">@color/button_background_color_selector_day</item>
-        <item name="buttonTextColorSelector">@color/button_text_color_selector_day</item>
         <item name="colorAccent">@color/blue_700</item>
         <item name="redTextColor">@color/red_a700</item>
 
index 5babdef6f67be48b35cf134d07f4556c7feba22b..fa72362ddc32e93075cb2edd4c2dd61c653433fb 100644 (file)
@@ -21,8 +21,6 @@
     <!-- Colors. -->
     <attr name="aboutBackground" format="color" />
     <attr name="activatedListViewItemBackground" format="color" />
-    <attr name="buttonBackgroundColorSelector" format="color" />
-    <attr name="buttonTextColorSelector" format="color" />
     <attr name="redTextColor" format="color" />
 
     <!-- Tint Colors. -->
index 275d8645d295054d53352be92e230ba0a0877559..4cd47c0446833c89e3dfb65c22ffcc46ab6fc8b5 100644 (file)
 <resources>
     <!-- Nicknamed colors. -->
     <color name="alt_blue_text">@color/blue_700</color>
+    <color name="blue_button">@color/blue_600</color>
     <color name="blue_icon">@color/blue_800</color>
     <color name="blue_text">@color/blue_700</color>
     <color name="blue_title_text">@color/blue_900</color>
+    <color name="button_text">@color/white</color>
+    <color name="disabled_button">@color/gray_300</color>
+    <color name="disabled_button_text">@color/gray_400</color>
     <color name="disabled_icon">@color/gray_600</color>
     <color name="ghosted_icon">@color/gray_425</color>
     <color name="icon">@color/gray_925</color>
index dcf4cab404c6f59b36942c3c240d625ed7f37d18..6a79f0ba0c5d9d3efc708b62045c2a7fc119994a 100644 (file)
@@ -27,8 +27,6 @@
         <!-- Colors. -->
         <item name="android:actionModeBackground">?android:attr/colorBackground</item>
         <item name="android:textColorHighlight">@color/blue_200</item>
-        <item name="buttonBackgroundColorSelector">@color/button_background_color_selector_day</item>
-        <item name="buttonTextColorSelector">@color/button_text_color_selector_day</item>
         <item name="colorAccent">@color/blue_700</item>
         <item name="redTextColor">@color/red_a700</item>