]> gitweb.stoutner.com Git - PrivacyCell.git/commitdiff
Release 1.10. master v1.10
authorSoren Stoutner <soren@stoutner.com>
Mon, 30 Oct 2023 19:10:55 +0000 (12:10 -0700)
committerSoren Stoutner <soren@stoutner.com>
Mon, 30 Oct 2023 19:10:55 +0000 (12:10 -0700)
55 files changed:
COPYING
app/build.gradle
app/src/main/AndroidManifest.xml
app/src/main/assets/de/changelog.html
app/src/main/assets/de/licenses.html
app/src/main/assets/de/permissions.html
app/src/main/assets/en/changelog.html
app/src/main/assets/en/licenses.html
app/src/main/assets/en/permissions.html
app/src/main/assets/es/changelog.html
app/src/main/assets/es/licenses.html
app/src/main/assets/es/permissions.html
app/src/main/assets/fr/changelog.html
app/src/main/assets/fr/licenses.html
app/src/main/assets/fr/permissions.html
app/src/main/assets/images/list_alt_rounded.svg [deleted file]
app/src/main/assets/images/list_alt_rounded_24.svg [new file with mode: 0644]
app/src/main/assets/it/changelog.html
app/src/main/assets/it/licenses.html
app/src/main/assets/it/permissions.html
app/src/main/assets/ru/changelog.html
app/src/main/assets/ru/licenses.html
app/src/main/assets/ru/permissions.html
app/src/main/java/com/stoutner/privacycell/fragments/SettingsFragment.kt
app/src/main/java/com/stoutner/privacycell/helpers/ProtocolHelper.kt
app/src/main/java/com/stoutner/privacycell/receivers/OnBootCompletedReceiver.kt
app/src/main/java/com/stoutner/privacycell/services/RealtimeMonitoringService.kt
app/src/main/java/com/stoutner/privacycell/workers/RegisterRealtimeListenerWorker.kt
app/src/main/java/com/stoutner/privacycell/workers/RestartServiceWorker.kt
app/src/main/res/drawable/antiquated_3g_disabled.xml
app/src/main/res/drawable/antiquated_3g_enabled.xml
app/src/main/res/drawable/bug_tracker.xml
app/src/main/res/drawable/logcat.xml
app/src/main/res/drawable/privacy_cell_monochrome.xml [new file with mode: 0644]
app/src/main/res/drawable/secure_notification_disabled.xml
app/src/main/res/drawable/secure_notification_enabled.xml
app/src/main/res/drawable/secure_notification_ghosted.xml
app/src/main/res/drawable/settings.xml
app/src/main/res/layout/webview_dialog.xml
app/src/main/res/mipmap-anydpi-v26/privacy_cell.xml [deleted file]
app/src/main/res/mipmap/privacy_cell.xml [new file with mode: 0644]
app/src/main/res/values-ru/strings.xml
app/src/main/res/xml/locales_config.xml [new file with mode: 0644]
build.gradle
fastlane/metadata/android/de-DE/changelogs/11.txt [new file with mode: 0644]
fastlane/metadata/android/en-US/changelogs/11.txt [new file with mode: 0644]
fastlane/metadata/android/en-US/changelogs/12.txt [new file with mode: 0644]
fastlane/metadata/android/es-ES/changelogs/11.txt [new file with mode: 0644]
fastlane/metadata/android/es-ES/changelogs/12.txt [new file with mode: 0644]
fastlane/metadata/android/fr-FR/changelogs/11.txt [new file with mode: 0644]
fastlane/metadata/android/it-IT/changelogs/11.txt [new file with mode: 0644]
fastlane/metadata/android/ru-RU/changelogs/11.txt [new file with mode: 0644]
fastlane/metadata/android/ru-RU/changelogs/12.txt [new file with mode: 0644]
gradle.properties
gradle/wrapper/gradle-wrapper.properties

diff --git a/COPYING b/COPYING
index aa4972b9c554a871dbea8d73512e1ecda907c41d..1f575758110b7dce179c8571e888499b441b5552 100644 (file)
--- a/COPYING
+++ b/COPYING
@@ -1,4 +1,4 @@
-Privacy Cell copyright © 2021-2022 Soren Stoutner <soren@stoutner.com>.
+Privacy Cell copyright © 2021-2023 Soren Stoutner <soren@stoutner.com>.
 
 This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
 
index 160ef730ed34285779b16ad50342944abc672102..766effbe0a3c9022bf79e9c00c47d1f430b74272 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2021-2022 Soren Stoutner <soren@stoutner.com>.
+ * Copyright 2021-2023 Soren Stoutner <soren@stoutner.com>.
  *
  * This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
  *
