]> gitweb.stoutner.com Git - PrivacyBrowserAndroid.git/commitdiff
Bump target API to 33. https://redmine.stoutner.com/issues/902
authorSoren Stoutner <soren@stoutner.com>
Fri, 9 Sep 2022 18:35:17 +0000 (11:35 -0700)
committerSoren Stoutner <soren@stoutner.com>
Fri, 9 Sep 2022 18:35:17 +0000 (11:35 -0700)
21 files changed:
app/build.gradle
app/src/main/assets/de/about_changelog.html
app/src/main/assets/en/about_changelog.html
app/src/main/assets/en/guide_local_storage.html
app/src/main/assets/es/about_changelog.html
app/src/main/assets/fr/about_changelog.html
app/src/main/assets/fr/guide_local_storage.html
app/src/main/assets/fr/guide_tracking_ids.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_local_storage.html
app/src/main/assets/ru/about_changelog.html
app/src/main/assets/tr/about_changelog.html
app/src/main/assets/tr/guide_local_storage.html
app/src/main/java/com/stoutner/privacybrowser/activities/LogcatActivity.kt
app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.java
app/src/main/java/com/stoutner/privacybrowser/fragments/AboutWebViewFragment.kt
app/src/main/res/values-fr/strings.xml
app/src/main/res/values/strings.xml
build.gradle
fastlane/metadata/android/fr-FR/changelogs/60.txt [new file with mode: 0644]

index 5cbe9ca96c711fd79fa482d8b9fb9e68a5e11097..e97548937ae5935633b4cf0deecad00ea6dbb999 100644 (file)
@@ -23,11 +23,11 @@ plugins {
 }
 
 android {
-    compileSdk 32
+    compileSdk 33
 
     defaultConfig {
         minSdk 23
-        targetSdk 32
+        targetSdk 33
         versionCode 60
         versionName "3.11"
     }
@@ -67,15 +67,16 @@ dependencies {
     // Include the following AndroidX libraries.
     implementation 'androidx.arch.core:core-common:2.1.0'
     implementation 'androidx.arch.core:core-runtime:2.1.0'
-    implementation 'androidx.appcompat:appcompat:1.4.2'
+    implementation 'androidx.appcompat:appcompat:1.5.1'
     implementation 'androidx.cardview:cardview:1.0.0'
     implementation 'androidx.coordinatorlayout:coordinatorlayout:1.2.0'
-    implementation 'androidx.core:core-ktx:1.8.0'
+    implementation 'androidx.core:core-ktx:1.9.0'
     implementation 'androidx.drawerlayout:drawerlayout:1.1.1'
+    implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1'
     implementation 'androidx.preference:preference-ktx:1.2.0'
     implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
     implementation 'androidx.viewpager:viewpager:1.0.0'
-    implementation 'androidx.webkit:webkit:1.4.0'
+    implementation 'androidx.webkit:webkit:1.5.0'
 
     // Include the Kotlin standard library.  This should be the same version number listed in project build.gradle.
     implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10'
index 8537586657bb360166067ac2e11c1ccbf48fbc65..4ed9fdc5bdf6a1fb840e945296f58359a1e45da2 100644 (file)
@@ -33,8 +33,8 @@
     </head>
 
     <body>
-        <h3>3.11 (Version Code 60)</h3>
-        <p>30. Juli 2022 - Mindest-API 23, Ziel-API 32</p>
+        <h3><a href="https://www.stoutner.com/privacy-browser-3-11/">3.11</a> (Version Code 60)</h3>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=aa9590ff1a1097733bdda217ce1fe6f1fc93afc3">30. Juli 2022</a> - Mindest-API 23, Ziel-API 32</p>
         <ul>
             <li>Option hinzugefügt, um den Standard-<a href="https://redmine.stoutner.com/issues/819">X-Requested-With header</a> zu verwenden.</li>
             <li>Alle auf privacytests.org gelisteten <a href="https://redmine.stoutner.com/issues/863">Tracking-Anfragen / -Queries in URLs</a> werden ab sofort blockiert.</li>
index bcb6446a365559665f20f8c21ace510ff8e5cf11..a5ca4f381b45a85eba308cbb89afcca5101f897b 100644 (file)
@@ -27,8 +27,8 @@
     </head>
 
     <body>
-        <h3>3.11 (version code 60)</h3>
-        <p>30 July 2022 - minimum API 23, target API 32</p>
+        <h3><a href="https://www.stoutner.com/privacy-browser-3-11/">3.11</a> (version code 60)</h3>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=aa9590ff1a1097733bdda217ce1fe6f1fc93afc3">30 July 2022</a> - minimum API 23, target API 32</p>
         <ul>
             <li>Create an option to use the default <a href="https://redmine.stoutner.com/issues/819">X-Requested-With header</a>.</li>
             <li>Block all the <a href="https://redmine.stoutner.com/issues/863">URL query trackers</a> listed at privacytests.org.</li>
index b4944761c3a522100c1fe0f6365edec049587a40..05d5a9b4ec542ed506a57d10c44d80ec0f0ea063 100644 (file)
@@ -43,7 +43,7 @@
         <p>Almost all websites with logins require cookies to be enabled for a user to log in.
             That is how they make sure it is still you as you move from page to page on the site, and is, in my opinion, the only legitimate use for cookies.</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.
+        <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.
index dd75884eabcc067815f7ff5c8270f1bc5f76b10e..d7d962cf52bc811df0f5c83c4525f6e601579fa3 100644 (file)
@@ -29,8 +29,8 @@
     </head>
 
     <body>
-        <h3>3.11 (código de versión 60)</h3>
-        <p>30 de julio de 2022 - API mínimo 23, API objetivo 32</p>
+        <h3><a href="https://www.stoutner.com/privacy-browser-3-11/">3.11</a> (código de versión 60)</h3>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=aa9590ff1a1097733bdda217ce1fe6f1fc93afc3">30 de julio de 2022</a> - API mínimo 23, API objetivo 32</p>
         <ul>
             <li>Crear una opción para usar la cabecera <a href="https://redmine.stoutner.com/issues/819">X-Requested-With predeterminada</a>.</li>
             <li>Bloquear todos los <a href="https://redmine.stoutner.com/issues/863">rastreadores de consultas de URL</a> listados en privacytests.org.</li>
index a5c7c884844c27e2cdc7332490f582f9687e4894..198273728d45b9b2ca7229600d9ba5a2730cf57f 100644 (file)
     </head>
 
     <body>
-        <h3>3.11 (version du code 60)</h3>
-        <p>30 Juillet 2022 - API minimale : 23, API optimale : 32</p>
-        <ul>
-            <li>Create an option to use the default <a href="https://redmine.stoutner.com/issues/819">X-Requested-With header</a>.</li>
-            <li>Block all the <a href="https://redmine.stoutner.com/issues/863">URL query trackers</a> listed at privacytests.org.</li>
-            <li>Add a <a href="https://redmine.stoutner.com/issues/838">Share Message</a> option.</li>
-            <li>Fix a bug that caused the bottom app bar to <a href="https://redmine.stoutner.com/issues/839">cover part of the website</a>.</li>
-            <li>Fix duplicate tabs sometimes being <a href="https://redmine.stoutner.com/issues/807">opened on restart</a>.</li>
-            <li>Display the bookmark opened in new tab snackbar <a href="https://redmine.stoutner.com/issues/818">above the bookmarks drawer</a>.</li>
-            <li>Add the <a href="https://redmine.stoutner.com/issues/815">kernel version</a> to About > Version.</li>
-            <li>Preserve the <a href="https://redmine.stoutner.com/issues/806">current bookmarks folder</a> on restart.</li>
-            <li>Change the <a href="https://redmine.stoutner.com/issues/817">default value</a> of the custom proxy URL to socks://localhost:9050.</li>
-            <li><a href="https://redmine.stoutner.com/issues/792">Add</a> <a href="https://redmine.stoutner.com/issues/789">various</a>
-                <a href="https://redmine.stoutner.com/issues/875">updates</a> to the Guide.</li>
-            <li>Make <a href="https://redmine.stoutner.com/issues/877">several</a> <a href="https://redmine.stoutner.com/issues/878">small</a>
-                <a href="https://redmine.stoutner.com/issues/879">UI</a> improvements.</li>
-            <li>Bump the <a href="https://redmine.stoutner.com/issues/828">target API to 32</a> (Android 12L).</li>
+        <h3><a href="https://www.stoutner.com/privacy-browser-3-11/">3.11</a> (version du code 60)</h3>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=aa9590ff1a1097733bdda217ce1fe6f1fc93afc3">30 Juillet 2022</a> - API minimale : 23, API optimale : 32</p>
+        <ul>
+            <li>Création d'une option pour utiliser <a href="https://redmine.stoutner.com/issues/819">l'en-tête X-Requested-With</a> par défaut.</li>
+            <li>Blocage de toutes les <a href="https://redmine.stoutner.com/issues/863">requêtes URL de pistage</a> listées dans privacytests.org.</li>
+            <li>Ajout d'une option <a href="https://redmine.stoutner.com/issues/838">Partager le message</a>.</li>
+            <li>Correction d'un bug qui causait le masquage d'une partie d'un site web par la <a href="https://redmine.stoutner.com/issues/839">barre applicative du bas de l'écran</a>.</li>
+            <li>Correction d'onglets parfois en double <a href="https://redmine.stoutner.com/issues/807">au redémarrage</a>.</li>
+            <li>Affichage du signet ouvert dans un nouvel onglet <a href="https://redmine.stoutner.com/issues/818">au-dessus du dossier de signets</a>.</li>
+            <li>Ajout de la <a href="https://redmine.stoutner.com/issues/815">version du noyau</a> dans A propos > Version.</li>
+            <li>Conservation du <a href="https://redmine.stoutner.com/issues/806">dossier courant des signets</a> au redémarrage.</li>
+            <li>Changement de la <a href="https://redmine.stoutner.com/issues/817">valeur par défaut</a> de l'URL du proxy personnalisé en socks://localhost:9050.</li>
+            <li><a href="https://redmine.stoutner.com/issues/792">Ajout</a> <a href="https://redmine.stoutner.com/issues/789">de diverses</a>
+                <a href="https://redmine.stoutner.com/issues/875">mises à jour</a> au Guide.</li>
+            <li>Développement <a href="https://redmine.stoutner.com/issues/877">de divers</a> <a href="https://redmine.stoutner.com/issues/878">petites</a>
+                <a href="https://redmine.stoutner.com/issues/879">UI</a> améliorations.</li>
+            <li>Passage de <a href="https://redmine.stoutner.com/issues/828">l'API cible à 32</a> (Android 12L).</li>
             <li>Traduction française mise à jour fournie par <a href="mailto:kevinliste@framalistes.org">Kévin L</a>.</li>
         </ul>
 
index 88f409ac9b70db190ae14be8ba580636cb5442d9..985b6792292d3ab015af48b26aef56c1a4a1be1d 100644 (file)
@@ -1,7 +1,7 @@
 <!--
   Copyright © 2016-2018,2020-2022 Soren Stoutner <soren@stoutner.com>.
 
-  Translation 2019,2021 Kévin L. <kevinliste@framalistes.org>.  Copyright assigned to Soren Stoutner <soren@stoutner.com>.
+  Translation 2019,2021-2022 Kévin L. <kevinliste@framalistes.org>.  Copyright assigned to Soren Stoutner <soren@stoutner.com>.
 
   This file is part of Privacy Browser Android <https://www.stoutner.com/privacy-browser-android>.
 
         <p>La quasi-totalité des sites web avec des identifiants nécessitent que les cookies soient activés pour qu'un utilisateur puisse se connecter.
             C'est ainsi qu'ils s'assurent qu'il s'agit toujours de vous lorsque vous passez d'une page à l'autre du site, et c'est, à mon avis, la seule utilisation légitime des cookies.</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>Le système WebView d'Android traite les cookies comme un paramètre au niveau de l'application,
+            ce qui signifie que les cookies sont soit activés soit désactivés pour tous les onglets de Privacy Browser.
+            Le résultat est que le paramètre des cookies pour l'onglet actuellement affiché contrôle également le paramètre des cookies pour tous les onglets en arrière-plan.
+            Si vous avez un onglet en arrière-plan dont les cookies sont activés pour que vous puissiez être connecté à un site Web, et que vous passez à un onglet dont les cookies ne sont pas activés,
+            les cookies sont désactivés pour tous les onglets.
+            Si l'onglet d'arrière-plan fait une demande, par exemple, pour voir s'il y a des informations mises à jour, cette demande sera envoyée sans cookies, ce qui fera que le site web vous déconnectera.
+            Il s'agit d'une limitation qui sera supprimée avec la sortie de <a href="https://www.stoutner.com/category/privacy-browser-android-roadmap/">Privacy WebView</a> dans la série 4.x.</p>
 
         <p>Si les cookies sont activés mais que JavaScript est désactivé, l'icône de confidentialité sera jaune <img class="inline" src="../shared_images/warning.svg"> en guise d'avertissement.</p>
 
             Ainsi, les contrôles des données de formulaire n'apparaissent plus sur les appareils Android plus récents.</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> Nettoyer et Quitter<</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>La fonction Nettoyer et Quitter s'exécute chaque fois que le dernier onglet est fermé ou que Nettoyer et Quitter est sélectionnée dans le menu de navigation.
+            Par défaut, elle efface les cookies, le stockage DOM, les données de formulaire, le logcat et le cache WebView.
+            Ensuite, elle supprime manuellement l'ensemble des répertoires <code>app_webview</code> et <code>cache</code>. Le comportement de Nettoyer et Quitter peut être configuré dans les paramètres.</p>
     </body>
 </html>
\ No newline at end of file
index e0f6e164e3f0741ed04a3fa7784e43d915d47f6f..0ea967e16057a8ef5c1fb08f2c14cc5b7e4d9b19 100644 (file)
@@ -1,7 +1,7 @@
 <!--
   Copyright © 2016-2022 Soren Stoutner <soren@stoutner.com>.
 
-  Translation 2019,2021 Kévin L. <kevinliste@framalistes.org>.  Copyright assigned to Soren Stoutner <soren@stoutner.com>.
+  Translation 2019,2021-2022 Kévin L. <kevinliste@framalistes.org>.  Copyright assigned to Soren Stoutner <soren@stoutner.com>.
 
   This file is part of Privacy Browser Android <https://www.stoutner.com/privacy-browser-android>.
 
 
         <h3><svg class="header"><use href="../shared_images/link_off.svg#icon"/></svg> Modification d'URLs</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 supprime les ID de suivi et les redirections AMP (<a href="https://en.wikipedia.org/wiki/Accelerated_Mobile_Pages">Accelerated Mobile Pages</a>) des requêtes URL.
+            Il existe un article de blog qui est mis à jour avec la <a href="https://www.stoutner.com/url-modification/">liste actuelle</a> des modifications.
+            La modification des URL peut être désactivée dans les paramètres si elle pose des problèmes.</p>
 
 
-        <h3><svg class="header"><use href="../shared_images/disabled_by_default.svg#icon"/></svg> X-Requested-With Header</h3>
+        <h3><svg class="header"><use href="../shared_images/disabled_by_default.svg#icon"/></svg> En-tête X-Requested-With</h3>
 
-        <p>Google programmed Android’s WebView to send an X-Requested-With header with every request.
-            The value of the X-Requested-With header is set to the application ID, which in the case of Privacy Browser is <code>com.stoutner.privacybrowser.standard</code>.
-            Currently, it isn't possible to remove this header, but the value can be changed. By default, Privacy Browser sends a null (empty) value for the X-Requested-With header.
-            Even though the spec allows for null header values, some web servers don't like them, so Privacy Browser has the option to revert to the default behavior of sending the app ID.
-            Because this setting is cached when a URL is first loaded, and isn't changed when reloading a page or navigating history,
-            changes to this setting may not be applied until Privacy Browser is restarted.
-            There is a <a href="https://www.stoutner.com/the-x-requested-with-header/">blog post</a> with additional information.
-            The X-Requested-With header will be <a href="https://redmine.stoutner.com/issues/37">completely removed</a> in the 4.x series with the release of Privacy WebView.</p>
+        <p>Google a programmé WebView d'Android pour envoyer un en-tête X-Requested-With avec chaque requête.
+            La valeur de l'en-tête X-Requested-With est définie par l'ID de l'application, qui dans le cas de Privacy Browser est <code>com.stoutner.privacybrowser.standard</code>.
+            Actuellement, il n'est pas possible de supprimer cet en-tête, mais la valeur peut être modifiée. Par défaut, Privacy Browser envoie une valeur nulle (vide) pour l'en-tête X-Requested-With.
+            Même si la spécification permet des valeurs d'en-tête nulles, certains serveurs web ne les aiment pas,
+            donc Privacy Browser a l'option de revenir au comportement par défaut d'envoyer l'ID de l'application.
+            Parce que ce paramètre est mis en cache lors du premier chargement d'une URL, et n'est pas modifié lors du rechargement d'une page ou de la navigation dans l'historique,
+            les modifications de ce paramètre peuvent ne pas être appliquées jusqu'à ce que Privacy Browser soit redémarré.
+            Il y a un <a href="https://www.stoutner.com/the-x-requested-with-header/">article de blog</a> avec des informations complémentaires.
+            L'en-tête X-Requested-With sera <a href="https://redmine.stoutner.com/issues/37">complètement supprimé</a> dans la série 4.x avec la sortie de Privacy WebView.</p>
     </body>
 </html>
\ No newline at end of file
index 1ba5dccdfa0f1f3b65543e7e77970a7fdb0d60a0..d118cdbbd96f60fafcdf6eddd87d4dd57608e91c 100644 (file)
@@ -29,8 +29,8 @@
     </head>
 
     <body>
-        <h3>3.11 (versione codice 60)</h3>
-        <p>30 Luglio 2022 - minima API 23, target API 32</p>
+        <h3><a href="https://www.stoutner.com/privacy-browser-3-11/">3.11</a> (versione codice 60)</h3>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=aa9590ff1a1097733bdda217ce1fe6f1fc93afc3">30 Luglio 2022</a> - minima API 23, target API 32</p>
         <ul>
             <li>Aggiunta un'opzione per utilizzare l'<a href="https://redmine.stoutner.com/issues/819">intestazione X-Requested-With header</a> di default.</li>
             <li>Blocco di tutte le <a href="https://redmine.stoutner.com/issues/863">query di tracciamento delle URL</a> elencate su privacytests.org.</li>
index 4bd1cf1f4e6aca00e6e46b6b67203af617334287..d2319f24ad8e6184e301979a3d8c00e3d2bf95b9 100644 (file)
@@ -29,8 +29,8 @@
     </head>
 
     <body>
-        <h3>3.11 (código da versão 60)</h3>
-        <p>30 Julho 2022 - API mínimo 23, API alvo API 32</p>
+        <h3><a href="https://www.stoutner.com/privacy-browser-3-11/">3.11</a> (código da versão 60)</h3>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=aa9590ff1a1097733bdda217ce1fe6f1fc93afc3">30 Julho 2022</a> - API mínimo 23, API alvo API 32</p>
         <ul>
             <li>Create an option to use the default <a href="https://redmine.stoutner.com/issues/819">X-Requested-With header</a>.</li>
             <li>Block all the <a href="https://redmine.stoutner.com/issues/863">URL query trackers</a> listed at privacytests.org.</li>
index 030dea0794ee7fd8fe2603ccda23a0bb4c792066..2523f75a54bffbf73332028d815ed8c8de0eff23 100644 (file)
@@ -45,7 +45,7 @@
         <p>Quase todos os sites com logins exigem que os cookies sejam ativados para o login do usuário.
             É assim que eles se certificam de que ainda é você conforme você passa de uma página para outra no site, e é, na minha opinião, o único uso legítimo para cookies.</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.
+        <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.
index 481c8593fadbb28e2da81350c78bc5aee8611080..0047d3fa2aff9fc5e9e4a26d90b71c0dd950b407 100644 (file)
@@ -27,8 +27,8 @@
     </head>
 
     <body>
-        <h3>3.11 (код версии 60)</h3>
-        <p>30 июля 2022 года - минимальный API 23, целевой API 32</p>
+        <h3><a href="https://www.stoutner.com/privacy-browser-3-11/">3.11</a> (код версии 60)</h3>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=aa9590ff1a1097733bdda217ce1fe6f1fc93afc3">30 июля 2022 года</a> - минимальный API 23, целевой API 32</p>
         <ul>
             <li>Добавлена опция для использования по умолчанию <a href="https://redmine.stoutner.com/issues/819">заголовка X-Requested-With</a>.</li>
             <li>Заблокированы все <a href="https://redmine.stoutner.com/issues/863">трекеры URL</a>, перечисленные на  privacytests.org.</li>
index f0ef2341da01d1fd2bc3309a2513da2401565dc5..8ca839501a66b2d15c116f3d944ef2c8e8b2ec2a 100644 (file)
@@ -27,8 +27,8 @@
     </head>
 
     <body>
-        <h3>3.11 (version code 60)</h3>
-        <p>30 Temmuz 2022 - minimum API 23, target API 32</p>
+        <h3><a href="https://www.stoutner.com/privacy-browser-3-11/">3.11</a> (version code 60)</h3>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=aa9590ff1a1097733bdda217ce1fe6f1fc93afc3">30 Temmuz 2022</a> - minimum API 23, target API 32</p>
         <ul>
             <li>Create an option to use the default <a href="https://redmine.stoutner.com/issues/819">X-Requested-With header</a>.</li>
             <li>Block all the <a href="https://redmine.stoutner.com/issues/863">URL query trackers</a> listed at privacytests.org.</li>
index 5d41db2d6af848c02c1d7cb91eb705a79e627ebf..1f643df28940c1c2c223b5acbab2c1ecbb476210 100644 (file)
@@ -44,7 +44,7 @@
         <p>Almost all websites with logins require cookies to be enabled for a user to log in.
             That is how they make sure it is still you as you move from page to page on the site, and is, in my opinion, the only legitimate use for cookies.</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.
+        <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.
index a3af538030258d4592c87289c892df441a866173..9d9d5d53cb220279a77e625dce42e148ca2efa22 100644 (file)
@@ -62,7 +62,7 @@ class LogcatActivity : AppCompatActivity() {
     private lateinit var logcatTextView: TextView
 
     // Define the save logcat activity result launcher.  It must be defined before `onCreate()` is run or the app will crash.
-    private val saveLogcatActivityResultLauncher = registerForActivityResult(ActivityResultContracts.CreateDocument()) { fileUri: Uri? ->
+    private val saveLogcatActivityResultLauncher = registerForActivityResult(ActivityResultContracts.CreateDocument("text/plain")) { fileUri: Uri? ->
         // Only save the file if the URI is not null, which happens if the user exited the file picker by pressing back.
         if (fileUri != null) {
             try {
index 00daf658c139de34166822781512713255bf19eb..8307df69c4deb2b25cea420966f509d46a5810e0 100644 (file)
@@ -368,7 +368,7 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook
     private Activity resultLauncherActivityHandle;
 
     // Define the save URL activity result launcher.  It must be defined before `onCreate()` is run or the app will crash.
-    private final ActivityResultLauncher<String> saveUrlActivityResultLauncher = registerForActivityResult(new ActivityResultContracts.CreateDocument(),
+    private final ActivityResultLauncher<String> saveUrlActivityResultLauncher = registerForActivityResult(new ActivityResultContracts.CreateDocument("text/*"),
             new ActivityResultCallback<Uri>() {
                 @Override
                 public void onActivityResult(Uri fileUri) {
@@ -383,7 +383,7 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook
             });
 
     // Define the save webpage archive activity result launcher.  It must be defined before `onCreate()` is run or the app will crash.
-    private final ActivityResultLauncher<String> saveWebpageArchiveActivityResultLauncher = registerForActivityResult(new ActivityResultContracts.CreateDocument(),
+    private final ActivityResultLauncher<String> saveWebpageArchiveActivityResultLauncher = registerForActivityResult(new ActivityResultContracts.CreateDocument("multipart/related"),
             new ActivityResultCallback<Uri>() {
                 @Override
                 public void onActivityResult(Uri fileUri) {
@@ -460,7 +460,7 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook
             });
 
     // Define the save webpage image activity result launcher.  It must be defined before `onCreate()` is run or the app will crash.
-    private final ActivityResultLauncher<String> saveWebpageImageActivityResultLauncher = registerForActivityResult(new ActivityResultContracts.CreateDocument(),
+    private final ActivityResultLauncher<String> saveWebpageImageActivityResultLauncher = registerForActivityResult(new ActivityResultContracts.CreateDocument("image/png"),
             new ActivityResultCallback<Uri>() {
                 @Override
                 public void onActivityResult(Uri fileUri) {
@@ -4855,7 +4855,7 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook
 
                 // Delete the secondary `Service Worker` cache directory.
                 // A string array must be used because the directory contains a space and `Runtime.exec` will otherwise not escape the string correctly.
-                Process deleteServiceWorkerProcess = runtime.exec(new String[] {"rm", "-rf", privateDataDirectoryString + "/app_webview/Service Worker/"});
+                Process deleteServiceWorkerProcess = runtime.exec(new String[] {"rm", "-rf", privateDataDirectoryString + "/app_webview/Default/Service Worker/"});
 
                 // Wait until the processes have finished.
                 deleteCacheProcess.waitFor();
@@ -6026,6 +6026,10 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook
                     }
                 }
 
+                 // Get the application's private data directory, which will be something like `/data/user/0/com.stoutner.privacybrowser.standard`,
+                // which links to `/data/data/com.stoutner.privacybrowser.standard`.
+                String privateDataDirectoryString = getApplicationInfo().dataDir;
+
                 // Clear the cache, history, and logcat if Incognito Mode is enabled.
                 if (incognitoModeEnabled) {
                     // Clear the cache.  `true` includes disk files.
@@ -6036,16 +6040,8 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook
 
                     // Manually delete cache folders.
                     try {
-                        // Get the application's private data directory, which will be something like `/data/user/0/com.stoutner.privacybrowser.standard`,
-                        // which links to `/data/data/com.stoutner.privacybrowser.standard`.
-                        String privateDataDirectoryString = getApplicationInfo().dataDir;
-
                         // Delete the main cache directory.
                         Runtime.getRuntime().exec("rm -rf " + privateDataDirectoryString + "/cache");
-
-                        // Delete the secondary `Service Worker` cache directory.
-                        // A `String[]` must be used because the directory contains a space and `Runtime.exec` will not escape the string correctly otherwise.
-                        Runtime.getRuntime().exec(new String[]{"rm", "-rf", privateDataDirectoryString + "/app_webview/Service Worker/"});
                     } catch (IOException exception) {
                         // Do nothing if an error is thrown.
                     }
@@ -6059,6 +6055,14 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook
                     }
                 }
 
+                // Clear the `Service Worker` directory.
+                try {
+                    // A `String[]` must be used because the directory contains a space and `Runtime.exec` will not escape the string correctly otherwise.
+                    Runtime.getRuntime().exec(new String[]{"rm", "-rf", privateDataDirectoryString + "/app_webview/Default/Service Worker/"});
+                } catch (IOException exception) {
+                    // Do nothing.
+                }
+
                 // Get the current page position.
                 int currentPagePosition = webViewPagerAdapter.getPositionForId(nestedScrollWebView.getWebViewFragmentId());
 
index 3b516ec546d53b5824f51f3ffdc4a1348999f611..87ee8a64dc5497f443cd44f09d439dd2b86de531 100644 (file)
@@ -22,6 +22,7 @@ package com.stoutner.privacybrowser.fragments
 import android.content.Intent
 import android.content.res.Configuration
 import android.net.Uri
+import android.os.Build
 import android.os.Bundle
 import android.view.LayoutInflater
 import android.view.View
@@ -116,9 +117,10 @@ class AboutWebViewFragment : Fragment() {
         // Get the current theme status.
         val currentThemeStatus = resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK
 
-        // Check to see if the app is in night mode.
-        if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES && WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK)) {  // The app is in night mode.
+        // Check to see if the app is in night mode.  This can be removed once the minimum API >= 33.
+        if ((Build.VERSION.SDK_INT < 33) && (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) && (WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK))) {  // The app is in night mode.
             // Apply the dark WebView theme.
+            @Suppress("DEPRECATION")
             WebSettingsCompat.setForceDark(tabWebView.settings, WebSettingsCompat.FORCE_DARK_ON)
         }
 
index 20a6c436d080010f092943f03df6566205516c47..c49910b560870ba9a33b62d5f352c26dfd9eb3aa 100644 (file)
     <string name="domain_name">Nom de demaine</string>
     <string name="domain_deleted">Domaine supprimé</string>
     <string name="domain_name_instructions">Faire précéder par *. pour inclure l\'ensemble des sous-domaines (ex. *.stoutner.com)</string>
+    <string-array name="x_requested_with_header_array">
+        <item>Réglages système</item>
+        <item>En-tête X-Requested-With activé</item>
+        <item>En-tête X-Requested-With désactivé</item>
+    </string-array>
     <string-array name="font_size_array">
         <item>Réglages système</item>
         <item>Taille de police personnalisée</item>
             <item>Personnalisé</item>
         </string-array>
         <string name="custom_user_agent">User agent personnalisé</string>
+        <string name="x_requested_with_header">En-tête X-Requested-With</string>
+        <string name="x_requested_with_header_summary">Lorsque activé, Privacy Browser envoie une valeur nulle pour l\'en-tête X-Requested-With.
+            En général, ce n\'est pas un problème, mais certains sites Web ne l\'apprécient pas. La modification de ce paramètre entraînera le redémarrage de Privacy Browser.</string>
+        <string name="x_requested_with_header_explanation">Les modifications apportées à l\'en-tête X-Requested-With peuvent ne pas être appliquées avant le redémarrage de Privacy Browser.</string>
         <string name="incognito_mode">Mode Incognito</string>
         <string name="incognito_mode_summary">Vider l\'historique et le cache après le chargement de chaque page.
             Dans le mode Incognito, le bouton Retour ferme l\'onglet (ou l\'application s\'il n\'y a qu\'un seul onglet).</string>
         <string name="block_all_third_party_requests">Bloquer toutes les requêtes tierces</string>
         <string name="block_all_third_party_requests_summary">Le blocage de toutes les requêtes tierces augmente la vie privée, mais détruit de nombreux sites Web.</string>
     <string name="url_modification">Modifications d\'URL</string>
+        <string name="tracking_queries">Requêtes de pistage</string>
+        <string name="tracking_queries_summary">Supprimer les requêtes de suivi connues des URL.</string>
+        <string name="amp_redirects">Redirections AMP</string>
+        <string name="amp_redirects_summary">Supprimer les requêtes de redirection AMP (Accelerated Mobil Pages) connues des URLs.</string>
     <string name="search">Moteur de Recherche</string>
         <string-array name="search_entries">
             <item>Mojeek</item>
index 9d4655ffe38733765ff3c27e3b798472bdb506c9..cb9da095336e1fcf0e95d275397dcf872f217918 100644 (file)
             <item>WebView default user agent</item>  <!-- This item must not be translated into other languages because it is referenced in code.  It is never displayed on the screen. -->
             <item>Mozilla/5.0 (Android 12; Mobile; rv:102.0) Gecko/102.0 Firefox/102.0</item>
             <item>Mozilla/5.0 (Linux; Android 12; Pixel 5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Mobile Safari/537.36</item>
-            <item>Mozilla/5.0 (iPhone; CPU iPhone OS 15_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.3 Mobile/15E148 Safari/604.1</item>
+            <item>Mozilla/5.0 (iPhone; CPU iPhone OS 15_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.5 Mobile/15E148 Safari/604.1</item>
             <item>Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0</item>
             <item>Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36</item>
             <item>Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:103.0) Gecko/20100101 Firefox/103.0</item>
             <item>Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36</item>
             <item>Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.71</item>
-            <item>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15</item>
+            <item>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.5 Safari/605.1.15</item>
             <item>Custom user agent</item>  <!-- This item must not be translated into other languages because it is referenced in code.  It is never displayed on the screen. -->
         </string-array>
         <string name="custom_user_agent">Custom user agent</string>
index 68c5ada8f4290a0f65f7c99f4b2589b169492afb..754dd4c176c1ccf8538a90439ef33781c229dcc0 100644 (file)
@@ -26,7 +26,7 @@ buildscript {
     }
 
     dependencies {
-        classpath 'com.android.tools.build:gradle:7.2.1'
+        classpath 'com.android.tools.build:gradle:7.2.2'
         classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.10"
 
         // NOTE: Do not place your application dependencies here; they belong
diff --git a/fastlane/metadata/android/fr-FR/changelogs/60.txt b/fastlane/metadata/android/fr-FR/changelogs/60.txt
new file mode 100644 (file)
index 0000000..994c8c5
--- /dev/null
@@ -0,0 +1,13 @@
+• Création d'une option pour utiliser l'en-tête X-Requested-With par défaut.
+• Blocage de toutes les requêtes URL de pistage listées dans privacytests.org.
+• Ajout d'une option Partager le message.
+• Correction d'un bug qui causait le masquage d'une partie d'un site web par la barre applicative du bas de l'écran.
+• Correction d'onglets parfois en double au redémarrage.
+• Affichage du signet ouvert dans un nouvel onglet au-dessus du dossier de signets.
+• Ajout de la version du noyau dans A propos > Version.
+• Conservation du dossier courant des signets au redémarrage.
+• Changement de la valeur par défaut de l'URL du proxy personnalisé en socks://localhost:9050.
+• Ajout de diverses mises à jour au Guide.
+• Développement de divers petites UI améliorations.
+• Passage de l'API cible à 32 (Android 12L).
+• Traduction française mise à jour fournie par Kévin L.
\ No newline at end of file