]> gitweb.stoutner.com Git - PrivacyBrowserAndroid.git/commitdiff
Fix a crash on new installs. https://redmine.stoutner.com/issues/925
authorSoren Stoutner <soren@stoutner.com>
Thu, 17 Nov 2022 17:31:49 +0000 (10:31 -0700)
committerSoren Stoutner <soren@stoutner.com>
Thu, 17 Nov 2022 17:31:49 +0000 (10:31 -0700)
19 files changed:
app/src/main/assets/de/about_changelog.html
app/src/main/assets/en/about_changelog.html
app/src/main/assets/en/guide_interface.html
app/src/main/assets/es/about_changelog.html
app/src/main/assets/fr/about_changelog.html
app/src/main/assets/it/about_changelog.html
app/src/main/assets/pt-rBR/about_changelog.html
app/src/main/assets/pt-rBR/guide_interface.html
app/src/main/assets/ru/about_changelog.html
app/src/main/assets/tr/about_changelog.html
app/src/main/assets/tr/guide_interface.html
app/src/main/java/com/stoutner/privacybrowser/activities/BookmarksActivity.java
app/src/main/java/com/stoutner/privacybrowser/activities/BookmarksDatabaseViewActivity.java
app/src/main/java/com/stoutner/privacybrowser/activities/ImportExportActivity.java
app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.java
app/src/main/java/com/stoutner/privacybrowser/activities/RequestsActivity.java
app/src/main/java/com/stoutner/privacybrowser/fragments/AboutVersionFragment.kt
app/src/main/res/values/strings.xml
app/src/main/res/xml/preferences.xml

index 9518b993c713ea068b36614e52c13d4cb761ab96..e9a8fb9f6e36d2178c120759a7e2b43817bfd786 100644 (file)
@@ -33,8 +33,8 @@
     </head>
 
     <body>
-        <h3>3.12 (Version Code 61)</h3>
-        <p>16. November 2022 - Mindest-API 23, Ziel-API 33</p>
+        <h3><a href="https://www.stoutner.com/privacy-browser-3-12/">3.12</a> (Version Code 61)</h3>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=60846bcbf234ed7452af94f080f3da3133ce674c">16. November 2022</a> - Mindest-API 23, Ziel-API 33</p>
         <ul>
             <li>Add <a href="https://redmine.stoutner.com/issues/893">WebView DevTools</a> to the navigation menu.</li>
             <li>Make long-pressing a bookmark open it in a new <a href="https://redmine.stoutner.com/issues/912">foreground tab</a>.</li>
index 9bb247858ba71428c6f5d4e64128be10aa679f2d..3669314bae6fac76127ab50584d6e17c44607a18 100644 (file)
@@ -27,8 +27,8 @@
     </head>
 
     <body>
-        <h3>3.12 (version code 61)</h3>
-        <p>16 November 2022 - minimum API 23, target API 33</p>
+        <h3><a href="https://www.stoutner.com/privacy-browser-3-12/">3.12</a> (version code 61)</h3>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=60846bcbf234ed7452af94f080f3da3133ce674c">16 November 2022</a> - minimum API 23, target API 33</p>
         <ul>
             <li>Add <a href="https://redmine.stoutner.com/issues/893">WebView DevTools</a> to the navigation menu.</li>
             <li>Make long-pressing a bookmark open it in a new <a href="https://redmine.stoutner.com/issues/912">foreground tab</a>.</li>
index 0dfa439072aedf84041ac86a1b11395aa1b00928..0f3bf03cf8ee2286244e85dd8e2c9f11e969d270 100644 (file)
@@ -30,7 +30,7 @@
         <h3><svg class="header"><use href="../shared_images/bookmarks.svg#icon"/></svg> Bookmarks</h3>
 
         <p>The bookmark drawer may be opened by swiping from the right edge of the screen.
-            If Android's gesture navigation is enabled,
+            If Androids gesture navigation is enabled,
             the drawer may be opened by long-pressing on the edge of the screen <a href="https://redmine.stoutner.com/boards/1/topics/243">until the drawer peaks out</a> and then swiping it open.
             Sometimes it can be difficult to get the bookmarks drawer to reliably peak on devices with curved edges, so it is also possible to open the bookmarks drawer from the options menu.</p>
 
index c32134a59874ac56d2a278d6a0bee520b564766f..0ec1b117d994c25c435b2959ceae43a1c87eaaa5 100644 (file)
@@ -29,8 +29,8 @@
     </head>
 
     <body>
-        <h3>3.12 (código de versión 61)</h3>
-        <p>16 de noviembre de 2022 - API mínimo 23, API objetivo 33</p>
+        <h3><a href="https://www.stoutner.com/privacy-browser-3-12/">3.12</a> (código de versión 61)</h3>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=60846bcbf234ed7452af94f080f3da3133ce674c">16 de noviembre de 2022</a> - API mínimo 23, API objetivo 33</p>
         <ul>
             <li>Añadir <a href="https://redmine.stoutner.com/issues/893">DevTools de WebView</a> al menú de navegación.</li>
             <li>Hacer que al pulsar prolongadamente un marcador se abra en una nueva <a href="https://redmine.stoutner.com/issues/912">pestaña de primer plano</a>.</li>
index 73be3315cd13ff1fbe3cfe43d778a77b704e0ecb..45818397ef8e1e4cf22074f81e642a6fe167ed1a 100644 (file)
@@ -29,8 +29,8 @@
     </head>
 
     <body>
-        <h3>3.12 (version du code 61)</h3>
-        <p>16 Novembre 2022 - API minimale : 23, API optimale : 33</p>
+        <h3><a href="https://www.stoutner.com/privacy-browser-3-12/">3.12</a> (version du code 61)</h3>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=60846bcbf234ed7452af94f080f3da3133ce674c">16 Novembre 2022</a> - API minimale : 23, API optimale : 33</p>
         <ul>
             <li>Ajout de l'accès <a href="https://redmine.stoutner.com/issues/893">aux outils de développement Webview</a> dans le menu de navigation.</li>
             <li>Une pression longue sur un favori permet de l'ouvrir dans <a href="https://redmine.stoutner.com/issues/912">un nouvel onglet au premier plan</a>.</li>
index 7016b6727be6f91339869d262a085c665ff9c149..8e0a727e21198060768ddc5310e04294b0ed132f 100644 (file)
@@ -29,8 +29,8 @@
     </head>
 
     <body>
-        <h3>3.12 (versione codice 61)</h3>
-        <p>16 Novembre 2022 - minima API 23, target API 33</p>
+        <h3><a href="https://www.stoutner.com/privacy-browser-3-12/">3.12</a> (versione codice 61)</h3>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=60846bcbf234ed7452af94f080f3da3133ce674c">16 Novembre 2022</a> - minima API 23, target API 33</p>
         <ul>
             <li>Add <a href="https://redmine.stoutner.com/issues/893">WebView DevTools</a> to the navigation menu.</li>
             <li>Make long-pressing a bookmark open it in a new <a href="https://redmine.stoutner.com/issues/912">foreground tab</a>.</li>
index 61e79a90a0d749b09450a195b40b5fee347ca1d9..ec186c9150c10ab3df6233c3f18316b52209a3b0 100644 (file)
@@ -29,8 +29,8 @@
     </head>
 
     <body>
-        <h3>3.12 (version code 61)</h3>
-        <p>16 November 2022 - API mínimo 23, API alvo 33</p>
+        <h3><a href="https://www.stoutner.com/privacy-browser-3-12/">3.12</a> (version code 61)</h3>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=60846bcbf234ed7452af94f080f3da3133ce674c">16 November 2022</a> - API mínimo 23, API alvo 33</p>
         <ul>
             <li>Add <a href="https://redmine.stoutner.com/issues/893">WebView DevTools</a> to the navigation menu.</li>
             <li>Make long-pressing a bookmark open it in a new <a href="https://redmine.stoutner.com/issues/912">foreground tab</a>.</li>
index 8b64b90628c3f49eb2727376f0f30ce378dc0174..3afad7b1e866f56c9d5710afe56f66b9fff6b198 100644 (file)
@@ -32,7 +32,7 @@
         <h3><svg class="header"><use href="../shared_images/bookmarks.svg#icon"/></svg> Bookmarks</h3>
 
         <p>The bookmark drawer may be opened by swiping from the right edge of the screen.
-            If Android's gesture navigation is enabled,
+            If Androids gesture navigation is enabled,
             the drawer may be opened by long-pressing on the edge of the screen <a href="https://redmine.stoutner.com/boards/1/topics/243">until the drawer peaks out</a> and then swiping it open.
             Sometimes it can be difficult to get the bookmarks drawer to reliably peak on devices with curved edges, so it is also possible to open the bookmarks drawer from the options menu.</p>
 
index cb4dfee351b5ec399662c5ee72fe6d2596ed77d6..c4d0e7978fe884bd3d16863d04861ae7687321c4 100644 (file)
@@ -27,8 +27,8 @@
     </head>
 
     <body>
-        <h3>3.12 (код версии 61)</h3>
-        <p>16 Ноябрь 2022 года - минимальный API 23, целевой API 33</p>
+        <h3><a href="https://www.stoutner.com/privacy-browser-3-12/">3.12</a> (код версии 61)</h3>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=60846bcbf234ed7452af94f080f3da3133ce674c">16 Ноябрь 2022 года</a> - минимальный API 23, целевой API 33</p>
         <ul>
             <li>В меню навигации добавлены инструменты <a href="https://redmine.stoutner.com/issues/893">WebView DevTools</a>.</li>
             <li>Длительное нажатие на закладку откроет ее в новой вкладке <a href="https://redmine.stoutner.com/issues/912">на переднем плане</a>.</li>
index f82c9c3d649f40c1157580202c0e0f854603d968..2b7fc7edcce613ec0bad8f2c9fc6cc939fd27c41 100644 (file)
@@ -27,8 +27,8 @@
     </head>
 
     <body>
-        <h3>3.12 (version code 61)</h3>
-        <p>16 November 2022 - minimum API 23, target API 33</p>
+        <h3><a href="https://www.stoutner.com/privacy-browser-3-12/">3.12</a> (version code 61)</h3>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=60846bcbf234ed7452af94f080f3da3133ce674c">16 November 2022</a> - minimum API 23, target API 33</p>
         <ul>
             <li>Add <a href="https://redmine.stoutner.com/issues/893">WebView DevTools</a> to the navigation menu.</li>
             <li>Make long-pressing a bookmark open it in a new <a href="https://redmine.stoutner.com/issues/912">foreground tab</a>.</li>
index 0dfa439072aedf84041ac86a1b11395aa1b00928..0f3bf03cf8ee2286244e85dd8e2c9f11e969d270 100644 (file)
@@ -30,7 +30,7 @@
         <h3><svg class="header"><use href="../shared_images/bookmarks.svg#icon"/></svg> Bookmarks</h3>
 
         <p>The bookmark drawer may be opened by swiping from the right edge of the screen.
-            If Android's gesture navigation is enabled,
+            If Androids gesture navigation is enabled,
             the drawer may be opened by long-pressing on the edge of the screen <a href="https://redmine.stoutner.com/boards/1/topics/243">until the drawer peaks out</a> and then swiping it open.
             Sometimes it can be difficult to get the bookmarks drawer to reliably peak on devices with curved edges, so it is also possible to open the bookmarks drawer from the options menu.</p>
 
index d7137e2041689c10a62fdbe75f3d6ff04a4390e3..05bb2f5874146baa3f2c1ddcfc21ffdcf3af1070 100644 (file)
@@ -31,7 +31,6 @@ import android.graphics.Typeface;
 import android.graphics.drawable.BitmapDrawable;
 import android.graphics.drawable.Drawable;
 import android.os.Bundle;
-import android.preference.PreferenceManager;
 import android.util.SparseBooleanArray;
 import android.view.ActionMode;
 import android.view.Menu;
@@ -54,16 +53,17 @@ import androidx.appcompat.app.ActionBar;
 import androidx.appcompat.app.AppCompatActivity;
 import androidx.appcompat.widget.Toolbar;
 import androidx.fragment.app.DialogFragment;
+import androidx.preference.PreferenceManager;
 
 import com.google.android.material.floatingactionbutton.FloatingActionButton;
 import com.google.android.material.snackbar.Snackbar;
 
+import com.stoutner.privacybrowser.R;
 import com.stoutner.privacybrowser.dialogs.CreateBookmarkDialog;
 import com.stoutner.privacybrowser.dialogs.CreateBookmarkFolderDialog;
 import com.stoutner.privacybrowser.dialogs.EditBookmarkDialog;
 import com.stoutner.privacybrowser.dialogs.EditBookmarkFolderDialog;
 import com.stoutner.privacybrowser.dialogs.MoveToFolderDialog;
-import com.stoutner.privacybrowser.R;
 import com.stoutner.privacybrowser.helpers.BookmarksDatabaseHelper;
 
 import java.io.ByteArrayOutputStream;
index da2ceda3f8594871508ef37f20f41910060b6ad1..0560c017a0a78deb65ceba3e9bc952103b1bc7f5 100644 (file)
@@ -34,7 +34,6 @@ import android.graphics.Typeface;
 import android.graphics.drawable.BitmapDrawable;
 import android.graphics.drawable.Drawable;
 import android.os.Bundle;
-import android.preference.PreferenceManager;
 import android.util.SparseBooleanArray;
 import android.view.ActionMode;
 import android.view.Menu;
@@ -61,6 +60,7 @@ import androidx.appcompat.widget.Toolbar;  // The AndroidX toolbar must be used
 import androidx.core.content.ContextCompat;
 import androidx.cursoradapter.widget.CursorAdapter;
 import androidx.fragment.app.DialogFragment;  // The AndroidX dialog fragment must be used or an error is produced on API <=22.
+import androidx.preference.PreferenceManager;
 
 import com.google.android.material.snackbar.Snackbar;
 
index 4c48b42631d560c606e53e655861b028a27d0532..5ff99d6f709f459e5663361e391361fbdf90e9dc 100644 (file)
@@ -26,7 +26,6 @@ import android.content.pm.PackageManager;
 import android.net.Uri;
 import android.os.Bundle;
 import android.os.Handler;
-import android.preference.PreferenceManager;
 import android.text.Editable;
 import android.text.TextWatcher;
 import android.view.View;
@@ -46,6 +45,7 @@ import androidx.appcompat.app.AppCompatActivity;
 import androidx.appcompat.widget.Toolbar;
 import androidx.cardview.widget.CardView;
 import androidx.core.content.FileProvider;
+import androidx.preference.PreferenceManager;
 
 import com.google.android.material.snackbar.Snackbar;
 import com.google.android.material.textfield.TextInputLayout;
index 1ee31db40a03cb8dfe9996eacfeaa79140aa230e..f21b3c23aa8ebbb4e090588a78838f8fa3707b85 100644 (file)
@@ -52,7 +52,6 @@ import android.os.Bundle;
 import android.os.Environment;
 import android.os.Handler;
 import android.os.Message;
-import android.preference.PreferenceManager;
 import android.print.PrintDocumentAdapter;
 import android.print.PrintManager;
 import android.provider.DocumentsContract;
@@ -115,6 +114,7 @@ import androidx.core.view.GravityCompat;
 import androidx.drawerlayout.widget.DrawerLayout;
 import androidx.fragment.app.DialogFragment;
 import androidx.fragment.app.Fragment;
+import androidx.preference.PreferenceManager;
 import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
 import androidx.viewpager.widget.ViewPager;
 import androidx.webkit.WebSettingsCompat;
index 356d8b804bfe1ae4f0530f31ec98007449e1c004..a35d482b79ce0558b8e017d087990363a3ebe3c3 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright © 2018-2022 Soren Stoutner <soren@stoutner.com>.
+ * Copyright 2018-2022 Soren Stoutner <soren@stoutner.com>.
  *
  * This file is part of Privacy Browser Android <https://www.stoutner.com/privacy-browser-android>.
  *
@@ -25,7 +25,6 @@ import android.content.SharedPreferences;
 import android.database.Cursor;
 import android.database.MatrixCursor;
 import android.os.Bundle;
-import android.preference.PreferenceManager;
 import android.view.View;
 import android.view.WindowManager;
 import android.widget.AdapterView;
@@ -40,6 +39,7 @@ import androidx.appcompat.app.ActionBar;
 import androidx.appcompat.app.AppCompatActivity;
 import androidx.appcompat.widget.Toolbar;
 import androidx.fragment.app.DialogFragment;
+import androidx.preference.PreferenceManager;
 
 import com.stoutner.privacybrowser.R;
 import com.stoutner.privacybrowser.adapters.RequestsArrayAdapter;
@@ -290,4 +290,4 @@ public class RequestsActivity extends AppCompatActivity implements ViewRequestDi
         DialogFragment viewRequestDialogFragment = ViewRequestDialog.request(id, isLastRequest, selectedRequestStringArray);
         viewRequestDialogFragment.show(getSupportFragmentManager(), getString(R.string.request_details));
     }
-}
\ No newline at end of file
+}
index f4b673eaa468704ef1147c0007e8b8a161283b4f..6e5c066869b5390d2e401a1c26b1fa7e55e101b0 100644 (file)
@@ -51,8 +51,8 @@ import androidx.webkit.WebViewCompat
 
 import com.google.android.material.snackbar.Snackbar
 
-import com.stoutner.privacybrowser.R
 import com.stoutner.privacybrowser.BuildConfig
+import com.stoutner.privacybrowser.R
 import com.stoutner.privacybrowser.asynctasks.SaveAboutVersionImage
 
 import kotlinx.coroutines.CoroutineScope
index 573f7f9c863fcb8e71a077675537dd2ff8ad9b92..6f437d579df00336dcea5bf46bf4443da99e44b8 100644 (file)
         <string name="swipe_to_refresh">Swipe to refresh</string>
         <string name="swipe_to_refresh_summary">Some websites don’t work well if swipe to refresh is enabled.</string>
         <string name="download_with_external_app">Download with external app</string>
-        <string name="download_with_external_app_summary">External apps will not honor Privacy Browser’s proxy settings and will not have access to cookies
+        <string name="download_with_external_app_summary">External apps do not honor Privacy Browser’s proxy settings and do not have access to cookies
             (meaning that it is unlikely that files downloaded from sites that require a login will work).</string>
         <string name="scroll_app_bar">Scroll the app bar</string>
         <string name="scroll_app_bar_summary">Scroll the app bar off the top of the screen when the WebView scrolls down.</string>
index 47fa1d64accb333d92c2e24817e8df64cb75195b..9bbe6b3cd1b310ceb83f0e98e99c3abdebd5c928 100644 (file)
   along with Privacy Browser Android.  If not, see <http://www.gnu.org/licenses/>. -->
 
 <PreferenceScreen
-    xmlns:android="http://schemas.android.com/apk/res/android" >
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:android="http://schemas.android.com/apk/res/android">
 
     <PreferenceCategory
-        android:key="@string/privacy_category_key"
-        android:title="@string/privacy" >
+        app:key="@string/privacy_category_key"
+        app:title="@string/privacy" >
 
         <SwitchPreferenceCompat
-            android:key="@string/javascript_key"
-            android:title="@string/javascript"
-            android:summary="@string/javascript_preference_summary"
-            android:defaultValue="false" />
+            app:key="@string/javascript_key"
+            app:title="@string/javascript"
+            app:summary="@string/javascript_preference_summary"
+            app:defaultValue="false" />
 
         <SwitchPreferenceCompat
-            android:key="@string/cookies_key"
-            android:title="@string/cookies"
-            android:summary="@string/cookies_preference_summary"
-            android:defaultValue="false" />
+            app:key="@string/cookies_key"
+            app:title="@string/cookies"
+            app:summary="@string/cookies_preference_summary"
+            app:defaultValue="false" />
 
         <SwitchPreferenceCompat
-            android:key="@string/dom_storage_key"
-            android:title="@string/dom_storage_preference"
-            android:summary="@string/dom_storage_preference_summary"
-            android:defaultValue="false" />
+            app:key="@string/dom_storage_key"
+            app:title="@string/dom_storage_preference"
+            app:summary="@string/dom_storage_preference_summary"
+            app:defaultValue="false" />
 
         <!-- Save form data can be removed once the minimum API >= 26. -->
         <SwitchPreferenceCompat
-            android:key="@string/save_form_data_key"
-            android:title="@string/save_form_data_preference"
-            android:summary="@string/save_form_data_preference_summary"
-            android:defaultValue="false" />
+            app:key="@string/save_form_data_key"
+            app:title="@string/save_form_data_preference"
+            app:summary="@string/save_form_data_preference_summary"
+            app:defaultValue="false" />
 
         <ListPreference
-            android:key="@string/user_agent_key"
-            android:title="@string/user_agent"
-            android:entries="@array/translated_user_agent_names"
-            android:entryValues="@array/user_agent_names"
-            android:defaultValue="@string/user_agent_default_value"
-            android:icon="@drawable/user_agent" />
+            app:key="@string/user_agent_key"
+            app:title="@string/user_agent"
+            app:entries="@array/translated_user_agent_names"
+            app:entryValues="@array/user_agent_names"
+            app:defaultValue="@string/user_agent_default_value"
+            app:icon="@drawable/user_agent" />
 
         <!-- android:inputType="textVisiblePassword" sets the keyboard to have a dedicated number row.-->
         <EditTextPreference
-            android:key="@string/custom_user_agent_key"
-            android:title="@string/custom_user_agent"
-            android:defaultValue="@string/custom_user_agent_default_value"
+            app:key="@string/custom_user_agent_key"
+            app:title="@string/custom_user_agent"
+            app:defaultValue="@string/custom_user_agent_default_value"
             android:inputType="textVisiblePassword|textMultiLine" />
 
         <SwitchPreferenceCompat
-            android:key="@string/incognito_mode_key"
-            android:title="@string/incognito_mode"
-            android:summary="@string/incognito_mode_summary"
-            android:defaultValue="false" />
+            app:key="@string/incognito_mode_key"
+            app:title="@string/incognito_mode"
+            app:summary="@string/incognito_mode_summary"
+            app:defaultValue="false" />
 
         <SwitchPreferenceCompat
-            android:key="@string/allow_screenshots_key"
-            android:title="@string/allow_screenshots"
-            android:summary="@string/allow_screenshots_summary"
-            android:defaultValue="false" />
+            app:key="@string/allow_screenshots_key"
+            app:title="@string/allow_screenshots"
+            app:summary="@string/allow_screenshots_summary"
+            app:defaultValue="false" />
     </PreferenceCategory>
 
     <PreferenceCategory
-        android:key="blocklists"
-        android:title="@string/blocklists" >
+        app:key="blocklists"
+        app:title="@string/blocklists" >
 
         <SwitchPreferenceCompat
-            android:key="@string/easylist_key"
-            android:title="@string/easylist"
-            android:summary="@string/easylist_summary"
-            android:defaultValue="true" />
+            app:key="@string/easylist_key"
+            app:title="@string/easylist"
+            app:summary="@string/easylist_summary"
+            app:defaultValue="true" />
 
         <SwitchPreferenceCompat
-            android:key="@string/easyprivacy_key"
-            android:title="@string/easyprivacy"
-            android:summary="@string/easyprivacy_summary"
-            android:defaultValue="true" />
+            app:key="@string/easyprivacy_key"
+            app:title="@string/easyprivacy"
+            app:summary="@string/easyprivacy_summary"
+            app:defaultValue="true" />
 
         <SwitchPreferenceCompat
-            android:key="@string/fanboys_annoyance_list_key"
-            android:title="@string/fanboys_annoyance_list"
-            android:summary="@string/fanboys_annoyance_list_summary"
-            android:defaultValue="true" />
+            app:key="@string/fanboys_annoyance_list_key"
+            app:title="@string/fanboys_annoyance_list"
+            app:summary="@string/fanboys_annoyance_list_summary"
+            app:defaultValue="true" />
 
         <SwitchPreferenceCompat
-            android:key="@string/fanboys_social_blocking_list_key"
-            android:title="@string/fanboys_social_blocking_list"
-            android:summary="@string/fanboys_social_blocking_list_summary"
-            android:defaultValue="true" />
+            app:key="@string/fanboys_social_blocking_list_key"
+            app:title="@string/fanboys_social_blocking_list"
+            app:summary="@string/fanboys_social_blocking_list_summary"
+            app:defaultValue="true" />
 
         <SwitchPreferenceCompat
-            android:key="@string/ultralist_key"
-            android:title="@string/ultralist"
-            android:summary="@string/ultralist_summary"
-            android:defaultValue="true" />
+            app:key="@string/ultralist_key"
+            app:title="@string/ultralist"
+            app:summary="@string/ultralist_summary"
+            app:defaultValue="true" />
 
         <SwitchPreferenceCompat
-            android:key="@string/ultraprivacy_key"
-            android:title="@string/ultraprivacy"
-            android:summary="@string/ultraprivacy_summary"
-            android:defaultValue="true" />
+            app:key="@string/ultraprivacy_key"
+            app:title="@string/ultraprivacy"
+            app:summary="@string/ultraprivacy_summary"
+            app:defaultValue="true" />
 
         <SwitchPreferenceCompat
-            android:key="@string/block_all_third_party_requests_key"
-            android:title="@string/block_all_third_party_requests"
-            android:summary="@string/block_all_third_party_requests_summary"
-            android:defaultValue="false" />
+            app:key="@string/block_all_third_party_requests_key"
+            app:title="@string/block_all_third_party_requests"
+            app:summary="@string/block_all_third_party_requests_summary"
+            app:defaultValue="false" />
     </PreferenceCategory>
 
     <PreferenceCategory
-        android:key="url_modification"
-        android:title="@string/url_modification" >
+        app:key="url_modification"
+        app:title="@string/url_modification" >
 
         <SwitchPreferenceCompat
-            android:key="@string/tracking_queries_key"
-            android:title="@string/tracking_queries"
-            android:summary="@string/tracking_queries_summary"
-            android:defaultValue="true" />
+            app:key="@string/tracking_queries_key"
+            app:title="@string/tracking_queries"
+            app:summary="@string/tracking_queries_summary"
+            app:defaultValue="true" />
 
         <SwitchPreferenceCompat
-            android:key="@string/amp_redirects_key"
-            android:title="@string/amp_redirects"
-            android:summary="@string/amp_redirects_summary"
-            android:defaultValue="true" />
+            app:key="@string/amp_redirects_key"
+            app:title="@string/amp_redirects"
+            app:summary="@string/amp_redirects_summary"
+            app:defaultValue="true" />
     </PreferenceCategory>
 
     <PreferenceCategory
-        android:key="search_category"
-        android:title="@string/search" >
+        app:key="search_category"
+        app:title="@string/search" >
 
         <ListPreference
-            android:key="@string/search_key"
-            android:title="@string/search"
-            android:entries="@array/search_entries"
-            android:entryValues="@array/search_entry_values"
-            android:defaultValue="@string/search_default_value"
-            android:icon="@drawable/search" />
+            app:key="@string/search_key"
+            app:title="@string/search"
+            app:entries="@array/search_entries"
+            app:entryValues="@array/search_entry_values"
+            app:defaultValue="@string/search_default_value"
+            app:icon="@drawable/search" />
 
         <EditTextPreference
-            android:key="@string/search_custom_url_key"
-            android:title="@string/search_custom_url"
-            android:defaultValue="@string/search_custom_url_default_value"
+            app:key="@string/search_custom_url_key"
+            app:title="@string/search_custom_url"
+            app:defaultValue="@string/search_custom_url_default_value"
             android:inputType="textUri" />
     </PreferenceCategory>
 
     <PreferenceCategory
-        android:key="proxy_category"
-        android:title="@string/proxy" >
+        app:key="proxy_category"
+        app:title="@string/proxy" >
 
         <ListPreference
-            android:key="@string/proxy_key"
-            android:title="@string/proxy"
-            android:entries="@array/proxy_entries"
-            android:entryValues="@array/proxy_entry_values"
-            android:defaultValue="@string/proxy_default_value" />
+            app:key="@string/proxy_key"
+            app:title="@string/proxy"
+            app:entries="@array/proxy_entries"
+            app:entryValues="@array/proxy_entry_values"
+            app:defaultValue="@string/proxy_default_value" />
 
         <EditTextPreference
-            android:key="@string/proxy_custom_url_key"
-            android:title="@string/proxy_custom_url"
-            android:defaultValue="@string/proxy_custom_url_default_value"
+            app:key="@string/proxy_custom_url_key"
+            app:title="@string/proxy_custom_url"
+            app:defaultValue="@string/proxy_custom_url_default_value"
             android:inputType="textUri" />
     </PreferenceCategory>
 
     <PreferenceCategory
-        android:key="full_screen"
-        android:title="@string/full_screen" >
+        app:key="full_screen"
+        app:title="@string/full_screen" >
 
         <SwitchPreferenceCompat
-            android:key="@string/full_screen_browsing_mode_key"
-            android:title="@string/full_screen_browsing_mode"
-            android:summary="@string/full_screen_browsing_mode_summary"
-            android:defaultValue="false" />
+            app:key="@string/full_screen_browsing_mode_key"
+            app:title="@string/full_screen_browsing_mode"
+            app:summary="@string/full_screen_browsing_mode_summary"
+            app:defaultValue="false" />
 
         <SwitchPreferenceCompat
-            android:key="@string/hide_app_bar_key"
-            android:title="@string/hide_app_bar"
-            android:summary="@string/hide_app_bar_summary"
-            android:defaultValue="true" />
+            app:key="@string/hide_app_bar_key"
+            app:title="@string/hide_app_bar"
+            app:summary="@string/hide_app_bar_summary"
+            app:defaultValue="true" />
     </PreferenceCategory>
 
     <PreferenceCategory
-        android:key="@string/clear_and_exit_category_key"
-        android:title="@string/clear_and_exit" >
+        app:key="@string/clear_and_exit_category_key"
+        app:title="@string/clear_and_exit" >
 
         <SwitchPreferenceCompat
-            android:key="@string/clear_everything_key"
-            android:title="@string/clear_everything"
-            android:summary="@string/clear_everything_summary"
-            android:defaultValue="true" />
+            app:key="@string/clear_everything_key"
+            app:title="@string/clear_everything"
+            app:summary="@string/clear_everything_summary"
+            app:defaultValue="true" />
 
         <SwitchPreferenceCompat
-            android:key="@string/clear_cookies_key"
-            android:title="@string/clear_cookies_preference"
-            android:summary="@string/clear_cookies_summary"
-            android:defaultValue="true" />
+            app:key="@string/clear_cookies_key"
+            app:title="@string/clear_cookies_preference"
+            app:summary="@string/clear_cookies_summary"
+            app:defaultValue="true" />
 
         <SwitchPreferenceCompat
-            android:key="@string/clear_dom_storage_key"
-            android:title="@string/clear_dom_storage_preference"
-            android:summary="@string/clear_dom_storage_summary"
-            android:defaultValue="true" />
+            app:key="@string/clear_dom_storage_key"
+            app:title="@string/clear_dom_storage_preference"
+            app:summary="@string/clear_dom_storage_summary"
+            app:defaultValue="true" />
 
         <!-- Clear form data can be removed once the minimum API >= 26. -->
         <SwitchPreferenceCompat
-            android:key="@string/clear_form_data_key"
-            android:title="@string/clear_form_data_preference"
-            android:summary="@string/clear_form_data_summary"
-            android:defaultValue="true" />
+            app:key="@string/clear_form_data_key"
+            app:title="@string/clear_form_data_preference"
+            app:summary="@string/clear_form_data_summary"
+            app:defaultValue="true" />
 
         <SwitchPreferenceCompat
-            android:key="@string/clear_logcat_key"
-            android:title="@string/clear_logcat"
-            android:summary="@string/clear_logcat_summary"
-            android:defaultValue="true" />
+            app:key="@string/clear_logcat_key"
+            app:title="@string/clear_logcat"
+            app:summary="@string/clear_logcat_summary"
+            app:defaultValue="true" />
 
         <SwitchPreferenceCompat
-            android:key="@string/clear_cache_key"
-            android:title="@string/clear_cache"
-            android:summary="@string/clear_cache_summary"
-            android:defaultValue="true" />
+            app:key="@string/clear_cache_key"
+            app:title="@string/clear_cache"
+            app:summary="@string/clear_cache_summary"
+            app:defaultValue="true" />
     </PreferenceCategory>
 
     <PreferenceCategory
-        android:key="general"
-        android:title="@string/general" >
+        app:key="general"
+        app:title="@string/general" >
 
         <EditTextPreference
-            android:key="@string/homepage_key"
-            android:title="@string/homepage"
-            android:defaultValue="@string/homepage_default_value"
+            app:key="@string/homepage_key"
+            app:title="@string/homepage"
+            app:defaultValue="@string/homepage_default_value"
             android:inputType="textUri"
-            android:icon="@drawable/home" />
+            app:icon="@drawable/home" />
 
         <!-- `android:inputType="number"` currently doesn't work with AndroidX. -->
         <EditTextPreference
-            android:key="@string/font_size_key"
-            android:title="@string/font_size_preference"
-            android:defaultValue="@string/font_size_default_value"
+            app:key="@string/font_size_key"
+            app:title="@string/font_size_preference"
+            app:defaultValue="@string/font_size_default_value"
             android:inputType="number"
-            android:icon="@drawable/font_size" />
+            app:icon="@drawable/font_size" />
 
         <SwitchPreferenceCompat
-            android:key="@string/open_intents_in_new_tab_key"
-            android:title="@string/open_intents_in_new_tab"
-            android:summary="@string/open_intents_in_new_tab_summary"
-            android:defaultValue="true" />
+            app:key="@string/open_intents_in_new_tab_key"
+            app:title="@string/open_intents_in_new_tab"
+            app:summary="@string/open_intents_in_new_tab_summary"
+            app:defaultValue="true" />
 
         <SwitchPreferenceCompat
-            android:key="@string/swipe_to_refresh_key"
-            android:title="@string/swipe_to_refresh"
-            android:summary="@string/swipe_to_refresh_summary"
-            android:defaultValue="true" />
+            app:key="@string/swipe_to_refresh_key"
+            app:title="@string/swipe_to_refresh"
+            app:summary="@string/swipe_to_refresh_summary"
+            app:defaultValue="true" />
 
         <SwitchPreferenceCompat
-            android:key="@string/download_with_external_app_key"
-            android:title="@string/download_with_external_app"
-            android:summary="@string/download_with_external_app_summary"
-            android:defaultValue="false" />
+            app:key="@string/download_with_external_app_key"
+            app:title="@string/download_with_external_app"
+            app:summary="@string/download_with_external_app_summary"
+            app:defaultValue="false" />
 
         <SwitchPreferenceCompat
-            android:key="@string/scroll_app_bar_key"
-            android:title="@string/scroll_app_bar"
-            android:summary="@string/scroll_app_bar_summary"
-            android:defaultValue="true" />
+            app:key="@string/scroll_app_bar_key"
+            app:title="@string/scroll_app_bar"
+            app:summary="@string/scroll_app_bar_summary"
+            app:defaultValue="true" />
 
         <SwitchPreferenceCompat
-            android:key="@string/bottom_app_bar_key"
-            android:title="@string/bottom_app_bar"
-            android:summary="@string/bottom_app_bar_summary"
-            android:defaultValue="false" />
+            app:key="@string/bottom_app_bar_key"
+            app:title="@string/bottom_app_bar"
+            app:summary="@string/bottom_app_bar_summary"
+            app:defaultValue="false" />
 
         <SwitchPreferenceCompat
-            android:key="@string/display_additional_app_bar_icons_key"
-            android:title="@string/display_additional_app_bar_icons"
-            android:summary="@string/display_additional_app_bar_icons_summary"
-            android:defaultValue="false" />
+            app:key="@string/display_additional_app_bar_icons_key"
+            app:title="@string/display_additional_app_bar_icons"
+            app:summary="@string/display_additional_app_bar_icons_summary"
+            app:defaultValue="false" />
 
         <ListPreference
-            android:key="@string/app_theme_key"
-            android:title="@string/app_theme"
-            android:entries="@array/app_theme_entries"
-            android:entryValues="@array/app_theme_entry_values"
-            android:defaultValue="@string/app_theme_default_value"
-            android:icon="@drawable/app_theme" />
+            app:key="@string/app_theme_key"
+            app:title="@string/app_theme"
+            app:entries="@array/app_theme_entries"
+            app:entryValues="@array/app_theme_entry_values"
+            app:defaultValue="@string/app_theme_default_value"
+            app:icon="@drawable/app_theme" />
 
         <ListPreference
-            android:key="@string/webview_theme_key"
-            android:title="@string/webview_theme"
-            android:entries="@array/webview_theme_entries"
-            android:entryValues="@array/webview_theme_entry_values"
-            android:defaultValue="@string/webview_theme_default_value" />
+            app:key="@string/webview_theme_key"
+            app:title="@string/webview_theme"
+            app:entries="@array/webview_theme_entries"
+            app:entryValues="@array/webview_theme_entry_values"
+            app:defaultValue="@string/webview_theme_default_value" />
 
         <SwitchPreferenceCompat
-            android:key="@string/wide_viewport_key"
-            android:title="@string/wide_viewport_preference"
-            android:summary="@string/wide_viewport_summary"
-            android:defaultValue="true" />
+            app:key="@string/wide_viewport_key"
+            app:title="@string/wide_viewport_preference"
+            app:summary="@string/wide_viewport_summary"
+            app:defaultValue="true" />
 
         <SwitchPreferenceCompat
-            android:key="@string/display_webpage_images_key"
-            android:title="@string/display_webpage_images"
-            android:summary="@string/display_webpage_images_summary"
-            android:defaultValue="true" />
+            app:key="@string/display_webpage_images_key"
+            app:title="@string/display_webpage_images"
+            app:summary="@string/display_webpage_images_summary"
+            app:defaultValue="true" />
     </PreferenceCategory>
 </PreferenceScreen>