@@ -23,14 +23,26 @@ plugins {
 }
 
 android {
-    compileSdk 33
+    compileSdk 34
 
     defaultConfig {
         applicationId "com.stoutner.privacycell"
         minSdk 30
-        targetSdk 33
-        versionCode 10
-        versionName "1.8.1"
+        targetSdk 34
+        versionCode 12
+        versionName "1.10"
+        resourceConfigurations += ['en', 'de', 'es', 'fr', 'it', 'ru']
+    }
+
+    // Specify the compile Java version.  This must match the Kotlin JVM target.  For some reason the system was not setting this correctly.  These can probably be removed in the future.
+    compileOptions {
+        sourceCompatibility JavaVersion.VERSION_17
+        targetCompatibility JavaVersion.VERSION_17
+    }
+
+    // Specify the Kotlin JVM target.  This must match the compile Java version.  For some reason the system was not setting this correctly.  These can probably be removed in the future.
+    kotlinOptions {
+        jvmTarget = 17
     }
 
     buildTypes {
@@ -51,17 +63,17 @@ android {
 
 dependencies {
     // Include the following AndroidX libraries.
-    implementation 'androidx.appcompat:appcompat:1.5.1'
-    implementation 'androidx.core:core-ktx:1.9.0'
-    implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1'
-    implementation 'androidx.preference:preference-ktx:1.2.0'
+    implementation 'androidx.appcompat:appcompat:1.6.1'
+    implementation 'androidx.core:core-ktx:1.12.0'
+    implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2'
+    implementation 'androidx.preference:preference-ktx:1.2.1'
     implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
-    implementation 'androidx.webkit:webkit:1.5.0'
-    implementation 'androidx.work:work-runtime-ktx:2.7.1'
+    implementation 'androidx.webkit:webkit:1.8.0'
+    implementation 'androidx.work:work-runtime-ktx:2.8.1'
 
     // Include the Kotlin standard library.  This should be the same version number listed in the project build.gradle.
-    implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.20'
+    implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22'
 
     // Include the Google material library.
-    implementation 'com.google.android.material:material:1.7.0'
+    implementation 'com.google.android.material:material:1.10.0'
 }
index f79605c1cd9c9d41031a31c980dad4b226e34b8e..7a0c5ca1a2d4b6b981468101c3e1bcda604786fe 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 
 <!--
-  Copyright 2021-2022 Soren Stoutner <soren@stoutner.com>.
+  Copyright 2021-2023 Soren Stoutner <soren@stoutner.com>.
 
   This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
 
     <!-- Required to display a notification.  <Dangerous permission> -->
     <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
 
-    <!-- Required to run a foreground service (which is the only type of service that can display notifications). -->
-    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
-
     <!-- Required to start the realtime notification icon at boot. -->
     <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
 
+    <!-- Required to run a foreground service (which is the only type of service that can display notifications). -->
+    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
+    <uses-permission android:name="android.permission.FOREGROUND_SERVICE_SPECIAL_USE" />
+
     <!-- Disabled the unneeded permissions that are automatically added by `androidx.work`.  <https://developer.android.com/reference/androidx/work/package-summary> -->
     <uses-permission android:name="android.permission.WAKE_LOCK" tools:node="remove" />
     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" tools:node="remove" />
     <!-- Support Chromebooks that don't have a touch screen. -->
     <uses-feature android:name="android.hardware.touchscreen" android:required="false" />
 
-    <!-- App data is automatically backed up to Google cloud servers unless `android:allowBackup="false"` and `android:fullBackupContent="false"` is set.
-        `tools:ignore="DataExtractionRules` removes the warning that backups can still transfer data device to device. -->
+    <!-- `tools:ignore="UnusedAttribute` removes the warning that `android:localeConfig` only applies to API >= 33. -->
     <application
         android:label="@string/privacy_cell"
         android:icon="@mipmap/privacy_cell"
-        android:allowBackup="false"
-        android:fullBackupContent="false"
         android:supportsRtl="true"
         android:theme="@style/Theme.PrivacyCell"
-        tools:ignore="DataExtractionRules" >
+        android:localeConfig="@xml/locales_config"
+        tools:ignore="UnusedAttribute" >
 
         <!-- Privacy Cell Activity.  The label uses the short name so that it isn't truncated under the icon in the launcher on most phones.
             `android:launchMode="singleTask"` makes the app launch in a new task instead of inside the task of the program that sends it an intent.
             android:screenOrientation="fullUser" />
 
         <!-- Realtime Monitoring Service. -->
-        <service android:name=".services.RealtimeMonitoringService" />
+        <service
+            android:name=".services.RealtimeMonitoringService"
+            android:foregroundServiceType="specialUse" >
+
+            <property
+                android:name="android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE"
+                android:value="Displays current cell protocol security information." />
+        </service>
 
         <!-- On Boot Completed Receiver. -->
         <receiver
index 611653c4c84f0665481076d5d93aad4faa2db0e7..0689f8d64c54f5071f41e64029100e132fdd4a78 100644 (file)
@@ -1,7 +1,7 @@
 <!--
-  Copyright © 2021-2022 Soren Stoutner <soren@stoutner.com>.
+  Copyright 2021-2023 Soren Stoutner <soren@stoutner.com>.
 
-  Translation 2021-2022 Bernhard G. Keller.  Copyright assigned to Soren Stoutner <soren@stoutner.com>.
+  Translation 2021-2023 Bernhard G. Keller.  Copyright assigned to Soren Stoutner <soren@stoutner.com>.
 
   This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
 
     </head>
 
     <body>
+        <h3>1.10 (Version Code 12)</h3>
+        <p>30. Oktober 2023 - Mindest-API 30, Ziel-API 34</p>
+        <ul>
+            <li>Create an optional <a href="https://redmine.stoutner.com/issues/988">monochrome icon</a> (can be used in Android >= 13).</li>
+            <li>Allow Privacy Cell to be included in <a href="https://redmine.stoutner.com/issues/1001">system backups</a>.</li>
+            <li>Bump the <a href="https://redmine.stoutner.com/issues/1104">target API to 34</a> (Android 14).</li>
+            <li>Document <a href="https://redmine.stoutner.com/issues/940">permissions needed</a> for <a href="https://redmine.stoutner.com/issues/942">newer versions of Android</a>.</li>
+            <li>Repopulate the realtime monitoring notification every <a href="https://redmine.stoutner.com/issues/1105">15 minutes</a>.</li>
+            <li>Erste komplette deutsche Übersetzung von Bernhard G. Keller.</li>
+        </ul>
+
+        <h3><a href="https://www.stoutner.com/privacy-cell-1-9/">1.9</a> (Version Code 11)</h3>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyCell.git;a=commitdiff;h=53f5dd586d2e9eb38280648b9084db15163fe682">5. Dezember 2022</a> - Mindest-API 30, Ziel-API 33</p>
+        <ul>
+            <li><a href="https://redmine.stoutner.com/issues/890">Ziel-API auf 33</a> (Android 13) angehoben.</li>
+            <li><a href="https://redmine.stoutner.com/issues/894">Wischgeste zum zum Ablehnen</a> der Benachrichtigungen des Echtzeit-Monitorings unter  Android 13 deaktiviert.</li>
+            <li><a href="https://redmine.stoutner.com/issues/935">App-Sprachauswahl</a> zur Auswahl der Sprache von Privacy Cell unter Android 13 hinzugefügt.</li>
+            <li><a href="https://redmine.stoutner.com/issues/913">Scroll-Position im Einstellungs-Dialog</a> wird nun bei Neustarts beibehalten.</li>
+            <li>Erste komplette deutsche Übersetzung von Bernhard G. Keller.</li>
+        </ul>
+
         <h3><a href="https://www.stoutner.com/privacy-cell-1-8-1/">1.8.1</a> (Version Code 10)</h3>
         <p><a href="https://gitweb.stoutner.com/?p=PrivacyCell.git;a=commitdiff;h=ab7601a6d91b6035862bb47b1ac259855e3aba3b">8. August 2022</a> - Mindest-API 30, Ziel-API 32</p>
         <ul>
             <li>Erst-Veröffentlichung.</li>
         </ul>
     </body>
-</html>
\ No newline at end of file
+</html>
index a0143c889a77119d82ceee41d3de608b98f6fba3..209cf52e63f2766ff12f178a10e97d745bc6dc86 100644 (file)
@@ -1,5 +1,5 @@
 <!--
-  Copyright 2021-2022 Soren Stoutner <soren@stoutner.com>.
+  Copyright 2021-2023 Soren Stoutner <soren@stoutner.com>.
 
   Translation 2021-2022 Bernhard G. Keller.  Copyright assigned to Soren Stoutner <soren@stoutner.com>.
 
@@ -30,7 +30,7 @@
 
     <body>
         <h3>Copyright</h3>
-        <p>Privacy Cell ist Copyright 2021-2022 von <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.</p>
+        <p>Privacy Cell ist Copyright 2021-2023 von <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.</p>
 
         <h3>Lizenz</h3>
         <p>Privacy Cell wird unter der <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+-Lizenz</a> veröffentlicht. Den gesamten Text der Lizenz finden Sie unterhalb.
 
         <h3>Icons</h3>
         <p><img class="left" src="../images/secure.svg"/> <img class="left" src="../images/secure_notification.svg"/> sind abgeleitet von <code>security</code> und <code>5g</code>,
-            welche Teil des <a href="https://material.io/icons/">Android Material Icon-Sets</a> sind und unter der
+            welche Teil des <a href="https://fonts.google.com/icons">Android Material Icon-Sets</a> sind und unter der
             <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache 2.0 Lizenz</a> veröffentlicht werden.
-            Den gesamten Text der Lizenz finden Sie unterhalb. Copyright der Änderungen: © 2016, 2021-2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+            Den gesamten Text der Lizenz finden Sie unterhalb. Copyright der Änderungen: 2016, 2021-2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             Die resultierenden Grafiken werden unter der <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+-Lizenz</a> veröffentlicht.</p>
         <p><img class="left" src="../images/insecure.svg"> <img class="left" src="../images/insecure_notification.svg"/> sind abgeleitet von <code>security</code> und <code>warning_amber_rounded</code>,
-            welche Teil des <a href="https://material.io/icons/">Android Material Icon-Sets</a> sind und unter der
+            welche Teil des <a href="https://fonts.google.com/icons">Android Material Icon-Sets</a> sind und unter der
             <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache 2.0 Lizenz</a> veröffentlicht werden.
-            Copyright der Änderungen: © 2016, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+            Copyright der Änderungen: 2016, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             Die resultierenden Grafiken werden unter der <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+-Lizenz</a> veröffentlicht.</p>
         <p><img class="left" src="../images/antiquated.svg"/> <img class="left" src="../images/antiquated_notification.svg"/> sind abgeleitet von <code>security</code> und <code>do_not_disturb</code>,
-            welche Teil des <a href="https://material.io/icons/">Android Material Icon-Sets</a> sind und unter der
+            welche Teil des <a href="https://fonts.google.com/icons">Android Material Icon-Sets</a> sind und unter der
             <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache 2.0 Lizenz</a> veröffentlicht werden.
-            Copyright der Änderungen: © 2016, 2021-2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+            Copyright der Änderungen: 2016, 2021-2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             Die resultierenden Grafiken werden unter der <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+-Lizenz</a> veröffentlicht.</p>
         <p><img class="left" src="../images/antiquated_3g.svg"/> ist abgeleitet von <code>security</code> und <code>3g_mobiledata_rounded</code>,
-            welche ein Teil des <a href="https://material.io/icons/">Android Material icon set</a> und unter der <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
-            lizensiert sind. Die Änderungen stehen under dem Copyright © 2016, 2022 von <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+            welche ein Teil des <a href="https://fonts.google.com/icons">Android Material icon set</a> und unter der <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
+            lizensiert sind. Die Änderungen stehen under dem Copyright 2016, 2022 von <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             Die abgeleitete Grafik steht unter der <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+ Lizenz</a>.</p>
-        <p>Die folgenden Icons stammen aus dem <a href="https://material.io/icons/">Android Material Icon-Sets</a>,
+        <p>Die folgenden Icons stammen aus dem <a href="https://fonts.google.com/icons">Android Material Icon-Sets</a>,
             das unter der <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache 2.0 Lizenz</a> veröffentlicht wird.
             Sie sind bis auf Layout-Informationen wie Farbe und Größe unverändert. Einige von Ihnen wurden Ihrer Verwendung im Code entsprechend umbenannt.
             Die Origina-Icons und -Namen findend Sie unterhalb.</p>
@@ -75,7 +75,7 @@
         <p><svg class="icon"><use href="../images/format_list_bulleted_rounded.svg#icon"/></svg> format_list_bulleted_rounded.</p>
         <p><svg class="icon"><use href="../images/forum_rounded.svg#icon"/></svg> forum_rounded.</p>
         <p><svg class="icon"><use href="../images/groups_filled.svg#icon"/></svg> groups_filled.</p>
-        <p><svg class="icon"><use href="../images/list_alt_rounded.svg#icon"/></svg> list_alt_rounded.</p>
+        <p><svg class="icon"><use href="../images/list_alt_rounded_24.svg#icon"/></svg> list_alt_rounded_24.</p>
         <p><svg class="icon"><use href="../images/map_rounded.svg#icon"/></svg> map_rounded.</p>
         <p><svg class="icon"><use href="../images/notification_important_rounded_filled.svg#icon"/></svg> notification_important_<wbr>rounded_filled.</p>
         <p><svg class="icon"><use href="../images/payments_rounded.svg#icon"/></svg> payments_rounded.</p>
index 8c137594e7eac60a96ae363a512d1a7f3a3867d8..b6895010dcda7d23b2358be4e5179dc1fbd2e54c 100644 (file)
@@ -1,7 +1,7 @@
 <!--
-  Copyright © 2021 Soren Stoutner <soren@stoutner.com>.
+  Copyright 2021-2023 Soren Stoutner <soren@stoutner.com>.
 
-  Translation 2021 Bernhard G. Keller.  Copyright assigned to Soren Stoutner <soren@stoutner.com>.
+  Translation 2021-2023 Bernhard G. Keller.  Copyright assigned to Soren Stoutner <soren@stoutner.com>.
 
   This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
 
         <p>Privacy Cell verwendet folgende Berechtigungen:</p>
 
         <h3>Telefon-Status und Identität lesen</h3>
-        <p><a href="https://developer.android.com/reference/android/Manifest.permission.html#READ_PHONE_STATE">android.permission.<wbr>READ_PHONE_STATE</a></p>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission.html#READ_PHONE_STATE">android.permission.<wbr>READ_<wbr>PHONE_<wbr>STATE</a></p>
         <p>Benötigt, um die vom Mobilfunk-Netzwerk genutzten Protokolle zu ermitteln.</p>
 
-        <h3>Vordergrund-Service ausführen</h3>
-        <p><a href="https://developer.android.com/reference/android/Manifest.permission#FOREGROUND_SERVICE">android.permission.<wbr>FOREGROUND_SERVICE</a></p>
+        <h3>Zeige Benachrichtigungen</h3>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission.html#POST_NOTIFICATIONS">android.permission.<wbr>POST_<wbr>NOTIFICATIONS</a></p>
         <p>Erlaubt Privacy Cell, ein Benachrichtigungs-Icon für die Echtzeit-Überwachung in der Status-Zeile anzuzeigen.</p>
 
+        <h3>Vordergrund-Service ausführen</h3>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission#FOREGROUND_SERVICE">android.permission.<wbr>FOREGROUND_<wbr>SERVICE</a></p>
+        <p>Erlaubt Privacy Cell, das Benachrichtigungs-Icon für die Echtzeit-Überwachung in der Status-Zeile zu aktualisieren, auch wenn die App im Hintergrund läuft.</p>
+
+        <h3>Spezieller Vordergrund-Service</h3>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission#FOREGROUND_SERVICE_SPECIAL_USE">android.permission.<wbr>FOREGROUND_<wbr>SERVICE_<wbr>SPECIAL_<wbr>USE</a></p>
+        <p>Legt den Typ des verwendeten Vordergrund-Services fest. "Special Use" wird für Services verwendet, die nicht in die
+            <a href="https://developer.android.com/about/versions/14/changes/fgs-types-required">Standard-Kategorien</a> für Vordergrund-Services (z.B. Medienwiedergabe, Positionsbestimmung, etc.) fallen.</p>
+
         <h3>Ausführung bei Systemstart</h3>
-        <p><a href="https://developer.android.com/reference/android/Manifest.permission#RECEIVE_BOOT_COMPLETED">android.permission.<wbr>RECEIVE_BOOT_COMPLETED</a></p>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission#RECEIVE_BOOT_COMPLETED">android.permission.<wbr>RECEIVE_<wbr>BOOT_<wbr>COMPLETED</a></p>
         <p>Erlaubt Privacy Cell die Echtzeit-Überwachung zu aktivieren, wenn das Smartphone gebootet wird.</p>
+
+        <h3><a href="https://developer.android.com/about/versions/13/features#runtime-receivers">com.stoutner.privacycell.<wbr>DYNAMIC_<wbr>RECEIVER_<wbr>NOT_<wbr>EXPORTED_<wbr>PERMISSION</a></h3>
+        <p>Automatisch hinzugefügt für alle Apps mit API >= 33 (Android 13), um zu verhindern, dass sich andere Apps ohne expliziter Erlaubnis mit dynamischen BroadcastReceivern verbinden.</p>
     </body>
 </html>
\ No newline at end of file
index 8886d011daee4fd490877c72c705b0f08b54e8e1..12075791a0d7d2e060e80fa206b40294173d0660 100644 (file)
@@ -1,5 +1,5 @@
 <!--
-  Copyright © 2021-2022 Soren Stoutner <soren@stoutner.com>.
+  Copyright 2021-2023 Soren Stoutner <soren@stoutner.com>.
 
   This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
 
     </head>
 
     <body>
+        <h3>1.10 (version code 12)</h3>
+        <p>30 October 2023 - minimum API 30, target API 34</p>
+        <ul>
+            <li>Create an optional <a href="https://redmine.stoutner.com/issues/988">monochrome icon</a> (can be used in Android >= 13).</li>
+            <li>Allow Privacy Cell to be included in <a href="https://redmine.stoutner.com/issues/1001">system backups</a>.</li>
+            <li>Bump the <a href="https://redmine.stoutner.com/issues/1104">target API to 34</a> (Android 14).</li>
+            <li>Document <a href="https://redmine.stoutner.com/issues/940">permissions needed</a> for <a href="https://redmine.stoutner.com/issues/942">newer versions of Android</a>.</li>
+            <li>Repopulate the realtime monitoring notification every <a href="https://redmine.stoutner.com/issues/1105">15 minutes</a>.</li>
+        </ul>
+
+        <h3><a href="https://www.stoutner.com/privacy-cell-1-9/">1.9</a> (version code 11)</h3>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyCell.git;a=commitdiff;h=53f5dd586d2e9eb38280648b9084db15163fe682">5 December 2022</a> - minimum API 30, target API 33</p>
+        <ul>
+            <li>Bump the <a href="https://redmine.stoutner.com/issues/890">target API to 33</a> (Android 13).</li>
+            <li>Disable <a href="https://redmine.stoutner.com/issues/894">swiping to dismiss</a> the realtime monitoring notification on Android 13.</li>
+            <li>Enable <a href="https://redmine.stoutner.com/issues/935">per-app language support</a> on Android 13.</li>
+            <li>Preserve the <a href="https://redmine.stoutner.com/issues/913">Settings scroll location</a> on restart.</li>
+        </ul>
+
         <h3><a href="https://www.stoutner.com/privacy-cell-1-8-1/">1.8.1</a> (version code 10)</h3>
         <p><a href="https://gitweb.stoutner.com/?p=PrivacyCell.git;a=commitdiff;h=ab7601a6d91b6035862bb47b1ac259855e3aba3b">8 August 2022</a> - minimum API 30, target API 32</p>
         <ul>
             <li>Initial release.</li>
         </ul>
     </body>
-</html>
\ No newline at end of file
+</html>
index 70854bee7929614decfc9975549f4acabe579f45..d45eb48073b0158677f722b3d592a92066af9837 100644 (file)
@@ -1,5 +1,5 @@
 <!--
-  Copyright 2021-2022 Soren Stoutner <soren@stoutner.com>.
+  Copyright 2021-2023 Soren Stoutner <soren@stoutner.com>.
 
   This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
 
@@ -28,7 +28,7 @@
 
     <body>
         <h3>Copyright</h3>
-        <p>Privacy Cell copyright 2021-2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.</p>
+        <p>Privacy Cell copyright 2021-2023 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.</p>
 
         <h3>License</h3>
         <p>Privacy Cell is released under the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+ license</a>. The full text of the license is below.
 
         <h3>Icons</h3>
         <p><img class="left" src="../images/secure.svg"/> <img class="left" src="../images/secure_notification.svg"/> are derived from <code>security</code> and <code>5g</code>,
-            which are part of the <a href="https://material.io/icons/">Android Material icon set</a> and are released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
-            The full text of the license is below. Modifications copyright © 2016, 2021-2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+            which are part of the <a href="https://fonts.google.com/icons">Android Material icon set</a> and are released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
+            The full text of the license is below. Modifications copyright 2016, 2021-2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             The resulting images are released under the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+ license</a>.</p>
         <p><img class="left" src="../images/insecure.svg"> <img class="left" src="../images/insecure_notification.svg"/> are derived from <code>security</code> and <code>warning_amber_rounded</code>,
-            which are part of the <a href="https://material.io/icons/">Android Material icon set</a> and are released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
-            Modifications copyright © 2016, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+            which are part of the <a href="https://fonts.google.com/icons">Android Material icon set</a> and are released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
+            Modifications copyright 2016, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             The resulting images are released under the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+ license</a>.</p>
         <p><img class="left" src="../images/antiquated.svg"/> <img class="left" src="../images/antiquated_notification.svg"/> are derived from <code>security</code> and <code>do_not_disturb</code>,
-            which are part of the <a href="https://material.io/icons/">Android Material icon set</a> and are released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
-            Modifications copyright © 2016, 2021-2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+            which are part of the <a href="https://fonts.google.com/icons">Android Material icon set</a> and are released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
+            Modifications copyright 2016, 2021-2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             The resulting images are released under the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+ license</a>.</p>
         <p><img class="left" src="../images/antiquated_3g.svg"/> is derived from <code>security</code> and <code>3g_mobiledata_rounded</code>,
-            which are part of the <a href="https://material.io/icons/">Android Material icon set</a> and are released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
-            Modifications copyright © 2016, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+            which are part of the <a href="https://fonts.google.com/icons">Android Material icon set</a> and are released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
+            Modifications copyright 2016, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             The resulting image is released under the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+ license</a>.</p>
-        <p>The following icons come from the <a href="https://material.io/icons/">Android Material icon set</a>,
+        <p>The following icons come from the <a href="https://fonts.google.com/icons">Android Material icon set</a>,
             which is released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
             They are unchanged except for layout information like color and size. Some of them have been renamed to match their use in the code. The original icons and names are shown below.</p>
         <p><svg class="icon"><use href="../images/bug_report_rounded.svg#icon"/></svg> bug_report_rounded.</p>
@@ -69,7 +69,7 @@
         <p><svg class="icon"><use href="../images/format_list_bulleted_rounded.svg#icon"/></svg> format_list_bulleted_rounded.</p>
         <p><svg class="icon"><use href="../images/forum_rounded.svg#icon"/></svg> forum_rounded.</p>
         <p><svg class="icon"><use href="../images/groups_filled.svg#icon"/></svg> groups_filled.</p>
-        <p><svg class="icon"><use href="../images/list_alt_rounded.svg#icon"/></svg> list_alt_rounded.</p>
+        <p><svg class="icon"><use href="../images/list_alt_rounded_24.svg#icon"/></svg> list_alt_rounded_24.</p>
         <p><svg class="icon"><use href="../images/map_rounded.svg#icon"/></svg> map_rounded.</p>
         <p><svg class="icon"><use href="../images/notification_important_rounded_filled.svg#icon"/></svg> notification_important_<wbr>rounded_filled.</p>
         <p><svg class="icon"><use href="../images/payments_rounded.svg#icon"/></svg> payments_rounded.</p>
index be792c7cc15057f5a99e3e2937923b5f9f815e6b..162b5e3192acddacca60270c2e130985a3cfd507 100644 (file)
@@ -1,5 +1,5 @@
 <!--
-  Copyright © 2021 Soren Stoutner <soren@stoutner.com>.
+  Copyright 2021-2023 Soren Stoutner <soren@stoutner.com>.
 
   This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
 
         <p>Privacy Cell uses the following permissions.</p>
 
         <h3>Read phone status and identity</h3>
-        <p><a href="https://developer.android.com/reference/android/Manifest.permission.html#READ_PHONE_STATE">android.permission.<wbr>READ_PHONE_STATE</a></p>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission.html#READ_PHONE_STATE">android.permission.<wbr>READ_<wbr>PHONE_<wbr>STATE</a></p>
         <p>Required to determine which protocols are being used by the cell phone network.</p>
 
-        <h3>Run foreground service</h3>
-        <p><a href="https://developer.android.com/reference/android/Manifest.permission#FOREGROUND_SERVICE">android.permission.<wbr>FOREGROUND_SERVICE</a></p>
+        <h3>Show Notifications</h3>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission.html#POST_NOTIFICATIONS">android.permission.<wbr>POST_<wbr>NOTIFICATIONS</a></p>
         <p>Allows Privacy Cell to display a realtime monitoring notification icon in the status bar.</p>
 
+        <h3>Run foreground service</h3>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission#FOREGROUND_SERVICE">android.permission.<wbr>FOREGROUND_<wbr>SERVICE</a></p>
+        <p>Allows Privacy Cell to update the realtime monitoring notification icon when the app is not in the foreground.</p>
+
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission#FOREGROUND_SERVICE_SPECIAL_USE">android.permission.<wbr>FOREGROUND_<wbr>SERVICE_<wbr>SPECIAL_<wbr>USE</a></p>
+        <p>Specifies the type of foreground service.
+            Special Use is for services that don't fit into any of the <a href="https://developer.android.com/about/versions/14/changes/fgs-types-required">standard categories</a>.</p>
+
         <h3>Run at startup</h3>
-        <p><a href="https://developer.android.com/reference/android/Manifest.permission#RECEIVE_BOOT_COMPLETED">android.permission.<wbr>RECEIVE_BOOT_COMPLETED</a></p>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission#RECEIVE_BOOT_COMPLETED">android.permission.<wbr>RECEIVE_<wbr>BOOT_<wbr>COMPLETED</a></p>
         <p>Allows Privacy Cell to enable the realtime monitoring service when the phone boots.</p>
+
+        <h3><a href="https://developer.android.com/about/versions/13/features#runtime-receivers">com.stoutner.privacycell.<wbr>DYNAMIC_<wbr>RECEIVER_<wbr>NOT_<wbr>EXPORTED_<wbr>PERMISSION</a></h3>
+        <p>Automatically added to all apps targeting API >= 33 (Android 13) to prevent other apps from connecting to dynamic receivers without explicit permission.</p>
     </body>
-</html>
\ No newline at end of file
+</html>
index 9e3b1c45c3cfa6f32417390725edbf5bf1e3b190..02e462bf704998a88384f64be8411c6fcb86061e 100644 (file)
@@ -1,7 +1,7 @@
 <!--
-  Copyright © 2021-2022 Soren Stoutner <soren@stoutner.com>.
+  Copyright 2021-2023 Soren Stoutner <soren@stoutner.com>.
 
-  Translation 2021-2022 Jose A. León.  Copyright assigned to Soren Stoutner <soren@stoutner.com>.
+  Translation 2021-2023 Jose A. León.  Copyright assigned to Soren Stoutner <soren@stoutner.com>.
 
   This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
 
     </head>
 
     <body>
+        <h3>1.10 (versión del código 12)</h3>
+        <p>30 de octubre de 2023 - API mínimo 30, API objetivo 34</p>
+        <ul>
+            <li>Crear un icono <a href="https://redmine.stoutner.com/issues/988">monocromo opcional</a> (puede usarse en Android >= 13).</li>
+            <li>Permitir que Privacy Cell se incluya en <a href="https://redmine.stoutner.com/issues/1001">las copias de seguridad del sistema</a>.</li>
+            <li>Subir la <a href="https://redmine.stoutner.com/issues/1104">API objetivo a 34</a> (Android 14).</li>
+            <li>Documentar <a href="https://redmine.stoutner.com/issues/940">los permisos necesarios</a> para <a href="https://redmine.stoutner.com/issues/942">las nuevas versiones de Android</a>.</li>
+            <li>Repoblar la notificación de seguimiento en tiempo real cada <a href="https://redmine.stoutner.com/issues/1105">15 minutos</a>.</li>
+            <li>Traducción actualizada al español aportada por Jose A. León.</li>
+        </ul>
+
+        <h3><a href="https://www.stoutner.com/privacy-cell-1-9/">1.9</a> (versión del código 11)</h3>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyCell.git;a=commitdiff;h=53f5dd586d2e9eb38280648b9084db15163fe682">5 de diciembre de 2022</a> - API mínimo 30, API objetivo 33</p>
+        <ul>
+            <li>Subir la <a href="https://redmine.stoutner.com/issues/890">API de destino a 33</a> (Android 13).</li>
+            <li>Desactivar <a href="https://redmine.stoutner.com/issues/894">el deslizamiento para descartar</a> la notificación de seguimiento en tiempo real en Android 13.</li>
+            <li>Habilitar <a href="https://redmine.stoutner.com/issues/935">el soporte de idiomas por aplicación</a> en Android 13.</li>
+            <li>Preservar la <a href="https://redmine.stoutner.com/issues/913">localización de desplazamiento de los Ajustes</a> al reiniciar.</li>
+            <li>Traducción actualizada al español aportada por Jose A. León.</li>
+        </ul>
+
         <h3><a href="https://www.stoutner.com/privacy-cell-1-8-1/">1.8.1</a> (versión del código 10)</h3>
         <p><a href="https://gitweb.stoutner.com/?p=PrivacyCell.git;a=commitdiff;h=ab7601a6d91b6035862bb47b1ac259855e3aba3b">8 de agosto de 2022</a> - API mínimo 30, API objetivo 32</p>
         <ul>
             <li>Versión inicial.</li>
         </ul>
     </body>
-</html>
\ No newline at end of file
+</html>
index fe4125fa365c8f4d86e55db36017d8d22786d4c6..b651d18c4bf028bdf08e3248f36a296f7a74dffd 100644 (file)
@@ -1,5 +1,5 @@
 <!--
-  Copyright 2021-2022 Soren Stoutner <soren@stoutner.com>.
+  Copyright 2021-2023 Soren Stoutner <soren@stoutner.com>.
 
   Translation 2021-2022 Jose A. León.  Copyright assigned to Soren Stoutner <soren@stoutner.com>.
 
@@ -30,7 +30,7 @@
 
     <body>
         <h3>Copyright</h3>
-        <p>Copyright de Privacy Cell 2021-2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.</p>
+        <p>Copyright de Privacy Cell 2021-2023 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.</p>
 
         <h3>Licencia</h3>
         <p>Privacy Cell se libera bajo la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licencia GPLv3+</a>. El texto completo de la licencia se muestra abajo.
 
         <h3>Iconos</h3>
         <p><img class="left" src="../images/secure.svg"/> <img class="left" src="../images/secure_notification.svg"/> derivan de <code>security</code> y <code>5g</code>,
-            que son parte del <a href="https://material.io/icons/">conjunto de iconos de Android Material</a>
+            que son parte del <a href="https://fonts.google.com/icons">conjunto de iconos de Android Material</a>
             y son liberados bajo la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licencia Apache 2.0</a>.
-            El texto completo de la licencia se muestra abajo. Copyright de modificaciones © 2016, 2021-2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+            El texto completo de la licencia se muestra abajo. Copyright de modificaciones 2016, 2021-2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             Las imágenes resultante se liberan bajo la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licencia GPLv3+</a>.</p>
         <p><img class="left" src="../images/insecure.svg"> <img class="left" src="../images/insecure_notification.svg"/> derivan de <code>security</code> y <code>warning_amber_rounded</code>,
-            que son parte del <a href="https://material.io/icons/">conjunto de iconos de Android Material</a>
+            que son parte del <a href="https://fonts.google.com/icons">conjunto de iconos de Android Material</a>
             y son liberados bajo la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licencia Apache 2.0</a>.
-            Copyright de modificaciones © 2016, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+            Copyright de modificaciones 2016, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             Las imágenes resultantes se liberan bajo la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licencia GPLv3+</a>.</p>
         <p><img class="left" src="../images/antiquated.svg"/> <img class="left" src="../images/antiquated_notification.svg"/> derivan de <code>security</code> y <code>do_not_disturb</code>,
-            que son parte del <a href="https://material.io/icons/">conjunto de iconos de Android Material</a>
+            que son parte del <a href="https://fonts.google.com/icons">conjunto de iconos de Android Material</a>
             y son liberados bajo la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licencia Apache 2.0</a>.
-            Copyright de modificaciones © 2016, 2021-2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+            Copyright de modificaciones 2016, 2021-2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             Las imágenes resultantes se liberan bajo la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licencia GPLv3+</a>.</p>
         <p><img class="left" src="../images/antiquated_3g.svg"/> se deriva de <code>security</code> y <code>3g_mobiledata_rounded</code>,
-            que son parte del <a href="https://material.io/icons/">conjunto de iconos de Android Material</a>
+            que son parte del <a href="https://fonts.google.com/icons">conjunto de iconos de Android Material</a>
             y son liberados bajo la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licencia Apache 2.0</a>.
-            Copyright de modificaciones © 2016, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+            Copyright de modificaciones 2016, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             La imagen resultante se libera bajo la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licencia GPLv3+</a>.</p>
-        <p>Los siguientes iconos vienen del <a href="https://material.io/icons/">conjunto de iconos de Android Material</a>,
+        <p>Los siguientes iconos vienen del <a href="https://fonts.google.com/icons">conjunto de iconos de Android Material</a>,
             que se liberan bajo la <a href ="https://www.apache.org/licenses/LICENSE-2.0">licencia Apache 2.0</a>.
             No se han modificado, salvo la información sobre el diseño, como el color y el tamaño. Algunos de ellos han sido renombrados para que coincidan con su uso en el código.
             Los iconos y nombres originales se muestran a continuación.</p>
@@ -76,7 +76,7 @@
         <p><svg class="icon"><use href="../images/format_list_bulleted_rounded.svg#icon"/></svg> format_list_bulleted_rounded.</p>
         <p><svg class="icon"><use href="../images/forum_rounded.svg#icon"/></svg> forum_rounded.</p>
         <p><svg class="icon"><use href="../images/groups_filled.svg#icon"/></svg> groups_filled.</p>
-        <p><svg class="icon"><use href="../images/list_alt_rounded.svg#icon"/></svg> list_alt_rounded.</p>
+        <p><svg class="icon"><use href="../images/list_alt_rounded_24.svg#icon"/></svg> list_alt_rounded_24.</p>
         <p><svg class="icon"><use href="../images/map_rounded.svg#icon"/></svg> map_rounded.</p>
         <p><svg class="icon"><use href="../images/notification_important_rounded_filled.svg#icon"/></svg> notification_important_<wbr>rounded_filled.</p>
         <p><svg class="icon"><use href="../images/payments_rounded.svg#icon"/></svg> payments_rounded.</p>
index dd8000eb9041b9336404fc33f7277feae1a65d06..eabd8e0900fcb9bba3fc751065b4f764797db236 100644 (file)
@@ -1,7 +1,7 @@
 <!--
-  Copyright © 2021 Soren Stoutner <soren@stoutner.com>.
+  Copyright 2021-2023 Soren Stoutner <soren@stoutner.com>.
 
-  Translation 2021 Jose A. León.  Copyright assigned to Soren Stoutner <soren@stoutner.com>.
+  Translation 2021-2023 Jose A. León.  Copyright assigned to Soren Stoutner <soren@stoutner.com>.
 
   This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
 
         <p>Privacy Cell usa los siguientes permisos.</p>
 
         <h3>Leer el estado del teléfono e identidad</h3>
-        <p><a href="https://developer.android.com/reference/android/Manifest.permission.html#READ_PHONE_STATE">android.permission.<wbr>READ_PHONE_STATE</a></p>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission.html#READ_PHONE_STATE">android.permission.<wbr>READ_<wbr>PHONE_<wbr>STATE</a></p>
         <p>Requerido para determinar qué protocolos se están usando por la red del teléfono celular.</p>
 
-        <h3>Run foreground service</h3>
-        <p><a href="https://developer.android.com/reference/android/Manifest.permission#FOREGROUND_SERVICE">android.permission.<wbr>FOREGROUND_SERVICE</a></p>
-        <p>Allows Privacy Cell to display a realtime monitoring notification icon in the status bar.</p>
+        <h3>Mostrar notificaciones</h3>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission.html#POST_NOTIFICATIONS">android.permission.<wbr>POST_<wbr>NOTIFICATIONS</a></p>
+        <p>Permite a Privacy Cell mostrar un icono de notificación de supervisión en tiempo real en la barrra de estado.</p>
 
-        <h3>Run at startup</h3>
-        <p><a href="https://developer.android.com/reference/android/Manifest.permission#RECEIVE_BOOT_COMPLETED">android.permission.<wbr>RECEIVE_BOOT_COMPLETED</a></p>
-        <p>Allows Privacy Cell to enable the realtime monitoring service when the phone boots.</p>
+        <h3>Ejecutar servicio en primer plano</h3>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission#FOREGROUND_SERVICE">android.permission.<wbr>FOREGROUND_<wbr>SERVICE</a></p>
+        <p>Permite a Privacy Cell actualizar el icono de notificación de supervisión cuando la aplicación no está en primer plano.</p>
+
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission#FOREGROUND_SERVICE_SPECIAL_USE">android.permission.<wbr>FOREGROUND_<wbr>SERVICE_<wbr>SPECIAL_<wbr>USE</a></p>
+        <p>Especifica el tipo de servicio en primer plano.
+            El uso especial es para servicios que no encajan en ninguna de las <a href="https://developer.android.com/about/versions/14/changes/fgs-types-required">categorías estándar</a>.</p>
+
+        <h3>Ejecutar al inicio</h3>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission#RECEIVE_BOOT_COMPLETED">android.permission.<wbr>RECEIVE_<wbr>BOOT_<wbr>COMPLETED</a></p>
+        <p>Permite a Privacy Cell activar el servicio de monitorización en tiempo real al arrancar el teléfono.</p>
+
+        <h3><a href="https://developer.android.com/about/versions/13/features#runtime-receivers">com.stoutner.privacycell.<wbr>DYNAMIC_<wbr>RECEIVER_<wbr>NOT_<wbr>EXPORTED_<wbr>PERMISSION</a></h3>
+        <p>Se añade automáticamente a todas las aplicaciones con API >= 33 (Android 13) para impedir que otras aplicaciones se conecten a receptores dinámicos sin permiso explícito.</p>
     </body>
-</html>
\ No newline at end of file
+</html>
index 2be404f606f027fe6ee6f2eb1de26471c31b2ed0..adaddb5aa31308b40bb64dc592700df61877e234 100644 (file)
@@ -1,7 +1,7 @@
 <!--
-  Copyright © 2021-2022 Soren Stoutner <soren@stoutner.com>.
+  Copyright 2021-2023 Soren Stoutner <soren@stoutner.com>.
 
-  Translation 2021-2022 Kévin L. <kevinliste@framalistes.org>.  Copyright assigned to Soren Stoutner <soren@stoutner.com>.
+  Translation 2021-2023 Kévin L. <kevinliste@framalistes.org>.  Copyright assigned to Soren Stoutner <soren@stoutner.com>.
 
   This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
 
     </head>
 
     <body>
+        <h3>1.10 (version du code 12)</h3>
+        <p>30 Octobre 2023 - API minimale : 30, API optimale : 34</p>
+        <ul>
+            <li>Create an optional <a href="https://redmine.stoutner.com/issues/988">monochrome icon</a> (can be used in Android >= 13).</li>
+            <li>Allow Privacy Cell to be included in <a href="https://redmine.stoutner.com/issues/1001">system backups</a>.</li>
+            <li>Bump the <a href="https://redmine.stoutner.com/issues/1104">target API to 34</a> (Android 14).</li>
+            <li>Document <a href="https://redmine.stoutner.com/issues/940">permissions needed</a> for <a href="https://redmine.stoutner.com/issues/942">newer versions of Android</a>.</li>
+            <li>Repopulate the realtime monitoring notification every <a href="https://redmine.stoutner.com/issues/1105">15 minutes</a>.</li>
+            <li>Mise à jour de la traduction française par <a href="mailto:kevinliste@framalistes.org">Kévin L</a>.</li>
+        </ul>
+
+        <h3><a href="https://www.stoutner.com/privacy-cell-1-9/">1.9</a> (version du code 11)</h3>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyCell.git;a=commitdiff;h=53f5dd586d2e9eb38280648b9084db15163fe682">5 Décembre 2022</a> - API minimale : 30, API optimale : 33</p>
+        <ul>
+            <li>Passage de <a href="https://redmine.stoutner.com/issues/890">l'API cible à 33</a> (Android 13).</li>
+            <li>Désactivation <a href="https://redmine.stoutner.com/issues/894">du glissement pour rejeter </a> la notification de surveillance en temps réel sur Android 13.</li>
+            <li>Activation <a href="https://redmine.stoutner.com/issues/935">du support de la langue par application</a> sur Android 13.</li>
+            <li>Conservation de <a href="https://redmine.stoutner.com/issues/913">l'emplacement du défilement des paramètres </a>au redémarrage.</li>
+            <li>Mise à jour de la traduction française par <a href="mailto:kevinliste@framalistes.org">Kévin L</a>.</li>
+        </ul>
+
         <h3><a href="https://www.stoutner.com/privacy-cell-1-8-1/">1.8.1</a> (version du code 10)</h3>
         <p><a href="https://gitweb.stoutner.com/?p=PrivacyCell.git;a=commitdiff;h=ab7601a6d91b6035862bb47b1ac259855e3aba3b">8 Août 2022</a> - API minimale : 30, API optimale : 32</p>
         <ul>
             <li>Version initiale.</li>
         </ul>
     </body>
-</html>
\ No newline at end of file
+</html>
index cd091d94fe8243060b4d3af51801012363d3309f..f5ff5946a66daf85fcf82b13acb3978669743c3e 100644 (file)
@@ -1,5 +1,5 @@
 <!--
-  Copyright 2021-2022 Soren Stoutner <soren@stoutner.com>.
+  Copyright 2021-2023 Soren Stoutner <soren@stoutner.com>.
 
   Translation 2021-2022 Kévin L. <kevinliste@framalistes.org>.  Copyright assigned to Soren Stoutner <soren@stoutner.com>.
 
@@ -30,7 +30,7 @@
 
     <body>
         <h3>Copyright</h3>
-        <p>Privacy Cell copyright 2021-2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.</p>
+        <p>Privacy Cell copyright 2021-2023 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.</p>
 
         <h3>Licence</h3>
         <p>Privacy Cell est publiée sous la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licence GPLv3+</a>. Le texte intégral de la licence se trouve ci-dessous.
 
         <h3>Icônes</h3>
         <p><img class="left" src="../images/secure.svg"/> <img class="left" src="../images/secure_notification.svg"/> sont dérivés de <code>security</code> et de <code>5g</code>,
-            qui font partie de l'ensemble d'icônes <a href="https://material.io/icons/">Android Material</a>
+            qui font partie de l'ensemble d'icônes <a href="https://fonts.google.com/icons">Android Material</a>
             et sont publiés sous la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licence Apache 2.0</a>.
-            Le texte intégral de la licence est ci-dessous. Les modifications font l'objet d'un copyright © 2016, 2021-2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+            Le texte intégral de la licence est ci-dessous. Les modifications font l'objet d'un copyright 2016, 2021-2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             Les images résultantes sont publiées sous la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licence GPLv3+</a>.</p>
         <p><img class="left" src="../images/insecure.svg"> <img class="left" src="../images/insecure_notification.svg"/> sont dérivés de <code>security</code> et de <code>warning_amber_rounded</code>,
-            qui font partie de l'ensemble d'icônes <a href="https://material.io/icons/">Android Material</a>
+            qui font partie de l'ensemble d'icônes <a href="https://fonts.google.com/icons">Android Material</a>
             et sont publiés sous la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licence Apache 2.0</a>.
-            Les modifications font l'objet d'un copyright © 2016, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+            Les modifications font l'objet d'un copyright 2016, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             Les images résultantes sont publiées sous la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licence GPLv3+</a>.</p>
         <p><img class="left" src="../images/antiquated.svg"/> <img class="left" src="../images/antiquated_notification.svg"/> sont dérivés de <code>security</code> et de <code>do_not_disturb</code>,
-            qui font partie de l'ensemble d'icônes <a href="https://material.io/icons/">Android Material</a>
+            qui font partie de l'ensemble d'icônes <a href="https://fonts.google.com/icons">Android Material</a>
             et sont publiés sous la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licence Apache 2.0</a>.
-            Les modifications font l'objet d'un copyright © 2016, 2021-2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+            Les modifications font l'objet d'un copyright 2016, 2021-2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             Les images résultantes sont publiées sous la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licence GPLv3+</a>.</p>
         <p><img class="left" src="../images/antiquated_3g.svg"/> est un dérivé de <code>security</code> et de <code>3g_mobiledata_rounded</code>,
-            qui font partie de l'ensemble d'icônes <a href="https://material.io/icons/">Android Material</a>
+            qui font partie de l'ensemble d'icônes <a href="https://fonts.google.com/icons">Android Material</a>
             et sont publiés sous la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
-            Les modifications font l'objet d'un copyright © 2016, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+            Les modifications font l'objet d'un copyright 2016, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             L'image résultante est publiée sous la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licence GPLv3+</a>.</p>
-        <p>Les icônes suivantes proviennent de l'ensemble d'icônes <a href="https://material.io/icons/">Android Material</a>,
+        <p>Les icônes suivantes proviennent de l'ensemble d'icônes <a href="https://fonts.google.com/icons">Android Material</a>,
             qui sont publiées sous la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licence Apache 2.0</a>.
             Elles sont inchangés, à l'exception des informations de mise en page comme la couleur et la taille. Certaines d'entre elles ont été renommées pour correspondre à leur utilisation dans le code.
             Les icônes et les noms originaux sont présentés ci-dessous.</p>
@@ -76,7 +76,7 @@
         <p><svg class="icon"><use href="../images/format_list_bulleted_rounded.svg#icon"/></svg> format_list_bulleted_rounded.</p>
         <p><svg class="icon"><use href="../images/forum_rounded.svg#icon"/></svg> forum_rounded.</p>
         <p><svg class="icon"><use href="../images/groups_filled.svg#icon"/></svg> groups_filled.</p>
-        <p><svg class="icon"><use href="../images/list_alt_rounded.svg#icon"/></svg> list_alt_rounded.</p>
+        <p><svg class="icon"><use href="../images/list_alt_rounded_24.svg#icon"/></svg> list_alt_rounded_24.</p>
         <p><svg class="icon"><use href="../images/map_rounded.svg#icon"/></svg> map_rounded.</p>
         <p><svg class="icon"><use href="../images/notification_important_rounded_filled.svg#icon"/></svg> notification_important_<wbr>rounded_filled.</p>
         <p><svg class="icon"><use href="../images/payments_rounded.svg#icon"/></svg> payments_rounded.</p>
index 04e1c79fb7da7b888ab995d7a0acde603b15c937..7f7ebac8acc2729ba54d4948e9a163d290286501 100644 (file)
@@ -1,7 +1,7 @@
 <!--
-  Copyright © 2021 Soren Stoutner <soren@stoutner.com>.
+  Copyright 2021-2023 Soren Stoutner <soren@stoutner.com>.
 
-  Translation 2021 Kévin L. <kevinliste@framalistes.org>.  Copyright assigned to Soren Stoutner <soren@stoutner.com>.
+  Translation 2021-2023 Kévin L. <kevinliste@framalistes.org>.  Copyright assigned to Soren Stoutner <soren@stoutner.com>.
 
   This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
 
         <p>Privacy Cell utilise l'autorisation suivante.</p>
 
         <h3>Lecture du statut et de l'identité du téléphone</h3>
-        <p><a href="https://developer.android.com/reference/android/Manifest.permission.html#READ_PHONE_STATE">android.permission.<wbr>READ_PHONE_STATE</a></p>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission.html#READ_PHONE_STATE">android.permission.<wbr>READ_<wbr>PHONE_<wbr>STATE</a></p>
         <p>Nécessaire pour déterminer quels protocoles sont utilisés par le réseau de téléphonie mobile.</p>
 
-        <h3>Exécuter un service en premier plan</h3>
-        <p><a href="https://developer.android.com/reference/android/Manifest.permission#FOREGROUND_SERVICE">android.permission.<wbr>FOREGROUND_SERVICE</a></p>
+        <h3>Show Notifications</h3>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission.html#POST_NOTIFICATIONS">android.permission.<wbr>POST_<wbr>NOTIFICATIONS</a></p>
         <p>Permet à Privacy Cell d'afficher une icône de notification de surveillance en temps réel dans la barre d'état.</p>
 
+        <h3>Exécuter un service en premier plan</h3>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission#FOREGROUND_SERVICE">android.permission.<wbr>FOREGROUND_<wbr>SERVICE</a></p>
+        <p>Allows Privacy Cell to update the realtime monitoring notification icon when the app is not in the foreground.</p>
+
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission#FOREGROUND_SERVICE_SPECIAL_USE">android.permission.<wbr>FOREGROUND_<wbr>SERVICE_<wbr>SPECIAL_<wbr>USE</a></p>
+        <p>Specifies the type of foreground service.
+            Special Use is for services that don't fit into any of the <a href="https://developer.android.com/about/versions/14/changes/fgs-types-required">standard categories</a>.</p>
+
         <h3>Exécution au démarrage</h3>
-        <p><a href="https://developer.android.com/reference/android/Manifest.permission#RECEIVE_BOOT_COMPLETED">android.permission.<wbr>RECEIVE_BOOT_COMPLETED</a></p>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission#RECEIVE_BOOT_COMPLETED">android.permission.<wbr>RECEIVE_<wbr>BOOT_<wbr>COMPLETED</a></p>
         <p>Permet à Privacy Cell d'activer le service de surveillance en temps réel lorsque le téléphone démarre.</p>
+
+        <h3><a href="https://developer.android.com/about/versions/13/features#runtime-receivers">com.stoutner.privacycell.<wbr>DYNAMIC_<wbr>RECEIVER_<wbr>NOT_<wbr>EXPORTED_<wbr>PERMISSION</a></h3>
+        <p>Ajout automatique à toutes les applications ciblant l'API >= 33 (Android 13) pour empêcher les autres applications de se connecter aux destinataires dynamiques sans autorisation explicite.</p>
     </body>
-</html>
\ No newline at end of file
+</html>
diff --git a/app/src/main/assets/images/list_alt_rounded.svg b/app/src/main/assets/images/list_alt_rounded.svg
deleted file mode 100644 (file)
index c07743c..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-
-<!--
-  This file is a modified version of `list_alt_rounded`, which is part of the Android Material icon set and is released under the Apache License 2.0.
-
-  Changes copyright © 2021 Soren Stoutner <soren@stoutner.com>.  The resulting file is released under the GPLv3+ license.
-
-  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
-
-  Privacy Cell 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 Cell 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 Cell.  If not, see <http://www.gnu.org/licenses/>. -->
-
-<svg
-    xmlns="http://www.w3.org/2000/svg"
-    viewBox="0 0 24 24"
-    id="icon" >
-
-    <path
-        d="M12 9h4c.55 0 1-.45 1-1s-.45-1-1-1h-4c-.55 0-1 .45-1 1s.45 1 1 1zm0 4h4c.55 0 1-.45 1-1s-.45-1-1-1h-4c-.55 0-1 .45-1 1s.45 1 1 1zm0 4h4c.55 0 1-.45 1-1s-.45-1-1-1h-4c-.55 0-1 .45-1 1s.45 1 1 1zM7 7h2v2H7zm0 4h2v2H7zm0 4h2v2H7zM20 3H4c-.55 0-1 .45-1 1v16c0 .55.45 1 1 1h16c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zm-1 16H5V5h14v14z" />
-</svg>
diff --git a/app/src/main/assets/images/list_alt_rounded_24.svg b/app/src/main/assets/images/list_alt_rounded_24.svg
new file mode 100644 (file)
index 0000000..c888193
--- /dev/null
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<!--
+  This file is a modified version of `list_alt_rounded_24`, which is part of the Android Material icon set and is released under the Apache License 2.0.
+
+  Changes copyright 2022 Soren Stoutner <soren@stoutner.com>.  The resulting file is released under the GPLv3+ license.
+
+  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
+
+  Privacy Cell 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 Cell 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 Cell.  If not, see <http://www.gnu.org/licenses/>. -->
+
+<svg
+    xmlns="http://www.w3.org/2000/svg"
+    viewBox="0 0 24 24"
+    id="icon" >
+
+    <path
+        d="M5 21q-.825 0-1.413-.587Q3 19.825 3 19V5q0-.825.587-1.413Q4.175 3 5 3h14q.825 0 1.413.587Q21 4.175 21 5v14q0 .825-.587 1.413Q19.825 21 19 21Zm0-2h14V5H5v14Zm3-2q.425 0 .713-.288Q9 16.425 9 16t-.287-.713Q8.425 15 8 15t-.713.287Q7 15.575 7 16t.287.712Q7.575 17 8 17Zm0-4q.425 0 .713-.288Q9 12.425 9 12t-.287-.713Q8.425 11 8 11t-.713.287Q7 11.575 7 12t.287.712Q7.575 13 8 13Zm0-4q.425 0 .713-.288Q9 8.425 9 8t-.287-.713Q8.425 7 8 7t-.713.287Q7 7.575 7 8t.287.712Q7.575 9 8 9Zm4 8h4q.425 0 .712-.288Q17 16.425 17 16t-.288-.713Q16.425 15 16 15h-4q-.425 0-.712.287Q11 15.575 11 16t.288.712Q11.575 17 12 17Zm0-4h4q.425 0 .712-.288Q17 12.425 17 12t-.288-.713Q16.425 11 16 11h-4q-.425 0-.712.287Q11 11.575 11 12t.288.712Q11.575 13 12 13Zm0-4h4q.425 0 .712-.288Q17 8.425 17 8t-.288-.713Q16.425 7 16 7h-4q-.425 0-.712.287Q11 7.575 11 8t.288.712Q11.575 9 12 9ZM5 19V5v14Z" />
+</svg>
index 55e406f885563a20a51da8e4d572d4ba58830d1a..557229d97e3071d3925d7be16d69ed99fe92e186 100644 (file)
@@ -1,7 +1,7 @@
 <!--
-  Copyright © 2021-2022 Soren Stoutner <soren@stoutner.com>.
+  Copyright 2021-2023 Soren Stoutner <soren@stoutner.com>.
 
-  Translation 2021-2022 Francesco Buratti.  Copyright assigned to Soren Stoutner <soren@stoutner.com>.
+  Translation 2021-2023 Francesco Buratti.  Copyright assigned to Soren Stoutner <soren@stoutner.com>.
 
   This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
 
     </head>
 
     <body>
+        <h3>1.10 (versione codice 12)</h3>
+        <p>30 Ottobre 2023 - minima API 30, target API 34</p>
+        <ul>
+            <li>Create an optional <a href="https://redmine.stoutner.com/issues/988">monochrome icon</a> (can be used in Android >= 13).</li>
+            <li>Allow Privacy Cell to be included in <a href="https://redmine.stoutner.com/issues/1001">system backups</a>.</li>
+            <li>Bump the <a href="https://redmine.stoutner.com/issues/1104">target API to 34</a> (Android 14).</li>
+            <li>Document <a href="https://redmine.stoutner.com/issues/940">permissions needed</a> for <a href="https://redmine.stoutner.com/issues/942">newer versions of Android</a>.</li>
+            <li>Repopulate the realtime monitoring notification every <a href="https://redmine.stoutner.com/issues/1105">15 minutes</a>.</li>
+            <li>Aggiornamento della traduzione in lingua Italiana fornito da Francesco Buratti.</li>
+        </ul>
+
+        <h3><a href="https://www.stoutner.com/privacy-cell-1-9/">1.9</a> (versione codice 11)</h3>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyCell.git;a=commitdiff;h=53f5dd586d2e9eb38280648b9084db15163fe682">5 Dicembre 2022</a> - minima API 30, target API 33</p>
+        <ul>
+            <li>Modifica della <a href="https://redmine.stoutner.com/issues/890">target API a 33</a> (Android 13).</li>
+            <li>Disabilitata la possibilità di <a href="https://redmine.stoutner.com/issues/894">effettuare lo swipe per eliminare</a> la notifica di monitoraggio in tempo reale su Android 13.</li>
+            <li>Abilitato il <a href="https://redmine.stoutner.com/issues/935">supporto della lingua per-app</a> su Android 13.</li>
+            <li>Mantenimento della <a href="https://redmine.stoutner.com/issues/913">posizione dello scorrimento delle impostazioni</a> al riavvio.</li>
+            <li>Aggiornamento della traduzione in lingua Italiana fornito da Francesco Buratti.</li>
+        </ul>
+
         <h3><a href="https://www.stoutner.com/privacy-cell-1-8-1/">1.8.1</a> (versione codice 10)</h3>
-        <p><a href="https://gitweb.stoutner.com/?p=PrivacyCell.git;a=commitdiff;h=ab7601a6d91b6035862bb47b1ac259855e3aba3b">8 Agosto 2022</a> -  minima API 30, target API 32</p>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyCell.git;a=commitdiff;h=ab7601a6d91b6035862bb47b1ac259855e3aba3b">8 Agosto 2022</a> - minima API 30, target API 32</p>
         <ul>
             <li>Correzione di un baco che <a href="https://redmine.stoutner.com/issues/864">riabilitava le notifiche</a> quando la rete cambiava.</li>
             <li>Aggiunta di <a href="https://redmine.stoutner.com/issues/884">un testo con doppio tono di viola</a> al tema scuro.</li>
             <li>Primo rilascio.</li>
         </ul>
     </body>
-</html>
\ No newline at end of file
+</html>
index 13233640d8bb05a9a0a2fc01e00bbc84209992fa..3d63167d7b350e205d9233cbb5f9027fb6662088 100644 (file)
@@ -1,5 +1,5 @@
 <!--
-  Copyright 2021-2022 Soren Stoutner <soren@stoutner.com>.
+  Copyright 2021-2023 Soren Stoutner <soren@stoutner.com>.
 
   Translation 2021-2022 Francesco Buratti.  Copyright assigned to Soren Stoutner <soren@stoutner.com>.
 
@@ -30,7 +30,7 @@
 
     <body>
         <h3>Copyright</h3>
-        <p>Privacy Cell copyright 2021-2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.</p>
+        <p>Privacy Cell copyright 2021-2023 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.</p>
 
         <h3>Licenza</h3>
         <p>Privacy Cell è rilasciato con <a href="https://www.gnu.org/licenses/gpl-3.0.html">Licenza GPLv3+</a>. Il testo completo è riportato di seguito.
 
         <h3>Icone</h3>
         <p><img class="left" src="../images/secure.svg"/> <img class="left" src="../images/secure_notification.svg"/> sono derivate da <code>security</code> e <code>5g</code>,
-            che sono parte del <a href="https://material.io/icons/">set di icone Android Material</a> e sono rilasciate sotto la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licenza Apache 2.0</a>.
-            Il testo completo della licenza è riportato qui sotto. Il copyright delle modifiche © 2016, 2021-2022 appartiene a <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+            che sono parte del <a href="https://fonts.google.com/icons">set di icone Android Material</a> e sono rilasciate sotto la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licenza Apache 2.0</a>.
+            Il testo completo della licenza è riportato qui sotto. Il copyright delle modifiche 2016, 2021-2022 appartiene a <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             Le immagini risultanti sono rilasciate sotto la <a href="https://www.gnu.org/licenses/gpl-3.0.html">Licenza GPLv3+</a>.</p>
         <p><img class="left" src="../images/insecure.svg"> <img class="left" src="../images/insecure_notification.svg"/> sono derivate da <code>security</code> e <code>warning_amber_rounded</code>,
-            che sono parte del <a href="https://material.io/icons/">set di icone Android Material</a> e sono rilasciate sotto la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licenza Apache 2.0</a>.
-            Il copyright delle modifiche © 2016, 2022 appartiene a <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+            che sono parte del <a href="https://fonts.google.com/icons">set di icone Android Material</a> e sono rilasciate sotto la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licenza Apache 2.0</a>.
+            Il copyright delle modifiche 2016, 2022 appartiene a <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             Le immagini risultanti sono rilasciate sotto la <a href="https://www.gnu.org/licenses/gpl-3.0.html">Licenza GPLv3+</a>.</p>
         <p><img class="left" src="../images/antiquated.svg"/> <img class="left" src="../images/antiquated_notification.svg"/> sono derivate da <code>security</code> e <code>do_not_disturb</code>,
-            che sono parte del <a href="https://material.io/icons/">set di icone Android Material</a> e sono rilasciate sotto la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licenza Apache 2.0</a>.
-            Il copyright delle modifiche © 2016, 2021-2022 appartiene a <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+            che sono parte del <a href="https://fonts.google.com/icons">set di icone Android Material</a> e sono rilasciate sotto la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licenza Apache 2.0</a>.
+            Il copyright delle modifiche 2016, 2021-2022 appartiene a <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             Le immagini risultanti sono rilasciate sotto la <a href="https://www.gnu.org/licenses/gpl-3.0.html">Licenza GPLv3+</a>.</p>
         <p><img class="left" src="../images/antiquated_3g.svg"/> è derivata da <code>security</code> e <code>3g_mobiledata_rounded</code>,
-            che sono parte del <a href="https://material.io/icons/">set di icone Android Material</a> e sono rilasciate sotto la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licenza Apache 2.0</a>.
-            Il copyright delle modifiche © 2016, 2022 appartiene a <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+            che sono parte del <a href="https://fonts.google.com/icons">set di icone Android Material</a> e sono rilasciate sotto la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licenza Apache 2.0</a>.
+            Il copyright delle modifiche 2016, 2022 appartiene a <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             L'immagine risultante è rilasciata sotto la <a href="https://www.gnu.org/licenses/gpl-3.0.html">Licenza GPLv3+</a>.</p>
-        <p>Le icone seguenti provengono dal <a href="https://material.io/icons/">set di icone Android Material</a>,
+        <p>Le icone seguenti provengono dal <a href="https://fonts.google.com/icons">set di icone Android Material</a>,
             che è rilasciato sotto la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licenza Apache 2.0</a>.
             Non sono state modificate ad eccezione delle informazioni del layout come il colore e le dimensioni. Alcune sono state rinominate per essere coerenti con il loro utilizzo nel codice.
             Le icone originali e i loro nomi sono riportate di seguito.</p>
@@ -72,7 +72,7 @@
         <p><svg class="icon"><use href="../images/format_list_bulleted_rounded.svg#icon"/></svg> format_list_bulleted_rounded.</p>
         <p><svg class="icon"><use href="../images/forum_rounded.svg#icon"/></svg> forum_rounded.</p>
         <p><svg class="icon"><use href="../images/groups_filled.svg#icon"/></svg> groups_filled.</p>
-        <p><svg class="icon"><use href="../images/list_alt_rounded.svg#icon"/></svg> list_alt_rounded.</p>
+        <p><svg class="icon"><use href="../images/list_alt_rounded_24.svg#icon"/></svg> list_alt_rounded_24.</p>
         <p><svg class="icon"><use href="../images/map_rounded.svg#icon"/></svg> map_rounded.</p>
         <p><svg class="icon"><use href="../images/notification_important_rounded_filled.svg#icon"/></svg> notification_important_<wbr>rounded_filled.</p>
         <p><svg class="icon"><use href="../images/payments_rounded.svg#icon"/></svg> payments_rounded.</p>
index 5062c6a3d26b23164d860f5c4d5e3d2e26191dfe..bd71ddb04d14606b020aa4213146c0bfaf739024 100644 (file)
@@ -1,7 +1,7 @@
 <!--
-  Copyright © 2021 Soren Stoutner <soren@stoutner.com>.
+  Copyright 2021-2023 Soren Stoutner <soren@stoutner.com>.
 
-  Translation 2021 Francesco Buratti.  Copyright assigned to Soren Stoutner <soren@stoutner.com>.
+  Translation 2021-2023 Francesco Buratti.  Copyright assigned to Soren Stoutner <soren@stoutner.com>.
 
   This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
 
         <p>Privacy Cell richiede le seguenti autorizzazioni.</p>
 
         <h3>Lettura dello stato e dell'identità del telefono</h3>
-        <p><a href="https://developer.android.com/reference/android/Manifest.permission.html#READ_PHONE_STATE">android.permission.<wbr>READ_PHONE_STATE</a></p>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission.html#READ_PHONE_STATE">android.permission.<wbr>READ_<wbr>PHONE_<wbr>STATE</a></p>
         <p>Richiesta per determinare i protocolli utilizzati dalla rete.</p>
 
-        <h3>Run foreground service</h3>
-        <p><a href="https://developer.android.com/reference/android/Manifest.permission#FOREGROUND_SERVICE">android.permission.<wbr>FOREGROUND_SERVICE</a></p>
-        <p>Allows Privacy Cell to display a realtime monitoring notification icon in the status bar.</p>
+        <h3>Mostra notifiche</h3>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission.html#POST_NOTIFICATIONS">android.permission.<wbr>POST_<wbr>NOTIFICATIONS</a></p>
+        <p>Permette a Privacy Cell di mostrare una icona di notifica di monitoraggio in tempo reale nella barra di stato.</p>
 
-        <h3>Run at startup</h3>
-        <p><a href="https://developer.android.com/reference/android/Manifest.permission#RECEIVE_BOOT_COMPLETED">android.permission.<wbr>RECEIVE_BOOT_COMPLETED</a></p>
-        <p>Allows Privacy Cell to enable the realtime monitoring service when the phone boots.</p>
+        <h3>Esegui il servizio in primo piano</h3>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission#FOREGROUND_SERVICE">android.permission.<wbr>FOREGROUND_<wbr>SERVICE</a></p>
+        <p>Permette a Privacy Cell di aggiornare licona di notifica di monitoraggio in tempo reale anche quando la app non è in primo piano.</p>
+
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission#FOREGROUND_SERVICE_SPECIAL_USE">android.permission.<wbr>FOREGROUND_<wbr>SERVICE_<wbr>SPECIAL_<wbr>USE</a></p>
+        <p>Specifica il tipo di servizio in primo piano.
+            L'utilizzo speciale è per i servizi che non ricadono in nessuna delle <a href="https://developer.android.com/about/versions/14/changes/fgs-types-required">categorie standard</a>.</p>
+
+        <h3>Esegui all'avvio</h3>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission#RECEIVE_BOOT_COMPLETED">android.permission.<wbr>RECEIVE_<wbr>BOOT_<wbr>COMPLETED</a></p>
+        <p>Permette a Privacy Cell di abilitare il servizio di monitoraggio in tempo reale durante l'avvio del dispositivo.</p>
+
+        <h3><a href="https://developer.android.com/about/versions/13/features#runtime-receivers">com.stoutner.privacycell.<wbr>DYNAMIC_<wbr>RECEIVER_<wbr>NOT_<wbr>EXPORTED_<wbr>PERMISSION</a></h3>
+        <p>Aggiunta automaticamente a tutte le App che hanno come target API >= 33 (Android 13) per impedire ad altre App di connettersi ai ricevitori dinamici senza una autorizzazione esplicita.</p>
     </body>
-</html>
\ No newline at end of file
+</html>
index 03d6c7c7ddac952ac3f73e8faec6028e39feea2a..ac7586838c2b6d21568f77809daba40b2798046a 100644 (file)
@@ -1,5 +1,5 @@
 <!--
-  Copyright © 2021-2022 Soren Stoutner <soren@stoutner.com>.
+  Copyright 2021-2023 Soren Stoutner <soren@stoutner.com>.
 
   This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
 
     </head>
 
     <body>
+        <h3>1.10 (код версии 12)</h3>
+        <p>30 октября 2023 года - минимальный API 30, целевой API 34</p>
+        <ul>
+            <li>Создан дополнительный <a href="https://redmine.stoutner.com/issues/988">монохромный значок</a> (может использоваться в Android >= 13).</li>
+            <li>Разрешено включать Privacy Cell в <a href="https://redmine.stoutner.com/issues/1001">системные резервные копии</a>.</li>
+            <li>Целевой API <a href="https://redmine.stoutner.com/issues/1104">повышен до 34</a> (Android 14).</li>
+            <li>Документированы <a href="https://redmine.stoutner.com/issues/940">необходимые разрешения</a> для <a href="https://redmine.stoutner.com/issues/942">новых версий Android</a>.</li>
+            <li>Повторное формирование уведомления о мониторинге в реальном времени каждые <a href="https://redmine.stoutner.com/issues/1105">15 минут</a>.</li>
+        </ul>
+
+        <h3><a href="https://www.stoutner.com/privacy-cell-1-9/">1.9</a> (код версии 11)</h3>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyCell.git;a=commitdiff;h=53f5dd586d2e9eb38280648b9084db15163fe682">5 декабря 2022 года</a> - минимальный API 30, целевой API 33</p>
+        <ul>
+            <li>Целевой API <a href="https://redmine.stoutner.com/issues/890">повышен до 33</a> (Android 13).</li>
+            <li>Отключен <a href="https://redmine.stoutner.com/issues/894">свайп уведомления</a> о мониторинге в реальном времени на Android 13.</li>
+            <li>Включена <a href="https://redmine.stoutner.com/issues/935">поддержка языков для каждого приложения</a> на Android 13.</li>
+            <li>При перезапуске <a href="https://redmine.stoutner.com/issues/913">сохраняется положение прокрутки</a> настроек.</li>
+            <li>Первый полный перевод на русский язык.</li>
+        </ul>
+
         <h3><a href="https://www.stoutner.com/privacy-cell-1-8-1/">1.8.1</a> (код версии 10)</h3>
         <p><a href="https://gitweb.stoutner.com/?p=PrivacyCell.git;a=commitdiff;h=ab7601a6d91b6035862bb47b1ac259855e3aba3b">8 августа 2022 года</a> - минимальный API 30, целевой API 32</p>
         <ul>
             <li>Первый релиз.</li>
         </ul>
     </body>
-</html>
\ No newline at end of file
+</html>
index 6a989f5250a1d783a42d531825210ff2e5afcaaf..68c6ec509f2255c28243d7e8bdebb7196331b452 100644 (file)
@@ -1,5 +1,5 @@
 <!--
-  Copyright 2021-2022 Soren Stoutner <soren@stoutner.com>.
+  Copyright 2021-2023 Soren Stoutner <soren@stoutner.com>.
 
   This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
 
@@ -28,7 +28,7 @@
 
     <body>
         <h3>Авторские права</h3>
-        <p>Авторские права Privacy Cell 2021-2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.</p>
+        <p>Авторские права Privacy Cell 2021-2023 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.</p>
 
         <h3>Лицензия</h3>
         <p>Privacy Cell выпускается под <a href="https://www.gnu.org/licenses/gpl-3.0.html">лицензией GPLv3+</a>. Полный текст лицензии приведен ниже.
 
         <h3>Значки</h3>
         <p><img class="left" src="../images/secure.svg"/> <img class="left" src="../images/secure_notification.svg"/> являются производными от <code>security</code> и <code>5g</code>,
-            которые являются частью набора значков <a href="https://material.io/icons/">Android Material</a> и выпущены под <a href ="https://www.apache.org/licenses/LICENSE-2.0">лицензией Apache 2.0</a>.
-            Полный текст лицензии приведен ниже. Модификации авторских прав © 2016, 2021-2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+            которые являются частью набора значков <a href="https://fonts.google.com/icons">Android Material</a> и выпущены под <a href ="https://www.apache.org/licenses/LICENSE-2.0">лицензией Apache 2.0</a>.
+            Полный текст лицензии приведен ниже. Модификации авторских прав 2016, 2021-2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             Получившиеся изображения выпускаются под <a href="https://www.gnu.org/licenses/gpl-3.0.html">лицензией GPLv3+</a>.</p>
         <p><img class="left" src="../images/insecure.svg"> <img class="left" src="../images/insecure_notification.svg"/> являются производными от <code>security</code> и <code>warning_amber_rounded</code>,
-            которые являются частью набора значков <a href="https://material.io/icons/">Android Material</a> и выпущены под <a href ="https://www.apache.org/licenses/LICENSE-2.0">лицензией Apache 2.0</a>.
-            Модификации авторских прав © 2016, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+            которые являются частью набора значков <a href="https://fonts.google.com/icons">Android Material</a> и выпущены под <a href ="https://www.apache.org/licenses/LICENSE-2.0">лицензией Apache 2.0</a>.
+            Модификации авторских прав 2016, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             Получившиеся изображения выпускаются под <a href="https://www.gnu.org/licenses/gpl-3.0.html">лицензией GPLv3+</a>.</p>
         <p><img class="left" src="../images/antiquated.svg"/> <img class="left" src="../images/antiquated_notification.svg"/> являются производными от <code>security</code> и <code>do_not_disturb</code>,
-            которые являются частью набора значков <a href="https://material.io/icons/">Android Material</a> и выпущены под <a href ="https://www.apache.org/licenses/LICENSE-2.0">лицензией Apache 2.0</a>.
-            Модификации авторских прав © 2016, 2021-2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+            которые являются частью набора значков <a href="https://fonts.google.com/icons">Android Material</a> и выпущены под <a href ="https://www.apache.org/licenses/LICENSE-2.0">лицензией Apache 2.0</a>.
+            Модификации авторских прав 2016, 2021-2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             Получившиеся изображения выпускаются под <a href="https://www.gnu.org/licenses/gpl-3.0.html">лицензией GPLv3+</a>.</p>
         <p><img class="left" src="../images/antiquated_3g.svg"/> является производной от <code>security</code> и <code>3g_mobiledata_rounded</code>,
-            которые являются частью набора значков <a href="https://material.io/icons/">Android Material</a> и выпущены под <a href ="https://www.apache.org/licenses/LICENSE-2.0">лицензией Apache 2.0</a>.
-            Модификации авторских прав © 2016, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+            которые являются частью набора значков <a href="https://fonts.google.com/icons">Android Material</a> и выпущены под <a href ="https://www.apache.org/licenses/LICENSE-2.0">лицензией Apache 2.0</a>.
+            Модификации авторских прав 2016, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             Получившееся изображение выпускается под <a href="https://www.gnu.org/licenses/gpl-3.0.html">лицензией GPLv3+</a>.</p>
-        <p>Следующие значки взяты из набора значков <a href="https://material.io/icons/">Android Material</a>,
+        <p>Следующие значки взяты из набора значков <a href="https://fonts.google.com/icons">Android Material</a>,
             который выпущен под <a href ="https://www.apache.org/licenses/LICENSE-2.0">лицензией Apache 2.0</a>.
             Они не изменились, за исключением информации о макете, такой как цвет и размер. Некоторые из них были переименованы, чтобы обеспечить их соответствие использованию в коде.
             Оригинальные значки и их названия показаны ниже.</p>
@@ -70,7 +70,7 @@
         <p><svg class="icon"><use href="../images/format_list_bulleted_rounded.svg#icon"/></svg> format_list_bulleted_rounded.</p>
         <p><svg class="icon"><use href="../images/forum_rounded.svg#icon"/></svg> forum_rounded.</p>
         <p><svg class="icon"><use href="../images/groups_filled.svg#icon"/></svg> groups_filled.</p>
-        <p><svg class="icon"><use href="../images/list_alt_rounded.svg#icon"/></svg> list_alt_rounded.</p>
+        <p><svg class="icon"><use href="../images/list_alt_rounded_24.svg#icon"/></svg> list_alt_rounded_24.</p>
         <p><svg class="icon"><use href="../images/map_rounded.svg#icon"/></svg> map_rounded.</p>
         <p><svg class="icon"><use href="../images/notification_important_rounded_filled.svg#icon"/></svg> notification_important_<wbr>rounded_filled.</p>
         <p><svg class="icon"><use href="../images/payments_rounded.svg#icon"/></svg> payments_rounded.</p>
index 8c84905142f45a8eeaeefd8fd1762109a3cb186a..9f8b4897614adbac339bffe352b2be22de2415a2 100644 (file)
@@ -1,5 +1,5 @@
 <!--
-  Copyright © 2021 Soren Stoutner <soren@stoutner.com>.
+  Copyright 2021-2023 Soren Stoutner <soren@stoutner.com>.
 
   This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
 
         <p>Privacy Cell использует следующие разрешения:</p>
 
         <h3>Чтение статуса и идентификатора телефона</h3>
-        <p><a href="https://developer.android.com/reference/android/Manifest.permission.html#READ_PHONE_STATE">android.permission.<wbr>READ_PHONE_STATE</a></p>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission.html#READ_PHONE_STATE">android.permission.<wbr>READ_<wbr>PHONE_<wbr>STATE</a></p>
         <p>Необходим для определения используемых протоколов в сети сотовой связи.</p>
 
-        <h3>Ð\97апÑ\83Ñ\81к Ñ\84оновой Ñ\81лÑ\83жбÑ\8b</h3>
-        <p><a href="https://developer.android.com/reference/android/Manifest.permission#FOREGROUND_SERVICE">android.permission.<wbr>FOREGROUND_SERVICE</a></p>
+        <h3>Ð\9eÑ\82обÑ\80ажение Ñ\83ведомлений</h3>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission.html#POST_NOTIFICATIONS">android.permission.<wbr>POST_<wbr>NOTIFICATIONS</a></p>
         <p>Разрешает Privacy Cell отображать значок уведомления о мониторинге в реальном времени в строке состояния.</p>
 
+        <h3>Запуск фоновой службы</h3>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission#FOREGROUND_SERVICE">android.permission.<wbr>FOREGROUND_<wbr>SERVICE</a></p>
+        <p>Разрешает Privacy Cell обновлять значок уведомления о мониторинге в реальном времени при работе приложения в фоновом режиме.</p>
+
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission#FOREGROUND_SERVICE_SPECIAL_USE">android.permission.<wbr>FOREGROUND_<wbr>SERVICE_<wbr>SPECIAL_<wbr>USE</a></p>
+        <p>Определяет тип сервиса фонового режима.
+            Специальное использование предназначено для сервисов, которые не соответствуют ни одной из
+            <a href="https://developer.android.com/about/versions/14/changes/fgs-types-required">стандартных категорий</a>.</p>
+
         <h3>Запуск при загрузке</h3>
-        <p><a href="https://developer.android.com/reference/android/Manifest.permission#RECEIVE_BOOT_COMPLETED">android.permission.<wbr>RECEIVE_BOOT_COMPLETED</a></p>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission#RECEIVE_BOOT_COMPLETED">android.permission.<wbr>RECEIVE_<wbr>BOOT_<wbr>COMPLETED</a></p>
         <p>Разрешает Privacy Cell включать службу мониторинга в реальном времени при загрузке телефона.</p>
+
+        <h3><a href="https://developer.android.com/about/versions/13/features#runtime-receivers">com.stoutner.privacycell.<wbr>DYNAMIC_<wbr>RECEIVER_<wbr>NOT_<wbr>EXPORTED_<wbr>PERMISSION</a></h3>
+        <p>Автоматически добавляется во все приложения, использующие API >= 33 (Android 13) для предотвращения подключения других приложений к динамическим приемникам без явного разрешения.</p>
     </body>
-</html>
\ No newline at end of file
+</html>
index dc8545ffb0abcfa96225bc19f86dcb6f29b250b9..911ab08e856c55040304edde0bdeb70a3ee515ee 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2021-2022 Soren Stoutner <soren@stoutner.com>.
+ * Copyright 2021-2023 Soren Stoutner <soren@stoutner.com>.
  *
  * This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
  *
@@ -56,7 +56,7 @@ class SettingsFragment : PreferenceFragmentCompat() {
     private lateinit var bottomAppBarPreference: Preference
 
     companion object {
-        // Declare the private static class variables.  Otherwise, onRestart will not pull the same values that are populated from the saved instance state.
+        // Declare the private static class variables.  For some reason (I'm looking at you Android's Activity Lifecycle) this only works if these are static.
         private var fragmentRestarted: Boolean = false
         private var scrollY: Int = 0
     }
@@ -140,7 +140,7 @@ class SettingsFragment : PreferenceFragmentCompat() {
 
         // Check if the fragment has been restarted.
         if (savedInstanceState != null) {
-            // Set the fragment restored flag.
+            // Set the fragment restarted flag.
             fragmentRestarted = true
 
             // Save the scroll Y.
index 11407f7517d0e9e87941876f5597c0c20b8ec50d..cb6ca1db880210aa4f7712b5bea247ac653009ca 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2022 Soren Stoutner <soren@stoutner.com>.
+ * Copyright 2022-2023 Soren Stoutner <soren@stoutner.com>.
  *
  * This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
  *
@@ -84,7 +84,8 @@ class ProtocolHelper {
     }
 
     fun getNetworkTypeStringArray(networkType: Int, context: Context) : Array<String> {
-        // Return the string array that corresponds to the network type.
+        // Return the string array that corresponds to the network type.  The deprecated `NETWORK_TYPE_IDEN` can be removed once the minimum API >= 34.
+        @Suppress("DEPRECATION")
         return when(networkType) {
             TelephonyManager.NETWORK_TYPE_UNKNOWN -> arrayOf(context.getString(R.string.unknown), "")
             TelephonyManager.NETWORK_TYPE_GPRS -> arrayOf(context.getString(R.string.gprs), context.getString(R.string.gprs_detail))
index 54e23e937281a57004921a4ccbd98fb4745e1162..72cc4532f52596b767f9d3eed6e912a9e00a157a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright © 2021 Soren Stoutner <soren@stoutner.com>.
+ * Copyright 2021,2023 Soren Stoutner <soren@stoutner.com>.
  *
  * This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
  *
@@ -42,4 +42,4 @@ class OnBootCompletedReceiver : BroadcastReceiver() {
             }
         }
     }
-}
\ No newline at end of file
+}
index 19e1a3e2cede164c571b6dbc4558801bd5108979..72ace814d742aac8de7f08c6e4540ba2205b302e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2021-2022 Soren Stoutner <soren@stoutner.com>.
+ * Copyright 2021-2023 Soren Stoutner <soren@stoutner.com>.
  *
  * This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
  *
@@ -148,7 +148,7 @@ class RealtimeMonitoringService : Service() {
             // Set the color.
             notificationBuilder.setColor(getColor(R.color.red_notification_icon))
 
-            // Prevent swiping to dismiss the notification.
+            // Prevent swiping to dismiss the notification.  This no longer works (except on the lock screen) in API >= 34.
             notificationBuilder.setOngoing(true)
 
             // Start the foreground notification.
@@ -204,9 +204,9 @@ class RealtimeMonitoringService : Service() {
 
             // Check to see if the read phone state permission has been granted.
             if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED) {
-                // Create a register realtime listener work request that fires every hour.
-                // This periodic request will fire shortly after being created (it fires about every hour near the beginning of the hour) and will reregister the listener if it gets garbage collected.
-                val registerRealtimeListenerWorkRequest = PeriodicWorkRequestBuilder<RegisterRealtimeListenerWorker>(1, TimeUnit.HOURS).build()
+                // Create a register realtime listener work request that fires every fifteen minutes.
+                // This periodic request will fire shortly after being created and will reregister the listener if it gets garbage collected.
+                val registerRealtimeListenerWorkRequest = PeriodicWorkRequestBuilder<RegisterRealtimeListenerWorker>(15, TimeUnit.MINUTES).build()
 
                 // Register the realtime listener work request.
                 WorkManager.getInstance(this).enqueueUniquePeriodicWork(getString(R.string.register_listener_work_request), ExistingPeriodicWorkPolicy.REPLACE, registerRealtimeListenerWorkRequest)
@@ -235,10 +235,16 @@ class RealtimeMonitoringService : Service() {
     }
 
     fun populateNotification() {
+        // Get the list of current notifications.
+        val activeNotificationsArray = notificationManager.activeNotifications
+
+        // Check to see if there is a current notification.
+        val noCurrentNotification = activeNotificationsArray.isEmpty()
+
         // Populate the notification according to the security status.
         if ((voiceNetworkSecurityStatus == ProtocolHelper.ANTIQUATED) || (dataNetworkSecurityStatus == ProtocolHelper.ANTIQUATED)) {  // This is an antiquated network.
             // Only update the notification if the network status has changed.
-            if (currentStatus != ANTIQUATED_NETWORK) {
+            if ((currentStatus != ANTIQUATED_NETWORK) || noCurrentNotification) {
                 // Create an antiquated network notification builder.
                 val antiquatedNetworkNotificationBuilder = Notification.Builder(applicationContext, ANTIQUATED_NETWORK)
 
@@ -254,7 +260,7 @@ class RealtimeMonitoringService : Service() {
                 // Set the color.
                 antiquatedNetworkNotificationBuilder.setColor(getColor(R.color.red_notification_icon))
 
-                // Prevent swiping to dismiss the notification.
+                // Prevent swiping to dismiss the notification.  This no longer works (except on the lock screen) in API >= 34.
                 antiquatedNetworkNotificationBuilder.setOngoing(true)
 
                 // Update the notification.
@@ -265,7 +271,7 @@ class RealtimeMonitoringService : Service() {
             }
         } else if ((voiceNetworkSecurityStatus == ProtocolHelper.INSECURE) || (dataNetworkSecurityStatus == ProtocolHelper.INSECURE)) {  // This is an insecure network.
             // Only update the notification if the network status has changed.
-            if (currentStatus != INSECURE_NETWORK) {
+            if ((currentStatus != INSECURE_NETWORK) || noCurrentNotification) {
                 // Create an insecure network notification builder.
                 val insecureNetworkNotificationBuilder = Notification.Builder(applicationContext, INSECURE_NETWORK)
 
@@ -281,7 +287,7 @@ class RealtimeMonitoringService : Service() {
                 // Set the color.
                 insecureNetworkNotificationBuilder.setColor(getColor(R.color.yellow_notification_icon))
 
-                // Prevent swiping to dismiss the notification.
+                // Prevent swiping to dismiss the notification.  This no longer works (except on the lock screen) in API >= 34.
                 insecureNetworkNotificationBuilder.setOngoing(true)
 
                 // Update the notification.
@@ -292,7 +298,7 @@ class RealtimeMonitoringService : Service() {
             }
         } else {  // This is a secure network.
             // Only update the notification if the network status has changed.
-            if (currentStatus != SECURE_NETWORK) {
+            if ((currentStatus != SECURE_NETWORK) || noCurrentNotification) {
                 // Create a secure network notification builder.
                 val secureNetworkNotificationBuilder = Notification.Builder(applicationContext, SECURE_NETWORK)
 
@@ -308,7 +314,7 @@ class RealtimeMonitoringService : Service() {
                 // Set the color.
                 secureNetworkNotificationBuilder.setColor(getColor(R.color.blue_icon))
 
-                // Prevent swiping to dismiss the notification.
+                // Prevent swiping to dismiss the notification.  This no longer works (except on the lock screen) in API >= 34.
                 secureNetworkNotificationBuilder.setOngoing(true)
 
                 // Update the notification.
index 6bb76add73692863138dcc4930427af3a1af7239..7eeea89b2dfb22e54844605e361477a65995e682 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright © 2021-2022 Soren Stoutner <soren@stoutner.com>.
+ * Copyright 2021-2023 Soren Stoutner <soren@stoutner.com>.
  *
  * This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
  *
@@ -77,6 +77,9 @@ class RegisterRealtimeListenerWorker(appContext: Context, workerParameters: Work
                         // Register the telephony manager listener.
                         realtimeMonitoringService.registerTelephonyManagerListener()
 
+                        // Populate the notification, which might have been accidentally dismissed by the user beginning in Android 14.
+                        realtimeMonitoringService.populateNotification()
+
                         // Unbind the service.
                         applicationContext.unbindService(this)
                     }
@@ -100,4 +103,4 @@ class RegisterRealtimeListenerWorker(appContext: Context, workerParameters: Work
         // Return a success.
         return Result.success()
     }
-}
\ No newline at end of file
+}
index 720ca7a937353ac758216d94250cc559904be230..ed1fddebd66a3024184aa0cde21adafef044350c 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright © 2021-2022 Soren Stoutner <soren@stoutner.com>.
+ * Copyright 2021-2023 Soren Stoutner <soren@stoutner.com>.
  *
  * This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
  *
@@ -51,4 +51,4 @@ class RestartServiceWorker(appContext: Context, workerParameters: WorkerParamete
         // Return a success.
         return Result.success()
     }
-}
\ No newline at end of file
+}
index a88bf32fe602ab2c5ab7bf37c65359abdcdaf408..58361dd7d4d859b63d6d8487ac7610750673f48f 100644 (file)
@@ -1,5 +1,5 @@
 <!--
-  Copyright © 2016,2021-2022 Soren Stoutner <soren@stoutner.com>.  The resulting image is released under the GPLv3+ license.
+  Copyright © 2016,2021-2023 Soren Stoutner <soren@stoutner.com>.  The resulting image is released under the GPLv3+ license.
 
   This file is derived from `security` and `3g_mobiledata_rounded`, which are part of the Android Material icon set.  They are released under the Apache License 2.0.
 
@@ -20,6 +20,7 @@
 
 <vector
     xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
     android:height="24dp"
     android:width="24dp"
     android:viewportHeight="256"
@@ -27,5 +28,6 @@
 
     <path
         android:fillColor="@color/disabled_icon"
-        android:pathData="M128,0 L23.272,46.546L23.272,116.363C23.272,180.945 67.956,241.338 128,256 188.044,241.338 232.728,180.945 232.728,116.363L232.728,46.546ZM57.188,83.742l35.405,0c9.737,-0 17.703,7.967 17.703,17.703l0,13.277c0,7.347 -5.931,13.277 -13.277,13.277 7.347,0 13.277,5.931 13.277,13.277l0,13.277c0,9.737 -7.967,17.703 -17.703,17.703l-35.405,0c-4.868,0 -8.852,-3.983 -8.852,-8.852 0,-4.868 3.983,-8.852 8.852,-8.852l35.405,0l0,-17.703l-26.554,0c-4.868,0 -8.852,-3.983 -8.852,-8.852 0,-4.868 3.983,-8.852 8.852,-8.852l26.554,0l0,-17.703l-35.405,0c-4.868,0 -8.852,-3.983 -8.852,-8.852 0,-4.868 3.983,-8.852 8.852,-8.852zM145.703,83.742l53.108,0c4.868,0 8.852,3.983 8.852,8.852 0,4.868 -3.983,8.852 -8.852,8.852l-53.108,0l0,53.109l44.257,0l0,-17.703l-13.277,0c-4.868,0 -8.851,-3.983 -8.851,-8.852 0,-4.868 3.982,-8.852 8.851,-8.852l22.129,0c4.868,0 8.852,3.983 8.852,8.852l0,26.555c0,9.737 -7.967,17.703 -17.703,17.703L145.703,172.258C135.967,172.258 128,164.291 128,154.555L128,101.445c0,-9.737 7.967,-17.703 17.703,-17.703z" />
+        android:pathData="M128,0 L23.272,46.546L23.272,116.363C23.272,180.945 67.956,241.338 128,256 188.044,241.338 232.728,180.945 232.728,116.363L232.728,46.546ZM57.188,83.742l35.405,0c9.737,-0 17.703,7.967 17.703,17.703l0,13.277c0,7.347 -5.931,13.277 -13.277,13.277 7.347,0 13.277,5.931 13.277,13.277l0,13.277c0,9.737 -7.967,17.703 -17.703,17.703l-35.405,0c-4.868,0 -8.852,-3.983 -8.852,-8.852 0,-4.868 3.983,-8.852 8.852,-8.852l35.405,0l0,-17.703l-26.554,0c-4.868,0 -8.852,-3.983 -8.852,-8.852 0,-4.868 3.983,-8.852 8.852,-8.852l26.554,0l0,-17.703l-35.405,0c-4.868,0 -8.852,-3.983 -8.852,-8.852 0,-4.868 3.983,-8.852 8.852,-8.852zM145.703,83.742l53.108,0c4.868,0 8.852,3.983 8.852,8.852 0,4.868 -3.983,8.852 -8.852,8.852l-53.108,0l0,53.109l44.257,0l0,-17.703l-13.277,0c-4.868,0 -8.851,-3.983 -8.851,-8.852 0,-4.868 3.982,-8.852 8.851,-8.852l22.129,0c4.868,0 8.852,3.983 8.852,8.852l0,26.555c0,9.737 -7.967,17.703 -17.703,17.703L145.703,172.258C135.967,172.258 128,164.291 128,154.555L128,101.445c0,-9.737 7.967,-17.703 17.703,-17.703z"
+        tools:ignore="VectorPath" />
 </vector>
\ No newline at end of file
index 1d1e63afcfef79450345a5de8ad1f9f74af63b7c..afa86017ebb00cd2e7373a06e4a45dbd8c10ffb4 100644 (file)
@@ -1,5 +1,5 @@
 <!--
-  Copyright © 2016,2021-2022 Soren Stoutner <soren@stoutner.com>.  The resulting image is released under the GPLv3+ license.
+  Copyright © 2016,2021-2023 Soren Stoutner <soren@stoutner.com>.  The resulting image is released under the GPLv3+ license.
 
   This file is derived from `security` and `3g_mobiledata_rounded`, which are part of the Android Material icon set.  They are released under the Apache License 2.0.
 
@@ -20,6 +20,7 @@
 
 <vector
     xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
     android:height="24dp"
     android:width="24dp"
     android:viewportHeight="256"
@@ -27,5 +28,6 @@
 
     <path
         android:fillColor="@color/red_icon"
-        android:pathData="M128,0 L23.272,46.546L23.272,116.363C23.272,180.945 67.956,241.338 128,256 188.044,241.338 232.728,180.945 232.728,116.363L232.728,46.546ZM57.188,83.742l35.405,0c9.737,-0 17.703,7.967 17.703,17.703l0,13.277c0,7.347 -5.931,13.277 -13.277,13.277 7.347,0 13.277,5.931 13.277,13.277l0,13.277c0,9.737 -7.967,17.703 -17.703,17.703l-35.405,0c-4.868,0 -8.852,-3.983 -8.852,-8.852 0,-4.868 3.983,-8.852 8.852,-8.852l35.405,0l0,-17.703l-26.554,0c-4.868,0 -8.852,-3.983 -8.852,-8.852 0,-4.868 3.983,-8.852 8.852,-8.852l26.554,0l0,-17.703l-35.405,0c-4.868,0 -8.852,-3.983 -8.852,-8.852 0,-4.868 3.983,-8.852 8.852,-8.852zM145.703,83.742l53.108,0c4.868,0 8.852,3.983 8.852,8.852 0,4.868 -3.983,8.852 -8.852,8.852l-53.108,0l0,53.109l44.257,0l0,-17.703l-13.277,0c-4.868,0 -8.851,-3.983 -8.851,-8.852 0,-4.868 3.982,-8.852 8.851,-8.852l22.129,0c4.868,0 8.852,3.983 8.852,8.852l0,26.555c0,9.737 -7.967,17.703 -17.703,17.703L145.703,172.258C135.967,172.258 128,164.291 128,154.555L128,101.445c0,-9.737 7.967,-17.703 17.703,-17.703z" />
+        android:pathData="M128,0 L23.272,46.546L23.272,116.363C23.272,180.945 67.956,241.338 128,256 188.044,241.338 232.728,180.945 232.728,116.363L232.728,46.546ZM57.188,83.742l35.405,0c9.737,-0 17.703,7.967 17.703,17.703l0,13.277c0,7.347 -5.931,13.277 -13.277,13.277 7.347,0 13.277,5.931 13.277,13.277l0,13.277c0,9.737 -7.967,17.703 -17.703,17.703l-35.405,0c-4.868,0 -8.852,-3.983 -8.852,-8.852 0,-4.868 3.983,-8.852 8.852,-8.852l35.405,0l0,-17.703l-26.554,0c-4.868,0 -8.852,-3.983 -8.852,-8.852 0,-4.868 3.983,-8.852 8.852,-8.852l26.554,0l0,-17.703l-35.405,0c-4.868,0 -8.852,-3.983 -8.852,-8.852 0,-4.868 3.983,-8.852 8.852,-8.852zM145.703,83.742l53.108,0c4.868,0 8.852,3.983 8.852,8.852 0,4.868 -3.983,8.852 -8.852,8.852l-53.108,0l0,53.109l44.257,0l0,-17.703l-13.277,0c-4.868,0 -8.851,-3.983 -8.851,-8.852 0,-4.868 3.982,-8.852 8.851,-8.852l22.129,0c4.868,0 8.852,3.983 8.852,8.852l0,26.555c0,9.737 -7.967,17.703 -17.703,17.703L145.703,172.258C135.967,172.258 128,164.291 128,154.555L128,101.445c0,-9.737 7.967,-17.703 17.703,-17.703z"
+        tools:ignore="VectorPath" />
 </vector>
\ No newline at end of file
index de91740a7b660c304ddd8a41fff7ab397bf79876..018a0c6de96941cf3fa9a136419faa3ae74f969c 100644 (file)
@@ -2,6 +2,7 @@
 
 <vector
     xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
     android:height="24dp"
     android:width="24dp"
     android:viewportHeight="24"
@@ -9,5 +10,6 @@
 
     <path
         android:fillColor="@color/blue_icon"
-        android:pathData="M19,8h-1.81c-0.45,-0.78 -1.07,-1.45 -1.82,-1.96l0.93,-0.93c0.39,-0.39 0.39,-1.02 0,-1.41 -0.39,-0.39 -1.02,-0.39 -1.41,0l-1.47,1.47C12.96,5.06 12.49,5 12,5s-0.96,0.06 -1.41,0.17L9.11,3.7c-0.39,-0.39 -1.02,-0.39 -1.41,0 -0.39,0.39 -0.39,1.02 0,1.41l0.92,0.93C7.88,6.55 7.26,7.22 6.81,8L5,8c-0.55,0 -1,0.45 -1,1s0.45,1 1,1h1.09c-0.05,0.33 -0.09,0.66 -0.09,1v1L5,12c-0.55,0 -1,0.45 -1,1s0.45,1 1,1h1v1c0,0.34 0.04,0.67 0.09,1L5,16c-0.55,0 -1,0.45 -1,1s0.45,1 1,1h1.81c1.04,1.79 2.97,3 5.19,3s4.15,-1.21 5.19,-3L19,18c0.55,0 1,-0.45 1,-1s-0.45,-1 -1,-1h-1.09c0.05,-0.33 0.09,-0.66 0.09,-1v-1h1c0.55,0 1,-0.45 1,-1s-0.45,-1 -1,-1h-1v-1c0,-0.34 -0.04,-0.67 -0.09,-1L19,10c0.55,0 1,-0.45 1,-1s-0.45,-1 -1,-1zM13,16h-2c-0.55,0 -1,-0.45 -1,-1s0.45,-1 1,-1h2c0.55,0 1,0.45 1,1s-0.45,1 -1,1zM13,12h-2c-0.55,0 -1,-0.45 -1,-1s0.45,-1 1,-1h2c0.55,0 1,0.45 1,1s-0.45,1 -1,1z" />
+        android:pathData="M19,8h-1.81c-0.45,-0.78 -1.07,-1.45 -1.82,-1.96l0.93,-0.93c0.39,-0.39 0.39,-1.02 0,-1.41 -0.39,-0.39 -1.02,-0.39 -1.41,0l-1.47,1.47C12.96,5.06 12.49,5 12,5s-0.96,0.06 -1.41,0.17L9.11,3.7c-0.39,-0.39 -1.02,-0.39 -1.41,0 -0.39,0.39 -0.39,1.02 0,1.41l0.92,0.93C7.88,6.55 7.26,7.22 6.81,8L5,8c-0.55,0 -1,0.45 -1,1s0.45,1 1,1h1.09c-0.05,0.33 -0.09,0.66 -0.09,1v1L5,12c-0.55,0 -1,0.45 -1,1s0.45,1 1,1h1v1c0,0.34 0.04,0.67 0.09,1L5,16c-0.55,0 -1,0.45 -1,1s0.45,1 1,1h1.81c1.04,1.79 2.97,3 5.19,3s4.15,-1.21 5.19,-3L19,18c0.55,0 1,-0.45 1,-1s-0.45,-1 -1,-1h-1.09c0.05,-0.33 0.09,-0.66 0.09,-1v-1h1c0.55,0 1,-0.45 1,-1s-0.45,-1 -1,-1h-1v-1c0,-0.34 -0.04,-0.67 -0.09,-1L19,10c0.55,0 1,-0.45 1,-1s-0.45,-1 -1,-1zM13,16h-2c-0.55,0 -1,-0.45 -1,-1s0.45,-1 1,-1h2c0.55,0 1,0.45 1,1s-0.45,1 -1,1zM13,12h-2c-0.55,0 -1,-0.45 -1,-1s0.45,-1 1,-1h2c0.55,0 1,0.45 1,1s-0.45,1 -1,1z"
+        tools:ignore="VectorPath" />
 </vector>
\ No newline at end of file
index 2bd25feb0c7cd0221484560079fd4750aaca7512..a0e1338b21cd0e24c142a5b21e37fb269ca76598 100644 (file)
@@ -1,7 +1,8 @@
-<!-- This file comes from the Android Material icon set, where it is called `chrome_reader_mode_rounded`.  It is released under the Apache License 2.0. -->
+<!-- This file comes from the Android Material icon set, where it is called `list_alt_rounded_24`.  It is released under the Apache License 2.0. -->
 
 <vector
     xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
     android:height="24dp"
     android:width="24dp"
     android:viewportHeight="24"
@@ -10,5 +11,6 @@
 
     <path
         android:fillColor="@color/blue_icon"
-        android:pathData="M12,9h4c0.55,0 1,-0.45 1,-1s-0.45,-1 -1,-1h-4c-0.55,0 -1,0.45 -1,1s0.45,1 1,1zM12,13h4c0.55,0 1,-0.45 1,-1s-0.45,-1 -1,-1h-4c-0.55,0 -1,0.45 -1,1s0.45,1 1,1zM12,17h4c0.55,0 1,-0.45 1,-1s-0.45,-1 -1,-1h-4c-0.55,0 -1,0.45 -1,1s0.45,1 1,1zM7,7h2v2L7,9zM7,11h2v2L7,13zM7,15h2v2L7,17zM20,3L4,3c-0.55,0 -1,0.45 -1,1v16c0,0.55 0.45,1 1,1h16c0.55,0 1,-0.45 1,-1L21,4c0,-0.55 -0.45,-1 -1,-1zM19,19L5,19L5,5h14v14z" />
-</vector>
\ No newline at end of file
+        android:pathData="M5,21q-0.825,0 -1.413,-0.587Q3,19.825 3,19L3,5q0,-0.825 0.587,-1.413Q4.175,3 5,3h14q0.825,0 1.413,0.587Q21,4.175 21,5v14q0,0.825 -0.587,1.413Q19.825,21 19,21ZM5,19h14L19,5L5,5v14ZM8,17q0.425,0 0.713,-0.288Q9,16.425 9,16t-0.287,-0.713Q8.425,15 8,15t-0.713,0.287Q7,15.575 7,16t0.287,0.712Q7.575,17 8,17ZM8,13q0.425,0 0.713,-0.288Q9,12.425 9,12t-0.287,-0.713Q8.425,11 8,11t-0.713,0.287Q7,11.575 7,12t0.287,0.712Q7.575,13 8,13ZM8,9q0.425,0 0.713,-0.288Q9,8.425 9,8t-0.287,-0.713Q8.425,7 8,7t-0.713,0.287Q7,7.575 7,8t0.287,0.712Q7.575,9 8,9ZM12,17h4q0.425,0 0.712,-0.288Q17,16.425 17,16t-0.288,-0.713Q16.425,15 16,15h-4q-0.425,0 -0.712,0.287Q11,15.575 11,16t0.288,0.712Q11.575,17 12,17ZM12,13h4q0.425,0 0.712,-0.288Q17,12.425 17,12t-0.288,-0.713Q16.425,11 16,11h-4q-0.425,0 -0.712,0.287Q11,11.575 11,12t0.288,0.712Q11.575,13 12,13ZM12,9h4q0.425,0 0.712,-0.288Q17,8.425 17,8t-0.288,-0.713Q16.425,7 16,7h-4q-0.425,0 -0.712,0.287Q11,7.575 11,8t0.288,0.712Q11.575,9 12,9ZM5,19L5,5v14Z"
+        tools:ignore="VectorPath" />
+</vector>
diff --git a/app/src/main/res/drawable/privacy_cell_monochrome.xml b/app/src/main/res/drawable/privacy_cell_monochrome.xml
new file mode 100644 (file)
index 0000000..2760c7c
--- /dev/null
@@ -0,0 +1,40 @@
+<!--
+  Copyright © 2016,2021-2023 Soren Stoutner <soren@stoutner.com>.  The resulting image is released under the GPLv3+ license.
+
+  This file is derived from `security` and `5g`, which are part of the Android Material icon set.  They are released under the Apache License 2.0.
+
+  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
+
+  Privacy Cell 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 Cell 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 Cell.  If not, see <http://www.gnu.org/licenses/>. -->
+
+<vector
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:height="108dp"
+    android:width="108dp"
+    android:viewportHeight="256"
+    android:viewportWidth="256" >
+
+    <group
+        android:scaleX="0.4888889"
+        android:scaleY="0.4888889"
+        android:translateX="65.422226"
+        android:translateY="65.422226" >
+
+        <path
+            android:fillColor="@color/black"
+            android:pathData="M128,0 L23.27,46.55L23.27,116.36c-0,64.58 44.68,124.97 104.73,139.64 60.04,-14.66 104.73,-75.05 104.73,-139.64L232.73,46.55ZM54.85,76.63l48.66,0c4.54,0 8.11,3.57 8.11,8.11 0,4.54 -3.57,8.11 -8.11,8.11l-40.55,0l0,24.33l32.44,0c8.92,0 16.22,7.3 16.22,16.22l0,24.33c0,8.92 -7.3,16.22 -16.22,16.22l-40.55,0c-4.54,0 -8.11,-3.57 -8.11,-8.11 0,-4.54 3.57,-8.11 8.11,-8.11l40.55,0l0,-24.33l-40.55,0c-4.54,0 -8.11,-3.57 -8.11,-8.11l0,-40.55c0,-4.54 3.57,-8.11 8.11,-8.11zM144.05,76.63l56.76,0c4.54,0 8.11,3.57 8.11,8.11 0,4.54 -3.57,8.11 -8.11,8.11L144.05,92.85l0,64.87l48.66,0l0,-24.33l-24.33,0c-4.54,0 -8.11,-3.57 -8.11,-8.11 0,-4.54 3.57,-8.11 8.11,-8.11l32.44,0c4.54,0 8.11,3.57 8.11,8.11l0,32.44c0,8.92 -7.3,16.22 -16.22,16.22L144.05,173.94c-8.92,0 -16.22,-7.3 -16.22,-16.22L127.84,92.85c0,-8.92 7.3,-16.22 16.22,-16.22z"
+            tools:ignore="VectorPath" />
+    </group>
+</vector>
index a4ed573e9ba78653ce554b85a698d0f41bfee347..c28c7f2ab69830f81f57ba9aa55151b4a04533bf 100644 (file)
@@ -1,5 +1,5 @@
 <!--
-  Copyright © 2016,2021-2022 Soren Stoutner <soren@stoutner.com>.  The resulting image is released under the GPLv3+ license.
+  Copyright © 2016,2021-2023 Soren Stoutner <soren@stoutner.com>.  The resulting image is released under the GPLv3+ license.
 
   This file is derived from `security` and `5g`, which are part of the Android Material icon set.  They are released under the Apache License 2.0.
 
@@ -20,6 +20,7 @@
 
 <vector
     xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
     android:height="24dp"
     android:width="24dp"
     android:viewportHeight="256"
@@ -27,5 +28,6 @@
 
     <path
         android:fillColor="@color/disabled_icon"
-        android:pathData="M128,0 L23.273,46.545L23.273,116.364c-0,64.582 44.684,124.974 104.727,139.636 60.044,-14.662 104.727,-75.054 104.727,-139.636L232.727,46.545ZM54.852,76.633l48.656,0c4.541,0 8.109,3.569 8.109,8.11 0,4.541 -3.568,8.109 -8.109,8.109l-40.547,0l0,24.327l32.437,0c8.92,0 16.219,7.298 16.219,16.219l0,24.328c0,8.92 -7.298,16.219 -16.219,16.219l-40.546,0c-4.541,0 -8.11,-3.569 -8.11,-8.11 0,-4.541 3.569,-8.109 8.11,-8.109l40.546,0l0,-24.328l-40.546,0c-4.541,0 -8.11,-3.568 -8.11,-8.109l0,-40.546c0,-4.541 3.569,-8.11 8.11,-8.11zM144.054,76.633l56.765,0c4.541,0 8.109,3.569 8.109,8.11 0,4.541 -3.568,8.109 -8.109,8.109L144.054,92.852l0,64.874l48.656,0l0,-24.328l-24.328,0c-4.541,0 -8.109,-3.568 -8.109,-8.109 0,-4.541 3.568,-8.11 8.109,-8.11l32.437,0c4.541,0 8.109,3.569 8.109,8.11l0,32.437c0,8.92 -7.297,16.219 -16.218,16.219L144.054,173.945c-8.92,0 -16.219,-7.298 -16.219,-16.219L127.835,92.852c0,-8.92 7.298,-16.219 16.219,-16.219z" />
+        android:pathData="M128,0 L23.273,46.545L23.273,116.364c-0,64.582 44.684,124.974 104.727,139.636 60.044,-14.662 104.727,-75.054 104.727,-139.636L232.727,46.545ZM54.852,76.633l48.656,0c4.541,0 8.109,3.569 8.109,8.11 0,4.541 -3.568,8.109 -8.109,8.109l-40.547,0l0,24.327l32.437,0c8.92,0 16.219,7.298 16.219,16.219l0,24.328c0,8.92 -7.298,16.219 -16.219,16.219l-40.546,0c-4.541,0 -8.11,-3.569 -8.11,-8.11 0,-4.541 3.569,-8.109 8.11,-8.109l40.546,0l0,-24.328l-40.546,0c-4.541,0 -8.11,-3.568 -8.11,-8.109l0,-40.546c0,-4.541 3.569,-8.11 8.11,-8.11zM144.054,76.633l56.765,0c4.541,0 8.109,3.569 8.109,8.11 0,4.541 -3.568,8.109 -8.109,8.109L144.054,92.852l0,64.874l48.656,0l0,-24.328l-24.328,0c-4.541,0 -8.109,-3.568 -8.109,-8.109 0,-4.541 3.568,-8.11 8.109,-8.11l32.437,0c4.541,0 8.109,3.569 8.109,8.11l0,32.437c0,8.92 -7.297,16.219 -16.218,16.219L144.054,173.945c-8.92,0 -16.219,-7.298 -16.219,-16.219L127.835,92.852c0,-8.92 7.298,-16.219 16.219,-16.219z"
+        tools:ignore="VectorPath" />
 </vector>
\ No newline at end of file
index 83bd9c15827a42b6c57fdd4ed410860eab185be5..6520b5257bcca2a65f0007f24379607fad8d0efd 100644 (file)
@@ -1,5 +1,5 @@
 <!--
-  Copyright © 2016,2021-2022 Soren Stoutner <soren@stoutner.com>.  The resulting image is released under the GPLv3+ license.
+  Copyright © 2016,2021-2023 Soren Stoutner <soren@stoutner.com>.  The resulting image is released under the GPLv3+ license.
 
   This file is derived from `security` and `5g`, which are part of the Android Material icon set.  They are released under the Apache License 2.0.
 
@@ -20,6 +20,7 @@
 
 <vector
     xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
     android:height="24dp"
     android:width="24dp"
     android:viewportHeight="256"
@@ -27,5 +28,6 @@
 
     <path
         android:fillColor="@color/blue_icon"
-        android:pathData="M128,0 L23.273,46.545L23.273,116.364c-0,64.582 44.684,124.974 104.727,139.636 60.044,-14.662 104.727,-75.054 104.727,-139.636L232.727,46.545ZM54.852,76.633l48.656,0c4.541,0 8.109,3.569 8.109,8.11 0,4.541 -3.568,8.109 -8.109,8.109l-40.547,0l0,24.327l32.437,0c8.92,0 16.219,7.298 16.219,16.219l0,24.328c0,8.92 -7.298,16.219 -16.219,16.219l-40.546,0c-4.541,0 -8.11,-3.569 -8.11,-8.11 0,-4.541 3.569,-8.109 8.11,-8.109l40.546,0l0,-24.328l-40.546,0c-4.541,0 -8.11,-3.568 -8.11,-8.109l0,-40.546c0,-4.541 3.569,-8.11 8.11,-8.11zM144.054,76.633l56.765,0c4.541,0 8.109,3.569 8.109,8.11 0,4.541 -3.568,8.109 -8.109,8.109L144.054,92.852l0,64.874l48.656,0l0,-24.328l-24.328,0c-4.541,0 -8.109,-3.568 -8.109,-8.109 0,-4.541 3.568,-8.11 8.109,-8.11l32.437,0c4.541,0 8.109,3.569 8.109,8.11l0,32.437c0,8.92 -7.297,16.219 -16.218,16.219L144.054,173.945c-8.92,0 -16.219,-7.298 -16.219,-16.219L127.835,92.852c0,-8.92 7.298,-16.219 16.219,-16.219z" />
+        android:pathData="M128,0 L23.273,46.545L23.273,116.364c-0,64.582 44.684,124.974 104.727,139.636 60.044,-14.662 104.727,-75.054 104.727,-139.636L232.727,46.545ZM54.852,76.633l48.656,0c4.541,0 8.109,3.569 8.109,8.11 0,4.541 -3.568,8.109 -8.109,8.109l-40.547,0l0,24.327l32.437,0c8.92,0 16.219,7.298 16.219,16.219l0,24.328c0,8.92 -7.298,16.219 -16.219,16.219l-40.546,0c-4.541,0 -8.11,-3.569 -8.11,-8.11 0,-4.541 3.569,-8.109 8.11,-8.109l40.546,0l0,-24.328l-40.546,0c-4.541,0 -8.11,-3.568 -8.11,-8.109l0,-40.546c0,-4.541 3.569,-8.11 8.11,-8.11zM144.054,76.633l56.765,0c4.541,0 8.109,3.569 8.109,8.11 0,4.541 -3.568,8.109 -8.109,8.109L144.054,92.852l0,64.874l48.656,0l0,-24.328l-24.328,0c-4.541,0 -8.109,-3.568 -8.109,-8.109 0,-4.541 3.568,-8.11 8.109,-8.11l32.437,0c4.541,0 8.109,3.569 8.109,8.11l0,32.437c0,8.92 -7.297,16.219 -16.218,16.219L144.054,173.945c-8.92,0 -16.219,-7.298 -16.219,-16.219L127.835,92.852c0,-8.92 7.298,-16.219 16.219,-16.219z"
+        tools:ignore="VectorPath" />
 </vector>
\ No newline at end of file
index 5ddf76e3731819acb71f31cc7cfa0a47b615104a..4a27af1f13d16a07ce2b4463f5cec0e768c60c6c 100644 (file)
@@ -1,5 +1,5 @@
 <!--
-  Copyright © 2016,2021-2022 Soren Stoutner <soren@stoutner.com>.  The resulting image is released under the GPLv3+ license.
+  Copyright © 2016,2021-2023 Soren Stoutner <soren@stoutner.com>.  The resulting image is released under the GPLv3+ license.
 
   This file is derived from `security` and `5g`, which are part of the Android Material icon set.  They are released under the Apache License 2.0.
 
@@ -20,6 +20,7 @@
 
 <vector
     xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
     android:height="24dp"
     android:width="24dp"
     android:viewportHeight="256"
@@ -27,5 +28,6 @@
 
     <path
         android:fillColor="@color/ghosted_icon"
-        android:pathData="M128,0 L23.273,46.545L23.273,116.364c-0,64.582 44.684,124.974 104.727,139.636 60.044,-14.662 104.727,-75.054 104.727,-139.636L232.727,46.545ZM54.852,76.633l48.656,0c4.541,0 8.109,3.569 8.109,8.11 0,4.541 -3.568,8.109 -8.109,8.109l-40.547,0l0,24.327l32.437,0c8.92,0 16.219,7.298 16.219,16.219l0,24.328c0,8.92 -7.298,16.219 -16.219,16.219l-40.546,0c-4.541,0 -8.11,-3.569 -8.11,-8.11 0,-4.541 3.569,-8.109 8.11,-8.109l40.546,0l0,-24.328l-40.546,0c-4.541,0 -8.11,-3.568 -8.11,-8.109l0,-40.546c0,-4.541 3.569,-8.11 8.11,-8.11zM144.054,76.633l56.765,0c4.541,0 8.109,3.569 8.109,8.11 0,4.541 -3.568,8.109 -8.109,8.109L144.054,92.852l0,64.874l48.656,0l0,-24.328l-24.328,0c-4.541,0 -8.109,-3.568 -8.109,-8.109 0,-4.541 3.568,-8.11 8.109,-8.11l32.437,0c4.541,0 8.109,3.569 8.109,8.11l0,32.437c0,8.92 -7.297,16.219 -16.218,16.219L144.054,173.945c-8.92,0 -16.219,-7.298 -16.219,-16.219L127.835,92.852c0,-8.92 7.298,-16.219 16.219,-16.219z" />
+        android:pathData="M128,0 L23.273,46.545L23.273,116.364c-0,64.582 44.684,124.974 104.727,139.636 60.044,-14.662 104.727,-75.054 104.727,-139.636L232.727,46.545ZM54.852,76.633l48.656,0c4.541,0 8.109,3.569 8.109,8.11 0,4.541 -3.568,8.109 -8.109,8.109l-40.547,0l0,24.327l32.437,0c8.92,0 16.219,7.298 16.219,16.219l0,24.328c0,8.92 -7.298,16.219 -16.219,16.219l-40.546,0c-4.541,0 -8.11,-3.569 -8.11,-8.11 0,-4.541 3.569,-8.109 8.11,-8.109l40.546,0l0,-24.328l-40.546,0c-4.541,0 -8.11,-3.568 -8.11,-8.109l0,-40.546c0,-4.541 3.569,-8.11 8.11,-8.11zM144.054,76.633l56.765,0c4.541,0 8.109,3.569 8.109,8.11 0,4.541 -3.568,8.109 -8.109,8.109L144.054,92.852l0,64.874l48.656,0l0,-24.328l-24.328,0c-4.541,0 -8.109,-3.568 -8.109,-8.109 0,-4.541 3.568,-8.11 8.109,-8.11l32.437,0c4.541,0 8.109,3.569 8.109,8.11l0,32.437c0,8.92 -7.297,16.219 -16.218,16.219L144.054,173.945c-8.92,0 -16.219,-7.298 -16.219,-16.219L127.835,92.852c0,-8.92 7.298,-16.219 16.219,-16.219z"
+        tools:ignore="VectorPath" />
 </vector>
\ No newline at end of file
index 9c55e11df1262df54db7d7ae258eb4d0d4993559..ed9151a11227a6806c78732a06d0302c61370528 100644 (file)
@@ -2,6 +2,7 @@
 
 <vector
     xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
     android:height="24dp"
     android:width="24dp"
     android:viewportHeight="24"
@@ -9,5 +10,6 @@
 
     <path
         android:fillColor="@color/blue_icon"
-        android:pathData="M19.43,12.98c0.04,-0.32 0.07,-0.64 0.07,-0.98s-0.03,-0.66 -0.07,-0.98l2.11,-1.65c0.19,-0.15 0.24,-0.42 0.12,-0.64l-2,-3.46c-0.12,-0.22 -0.39,-0.3 -0.61,-0.22l-2.49,1c-0.52,-0.4 -1.08,-0.73 -1.69,-0.98l-0.38,-2.65C14.46,2.18 14.25,2 14,2h-4c-0.25,0 -0.46,0.18 -0.49,0.42l-0.38,2.65c-0.61,0.25 -1.17,0.59 -1.69,0.98l-2.49,-1c-0.23,-0.09 -0.49,0 -0.61,0.22l-2,3.46c-0.13,0.22 -0.07,0.49 0.12,0.64l2.11,1.65c-0.04,0.32 -0.07,0.65 -0.07,0.98s0.03,0.66 0.07,0.98l-2.11,1.65c-0.19,0.15 -0.24,0.42 -0.12,0.64l2,3.46c0.12,0.22 0.39,0.3 0.61,0.22l2.49,-1c0.52,0.4 1.08,0.73 1.69,0.98l0.38,2.65c0.03,0.24 0.24,0.42 0.49,0.42h4c0.25,0 0.46,-0.18 0.49,-0.42l0.38,-2.65c0.61,-0.25 1.17,-0.59 1.69,-0.98l2.49,1c0.23,0.09 0.49,0 0.61,-0.22l2,-3.46c0.12,-0.22 0.07,-0.49 -0.12,-0.64l-2.11,-1.65zM12,15.5c-1.93,0 -3.5,-1.57 -3.5,-3.5s1.57,-3.5 3.5,-3.5 3.5,1.57 3.5,3.5 -1.57,3.5 -3.5,3.5z" />
+        android:pathData="M19.43,12.98c0.04,-0.32 0.07,-0.64 0.07,-0.98s-0.03,-0.66 -0.07,-0.98l2.11,-1.65c0.19,-0.15 0.24,-0.42 0.12,-0.64l-2,-3.46c-0.12,-0.22 -0.39,-0.3 -0.61,-0.22l-2.49,1c-0.52,-0.4 -1.08,-0.73 -1.69,-0.98l-0.38,-2.65C14.46,2.18 14.25,2 14,2h-4c-0.25,0 -0.46,0.18 -0.49,0.42l-0.38,2.65c-0.61,0.25 -1.17,0.59 -1.69,0.98l-2.49,-1c-0.23,-0.09 -0.49,0 -0.61,0.22l-2,3.46c-0.13,0.22 -0.07,0.49 0.12,0.64l2.11,1.65c-0.04,0.32 -0.07,0.65 -0.07,0.98s0.03,0.66 0.07,0.98l-2.11,1.65c-0.19,0.15 -0.24,0.42 -0.12,0.64l2,3.46c0.12,0.22 0.39,0.3 0.61,0.22l2.49,-1c0.52,0.4 1.08,0.73 1.69,0.98l0.38,2.65c0.03,0.24 0.24,0.42 0.49,0.42h4c0.25,0 0.46,-0.18 0.49,-0.42l0.38,-2.65c0.61,-0.25 1.17,-0.59 1.69,-0.98l2.49,1c0.23,0.09 0.49,0 0.61,-0.22l2,-3.46c0.12,-0.22 0.07,-0.49 -0.12,-0.64l-2.11,-1.65zM12,15.5c-1.93,0 -3.5,-1.57 -3.5,-3.5s1.57,-3.5 3.5,-3.5 3.5,1.57 3.5,3.5 -1.57,3.5 -3.5,3.5z"
+        tools:ignore="VectorPath" />
 </vector>
\ No newline at end of file
index aeb1f4f070211b40f7b15cf1aa2d8fd00786d532..1730b445472af2d159bb10a33066880a7749e285 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 
 <!--
-  Copyright © 2021-2022 Soren Stoutner <soren@stoutner.com>.
+  Copyright 2021-2022 Soren Stoutner <soren@stoutner.com>.
 
   This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
 
@@ -31,4 +31,4 @@
         android:id="@+id/webview"
         android:layout_height="match_parent"
         android:layout_width="match_parent" />
-</LinearLayout>
\ No newline at end of file
+</LinearLayout>
diff --git a/app/src/main/res/mipmap-anydpi-v26/privacy_cell.xml b/app/src/main/res/mipmap-anydpi-v26/privacy_cell.xml
deleted file mode 100644 (file)
index 1a8afaf..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-  Copyright © 2016,2021-2022 Soren Stoutner <soren@stoutner.com>.  The resulting image is released under the GPLv3+ license.
-
-  This file is derived from `security` and `5g`, which are part of the Android Material icon set.  They are released under the Apache License 2.0.
-
-  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
-
-  Privacy Cell 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 Cell 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 Cell.  If not, see <http://www.gnu.org/licenses/>. -->
-
-<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
-    <background android:drawable="@color/white"/>
-    <foreground android:drawable="@drawable/privacy_cell_foreground"/>
-</adaptive-icon>
\ No newline at end of file
diff --git a/app/src/main/res/mipmap/privacy_cell.xml b/app/src/main/res/mipmap/privacy_cell.xml
new file mode 100644 (file)
index 0000000..20a0f54
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+  Copyright © 2016,2021-2023 Soren Stoutner <soren@stoutner.com>.  The resulting image is released under the GPLv3+ license.
+
+  This file is derived from `security` and `5g`, which are part of the Android Material icon set.  They are released under the Apache License 2.0.
+
+  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
+
+  Privacy Cell 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 Cell 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 Cell.  If not, see <http://www.gnu.org/licenses/>. -->
+
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
+    <background android:drawable="@color/white" />
+    <foreground android:drawable="@drawable/privacy_cell_foreground" />
+    <monochrome android:drawable="@drawable/privacy_cell_monochrome" />
+</adaptive-icon>
index 97855a8e9aa0cda25c9be702bcb3aa96389b4031..fab1a378a59cd632694689579d881107f1f4c29c 100644 (file)
     <string name="monitoring">Мониторинг</string>
     <string name="realtime_monitoring">Мониторинг в реальном времени</string>
     <string name="realtime_monitoring_summary">Поместить в строку состояния значок для отслеживания сотовой сети.</string>
+        <string name="notification_permission_denied">Разрешение на отправку уведомлений в настоящее время запрещено, поэтому уведомления отображаться не будут.</string>
     <string name="secure_network_notification">Уведомление о безопасной сети</string>
     <string name="insecure_network_notification">Уведомление о небезопасной сети</string>
     <string name="antiquated_network_notification">Оповещение об устаревшей сети</string>
diff --git a/app/src/main/res/xml/locales_config.xml b/app/src/main/res/xml/locales_config.xml
new file mode 100644 (file)
index 0000000..8635f4b
--- /dev/null
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+  Copyright 2022 Soren Stoutner <soren@stoutner.com>.
+
+  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
+
+  Privacy Cell 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 Cell 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 Cell.  If not, see <http://www.gnu.org/licenses/>. -->
+
+<!-- https://developer.android.com/guide/topics/resources/app-languages#app-language-settings -->
+<locale-config xmlns:android="http://schemas.android.com/apk/res/android">
+    <locale android:name="en"/>  <!-- English. -->
+    <locale android:name="de"/>  <!-- German. -->
+    <locale android:name="es"/>  <!-- Spanish. -->
+    <locale android:name="fr"/>  <!-- French. -->
+    <locale android:name="it"/>  <!-- Italian. -->
+    <locale android:name="ru"/>  <!-- Russian. -->
+</locale-config>
index 5f4a00532056415c4deb0ac85df682c3e826baed..428e4af4b2c89a4c77ec504471e12ed54c3dc768 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2021-2022 Soren Stoutner <soren@stoutner.com>.
+ * Copyright 2021-2023 Soren Stoutner <soren@stoutner.com>.
  *
  * This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
  *
@@ -25,14 +25,14 @@ buildscript {
     }
 
     dependencies {
-        classpath 'com.android.tools.build:gradle:7.3.1'
-        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.20"
+        classpath 'com.android.tools.build:gradle:8.1.2'
+        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.22"
 
         // NOTE: Do not place your application dependencies here; they belong
         // in the individual module build.gradle files
     }
 }
 
-task clean(type: Delete) {
+tasks.register('clean', Delete) {
     delete rootProject.buildDir
 }
diff --git a/fastlane/metadata/android/de-DE/changelogs/11.txt b/fastlane/metadata/android/de-DE/changelogs/11.txt
new file mode 100644 (file)
index 0000000..765e279
--- /dev/null
@@ -0,0 +1,5 @@
+• Ziel-API auf 33 (Android 13) angehoben.
+• Wischgeste zum zum Ablehnen der Benachrichtigungen des Echtzeit-Monitorings unter Android 13 deaktiviert.
+• App-Sprachauswahl zur Auswahl der Sprache von Privacy Cell unter Android 13 hinzugefügt.
+• Scroll-Position im Einstellungs-Dialog wird nun bei Neustarts beibehalten.
+• Erste komplette deutsche Übersetzung von Bernhard G. Keller.
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/changelogs/11.txt b/fastlane/metadata/android/en-US/changelogs/11.txt
new file mode 100644 (file)
index 0000000..b4c7df8
--- /dev/null
@@ -0,0 +1,4 @@
+• Bump the target API to 33 (Android 13).
+• Disable swiping to dismiss the realtime monitoring notification on Android 13.
+• Enable per-app language support on Android 13.
+• Preserve the Settings scroll location on restart.
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/changelogs/12.txt b/fastlane/metadata/android/en-US/changelogs/12.txt
new file mode 100644 (file)
index 0000000..17eee61
--- /dev/null
@@ -0,0 +1,5 @@
+• Create an optional monochrome icon (can be used in Android >= 13).
+• Allow Privacy Cell to be included in system backups.
+• Bump the target API to 34 (Android 14).
+• Document permissions needed for newer versions of Android.
+• Repopulate the realtime monitoring notification every 15 minutes.
\ No newline at end of file
diff --git a/fastlane/metadata/android/es-ES/changelogs/11.txt b/fastlane/metadata/android/es-ES/changelogs/11.txt
new file mode 100644 (file)
index 0000000..17ebc3a
--- /dev/null
@@ -0,0 +1,5 @@
+• Subir la API de destino a 33 (Android 13).
+• Desactivar el deslizamiento para descartar la notificación de seguimiento en tiempo real en Android 13.
+• Habilitar el soporte de idiomas por aplicación en Android 13.
+• Preservar la localización de desplazamiento de los Ajustes al reiniciar.
+• Traducción actualizada al español aportada por Jose A. León.
\ No newline at end of file
diff --git a/fastlane/metadata/android/es-ES/changelogs/12.txt b/fastlane/metadata/android/es-ES/changelogs/12.txt
new file mode 100644 (file)
index 0000000..0782007
--- /dev/null
@@ -0,0 +1,6 @@
+• Crear un icono monocromo opcional (puede usarse en Android >= 13).
+• Permitir que Privacy Cell se incluya en las copias de seguridad del sistema.
+• Subir la API objetivo a 34 (Android 14).
+• Documentar los permisos necesarios para las nuevas versiones de Android.
+• Repoblar la notificación de seguimiento en tiempo real cada 15 minutos.
+• Traducción actualizada al español aportada por Jose A. León.
\ No newline at end of file
diff --git a/fastlane/metadata/android/fr-FR/changelogs/11.txt b/fastlane/metadata/android/fr-FR/changelogs/11.txt
new file mode 100644 (file)
index 0000000..9bed719
--- /dev/null
@@ -0,0 +1,5 @@
+• Passage de l'API cible à 33 (Android 13).
+• Désactivation du glissement pour rejeter la notification de surveillance en temps réel sur Android 13.
+• Activation du support de la langue par application sur Android 13.
+• Conservation de l'emplacement du défilement des paramètres au redémarrage.
+• Mise à jour de la traduction française par Kévin L.
\ No newline at end of file
diff --git a/fastlane/metadata/android/it-IT/changelogs/11.txt b/fastlane/metadata/android/it-IT/changelogs/11.txt
new file mode 100644 (file)
index 0000000..436490c
--- /dev/null
@@ -0,0 +1,5 @@
+• Modifica della target API a 33 (Android 13).
+• Disabilitata la possibilità di effettuare lo swipe per eliminare la notifica di monitoraggio in tempo reale su Android 13.
+• Abilitato il supporto della lingua per-app su Android 13.
+• Mantenimento della posizione dello scorrimento delle impostazioni al riavvio.
+• Aggiornamento della traduzione in lingua Italiana fornito da Francesco Buratti.
\ No newline at end of file
diff --git a/fastlane/metadata/android/ru-RU/changelogs/11.txt b/fastlane/metadata/android/ru-RU/changelogs/11.txt
new file mode 100644 (file)
index 0000000..e47c297
--- /dev/null
@@ -0,0 +1,5 @@
+• Целевой API повышен до 33 (Android 13).
+• Отключен свайп уведомления о мониторинге в реальном времени на Android 13.
+• Включена поддержка языков для каждого приложения на Android 13.
+• При перезапуске сохраняется положение прокрутки настроек.
+• Первый полный перевод на русский язык.
\ No newline at end of file
diff --git a/fastlane/metadata/android/ru-RU/changelogs/12.txt b/fastlane/metadata/android/ru-RU/changelogs/12.txt
new file mode 100644 (file)
index 0000000..eb9865b
--- /dev/null
@@ -0,0 +1,5 @@
+• Создан дополнительный монохромный значок (может использоваться в Android >= 13).
+• Разрешено включать Privacy Cell в системные резервные копии.
+• Целевой API повышен до 34 (Android 14).
+• Документированы необходимые разрешения для новых версий Android.
+• Повторное формирование уведомления о мониторинге в реальном времени каждые 15 минут.
\ No newline at end of file
index 98bed167dc90ffee72b7affb37a659966b1bd114..06cfed7280dbbae234ce4ff14333d98a54c128d3 100644 (file)
@@ -1,3 +1,20 @@
+# Copyright 2023 Soren Stoutner <soren@stoutner.com>.
+#
+# This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
+#
+# Privacy Cell 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 Cell 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.  If not, see <http://www.gnu.org/licenses/>.
+
 # Project-wide Gradle settings.
 # IDE (e.g. Android Studio) users:
 # Gradle settings configured through the IDE *will override*
 # Specifies the JVM arguments used for the daemon process.
 # The setting is particularly useful for tweaking memory settings.
 org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
+
 # When configured, Gradle will run in incubating parallel mode.
 # This option should only be used with decoupled projects. More details, visit
 # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
 # org.gradle.parallel=true
+
 # AndroidX package structure to make it clearer which packages are bundled with the
 # Android operating system, and which are packaged with your app"s APK
 # https://developer.android.com/topic/libraries/support-library/androidx-rn
 android.useAndroidX=true
+
 # Automatically convert third-party libraries to use AndroidX
 android.enableJetifier=true
+
 # Kotlin code style for this project: "official" or "obsolete":
-kotlin.code.style=official
\ No newline at end of file
+kotlin.code.style=official
+
+# Enable the configuration cache, which improves build speed.
+org.gradle.unsafe.configuration-cache=true
+
+# Use non-transitive R classes, which speed up the build process when the configuration has not changed.
+android.nonTransitiveRClass=true
+
+# Use non-final resource IDs for faster incremental compilation.
+android.nonFinalResIds=true
+
+android.defaults.buildfeatures.buildconfig=true
\ No newline at end of file
index 177ccd7c04cebf67a7e3936cce5d8b4d5928d54f..2f3069e14d472d61382a89927f95336793e61f3b 100644 (file)
@@ -1,6 +1,23 @@
+# Copyright 2023 Soren Stoutner <soren@stoutner.com>.
+#
+# This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
+#
+# Privacy Cell 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 Cell 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.  If not, see <http://www.gnu.org/licenses/>.
+
 #Thu Aug 12 09:15:13 MST 2021
 distributionBase=GRADLE_USER_HOME
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip
 distributionPath=wrapper/dists
 zipStorePath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME