Add a higher level warning for antiquated protocols. https://redmine.stoutner.com...
authorSoren Stoutner <soren@stoutner.com>
Mon, 7 Mar 2022 20:26:58 +0000 (13:26 -0700)
committerSoren Stoutner <soren@stoutner.com>
Mon, 7 Mar 2022 20:26:58 +0000 (13:26 -0700)
64 files changed:
app/src/main/assets/css/theme.css
app/src/main/assets/de/licenses.html
app/src/main/assets/en/explanations/antiquated_network.html [new file with mode: 0644]
app/src/main/assets/en/licenses.html
app/src/main/assets/es/licenses.html
app/src/main/assets/fr/licenses.html
app/src/main/assets/images/antiquated.svg [new file with mode: 0644]
app/src/main/assets/images/antiquated_3g.svg [new file with mode: 0644]
app/src/main/assets/images/antiquated_notification.svg [new file with mode: 0644]
app/src/main/assets/images/insecure.svg [new file with mode: 0644]
app/src/main/assets/images/insecure_notification.svg
app/src/main/assets/images/not_secure.svg [deleted file]
app/src/main/assets/images/privacy_cell.svg [deleted file]
app/src/main/assets/images/secure.svg [new file with mode: 0644]
app/src/main/assets/images/secure_notification.svg
app/src/main/assets/images/settings_input_antenna_rounded.svg [new file with mode: 0644]
app/src/main/assets/it/licenses.html
app/src/main/assets/ru/licenses.html
app/src/main/java/com/stoutner/privacycell/activities/PrivacyCellActivity.kt
app/src/main/java/com/stoutner/privacycell/dialogs/WebViewDialog.kt
app/src/main/java/com/stoutner/privacycell/fragments/SettingsFragment.kt
app/src/main/java/com/stoutner/privacycell/services/RealtimeMonitoringService.kt
app/src/main/res/drawable/antiquated.xml [new file with mode: 0644]
app/src/main/res/drawable/antiquated_3g_disabled.xml [new file with mode: 0644]
app/src/main/res/drawable/antiquated_3g_enabled.xml [new file with mode: 0644]
app/src/main/res/drawable/antiquated_notification_disabled.xml [new file with mode: 0644]
app/src/main/res/drawable/antiquated_notification_enabled.xml [new file with mode: 0644]
app/src/main/res/drawable/antiquated_notification_ghosted.xml [new file with mode: 0644]
app/src/main/res/drawable/insecure.xml [new file with mode: 0644]
app/src/main/res/drawable/insecure_notification.xml [deleted file]
app/src/main/res/drawable/insecure_notification_disabled.xml [new file with mode: 0644]
app/src/main/res/drawable/insecure_notification_enabled.xml [new file with mode: 0644]
app/src/main/res/drawable/insecure_notification_ghosted.xml [new file with mode: 0644]
app/src/main/res/drawable/not_secure.xml [deleted file]
app/src/main/res/drawable/realtime_monitoring_disabled.xml [deleted file]
app/src/main/res/drawable/realtime_monitoring_enabled.xml [deleted file]
app/src/main/res/drawable/realtime_monitoring_ghosted.xml [deleted file]
app/src/main/res/drawable/secure.xml [new file with mode: 0644]
app/src/main/res/drawable/secure_5g_nr_sa.xml [deleted file]
app/src/main/res/drawable/secure_notification.xml [deleted file]
app/src/main/res/drawable/secure_notification_disabled.xml [new file with mode: 0644]
app/src/main/res/drawable/secure_notification_enabled.xml [new file with mode: 0644]
app/src/main/res/drawable/secure_notification_ghosted.xml [new file with mode: 0644]
app/src/main/res/layout/privacy_cell_bottom_appbar.xml
app/src/main/res/layout/privacy_cell_top_appbar.xml
app/src/main/res/values-de/strings.xml
app/src/main/res/values-es/strings.xml
app/src/main/res/values-fr/strings.xml
app/src/main/res/values-it/strings.xml
app/src/main/res/values-night/colors.xml
app/src/main/res/values-ru/strings.xml
app/src/main/res/values/colors.xml
app/src/main/res/values/strings.xml
app/src/main/res/xml/preferences.xml
build.gradle
fastlane/metadata/android/en-US/full_description.txt
fastlane/metadata/android/en-US/images/phoneScreenshots/01-SecureNetwork-en.png [new file with mode: 0644]
fastlane/metadata/android/en-US/images/phoneScreenshots/01-Standalone5G-en.png [deleted file]
fastlane/metadata/android/en-US/images/phoneScreenshots/02-Danger-en.png [deleted file]
fastlane/metadata/android/en-US/images/phoneScreenshots/02-InsecureNetwork-en.png [new file with mode: 0644]
fastlane/metadata/android/en-US/images/phoneScreenshots/03-AntiquatedNetwork-en.png [new file with mode: 0644]
fastlane/metadata/android/en-US/images/phoneScreenshots/03-Stingrays-en.png [deleted file]
fastlane/metadata/android/en-US/images/phoneScreenshots/04-NavigationMenu-en.png
fastlane/metadata/android/en-US/images/phoneScreenshots/05-DarkTheme-en.png

index a78eb750a68b05fb75051d87b7e45cef4021fa28..4ba9d884b20385a86f4973b54f224d1e9981b710 100644 (file)
@@ -34,7 +34,7 @@ a {
 
 @media (prefers-color-scheme: dark) {
   a {
 
 @media (prefers-color-scheme: dark) {
   a {
-    color: #5785C5;  /* Violet 700 */
+    color: #8AB4F8;  /* Violet 500 */
   }
 }
 
   }
 }
 
index fff3db315ad71761c47a6e587740e52f34715cea..bb23459db8c235d33b374f97157bc6afe89a6fb9 100644 (file)
@@ -1,7 +1,7 @@
 <!--
   Copyright © 2021-2022 Soren Stoutner <soren@stoutner.com>.
 
 <!--
   Copyright © 2021-2022 Soren Stoutner <soren@stoutner.com>.
 
-  Translation 2021 Bernhard G. Keller.  Copyright assigned to Soren Stoutner <soren@stoutner.com>.
+  Translation 2021-2022 Bernhard G. Keller.  Copyright assigned to Soren Stoutner <soren@stoutner.com>.
 
   This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
 
 
   This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
 
             welche 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.</p>
 
         <h3>Icons</h3>
             welche 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.</p>
 
         <h3>Icons</h3>
-        <p><img class="left" src="../images/privacy_cell.svg"/> <img class="left" src="../images/secure_notification.svg"/> sind abgeleitet von <code>security</code> und <code>5g</code>,
+        <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
             <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache 2.0 Lizenz</a> veröffentlicht werden.
             welche Teil des <a href="https://material.io/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 <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>
             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/not_secure.svg"/> <img class="left" src="../images/insecure_notification.svg"/> sind abgeleitet von <code>security</code> und <code>do_not_disturb</code>,
+        <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
             <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache 2.0 Lizenz</a> veröffentlicht werden.
             welche Teil des <a href="https://material.io/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 <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>
             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
+            <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>.
+            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"/> 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>.
+            The resulting image is released under the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+ license</a>.</p>
         <p>Die folgenden Icons stammen aus dem <a href="https://material.io/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.
         <p>Die folgenden Icons stammen aus dem <a href="https://material.io/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.
@@ -72,6 +81,7 @@
         <p><svg class="icon"><use href="../images/phone_android_outlined.svg#icon"/></svg> phone_android_outlined.</p>
         <p><svg class="icon"><use href="../images/policy_filled.svg#icon"/></svg> policy_filled.</p>
         <p><svg class="icon"><use href="../images/save_outlined.svg#icon"/></svg> save_outlined.</p>
         <p><svg class="icon"><use href="../images/phone_android_outlined.svg#icon"/></svg> phone_android_outlined.</p>
         <p><svg class="icon"><use href="../images/policy_filled.svg#icon"/></svg> policy_filled.</p>
         <p><svg class="icon"><use href="../images/save_outlined.svg#icon"/></svg> save_outlined.</p>
+        <p><svg class="icon"><use href="../images/settings_input_antenna_rounded.svg#icon"/></svg> settings_input_antenna_rounded.</p>
         <p><svg class="icon"><use href="../images/settings_rounded.svg#icon"/></svg> settings_rounded.</p>
         <p><svg class="icon"><use href="../images/text_snippet_outlined.svg#icon"/></svg> text_snippet_outlined.</p>
 
         <p><svg class="icon"><use href="../images/settings_rounded.svg#icon"/></svg> settings_rounded.</p>
         <p><svg class="icon"><use href="../images/text_snippet_outlined.svg#icon"/></svg> text_snippet_outlined.</p>
 
diff --git a/app/src/main/assets/en/explanations/antiquated_network.html b/app/src/main/assets/en/explanations/antiquated_network.html
new file mode 100644 (file)
index 0000000..2d5a283
--- /dev/null
@@ -0,0 +1,35 @@
+<!--
+  Copyright © 2021-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/>. -->
+
+<html>
+    <head>
+        <meta charset="UTF-8">
+
+        <link rel="stylesheet" href="../../css/theme.css">
+
+        <!-- Setting the color scheme instructs the WebView to respect `prefers-color-scheme` @media CSS. -->
+        <meta name="color-scheme" content="light dark">
+    </head>
+
+    <body>
+        <p>You are connected to a cell phone network using antiquated protocols, which have multiple known vulnerabilities.</p>
+
+        <p>2G networks have been <a href="https://www.eff.org/deeplinks/2022/01/victory-google-releases-disable-2g-feature-new-android-smartphones">decommissioned in most of the world</a>.
+            3G networks are currently being decommissioned. Unless you know that the carrier in your area is running antiquated protocols, you should consider your device under active attack.</p>
+    </body>
+</html>
\ No newline at end of file
index 9ab6459179a61cc622bc65c6fcb76da9b5fd39ae..a7f17438df9db5b23f2988d5d7addb7e40540ef2 100644 (file)
             which 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.</p>
 
         <h3>Icons</h3>
             which 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.</p>
 
         <h3>Icons</h3>
-        <p><img class="left" src="../images/privacy_cell.svg"/> <img class="left" src="../images/secure_notification.svg"/> are derived from <code>security</code> and <code>5g</code>,
+        <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>.
             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 <a href="mailto:soren@stoutner.com">Soren Stoutner</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>
             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/not_secure.svg"/> <img class="left" src="../images/insecure_notification.svg"/> are derived from <code>security</code> and <code>do_not_disturb</code>,
+        <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>.
             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 <a href="mailto:soren@stoutner.com">Soren Stoutner</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>
             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>.
+            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>.
+            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>,
             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>The following icons come from the <a href="https://material.io/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>
@@ -67,6 +75,7 @@
         <p><svg class="icon"><use href="../images/phone_android_outlined.svg#icon"/></svg> phone_android_outlined.</p>
         <p><svg class="icon"><use href="../images/policy_filled.svg#icon"/></svg> policy_filled.</p>
         <p><svg class="icon"><use href="../images/save_outlined.svg#icon"/></svg> save_outlined.</p>
         <p><svg class="icon"><use href="../images/phone_android_outlined.svg#icon"/></svg> phone_android_outlined.</p>
         <p><svg class="icon"><use href="../images/policy_filled.svg#icon"/></svg> policy_filled.</p>
         <p><svg class="icon"><use href="../images/save_outlined.svg#icon"/></svg> save_outlined.</p>
+        <p><svg class="icon"><use href="../images/settings_input_antenna_rounded.svg#icon"/></svg> settings_input_antenna_rounded.</p>
         <p><svg class="icon"><use href="../images/settings_rounded.svg#icon"/></svg> settings_rounded.</p>
         <p><svg class="icon"><use href="../images/text_snippet_outlined.svg#icon"/></svg> text_snippet_outlined.</p>
 
         <p><svg class="icon"><use href="../images/settings_rounded.svg#icon"/></svg> settings_rounded.</p>
         <p><svg class="icon"><use href="../images/text_snippet_outlined.svg#icon"/></svg> text_snippet_outlined.</p>
 
index fbf47ee91cd7cc2089f0e1b4181b2b9a678da7f3..dcd983822b9e32836e32b258df6832111cbd6224 100644 (file)
@@ -1,7 +1,7 @@
 <!--
   Copyright © 2021-2022 Soren Stoutner <soren@stoutner.com>.
 
 <!--
   Copyright © 2021-2022 Soren Stoutner <soren@stoutner.com>.
 
-  Translation 2021 Jose A. León.  Copyright assigned to Soren Stoutner <soren@stoutner.com>.
+  Translation 2021-2022 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>.
 
 
   This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
 
             que se liberan 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.</p>
 
         <h3>Iconos</h3>
             que se liberan 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.</p>
 
         <h3>Iconos</h3>
-        <p><img class="left" src="../images/privacy_cell.svg"/> <img class="left" src="../images/secure_notification.svg"/> derivan de <code>security</code> y <code>5g</code>,
+        <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/">set de iconos de Android Material</a> y se liberan bajo la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licencia Apache 2.0</a>.
             que son parte del <a href="https://material.io/icons/">set de iconos de Android Material</a> y se liberan 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 <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>
             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/not_secure.svg"/> <img class="left" src="../images/insecure_notification.svg"/> derivan de <code>security</code> y <code>do_not_disturb</code>,
+        <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/">set de iconos de Android Material</a> y se liberan bajo la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licencia Apache 2.0</a>.
             que son parte del <a href="https://material.io/icons/">set de iconos de Android Material</a> y se liberan bajo la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licencia Apache 2.0</a>.
-            Copyright de modificaciones © 2016,2021 <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>
             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/">set de iconos de Android Material</a> y se liberan 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>.
+            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"/> 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>.
+            The resulting image is released under the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+ license</a>.</p>
         <p>Los siguientes iconos vienen del <a href="https://material.io/icons/">set 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.
         <p>Los siguientes iconos vienen del <a href="https://material.io/icons/">set 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.
@@ -70,6 +78,7 @@
         <p><svg class="icon"><use href="../images/phone_android_outlined.svg#icon"/></svg> phone_android_outlined.</p>
         <p><svg class="icon"><use href="../images/policy_filled.svg#icon"/></svg> policy_filled.</p>
         <p><svg class="icon"><use href="../images/save_outlined.svg#icon"/></svg> save_outlined.</p>
         <p><svg class="icon"><use href="../images/phone_android_outlined.svg#icon"/></svg> phone_android_outlined.</p>
         <p><svg class="icon"><use href="../images/policy_filled.svg#icon"/></svg> policy_filled.</p>
         <p><svg class="icon"><use href="../images/save_outlined.svg#icon"/></svg> save_outlined.</p>
+        <p><svg class="icon"><use href="../images/settings_input_antenna_rounded.svg#icon"/></svg> settings_input_antenna_rounded.</p>
         <p><svg class="icon"><use href="../images/settings_rounded.svg#icon"/></svg> settings_rounded.</p>
         <p><svg class="icon"><use href="../images/text_snippet_outlined.svg#icon"/></svg> text_snippet_outlined.</p>
 
         <p><svg class="icon"><use href="../images/settings_rounded.svg#icon"/></svg> settings_rounded.</p>
         <p><svg class="icon"><use href="../images/text_snippet_outlined.svg#icon"/></svg> text_snippet_outlined.</p>
 
index 38800aecdcb67a79c181441299b66139dfc0e2b2..9abd4787e1ae8c455db1205cc6a749c37cbd6677 100644 (file)
@@ -1,7 +1,7 @@
 <!--
   Copyright © 2021-2022 Soren Stoutner <soren@stoutner.com>.
 
 <!--
   Copyright © 2021-2022 Soren Stoutner <soren@stoutner.com>.
 
-  Translation 2021 Kévin L. <kevinliste@framalistes.org>.  Copyright assigned to Soren Stoutner <soren@stoutner.com>.
+  Translation 2021-2022 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>.
 
 
   This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
 
             qui 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 se trouve ci-dessous.</p>
 
         <h3>Icônes</h3>
             qui 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 se trouve ci-dessous.</p>
 
         <h3>Icônes</h3>
-        <p><img class="left" src="../images/privacy_cell.svg"/> <img class="left" src="../images/secure_notification.svg"/> sont dérivés de <code>security</code> et de <code>5g</code>,
+        <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> et sont publiés sous la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licence Apache 2.0</a>.
             qui font partie de l'ensemble d'icônes <a href="https://material.io/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. Modifications copyright © 2016,2021 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+            Le texte intégral de la licence est ci-dessous. Modifications 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>
             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/not_secure.svg"/> <img class="left" src="../images/insecure_notification.svg"/> sont dérivés de <code>security</code> et de <code>do_not_disturb</code>,
+        <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 icon set</a> et sont publiés sous la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licence Apache 2.0</a>.
             qui font partie de l'ensemble d'icônes <a href="https://material.io/icons/">Android Material icon set</a> et sont publiés sous la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licence Apache 2.0</a>.
-            Modifications copyright © 2016,2021 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+            Modifications 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>
             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 icon set</a> et sont publiés sous la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licence Apache 2.0</a>.
+            Modifications 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"/> 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>.
+            The resulting image is released under the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+ license</a>.</p>
         <p>Les icônes suivantes proviennent de l'ensemble d'icônes <a href="https://material.io/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>
         <p>Les icônes suivantes proviennent de l'ensemble d'icônes <a href="https://material.io/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>
@@ -69,6 +77,7 @@
         <p><svg class="icon"><use href="../images/phone_android_outlined.svg#icon"/></svg> phone_android_outlined.</p>
         <p><svg class="icon"><use href="../images/policy_filled.svg#icon"/></svg> policy_filled.</p>
         <p><svg class="icon"><use href="../images/save_outlined.svg#icon"/></svg> save_outlined.</p>
         <p><svg class="icon"><use href="../images/phone_android_outlined.svg#icon"/></svg> phone_android_outlined.</p>
         <p><svg class="icon"><use href="../images/policy_filled.svg#icon"/></svg> policy_filled.</p>
         <p><svg class="icon"><use href="../images/save_outlined.svg#icon"/></svg> save_outlined.</p>
+        <p><svg class="icon"><use href="../images/settings_input_antenna_rounded.svg#icon"/></svg> settings_input_antenna_rounded.</p>
         <p><svg class="icon"><use href="../images/settings_rounded.svg#icon"/></svg> settings_rounded.</p>
         <p><svg class="icon"><use href="../images/text_snippet_outlined.svg#icon"/></svg> text_snippet_outlined.</p>
 
         <p><svg class="icon"><use href="../images/settings_rounded.svg#icon"/></svg> settings_rounded.</p>
         <p><svg class="icon"><use href="../images/text_snippet_outlined.svg#icon"/></svg> text_snippet_outlined.</p>
 
diff --git a/app/src/main/assets/images/antiquated.svg b/app/src/main/assets/images/antiquated.svg
new file mode 100644 (file)
index 0000000..e89a7a9
--- /dev/null
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<!--
+  This file is derived from `security` and `do_not_disturb`, which are part of the Android Material icon set.  They are released under the Apache License 2.0.
+
+  Changes copyright © 2016, 2021-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 256 256" >
+
+    <!-- Inner shield. -->
+    <g transform="translate(0,160)" >
+        <path
+            style="fill:#b71c1c"
+            d="m 128,-147.2 -94.254546,41.89091 0,62.836368 c 0,58.123635 40.215273,112.477091 94.254546,125.672721 54.03928,-13.19563 94.25454,-67.549086 94.25454,-125.672721 l 0,-62.836368 z" />
+    </g>
+
+    <!-- Shield. -->
+    <g transform="translate(0,160)" >
+        <path
+            style="fill:#d32f2f"
+            d="m 128,-160 -104.727273,46.54546 0,69.818182 C 23.272727,20.945459 67.956363,81.338188 128,95.999999 188.04364,81.338188 232.72727,20.945459 232.72727,-43.636358 l 0,-69.818182 L 128,-160 Z m 0,127.883641 81.45454,0 C 203.28728,15.825464 171.28727,58.530919 128,71.912739 l 0,-103.912735 -81.454545,0 0,-66.327272 L 128,-134.51636 l 0,102.400001 z" />
+    </g>
+
+    <!-- Do not proceed. -->
+    <g transform="matrix(8.107179,0,0,8.107179,30.713852,31.529816)" >
+        <path
+            style="fill:#ffffff"
+            d="M 12,2 C 6.48,2 2,6.48 2,12 2,17.52 6.48,22 12,22 17.52,22 22,17.52 22,12 22,6.48 17.52,2 12,2 Z m 0,18 C 7.58,20 4,16.42 4,12 4,10.15 4.63,8.45 5.69,7.1 L 16.9,18.31 C 15.55,19.37 13.85,20 12,20 Z M 18.31,16.9 7.1,5.69 C 8.45,4.63 10.15,4 12,4 c 4.42,0 8,3.58 8,8 0,1.85 -0.63,3.55 -1.69,4.9 z" />
+    </g>
+</svg>
\ No newline at end of file
diff --git a/app/src/main/assets/images/antiquated_3g.svg b/app/src/main/assets/images/antiquated_3g.svg
new file mode 100644 (file)
index 0000000..19e786a
--- /dev/null
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<!--
+  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.
+
+  Changes copyright © 2016, 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 256 256" >
+
+    <g transform="translate(0,160)" >
+        <path
+            style="fill:#d32f2f"
+            d="M 256,0 46.544922,93.091797 V 232.72656 C 46.544922,361.8902 135.91273,482.67638 256,512 376.08728,482.67638 465.45508,361.8902 465.45508,232.72656 V 93.091797 Z M 114.37695,167.48438 h 70.81055 c 19.47322,-10e-6 35.40625,15.93301 35.40625,35.40624 v 26.55469 c 0,14.69344 -11.86125,26.55469 -26.55469,26.55469 14.69344,0 26.55469,11.86125 26.55469,26.55469 v 26.55469 c 0,19.47322 -15.93303,35.40624 -35.40625,35.40624 h -70.81055 c -9.73661,0 -17.703122,-7.96651 -17.703122,-17.70312 0,-9.73661 7.966512,-17.70312 17.703122,-17.70312 h 70.81055 v -35.40626 h -53.10742 c -9.73662,0 -17.70313,-7.96651 -17.70313,-17.70312 0,-9.73661 7.96651,-17.70312 17.70313,-17.70312 h 53.10742 v -35.40626 h -70.81055 c -9.73661,0 -17.703122,-7.96651 -17.703122,-17.70312 0,-9.73661 7.966512,-17.70312 17.703122,-17.70312 z m 177.0293,0 h 106.2168 c 9.73662,0 17.70312,7.96651 17.70312,17.70312 0,9.73661 -7.9665,17.70312 -17.70312,17.70312 h -106.2168 v 106.21876 h 88.51367 v -35.40626 h -26.55469 c -9.7366,0 -17.70117,-7.96651 -17.70117,-17.70312 0,-9.73661 7.96457,-17.70312 17.70117,-17.70312 h 44.25782 c 9.73662,0 17.70312,7.96651 17.70312,17.70312 v 53.10938 c 0,19.47322 -15.93303,35.40625 -35.40625,35.40624 H 291.40625 C 271.93301,344.51562 256,328.5826 256,309.10938 V 202.89062 c 0,-19.47323 15.93301,-35.40625 35.40625,-35.40624 z"
+            transform="matrix(0.5,0,0,0.5,0,-160)" />
+    </g>
+</svg>
\ No newline at end of file
diff --git a/app/src/main/assets/images/antiquated_notification.svg b/app/src/main/assets/images/antiquated_notification.svg
new file mode 100644 (file)
index 0000000..074e9e0
--- /dev/null
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<!--
+  This file is derived from `security` and `do_not_disturb`, which are part of the Android Material icon set.  They are released under the Apache License 2.0.
+
+  Changes copyright © 2016, 2021-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 256 256" >
+
+    <path
+        style="fill:#d32f2f"
+        d="M 256,0 46.544922,93.091797 V 232.72656 C 46.544922,361.8902 135.91273,482.67638 256,512 376.08728,482.67638 465.45508,361.8902 465.45508,232.72656 V 93.091797 Z m 0,93.855469 c 89.50326,0 162.14453,72.641271 162.14453,162.144531 0,89.50326 -72.64127,162.14453 -162.14453,162.14453 C 166.49674,418.14453 93.855469,345.50326 93.855469,256 93.855469,166.49674 166.49674,93.855469 256,93.855469 Z m 0,32.429691 c -29.99656,0 -57.56179,10.21512 -79.45117,27.40234 L 358.3125,335.45117 C 375.49972,313.56179 385.71484,285.99656 385.71484,256 385.71484,184.33254 327.66746,126.28516 256,126.28516 Z M 153.6875,176.54883 C 136.50028,198.43821 126.28516,226.00344 126.28516,256 c 0,71.66746 58.04738,129.71484 129.71484,129.71484 29.99656,0 57.56179,-10.21512 79.45117,-27.40234 z"
+        transform="matrix(0.5,0,0,0.5,0,0)" />
+</svg>
diff --git a/app/src/main/assets/images/insecure.svg b/app/src/main/assets/images/insecure.svg
new file mode 100644 (file)
index 0000000..d4820a2
--- /dev/null
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<!--
+  This file is derived from `security` and `warning_amber_rounded`, which are part of the Android Material icon set.  They are released under the Apache License 2.0.
+
+  Changes copyright © 2016, 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 256 256" >
+
+    <!-- Inner Shield. -->
+    <g transform="translate(0,160)" >
+        <path
+            style="fill:#f57f17"
+            d="m 128,-147.2 -94.254546,41.89091 0,62.836368 c 0,58.123635 40.215273,112.477091 94.254546,125.672721 54.03928,-13.19563 94.25454,-67.549086 94.25454,-125.672721 l 0,-62.836368 z" />
+    </g>
+
+    <!-- Shield. -->
+    <g transform="translate(0,160)" >
+        <path
+            style="fill:#fbc02d"
+            d="m 128,-160 -104.727273,46.54546 0,69.818182 C 23.272727,20.945459 67.956363,81.338188 128,95.999999 188.04364,81.338188 232.72727,20.945459 232.72727,-43.636358 l 0,-69.818182 L 128,-160 Z m 0,127.883641 81.45454,0 C 203.28728,15.825464 171.28727,58.530919 128,71.912739 l 0,-103.912735 -81.454545,0 0,-66.327272 L 128,-134.51636 l 0,102.400001 z" />
+    </g>
+
+    <!-- Exclamation. -->
+    <path
+        style="fill:#ffffff"
+        d="M 128.00001,49.247414 193.49379,165.7227 H 62.506213 L 128.00001,49.247414 M 47.459169,156.76994 c -6.697243,11.90717 1.652565,26.85827 15.047044,26.85827 H 193.49379 c 13.39447,0 21.74428,-14.9511 15.04704,-26.85827 L 143.04705,40.29466 c -6.69723,-11.907163 -23.39684,-11.907163 -30.0941,0 z M 119.30229,94.10069 v 17.90549 c 0,4.92401 3.91397,8.95275 8.69772,8.95275 4.78373,0 8.69771,-4.02874 8.69771,-8.95275 V 94.10069 c 0,-4.924005 -3.91398,-8.952745 -8.69771,-8.952745 -4.78375,0 -8.69772,4.02874 -8.69772,8.952745 z m 0,44.76375 h 17.39543 v 17.9055 h -17.39543 z" />
+</svg>
\ No newline at end of file
index 3c628662390aba4e35f2af01cbfb36bcdec282ba..4408b7bcd329aa48c66e823837b8fed967bbebdc 100644 (file)
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
 <!--
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
 <!--
-  This file is derived from `security` and `do_not_disturb`, which are part of the Android Material icon set.  They are released under the Apache License 2.0.
+  This file is derived from `security` and `warning_amber_rounded`, which are part of the Android Material icon set.  They are released under the Apache License 2.0.
 
 
-  Changes copyright © 2021 Soren Stoutner <soren@stoutner.com>.  The resulting file is released under the GPLv3+ license.
+  Changes copyright © 2016, 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>.
 
 
   This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
 
     xmlns="http://www.w3.org/2000/svg"
     viewBox="0 0 256 256" >
 
     xmlns="http://www.w3.org/2000/svg"
     viewBox="0 0 256 256" >
 
-    <path
-        style="fill:#d32f2f"
-        d="M 256,0 46.544922,93.091797 V 232.72656 C 46.544922,361.8902 135.91273,482.67638 256,512 376.08728,482.67638 465.45508,361.8902 465.45508,232.72656 V 93.091797 Z m 0,93.855469 c 89.50326,0 162.14453,72.641271 162.14453,162.144531 0,89.50326 -72.64127,162.14453 -162.14453,162.14453 C 166.49674,418.14453 93.855469,345.50326 93.855469,256 93.855469,166.49674 166.49674,93.855469 256,93.855469 Z m 0,32.429691 c -29.99656,0 -57.56179,10.21512 -79.45117,27.40234 L 358.3125,335.45117 C 375.49972,313.56179 385.71484,285.99656 385.71484,256 385.71484,184.33254 327.66746,126.28516 256,126.28516 Z M 153.6875,176.54883 C 136.50028,198.43821 126.28516,226.00344 126.28516,256 c 0,71.66746 58.04738,129.71484 129.71484,129.71484 29.99656,0 57.56179,-10.21512 79.45117,-27.40234 z"
-        transform="matrix(0.5,0,0,0.5,0,0)" />
-</svg>
+    <g transform="translate(0,160)" >
+        <path
+          style="fill:#fbc02d"
+          d="M 256,0 46.544922,93.091797 V 232.72656 C 46.544922,361.8902 135.91273,482.67638 256,512 376.08728,482.67638 465.45508,361.8902 465.45508,232.72656 V 93.091797 Z m 0.0332,62.888672 c 11.69843,0 23.39848,5.954168 30.09571,17.861328 l 130.98632,232.94922 c 13.39448,23.81434 -3.30481,53.7168 -30.09375,53.7168 h -261.9746 c -26.788965,0 -43.488235,-29.90246 -30.093755,-53.7168 L 225.93945,80.75 c 6.69726,-11.90716 18.39533,-17.861328 30.09375,-17.861328 z m 0,35.765625 -130.98632,232.951173 h 261.9746 z m 0,71.800783 c 9.56746,0 17.39649,8.05824 17.39649,17.90625 v 35.81055 c 0,9.84802 -7.82903,17.90624 -17.39649,17.90624 -9.5675,0 -17.39453,-8.05823 -17.39453,-17.90624 v -35.81055 c 0,-9.84801 7.82703,-17.90625 17.39453,-17.90625 z m -17.39453,107.43359 h 34.79102 v 35.81055 h -34.79102 z"
+          transform="matrix(0.5,0,0,0.5,0,-160)" />
+    </g>
+</svg>
\ No newline at end of file
diff --git a/app/src/main/assets/images/not_secure.svg b/app/src/main/assets/images/not_secure.svg
deleted file mode 100644 (file)
index adfa508..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-
-<!--
-  This file is derived from `security` and `do_not_disturb`, which are part of the Android Material icon set.  They are 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 256 256" >
-
-    <!-- Inner shield. -->
-    <g transform="translate(0,160)" >
-        <path
-            style="fill:#b71c1c"
-            d="m 128,-147.2 -94.254546,41.89091 0,62.836368 c 0,58.123635 40.215273,112.477091 94.254546,125.672721 54.03928,-13.19563 94.25454,-67.549086 94.25454,-125.672721 l 0,-62.836368 z" />
-    </g>
-
-    <!-- Shield. -->
-    <g transform="translate(0,160)" >
-        <path
-            style="fill:#d32f2f"
-            d="m 128,-160 -104.727273,46.54546 0,69.818182 C 23.272727,20.945459 67.956363,81.338188 128,95.999999 188.04364,81.338188 232.72727,20.945459 232.72727,-43.636358 l 0,-69.818182 L 128,-160 Z m 0,127.883641 81.45454,0 C 203.28728,15.825464 171.28727,58.530919 128,71.912739 l 0,-103.912735 -81.454545,0 0,-66.327272 L 128,-134.51636 l 0,102.400001 z" />
-    </g>
-
-    <!-- Do not proceed. -->
-    <g transform="matrix(8.107179,0,0,8.107179,30.713852,31.529816)" >
-        <path
-            style="fill:#ffffff"
-            d="M 12,2 C 6.48,2 2,6.48 2,12 2,17.52 6.48,22 12,22 17.52,22 22,17.52 22,12 22,6.48 17.52,2 12,2 Z m 0,18 C 7.58,20 4,16.42 4,12 4,10.15 4.63,8.45 5.69,7.1 L 16.9,18.31 C 15.55,19.37 13.85,20 12,20 Z M 18.31,16.9 7.1,5.69 C 8.45,4.63 10.15,4 12,4 c 4.42,0 8,3.58 8,8 0,1.85 -0.63,3.55 -1.69,4.9 z" />
-    </g>
-</svg>
\ No newline at end of file
diff --git a/app/src/main/assets/images/privacy_cell.svg b/app/src/main/assets/images/privacy_cell.svg
deleted file mode 100644 (file)
index 24ed58a..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-
-<!--
-  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.
-
-  Changes copyright © 2016,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 256 256" >
-
-    <!-- Inner shield. -->
-    <g transform="translate(0,160)" >
-        <path
-            style="fill:#0d4781"
-            d="m 128,-147.2 -94.254546,41.89091 v 62.836368 c 0,58.123635 40.215273,112.477091 94.254546,125.672721 54.03928,-13.19563 94.25454,-67.549086 94.25454,-125.672721 v -62.836368 z" />
-    </g>
-
-    <!-- Shield. -->
-    <g transform="translate(0,160)" >
-        <path
-            style="fill:#1976d2"
-            d="m 128,-160 -104.727273,46.54546 v 69.818182 C 23.272727,20.945459 67.956363,81.338188 128,95.999999 188.04364,81.338188 232.72727,20.945459 232.72727,-43.636358 v -69.818182 z m 0,127.883641 h 81.45454 C 203.28728,15.825464 171.28727,58.530919 128,71.912739 V -31.999996 H 46.545455 V -98.327268 L 128,-134.51636 Z" />
-    </g>
-
-    <!-- 5G. -->
-    <g>
-        <g transform="matrix(16.218486,0,0,16.218486,-34.349857,-36.895951)" >
-
-            <!-- 5. -->
-            <path
-                style="fill:#ffffff"
-                d="M 8.5,8 H 6 v 1.5 h 2 c 0.55,0 1,0.45 1,1 V 12 c 0,0.55 -0.45,1 -1,1 H 5.5 C 5.22,13 5,12.78 5,12.5 v 0 C 5,12.22 5.22,12 5.5,12 H 8 V 10.5 H 5.5 C 5.22,10.5 5,10.28 5,10 V 7.5 C 5,7.22 5.22,7 5.5,7 h 3 C 8.78,7 9,7.22 9,7.5 v 0 C 9,7.78 8.78,8 8.5,8 Z" />
-
-            <!-- G. -->
-            <path
-                style="fill:#ffffff"
-                d="M 12.5,10.5 H 14 V 12 H 11 V 8 h 3.5 C 14.78,8 15,7.78 15,7.5 v 0 C 15,7.22 14.78,7 14.5,7 H 11 c -0.55,0 -1,0.45 -1,1 v 4 c 0,0.55 0.45,1 1,1 h 3 c 0.55,0 1,-0.45 1,-1 V 10 C 15,9.72 14.78,9.5 14.5,9.5 h -2 C 12.22,9.5 12,9.72 12,10 v 0 c 0,0.28 0.22,0.5 0.5,0.5 z" />
-        </g>
-    </g>
-</svg>
\ No newline at end of file
diff --git a/app/src/main/assets/images/secure.svg b/app/src/main/assets/images/secure.svg
new file mode 100644 (file)
index 0000000..d3a7176
--- /dev/null
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<!--
+  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.
+
+  Changes copyright © 2016, 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 256 256" >
+
+    <!-- Inner shield. -->
+    <g transform="translate(0,160)" >
+        <path
+            style="fill:#0d4781"
+            d="m 128,-147.2 -94.254546,41.89091 v 62.836368 c 0,58.123635 40.215273,112.477091 94.254546,125.672721 54.03928,-13.19563 94.25454,-67.549086 94.25454,-125.672721 v -62.836368 z" />
+    </g>
+
+    <!-- Shield. -->
+    <g transform="translate(0,160)" >
+        <path
+            style="fill:#1976d2"
+            d="m 128,-160 -104.727273,46.54546 v 69.818182 C 23.272727,20.945459 67.956363,81.338188 128,95.999999 188.04364,81.338188 232.72727,20.945459 232.72727,-43.636358 v -69.818182 z m 0,127.883641 h 81.45454 C 203.28728,15.825464 171.28727,58.530919 128,71.912739 V -31.999996 H 46.545455 V -98.327268 L 128,-134.51636 Z" />
+    </g>
+
+    <!-- 5G. -->
+    <g>
+        <g transform="matrix(16.218486,0,0,16.218486,-34.349857,-36.895951)" >
+
+            <!-- 5. -->
+            <path
+                style="fill:#ffffff"
+                d="M 8.5,8 H 6 v 1.5 h 2 c 0.55,0 1,0.45 1,1 V 12 c 0,0.55 -0.45,1 -1,1 H 5.5 C 5.22,13 5,12.78 5,12.5 v 0 C 5,12.22 5.22,12 5.5,12 H 8 V 10.5 H 5.5 C 5.22,10.5 5,10.28 5,10 V 7.5 C 5,7.22 5.22,7 5.5,7 h 3 C 8.78,7 9,7.22 9,7.5 v 0 C 9,7.78 8.78,8 8.5,8 Z" />
+
+            <!-- G. -->
+            <path
+                style="fill:#ffffff"
+                d="M 12.5,10.5 H 14 V 12 H 11 V 8 h 3.5 C 14.78,8 15,7.78 15,7.5 v 0 C 15,7.22 14.78,7 14.5,7 H 11 c -0.55,0 -1,0.45 -1,1 v 4 c 0,0.55 0.45,1 1,1 h 3 c 0.55,0 1,-0.45 1,-1 V 10 C 15,9.72 14.78,9.5 14.5,9.5 h -2 C 12.22,9.5 12,9.72 12,10 v 0 c 0,0.28 0.22,0.5 0.5,0.5 z" />
+        </g>
+    </g>
+</svg>
\ No newline at end of file
index bb32173b435170b0abaafb47a3b5b3ec76507558..a957ddf4d283b850d0c8f4f3c346e84c0ba4f2e8 100644 (file)
@@ -3,7 +3,7 @@
 <!--
   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 derived from `security` and `5g`, which are part of the Android Material icon set.  They are released under the Apache License 2.0.
 
-  Changes copyright © 2016,2021 Soren Stoutner <soren@stoutner.com>.  The resulting file is released under the GPLv3+ license.
+  Changes copyright © 2016, 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>.
 
 
   This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
 
diff --git a/app/src/main/assets/images/settings_input_antenna_rounded.svg b/app/src/main/assets/images/settings_input_antenna_rounded.svg
new file mode 100644 (file)
index 0000000..d97459b
--- /dev/null
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<!--
+  This file is a modified version of `settings_input_antenna_rounded`, 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="M12,5c-3.48,0-6.37,2.54-6.91,5.87c-0.1,0.59,0.39,1.13,1,1.13c0.49,0,0.9-0.36,0.98-0.85C7.48,8.79,9.53,7,12,7 s4.52,1.79,4.93,4.15c0.08,0.49,0.49,0.85,0.98,0.85c0.61,0,1.09-0.54,0.99-1.13C18.37,7.54,15.48,5,12,5z M13,14.29 c1.07-0.48,1.76-1.66,1.41-2.99c-0.22-0.81-0.87-1.47-1.68-1.7C11.04,9.12,9.5,10.38,9.5,12c0,1.02,0.62,1.9,1.5,2.29v3.3 l-2.71,2.7c-0.39,0.39-0.39,1.02,0,1.41c0.39,0.39,1.02,0.39,1.41,0l2.3-2.3l2.3,2.3c0.39,0.39,1.02,0.39,1.41,0s0.39-1.02,0-1.41 L13,17.59V14.29z M12,1C6.3,1,1.61,5.34,1.05,10.9C1,11.49,1.46,12,2.05,12c0.51,0,0.94-0.38,0.99-0.88C3.48,6.56,7.33,3,12,3 s8.52,3.56,8.96,8.12c0.05,0.5,0.48,0.88,0.99,0.88c0.59,0,1.06-0.51,1-1.1C22.39,5.34,17.7,1,12,1z" />
+</svg>
\ No newline at end of file
index 2792a83fc1d03d7e87d142f0b30174a3675a8e79..38945591e9b4b85aebc4efbfad6cd9a19a2a2e84 100644 (file)
@@ -1,7 +1,7 @@
 <!--
   Copyright © 2021-2022 Soren Stoutner <soren@stoutner.com>.
 
 <!--
   Copyright © 2021-2022 Soren Stoutner <soren@stoutner.com>.
 
-  Translation 2021 Francesco Buratti.  Copyright assigned to Soren Stoutner <soren@stoutner.com>.
+  Translation 2021-2022 Francesco Buratti.  Copyright assigned to Soren Stoutner <soren@stoutner.com>.
 
   This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
 
 
   This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
 
             che sono rilasciati sotto <a href="https://www.apache.org/licenses/LICENSE-2.0">Licenza Apache 2.0</a>. Il testo completo della licenza è riportato di seguito.</p>
 
         <h3>Icone</h3>
             che sono rilasciati sotto <a href="https://www.apache.org/licenses/LICENSE-2.0">Licenza Apache 2.0</a>. Il testo completo della licenza è riportato di seguito.</p>
 
         <h3>Icone</h3>
-        <p><img class="left" src="../images/privacy_cell.svg"/> <img class="left" src="../images/secure_notification.svg"/> sono derivate da <code>security</code> e <code>5g</code>,
+        <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>.
             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 appartiene a <a href="mailto:soren@stoutner.com">Soren Stoutner</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>
             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/not_secure.svg"/> <img class="left" src="../images/insecure_notification.svg"/> sono derivate da <code>security</code> e <code>do_not_disturb</code>,
+        <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>.
             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 appartiene a <a href="mailto:soren@stoutner.com">Soren Stoutner</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>
             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>.
+            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"/> 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>.
+            The resulting image is released under the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+ license</a>.</p>
         <p>Le icone seguenti provengono dal <a href="https://material.io/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.
         <p>Le icone seguenti provengono dal <a href="https://material.io/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.
@@ -70,6 +78,7 @@
         <p><svg class="icon"><use href="../images/phone_android_outlined.svg#icon"/></svg> phone_android_outlined.</p>
         <p><svg class="icon"><use href="../images/policy_filled.svg#icon"/></svg> policy_filled.</p>
         <p><svg class="icon"><use href="../images/save_outlined.svg#icon"/></svg> save_outlined.</p>
         <p><svg class="icon"><use href="../images/phone_android_outlined.svg#icon"/></svg> phone_android_outlined.</p>
         <p><svg class="icon"><use href="../images/policy_filled.svg#icon"/></svg> policy_filled.</p>
         <p><svg class="icon"><use href="../images/save_outlined.svg#icon"/></svg> save_outlined.</p>
+        <p><svg class="icon"><use href="../images/settings_input_antenna_rounded.svg#icon"/></svg> settings_input_antenna_rounded.</p>
         <p><svg class="icon"><use href="../images/settings_rounded.svg#icon"/></svg> settings_rounded.</p>
         <p><svg class="icon"><use href="../images/text_snippet_outlined.svg#icon"/></svg> text_snippet_outlined.</p>
 
         <p><svg class="icon"><use href="../images/settings_rounded.svg#icon"/></svg> settings_rounded.</p>
         <p><svg class="icon"><use href="../images/text_snippet_outlined.svg#icon"/></svg> text_snippet_outlined.</p>
 
index 13ab3edf7ab60577798d24b22a8e23b295eada7c..be0d334fe02b650e2b5252eb440c77caa346e5c5 100644 (file)
             которые выпускаются под <a href="https://www.apache.org/licenses/LICENSE-2.0">лицензией Apache 2.0</a>. Полный текст лицензии приведен ниже.</p>
 
         <h3>Значки</h3>
             которые выпускаются под <a href="https://www.apache.org/licenses/LICENSE-2.0">лицензией Apache 2.0</a>. Полный текст лицензии приведен ниже.</p>
 
         <h3>Значки</h3>
-        <p><img class="left" src="../images/privacy_cell.svg"/> <img class="left" src="../images/secure_notification.svg"/> являются производными от <code>security</code> и <code>5g</code>,
+        <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>.
             которые являются частью набора значков <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 <a href="mailto:soren@stoutner.com">Soren Stoutner</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>
             Получившиеся изображения выпускаются под <a href="https://www.gnu.org/licenses/gpl-3.0.html">лицензией GPLv3+</a>.</p>
-        <p><img class="left" src="../images/not_secure.svg"/> <img class="left" src="../images/insecure_notification.svg"/> являются производными от <code>security</code> и <code>do_not_disturb</code>,
+        <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>.
             которые являются частью набора значков <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 <a href="mailto:soren@stoutner.com">Soren Stoutner</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>
             Получившиеся изображения выпускаются под <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://www.gnu.org/licenses/gpl-3.0.html">лицензией GPLv3+</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>.
+            The resulting image is released under the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+ license</a>.</p>
         <p>Следующие значки взяты из набора значков <a href="https://material.io/icons/">Android Material</a>,
             который выпущен под <a href ="https://www.apache.org/licenses/LICENSE-2.0">лицензией Apache 2.0</a>.
             Они не изменились, за исключением информации о макете, такой как цвет и размер. Некоторые из них были переименованы, чтобы обеспечить их соответствие использованию в коде.
         <p>Следующие значки взяты из набора значков <a href="https://material.io/icons/">Android Material</a>,
             который выпущен под <a href ="https://www.apache.org/licenses/LICENSE-2.0">лицензией Apache 2.0</a>.
             Они не изменились, за исключением информации о макете, такой как цвет и размер. Некоторые из них были переименованы, чтобы обеспечить их соответствие использованию в коде.
@@ -68,6 +76,7 @@
         <p><svg class="icon"><use href="../images/phone_android_outlined.svg#icon"/></svg> phone_android_outlined.</p>
         <p><svg class="icon"><use href="../images/policy_filled.svg#icon"/></svg> policy_filled.</p>
         <p><svg class="icon"><use href="../images/save_outlined.svg#icon"/></svg> save_outlined.</p>
         <p><svg class="icon"><use href="../images/phone_android_outlined.svg#icon"/></svg> phone_android_outlined.</p>
         <p><svg class="icon"><use href="../images/policy_filled.svg#icon"/></svg> policy_filled.</p>
         <p><svg class="icon"><use href="../images/save_outlined.svg#icon"/></svg> save_outlined.</p>
+        <p><svg class="icon"><use href="../images/settings_input_antenna_rounded.svg#icon"/></svg> settings_input_antenna_rounded.</p>
         <p><svg class="icon"><use href="../images/settings_rounded.svg#icon"/></svg> settings_rounded.</p>
         <p><svg class="icon"><use href="../images/text_snippet_outlined.svg#icon"/></svg> text_snippet_outlined.</p>
 
         <p><svg class="icon"><use href="../images/settings_rounded.svg#icon"/></svg> settings_rounded.</p>
         <p><svg class="icon"><use href="../images/text_snippet_outlined.svg#icon"/></svg> text_snippet_outlined.</p>
 
index 7d6fd776b7d36726bb069521309de934bcbf1df5..86e7be51dfdec9270bd4d606cc1ee03053300d77 100644 (file)
@@ -64,7 +64,7 @@ class PrivacyCellActivity : AppCompatActivity(), NavigationView.OnNavigationItem
 
     // Declare the class views.
     private lateinit var drawerLayout: DrawerLayout
 
     // Declare the class views.
     private lateinit var drawerLayout: DrawerLayout
-    private lateinit var stingrayTextView: TextView
+    private lateinit var summaryTextView: TextView
 
     override fun onCreate(savedInstanceState: Bundle?) {
         // Run the default commands.
 
     override fun onCreate(savedInstanceState: Bundle?) {
         // Run the default commands.
@@ -75,6 +75,7 @@ class PrivacyCellActivity : AppCompatActivity(), NavigationView.OnNavigationItem
 
         // Get the preferences.
         val realtimeMonitoring = sharedPreferences.getBoolean(getString(R.string.realtime_monitoring_key), false)
 
         // Get the preferences.
         val realtimeMonitoring = sharedPreferences.getBoolean(getString(R.string.realtime_monitoring_key), false)
+        val consider3gAntiquated = sharedPreferences.getBoolean(getString(R.string.consider_3g_antiquated_key), false)
         val bottomAppBar = sharedPreferences.getBoolean(getString(R.string.bottom_app_bar_key), false)
 
         // Set the content view.
         val bottomAppBar = sharedPreferences.getBoolean(getString(R.string.bottom_app_bar_key), false)
 
         // Set the content view.
@@ -89,7 +90,7 @@ class PrivacyCellActivity : AppCompatActivity(), NavigationView.OnNavigationItem
         val toolbar = findViewById<Toolbar>(R.id.toolbar)
         val stingrayLinearLayout = findViewById<LinearLayout>(R.id.stingray_linearlayout)
         val stingrayImageView = findViewById<ImageView>(R.id.stingray_imageview)
         val toolbar = findViewById<Toolbar>(R.id.toolbar)
         val stingrayLinearLayout = findViewById<LinearLayout>(R.id.stingray_linearlayout)
         val stingrayImageView = findViewById<ImageView>(R.id.stingray_imageview)
-        stingrayTextView = findViewById(R.id.stingray_textview)
+        summaryTextView = findViewById(R.id.summary_textview)
         val voiceNetworkLinearLayout = findViewById<LinearLayout>(R.id.voice_network_linearlayout)
         val voiceNetworkTextView = findViewById<TextView>(R.id.voice_network)
         val voiceNetworkDetailsTextView = findViewById<TextView>(R.id.voice_network_details)
         val voiceNetworkLinearLayout = findViewById<LinearLayout>(R.id.voice_network_linearlayout)
         val voiceNetworkTextView = findViewById<TextView>(R.id.voice_network)
         val voiceNetworkDetailsTextView = findViewById<TextView>(R.id.voice_network_details)
@@ -143,25 +144,53 @@ class PrivacyCellActivity : AppCompatActivity(), NavigationView.OnNavigationItem
         phoneStateListener = object : PhoneStateListener() {
             @SuppressLint("SwitchIntDef")
             override fun onDisplayInfoChanged(telephonyDisplayInfo: TelephonyDisplayInfo) {
         phoneStateListener = object : PhoneStateListener() {
             @SuppressLint("SwitchIntDef")
             override fun onDisplayInfoChanged(telephonyDisplayInfo: TelephonyDisplayInfo) {
+                // Declare the stingray dialog type integer.
+                val summaryDialogTypeInteger: Int
+
                 // Populate the stingray security information.  <https://source.android.com/devices/tech/connect/acts-5g-testing>
                 // Populate the stingray security information.  <https://source.android.com/devices/tech/connect/acts-5g-testing>
-                if (telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_NR) {  // This is a secure 5G NR SA network.
+                if ((telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_NR) || (telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_IWLAN) ||
+                    (telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_UNKNOWN)) {  // This is a secure network.
+                    // Populate the image view.
+                    stingrayImageView.setImageDrawable(AppCompatResources.getDrawable(applicationContext, R.drawable.secure))
+
+                    // Set the text.
+                    summaryTextView.text = getString(R.string.secure_protocols)
+
+                    // Set the text color.
+                    summaryTextView.setTextColor(getColor(R.color.blue_text))
+
+                    // Set the stingray dialog type integer.
+                    summaryDialogTypeInteger = WebViewDialog.STINGRAY
+                } else if ((telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_LTE) || (!consider3gAntiquated && (telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_1xRTT ||
+                            (telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_EVDO_0) || (telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_EVDO_A) ||
+                            (telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_EVDO_B) || (telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_EHRPD) ||
+                            (telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_UMTS) || (telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_TD_SCDMA) ||
+                            (telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_HSDPA) || (telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_HSUPA) ||
+                            (telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_HSPA) || (telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_HSPAP)))) {
+                            // This is an insecure network.
                     // Populate the image view.
                     // Populate the image view.
-                    stingrayImageView.setImageDrawable(AppCompatResources.getDrawable(applicationContext, R.drawable.secure_5g_nr_sa))
+                    stingrayImageView.setImageDrawable(AppCompatResources.getDrawable(applicationContext, R.drawable.insecure))
 
                     // Set the text.
 
                     // Set the text.
-                    stingrayTextView.text = getString(R.string.secure_from_stingray)
+                    summaryTextView.text = getString(R.string.insecure_protocols)
 
                     // Set the text color.
 
                     // Set the text color.
-                    stingrayTextView.setTextColor(getColor(R.color.blue_text))
-                } else {  // This is not a secure 5G NR SA network.
+                    summaryTextView.setTextColor(getColor(R.color.yellow_900))
+
+                    // Set the stingray dialog type integer.
+                    summaryDialogTypeInteger = WebViewDialog.STINGRAY
+                } else {  // This is an antiquated network.
                     // Populate the image view.
                     // Populate the image view.
-                    stingrayImageView.setImageDrawable(AppCompatResources.getDrawable(applicationContext, R.drawable.not_secure))
+                    stingrayImageView.setImageDrawable(AppCompatResources.getDrawable(applicationContext, R.drawable.antiquated))
 
                     // Set the text.
 
                     // Set the text.
-                    stingrayTextView.text = getString(R.string.not_secure_from_stingray)
+                    summaryTextView.text = getString(R.string.antiquated_protocols)
 
                     // Set the text color.
 
                     // Set the text color.
-                    stingrayTextView.setTextColor(getColor(R.color.red_text))
+                    summaryTextView.setTextColor(getColor(R.color.red_text))
+
+                    // Set the stingray dialog type integer.
+                    summaryDialogTypeInteger = WebViewDialog.ANTIQUATED_NETWORK
                 }
 
                 // Get the strings that correspond to the network information.
                 }
 
                 // Get the strings that correspond to the network information.
@@ -177,7 +206,7 @@ class PrivacyCellActivity : AppCompatActivity(), NavigationView.OnNavigationItem
                 // Set the stingray click listener.
                 stingrayLinearLayout.setOnClickListener {
                     // Instantiate the stingray dialog fragment.
                 // Set the stingray click listener.
                 stingrayLinearLayout.setOnClickListener {
                     // Instantiate the stingray dialog fragment.
-                    val stingrayDialogFragment = WebViewDialog().type(WebViewDialog.STINGRAY)
+                    val stingrayDialogFragment = WebViewDialog().type(summaryDialogTypeInteger)
 
                     // Show the alert dialog.
                     stingrayDialogFragment.show(supportFragmentManager, getString(R.string.stingrays))
 
                     // Show the alert dialog.
                     stingrayDialogFragment.show(supportFragmentManager, getString(R.string.stingrays))
@@ -483,7 +512,7 @@ class PrivacyCellActivity : AppCompatActivity(), NavigationView.OnNavigationItem
                 registerTelephonyManagerListener()
             } else {  // The read phone state permission was denied.
                 // Display the phone permission text on the main activity.
                 registerTelephonyManagerListener()
             } else {  // The read phone state permission was denied.
                 // Display the phone permission text on the main activity.
-                stingrayTextView.text = getString(R.string.phone_permission_text)
+                summaryTextView.text = getString(R.string.phone_permission_text)
             }
         }
     }
             }
         }
     }
index ab99a11b5950187f75338d403905932ed8ae4762..0a40933c95174739c3bc5e95d139c4b7851c8032 100644 (file)
@@ -49,32 +49,33 @@ class WebViewDialog : DialogFragment() {
         const val LICENSES = 3
         const val CONTRIBUTORS = 4
         const val STINGRAY = 5
         const val LICENSES = 3
         const val CONTRIBUTORS = 4
         const val STINGRAY = 5
-        const val NETWORK_UNKNOWN = 6
-        const val NETWORK_GPRS = 7
-        const val NETWORK_EDGE = 8
-        const val NETWORK_UMTS = 9
-        const val NETWORK_CDMA = 10
-        const val NETWORK_EVDO_0 = 11
-        const val NETWORK_EVDO_A = 12
-        const val NETWORK_1xRTT = 13
-        const val NETWORK_HSDPA = 14
-        const val NETWORK_HSUPA = 15
-        const val NETWORK_HSPA = 16
-        const val NETWORK_IDEN = 17
-        const val NETWORK_EVDO_B = 18
-        const val NETWORK_LTE = 19
-        const val NETWORK_EHRPD = 20
-        const val NETWORK_HSPAP = 21
-        const val NETWORK_GSM = 22
-        const val NETWORK_TD_SCDMA = 23
-        const val NETWORK_IWLAN = 24
-        const val NETWORK_NR = 25
-        const val OVERRIDE_NETWORK_NONE = 26
-        const val OVERRIDE_NETWORK_LTE_CA = 27
-        const val OVERRIDE_NETWORK_LTE_ADVANCED_PRO = 28
-        const val OVERRIDE_NETWORK_NR_NSA = 29
-        const val OVERRIDE_NETWORK_NR_NSA_MMWAVE = 30  // Can be removed once the minimum API >= 31.
-        const val OVERRIDE_NETWORK_NR_ADVANCED = 31
+        const val ANTIQUATED_NETWORK = 6
+        const val NETWORK_UNKNOWN = 7
+        const val NETWORK_GPRS = 8
+        const val NETWORK_EDGE = 9
+        const val NETWORK_UMTS = 10
+        const val NETWORK_CDMA = 11
+        const val NETWORK_EVDO_0 = 12
+        const val NETWORK_EVDO_A = 13
+        const val NETWORK_1xRTT = 14
+        const val NETWORK_HSDPA = 15
+        const val NETWORK_HSUPA = 16
+        const val NETWORK_HSPA = 17
+        const val NETWORK_IDEN = 18
+        const val NETWORK_EVDO_B = 19
+        const val NETWORK_LTE = 20
+        const val NETWORK_EHRPD = 21
+        const val NETWORK_HSPAP = 22
+        const val NETWORK_GSM = 23
+        const val NETWORK_TD_SCDMA = 24
+        const val NETWORK_IWLAN = 25
+        const val NETWORK_NR = 26
+        const val OVERRIDE_NETWORK_NONE = 27
+        const val OVERRIDE_NETWORK_LTE_CA = 28
+        const val OVERRIDE_NETWORK_LTE_ADVANCED_PRO = 29
+        const val OVERRIDE_NETWORK_NR_NSA = 30
+        const val OVERRIDE_NETWORK_NR_NSA_MMWAVE = 31  // Can be removed once the minimum API >= 31.
+        const val OVERRIDE_NETWORK_NR_ADVANCED = 32
     }
 
     // Define the class views.
     }
 
     // Define the class views.
@@ -149,15 +150,23 @@ class WebViewDialog : DialogFragment() {
 
             STINGRAY -> {
                 // Set the icon.
 
             STINGRAY -> {
                 // Set the icon.
-                dialogBuilder.setIcon(R.drawable.secure_5g_nr_sa)
+                dialogBuilder.setIcon(R.drawable.secure)
 
                 // Set the tile.
                 dialogBuilder.setTitle(R.string.stingrays)
             }
 
 
                 // Set the tile.
                 dialogBuilder.setTitle(R.string.stingrays)
             }
 
+            ANTIQUATED_NETWORK -> {
+                // Set the icon.
+                dialogBuilder.setIcon(R.drawable.antiquated)
+
+                // Set the title.
+                dialogBuilder.setTitle(R.string.antiquated_network_title)
+            }
+
             NETWORK_UNKNOWN -> {
                 // Set the icon.
             NETWORK_UNKNOWN -> {
                 // Set the icon.
-                dialogBuilder.setIcon(R.drawable.privacy_policy)
+                dialogBuilder.setIcon(R.drawable.protocols)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.unknown)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.unknown)
@@ -165,7 +174,7 @@ class WebViewDialog : DialogFragment() {
 
             NETWORK_GPRS -> {
                 // Set the icon.
 
             NETWORK_GPRS -> {
                 // Set the icon.
-                dialogBuilder.setIcon(R.drawable.privacy_policy)
+                dialogBuilder.setIcon(R.drawable.protocols)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.gprs)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.gprs)
@@ -173,7 +182,7 @@ class WebViewDialog : DialogFragment() {
 
             NETWORK_EDGE -> {
                 // Set the icon.
 
             NETWORK_EDGE -> {
                 // Set the icon.
-                dialogBuilder.setIcon(R.drawable.privacy_policy)
+                dialogBuilder.setIcon(R.drawable.protocols)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.edge)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.edge)
@@ -181,7 +190,7 @@ class WebViewDialog : DialogFragment() {
 
             NETWORK_UMTS -> {
                 // Set the icon.
 
             NETWORK_UMTS -> {
                 // Set the icon.
-                dialogBuilder.setIcon(R.drawable.privacy_policy)
+                dialogBuilder.setIcon(R.drawable.protocols)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.umts)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.umts)
@@ -189,7 +198,7 @@ class WebViewDialog : DialogFragment() {
 
             NETWORK_CDMA -> {
                 // Set the icon.
 
             NETWORK_CDMA -> {
                 // Set the icon.
-                dialogBuilder.setIcon(R.drawable.privacy_policy)
+                dialogBuilder.setIcon(R.drawable.protocols)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.cdma)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.cdma)
@@ -197,7 +206,7 @@ class WebViewDialog : DialogFragment() {
 
             NETWORK_EVDO_0 -> {
                 // Set the icon.
 
             NETWORK_EVDO_0 -> {
                 // Set the icon.
-                dialogBuilder.setIcon(R.drawable.privacy_policy)
+                dialogBuilder.setIcon(R.drawable.protocols)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.evdo_0)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.evdo_0)
@@ -205,7 +214,7 @@ class WebViewDialog : DialogFragment() {
 
             NETWORK_EVDO_A -> {
                 // Set the icon.
 
             NETWORK_EVDO_A -> {
                 // Set the icon.
-                dialogBuilder.setIcon(R.drawable.privacy_policy)
+                dialogBuilder.setIcon(R.drawable.protocols)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.evdo_a)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.evdo_a)
@@ -213,7 +222,7 @@ class WebViewDialog : DialogFragment() {
 
             NETWORK_1xRTT -> {
                 // Set the icon.
 
             NETWORK_1xRTT -> {
                 // Set the icon.
-                dialogBuilder.setIcon(R.drawable.privacy_policy)
+                dialogBuilder.setIcon(R.drawable.protocols)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.rtt)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.rtt)
@@ -221,7 +230,7 @@ class WebViewDialog : DialogFragment() {
 
             NETWORK_HSDPA -> {
                 // Set the icon.
 
             NETWORK_HSDPA -> {
                 // Set the icon.
-                dialogBuilder.setIcon(R.drawable.privacy_policy)
+                dialogBuilder.setIcon(R.drawable.protocols)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.hsdpa)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.hsdpa)
@@ -229,7 +238,7 @@ class WebViewDialog : DialogFragment() {
 
             NETWORK_HSUPA -> {
                 // Set the icon.
 
             NETWORK_HSUPA -> {
                 // Set the icon.
-                dialogBuilder.setIcon(R.drawable.privacy_policy)
+                dialogBuilder.setIcon(R.drawable.protocols)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.hsupa)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.hsupa)
@@ -237,7 +246,7 @@ class WebViewDialog : DialogFragment() {
 
             NETWORK_HSPA -> {
                 // Set the icon.
 
             NETWORK_HSPA -> {
                 // Set the icon.
-                dialogBuilder.setIcon(R.drawable.privacy_policy)
+                dialogBuilder.setIcon(R.drawable.protocols)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.hspa)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.hspa)
@@ -245,7 +254,7 @@ class WebViewDialog : DialogFragment() {
 
             NETWORK_IDEN -> {
                 // Set the icon.
 
             NETWORK_IDEN -> {
                 // Set the icon.
-                dialogBuilder.setIcon(R.drawable.privacy_policy)
+                dialogBuilder.setIcon(R.drawable.protocols)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.iden)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.iden)
@@ -253,7 +262,7 @@ class WebViewDialog : DialogFragment() {
 
             NETWORK_EVDO_B -> {
                 // Set the icon.
 
             NETWORK_EVDO_B -> {
                 // Set the icon.
-                dialogBuilder.setIcon(R.drawable.privacy_policy)
+                dialogBuilder.setIcon(R.drawable.protocols)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.evdo_b)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.evdo_b)
@@ -261,7 +270,7 @@ class WebViewDialog : DialogFragment() {
 
             NETWORK_LTE -> {
                 // Set the icon.
 
             NETWORK_LTE -> {
                 // Set the icon.
-                dialogBuilder.setIcon(R.drawable.privacy_policy)
+                dialogBuilder.setIcon(R.drawable.protocols)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.lte)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.lte)
@@ -269,7 +278,7 @@ class WebViewDialog : DialogFragment() {
 
             NETWORK_EHRPD -> {
                 // Set the icon.
 
             NETWORK_EHRPD -> {
                 // Set the icon.
-                dialogBuilder.setIcon(R.drawable.privacy_policy)
+                dialogBuilder.setIcon(R.drawable.protocols)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.ehrpd)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.ehrpd)
@@ -277,7 +286,7 @@ class WebViewDialog : DialogFragment() {
 
             NETWORK_HSPAP -> {
                 // Set the icon.
 
             NETWORK_HSPAP -> {
                 // Set the icon.
-                dialogBuilder.setIcon(R.drawable.privacy_policy)
+                dialogBuilder.setIcon(R.drawable.protocols)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.hspap)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.hspap)
@@ -285,7 +294,7 @@ class WebViewDialog : DialogFragment() {
 
             NETWORK_GSM -> {
                 // Set the icon.
 
             NETWORK_GSM -> {
                 // Set the icon.
-                dialogBuilder.setIcon(R.drawable.privacy_policy)
+                dialogBuilder.setIcon(R.drawable.protocols)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.gsm)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.gsm)
@@ -293,7 +302,7 @@ class WebViewDialog : DialogFragment() {
 
             NETWORK_TD_SCDMA -> {
                 // Set the icon.
 
             NETWORK_TD_SCDMA -> {
                 // Set the icon.
-                dialogBuilder.setIcon(R.drawable.privacy_policy)
+                dialogBuilder.setIcon(R.drawable.protocols)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.td_scdma)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.td_scdma)
@@ -301,7 +310,7 @@ class WebViewDialog : DialogFragment() {
 
             NETWORK_IWLAN -> {
                 // Set the icon.
 
             NETWORK_IWLAN -> {
                 // Set the icon.
-                dialogBuilder.setIcon(R.drawable.privacy_policy)
+                dialogBuilder.setIcon(R.drawable.protocols)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.iwlan)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.iwlan)
@@ -309,7 +318,7 @@ class WebViewDialog : DialogFragment() {
 
             NETWORK_NR -> {
                 // Set the icon.
 
             NETWORK_NR -> {
                 // Set the icon.
-                dialogBuilder.setIcon(R.drawable.privacy_policy)
+                dialogBuilder.setIcon(R.drawable.protocols)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.nr)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.nr)
@@ -317,7 +326,7 @@ class WebViewDialog : DialogFragment() {
 
             OVERRIDE_NETWORK_NONE -> {
                 // Set the icon.
 
             OVERRIDE_NETWORK_NONE -> {
                 // Set the icon.
-                dialogBuilder.setIcon(R.drawable.privacy_policy)
+                dialogBuilder.setIcon(R.drawable.protocols)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.none)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.none)
@@ -325,7 +334,7 @@ class WebViewDialog : DialogFragment() {
 
             OVERRIDE_NETWORK_LTE_CA -> {
                 // Set the icon.
 
             OVERRIDE_NETWORK_LTE_CA -> {
                 // Set the icon.
-                dialogBuilder.setIcon(R.drawable.privacy_policy)
+                dialogBuilder.setIcon(R.drawable.protocols)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.lte_ca)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.lte_ca)
@@ -333,7 +342,7 @@ class WebViewDialog : DialogFragment() {
 
             OVERRIDE_NETWORK_LTE_ADVANCED_PRO -> {
                 // Set the icon.
 
             OVERRIDE_NETWORK_LTE_ADVANCED_PRO -> {
                 // Set the icon.
-                dialogBuilder.setIcon(R.drawable.privacy_policy)
+                dialogBuilder.setIcon(R.drawable.protocols)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.lte_advanced_pro)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.lte_advanced_pro)
@@ -341,7 +350,7 @@ class WebViewDialog : DialogFragment() {
 
             OVERRIDE_NETWORK_NR_NSA -> {
                 // Set the icon.
 
             OVERRIDE_NETWORK_NR_NSA -> {
                 // Set the icon.
-                dialogBuilder.setIcon(R.drawable.privacy_policy)
+                dialogBuilder.setIcon(R.drawable.protocols)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.nr_nsa)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.nr_nsa)
@@ -349,7 +358,7 @@ class WebViewDialog : DialogFragment() {
 
             OVERRIDE_NETWORK_NR_NSA_MMWAVE -> {
                 // Set the icon.
 
             OVERRIDE_NETWORK_NR_NSA_MMWAVE -> {
                 // Set the icon.
-                dialogBuilder.setIcon(R.drawable.privacy_policy)
+                dialogBuilder.setIcon(R.drawable.protocols)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.nr_nsa_mmwave)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.nr_nsa_mmwave)
@@ -357,7 +366,7 @@ class WebViewDialog : DialogFragment() {
 
             OVERRIDE_NETWORK_NR_ADVANCED -> {
                 // Set the icon.
 
             OVERRIDE_NETWORK_NR_ADVANCED -> {
                 // Set the icon.
-                dialogBuilder.setIcon(R.drawable.privacy_policy)
+                dialogBuilder.setIcon(R.drawable.protocols)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.nr_advanced)
 
                 // Set the title.
                 dialogBuilder.setTitle(R.string.nr_advanced)
@@ -423,6 +432,7 @@ class WebViewDialog : DialogFragment() {
             LICENSES -> webView.loadUrl("https://appassets.androidplatform.net/assets/" + getString(R.string.asset_directory) + "/licenses.html")
             CONTRIBUTORS -> webView.loadUrl("https://appassets.androidplatform.net/assets/" + getString(R.string.asset_directory) + "/contributors.html")
             STINGRAY -> webView.loadUrl("https://appassets.androidplatform.net/assets/" + getString(R.string.asset_directory) + "/explanations/stingrays.html")
             LICENSES -> webView.loadUrl("https://appassets.androidplatform.net/assets/" + getString(R.string.asset_directory) + "/licenses.html")
             CONTRIBUTORS -> webView.loadUrl("https://appassets.androidplatform.net/assets/" + getString(R.string.asset_directory) + "/contributors.html")
             STINGRAY -> webView.loadUrl("https://appassets.androidplatform.net/assets/" + getString(R.string.asset_directory) + "/explanations/stingrays.html")
+            ANTIQUATED_NETWORK -> webView.loadUrl("https://appassets.androidplatform.net/assets/" + getString(R.string.asset_directory) + "/explanations/antiquated_network.html")
             NETWORK_UNKNOWN -> webView.loadUrl("https://appassets.androidplatform.net/assets/" + getString(R.string.asset_directory) + "/explanations/network_unknown.html")
             NETWORK_GPRS -> webView.loadUrl("https://appassets.androidplatform.net/assets/" + getString(R.string.asset_directory) + "/explanations/network_gprs.html")
             NETWORK_EDGE -> webView.loadUrl("https://appassets.androidplatform.net/assets/" + getString(R.string.asset_directory) + "/explanations/network_edge.html")
             NETWORK_UNKNOWN -> webView.loadUrl("https://appassets.androidplatform.net/assets/" + getString(R.string.asset_directory) + "/explanations/network_unknown.html")
             NETWORK_GPRS -> webView.loadUrl("https://appassets.androidplatform.net/assets/" + getString(R.string.asset_directory) + "/explanations/network_gprs.html")
             NETWORK_EDGE -> webView.loadUrl("https://appassets.androidplatform.net/assets/" + getString(R.string.asset_directory) + "/explanations/network_edge.html")
index 3708bc225716db77487878f5a1be766cdea89218..20dfb37be3cdbb74e847fabe05125ba0b4546569 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright © 2021 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>.
  *
  *
  * This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
  *
@@ -42,6 +42,10 @@ class SettingsFragment : PreferenceFragmentCompat() {
 
     // Declare the class views.
     private lateinit var realtimeMonitoringPreference: Preference
 
     // Declare the class views.
     private lateinit var realtimeMonitoringPreference: Preference
+    private lateinit var secureNetworkNotificationPreference: Preference
+    private lateinit var insecureNetworkNotificationPreference: Preference
+    private lateinit var antiquatedNetworkNotificationPreference: Preference
+    private lateinit var consider3gAntiquatedPreference: Preference
     private lateinit var bottomAppBarPreference: Preference
 
     override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
     private lateinit var bottomAppBarPreference: Preference
 
     override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
@@ -53,8 +57,10 @@ class SettingsFragment : PreferenceFragmentCompat() {
 
         // Get handles for the preferences.
         realtimeMonitoringPreference = findPreference(getString(R.string.realtime_monitoring_key))!!
 
         // Get handles for the preferences.
         realtimeMonitoringPreference = findPreference(getString(R.string.realtime_monitoring_key))!!
-        val secureNetworkNotificationPreference = findPreference<Preference>(getString(R.string.secure_network_notification_key))!!
-        val insecureNetworkNotificationPreference = findPreference<Preference>(getString(R.string.insecure_network_notification_key))!!
+        secureNetworkNotificationPreference = findPreference(getString(R.string.secure_network_notification_key))!!
+        insecureNetworkNotificationPreference = findPreference(getString(R.string.insecure_network_notification_key))!!
+        antiquatedNetworkNotificationPreference = findPreference(getString(R.string.antiquated_network_notification_key))!!
+        consider3gAntiquatedPreference = findPreference(getString(R.string.consider_3g_antiquated_key))!!
         bottomAppBarPreference = findPreference(getString(R.string.bottom_app_bar_key))!!
 
         // Only enable the realtime monitoring preference if the READ_PHONE_STATE permission has been granted.
         bottomAppBarPreference = findPreference(getString(R.string.bottom_app_bar_key))!!
 
         // Only enable the realtime monitoring preference if the READ_PHONE_STATE permission has been granted.
@@ -64,20 +70,30 @@ class SettingsFragment : PreferenceFragmentCompat() {
         if (realtimeMonitoringPreference.isEnabled) {
             // Set the realtime monitoring preference icon.
             if (sharedPreferences.getBoolean(getString(R.string.realtime_monitoring_key), false)) {
         if (realtimeMonitoringPreference.isEnabled) {
             // Set the realtime monitoring preference icon.
             if (sharedPreferences.getBoolean(getString(R.string.realtime_monitoring_key), false)) {
-                // Set the enabled icon.
-                realtimeMonitoringPreference.setIcon(R.drawable.realtime_monitoring_enabled)
+                // Set the icons.
+                realtimeMonitoringPreference.setIcon(R.drawable.secure_notification_enabled)
+                secureNetworkNotificationPreference.setIcon(R.drawable.secure_notification_enabled)
+                insecureNetworkNotificationPreference.setIcon(R.drawable.insecure_notification_enabled)
+                antiquatedNetworkNotificationPreference.setIcon(R.drawable.antiquated_notification_enabled)
             } else {
             } else {
-                // Set the disabled icon.
-                realtimeMonitoringPreference.setIcon(R.drawable.realtime_monitoring_disabled)
+                // Set the icons.
+                realtimeMonitoringPreference.setIcon(R.drawable.secure_notification_disabled)
+                secureNetworkNotificationPreference.setIcon(R.drawable.secure_notification_disabled)
+                insecureNetworkNotificationPreference.setIcon(R.drawable.insecure_notification_disabled)
+                antiquatedNetworkNotificationPreference.setIcon(R.drawable.antiquated_notification_disabled)
             }
         } else {
             }
         } else {
-            // Set the ghosted icon.
-            realtimeMonitoringPreference.setIcon(R.drawable.realtime_monitoring_ghosted)
+            // Set the icons.
+            realtimeMonitoringPreference.setIcon(R.drawable.secure_notification_ghosted)
+            secureNetworkNotificationPreference.setIcon(R.drawable.secure_notification_ghosted)
+            insecureNetworkNotificationPreference.setIcon(R.drawable.insecure_notification_ghosted)
+            antiquatedNetworkNotificationPreference.setIcon(R.drawable.antiquated_notification_ghosted)
         }
 
         // Set the notification preferences to depend on the realtime monitoring preference.
         secureNetworkNotificationPreference.dependency = getString(R.string.realtime_monitoring_key)
         insecureNetworkNotificationPreference.dependency = getString(R.string.realtime_monitoring_key)
         }
 
         // Set the notification preferences to depend on the realtime monitoring preference.
         secureNetworkNotificationPreference.dependency = getString(R.string.realtime_monitoring_key)
         insecureNetworkNotificationPreference.dependency = getString(R.string.realtime_monitoring_key)
+        antiquatedNetworkNotificationPreference.dependency = getString(R.string.realtime_monitoring_key)
 
         // Create the notification intents.
         val secureNetworkNotificationIntent = Intent(Settings.ACTION_CHANNEL_NOTIFICATION_SETTINGS)
 
         // Create the notification intents.
         val secureNetworkNotificationIntent = Intent(Settings.ACTION_CHANNEL_NOTIFICATION_SETTINGS)
@@ -86,17 +102,26 @@ class SettingsFragment : PreferenceFragmentCompat() {
         val insecureNetworkNotificationIntent = Intent(Settings.ACTION_CHANNEL_NOTIFICATION_SETTINGS)
             .putExtra(Settings.EXTRA_APP_PACKAGE, requireContext().packageName)
             .putExtra(Settings.EXTRA_CHANNEL_ID, RealtimeMonitoringService.INSECURE_NETWORK)
         val insecureNetworkNotificationIntent = Intent(Settings.ACTION_CHANNEL_NOTIFICATION_SETTINGS)
             .putExtra(Settings.EXTRA_APP_PACKAGE, requireContext().packageName)
             .putExtra(Settings.EXTRA_CHANNEL_ID, RealtimeMonitoringService.INSECURE_NETWORK)
+        val antiquatedNetworkNotificationIntent = Intent(Settings.ACTION_CHANNEL_NOTIFICATION_SETTINGS)
+            .putExtra(Settings.EXTRA_APP_PACKAGE, requireContext().packageName)
+            .putExtra(Settings.EXTRA_CHANNEL_ID, RealtimeMonitoringService.ANTIQUATED_NETWORK)
 
         // Set the notification preference intents.
         secureNetworkNotificationPreference.intent = secureNetworkNotificationIntent
         insecureNetworkNotificationPreference.intent = insecureNetworkNotificationIntent
 
         // Set the notification preference intents.
         secureNetworkNotificationPreference.intent = secureNetworkNotificationIntent
         insecureNetworkNotificationPreference.intent = insecureNetworkNotificationIntent
+        antiquatedNetworkNotificationPreference.intent = antiquatedNetworkNotificationIntent
+
+        // Set the consider 3G antiquated preference icon.
+        if (sharedPreferences.getBoolean(getString(R.string.consider_3g_antiquated_key), false)) {
+            consider3gAntiquatedPreference.setIcon(R.drawable.antiquated_3g_enabled)
+        } else {
+            consider3gAntiquatedPreference.setIcon(R.drawable.antiquated_3g_disabled)
+        }
 
         // Set the bottom app bar preference icon.
         if (sharedPreferences.getBoolean(getString(R.string.bottom_app_bar_key), false)) {
 
         // Set the bottom app bar preference icon.
         if (sharedPreferences.getBoolean(getString(R.string.bottom_app_bar_key), false)) {
-            // Set the enabled icon.
             bottomAppBarPreference.setIcon(R.drawable.bottom_app_bar_enabled)
         } else {
             bottomAppBarPreference.setIcon(R.drawable.bottom_app_bar_enabled)
         } else {
-            // Set the disabled icon.
             bottomAppBarPreference.setIcon(R.drawable.bottom_app_bar_disabled)
         }
     }
             bottomAppBarPreference.setIcon(R.drawable.bottom_app_bar_disabled)
         }
     }
@@ -135,11 +160,17 @@ class SettingsFragment : PreferenceFragmentCompat() {
                 getString(R.string.realtime_monitoring_key) -> {
                     // Update the icon.
                     if (sharedPreferences.getBoolean(getString(R.string.realtime_monitoring_key), false)) {
                 getString(R.string.realtime_monitoring_key) -> {
                     // Update the icon.
                     if (sharedPreferences.getBoolean(getString(R.string.realtime_monitoring_key), false)) {
-                        // Set the enabled icon.
-                        realtimeMonitoringPreference.setIcon(R.drawable.realtime_monitoring_enabled)
+                        // Set the icons.
+                        realtimeMonitoringPreference.setIcon(R.drawable.secure_notification_enabled)
+                        secureNetworkNotificationPreference.setIcon(R.drawable.secure_notification_enabled)
+                        insecureNetworkNotificationPreference.setIcon(R.drawable.insecure_notification_enabled)
+                        antiquatedNetworkNotificationPreference.setIcon(R.drawable.antiquated_notification_enabled)
                     } else {
                     } else {
-                        // Set the disabled icon.
-                        realtimeMonitoringPreference.setIcon(R.drawable.realtime_monitoring_disabled)
+                        // Set the icons.
+                        realtimeMonitoringPreference.setIcon(R.drawable.secure_notification_disabled)
+                        secureNetworkNotificationPreference.setIcon(R.drawable.secure_notification_disabled)
+                        insecureNetworkNotificationPreference.setIcon(R.drawable.insecure_notification_disabled)
+                        antiquatedNetworkNotificationPreference.setIcon(R.drawable.antiquated_notification_disabled)
                     }
 
                     // Start or stop the service.
                     }
 
                     // Start or stop the service.
@@ -155,35 +186,50 @@ class SettingsFragment : PreferenceFragmentCompat() {
                     }
                 }
 
                     }
                 }
 
+                getString(R.string.consider_3g_antiquated_key) -> {
+                    // Update the icon.
+                    if (sharedPreferences.getBoolean(getString(R.string.consider_3g_antiquated_key), false)) {
+                        consider3gAntiquatedPreference.setIcon(R.drawable.antiquated_3g_enabled)
+                    } else {
+                        consider3gAntiquatedPreference.setIcon(R.drawable.antiquated_3g_disabled)
+                    }
+
+                    // Restart Privacy Cell.
+                    restartPrivacyCell()
+                }
+
                 getString(R.string.bottom_app_bar_key) -> {
                     // Update the icon.
                     if (sharedPreferences.getBoolean(getString(R.string.bottom_app_bar_key), false)) {
                 getString(R.string.bottom_app_bar_key) -> {
                     // Update the icon.
                     if (sharedPreferences.getBoolean(getString(R.string.bottom_app_bar_key), false)) {
-                        // Set the enabled icon.
                         bottomAppBarPreference.setIcon(R.drawable.bottom_app_bar_enabled)
                     } else {
                         bottomAppBarPreference.setIcon(R.drawable.bottom_app_bar_enabled)
                     } else {
-                        // Set the disabled icon.
                         bottomAppBarPreference.setIcon(R.drawable.bottom_app_bar_disabled)
                     }
 
                         bottomAppBarPreference.setIcon(R.drawable.bottom_app_bar_disabled)
                     }
 
-                    // Create an intent to restart Privacy Cell.
-                    val restartIntent = requireActivity().parentActivityIntent!!
+                    // Restart Privacy Cell after 400 milliseconds.
+                    restartPrivacyCell()
+                }
+            }
+        }
+    }
 
 
-                    // `Intent.FLAG_ACTIVITY_CLEAR_TASK` removes all activities from the stack.  It requires `Intent.FLAG_ACTIVITY_NEW_TASK`.
-                    restartIntent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
+    private fun restartPrivacyCell() {
+        // Create an intent to restart Privacy Cell.
+        val restartIntent = requireActivity().parentActivityIntent!!
 
 
-                    // Create a handler to restart the activity.
-                    val restartHandler = Handler(Looper.getMainLooper())
+        // `Intent.FLAG_ACTIVITY_CLEAR_TASK` removes all activities from the stack.  It requires `Intent.FLAG_ACTIVITY_NEW_TASK`.
+        restartIntent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
 
 
-                    // Create a runnable to restart the activity.
-                    val restartRunnable = Runnable {
-                        // Restart the activity.
-                        startActivity(restartIntent)
-                    }
+        // Create a handler to restart the activity.
+        val restartHandler = Handler(Looper.getMainLooper())
 
 
-                    // Restart the activity after 400 milliseconds, so that the app has enough time to save the change to the preference.
-                    restartHandler.postDelayed(restartRunnable, 400)
-                }
-            }
+        // Create a runnable to restart the activity.
+        val restartRunnable = Runnable {
+            // Restart the activity.
+            startActivity(restartIntent)
         }
         }
+
+        // Restart the activity after 400 milliseconds, so that the app has enough time to save the change to the preference.
+        restartHandler.postDelayed(restartRunnable, 400)
     }
 }
\ No newline at end of file
     }
 }
\ No newline at end of file
index 7d467dd1d2576165407af96325896c9d6cf0d90d..a48757f987f6cc4fc45b28e3fae6604d91a17c55 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright © 2021 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>.
  *
  *
  * This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
  *
@@ -17,6 +17,9 @@
  * along with Privacy Cell.  If not, see <http://www.gnu.org/licenses/>.
  */
 
  * along with Privacy Cell.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+// The suppression of deprecation lint can be removed once the minimum API >= 31.
+@file:Suppress("DEPRECATION")
+
 package com.stoutner.privacycell.services
 
 import android.Manifest
 package com.stoutner.privacycell.services
 
 import android.Manifest
@@ -36,6 +39,7 @@ import android.telephony.TelephonyDisplayInfo
 import android.telephony.TelephonyManager
 
 import androidx.core.app.ActivityCompat
 import android.telephony.TelephonyManager
 
 import androidx.core.app.ActivityCompat
+import androidx.preference.PreferenceManager
 import androidx.work.ExistingPeriodicWorkPolicy
 import androidx.work.PeriodicWorkRequestBuilder
 import androidx.work.WorkManager
 import androidx.work.ExistingPeriodicWorkPolicy
 import androidx.work.PeriodicWorkRequestBuilder
 import androidx.work.WorkManager
@@ -56,6 +60,7 @@ class RealtimeMonitoringService : Service() {
         // Define the public constants.  These are used in the settings fragment to launch intents to edit the sound that plays for each channel.
         const val SECURE_NETWORK = "secure_network"
         const val INSECURE_NETWORK = "insecure_network"
         // Define the public constants.  These are used in the settings fragment to launch intents to edit the sound that plays for each channel.
         const val SECURE_NETWORK = "secure_network"
         const val INSECURE_NETWORK = "insecure_network"
+        const val ANTIQUATED_NETWORK = "antiquated_network"
     }
 
     // Define the class variables.
     }
 
     // Define the class variables.
@@ -73,6 +78,9 @@ class RealtimeMonitoringService : Service() {
     }
 
     override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
     }
 
     override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
+        // Get a handle for the shared preferences.
+        val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this)
+
         // Get a handle for the notification manager.
         val notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
 
         // Get a handle for the notification manager.
         val notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
 
@@ -82,25 +90,30 @@ class RealtimeMonitoringService : Service() {
         // Prepare the notification channels.
         val secureNetworkChannel = NotificationChannel(SECURE_NETWORK, getString(R.string.secure_network_channel), NotificationManager.IMPORTANCE_HIGH)
         val insecureNetworkChannel = NotificationChannel(INSECURE_NETWORK, getString(R.string.insecure_network_channel), NotificationManager.IMPORTANCE_HIGH)
         // Prepare the notification channels.
         val secureNetworkChannel = NotificationChannel(SECURE_NETWORK, getString(R.string.secure_network_channel), NotificationManager.IMPORTANCE_HIGH)
         val insecureNetworkChannel = NotificationChannel(INSECURE_NETWORK, getString(R.string.insecure_network_channel), NotificationManager.IMPORTANCE_HIGH)
+        val antiquatedNetworkChannel = NotificationChannel(ANTIQUATED_NETWORK, getString(R.string.antiquated_network_channel), NotificationManager.IMPORTANCE_HIGH)
         val unknownNetworkChannel = NotificationChannel(UNKNOWN_NETWORK, getString(R.string.unknown_network_channel), NotificationManager.IMPORTANCE_LOW)
 
         // Set the notification channel group.
         secureNetworkChannel.group = REALTIME_MONITORING
         insecureNetworkChannel.group = REALTIME_MONITORING
         val unknownNetworkChannel = NotificationChannel(UNKNOWN_NETWORK, getString(R.string.unknown_network_channel), NotificationManager.IMPORTANCE_LOW)
 
         // Set the notification channel group.
         secureNetworkChannel.group = REALTIME_MONITORING
         insecureNetworkChannel.group = REALTIME_MONITORING
+        antiquatedNetworkChannel.group = REALTIME_MONITORING
         unknownNetworkChannel.group = REALTIME_MONITORING
 
         // Disable the notification dots.
         secureNetworkChannel.setShowBadge(false)
         insecureNetworkChannel.setShowBadge(false)
         unknownNetworkChannel.group = REALTIME_MONITORING
 
         // Disable the notification dots.
         secureNetworkChannel.setShowBadge(false)
         insecureNetworkChannel.setShowBadge(false)
+        antiquatedNetworkChannel.setShowBadge(false)
         unknownNetworkChannel.setShowBadge(false)
 
         unknownNetworkChannel.setShowBadge(false)
 
-        // Set the notifications to be public for the secure and insecure networks.
+        // Set the primary channel notifications to be public.
         secureNetworkChannel.lockscreenVisibility = Notification.VISIBILITY_PUBLIC
         insecureNetworkChannel.lockscreenVisibility = Notification.VISIBILITY_PUBLIC
         secureNetworkChannel.lockscreenVisibility = Notification.VISIBILITY_PUBLIC
         insecureNetworkChannel.lockscreenVisibility = Notification.VISIBILITY_PUBLIC
+        antiquatedNetworkChannel.lockscreenVisibility = Notification.VISIBILITY_PUBLIC
 
         // Create the notification channels.
         notificationManager.createNotificationChannel(secureNetworkChannel)
         notificationManager.createNotificationChannel(insecureNetworkChannel)
 
         // Create the notification channels.
         notificationManager.createNotificationChannel(secureNetworkChannel)
         notificationManager.createNotificationChannel(insecureNetworkChannel)
+        notificationManager.createNotificationChannel(antiquatedNetworkChannel)
         notificationManager.createNotificationChannel(unknownNetworkChannel)
 
         // Create a notification builder.
         notificationManager.createNotificationChannel(unknownNetworkChannel)
 
         // Create a notification builder.
@@ -119,10 +132,10 @@ class RealtimeMonitoringService : Service() {
         notificationBuilder.setContentText(getString(R.string.unknown_network))
 
         // Set the notification icon.
         notificationBuilder.setContentText(getString(R.string.unknown_network))
 
         // Set the notification icon.
-        notificationBuilder.setSmallIcon(R.drawable.insecure_notification)
+        notificationBuilder.setSmallIcon(R.drawable.antiquated_notification_enabled)
 
         // Set the color.
 
         // Set the color.
-        notificationBuilder.setColor(getColor(R.color.red_text))
+        notificationBuilder.setColor(getColor(R.color.red_notification_icon))
 
         // Start the foreground notification.
         startForeground(NOTIFICATION_ID, notificationBuilder.build())
 
         // Start the foreground notification.
         startForeground(NOTIFICATION_ID, notificationBuilder.build())
@@ -130,8 +143,12 @@ class RealtimeMonitoringService : Service() {
         // Define the phone state listener.  The `PhoneStateListener` can be replaced by `TelephonyCallback` once the minimum API >= 31.
         phoneStateListener = object : PhoneStateListener() {
             override fun onDisplayInfoChanged(telephonyDisplayInfo: TelephonyDisplayInfo) {
         // Define the phone state listener.  The `PhoneStateListener` can be replaced by `TelephonyCallback` once the minimum API >= 31.
         phoneStateListener = object : PhoneStateListener() {
             override fun onDisplayInfoChanged(telephonyDisplayInfo: TelephonyDisplayInfo) {
+                // Get the consider 3G antiquated preference.
+                val consider3gAntiquated = sharedPreferences.getBoolean(getString(R.string.consider_3g_antiquated_key), false)
+
                 // Populate the notification according to the network type.
                 // Populate the notification according to the network type.
-                if (telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_NR) {  // This is a secure 5G NR SA network.
+                if ((telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_NR) || (telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_IWLAN) ||
+                    (telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_UNKNOWN)) {  // This is a secure network.
                     // Only update the notification if the network status has changed.
                     if (currentStatus != SECURE_NETWORK) {
                         // Create a secure network notification builder.
                     // Only update the notification if the network status has changed.
                     if (currentStatus != SECURE_NETWORK) {
                         // Create a secure network notification builder.
@@ -144,10 +161,10 @@ class RealtimeMonitoringService : Service() {
                         secureNetworkNotificationBuilder.setContentText(getString(R.string.secure_network))
 
                         // Set the notification icon.
                         secureNetworkNotificationBuilder.setContentText(getString(R.string.secure_network))
 
                         // Set the notification icon.
-                        secureNetworkNotificationBuilder.setSmallIcon(R.drawable.secure_notification)
+                        secureNetworkNotificationBuilder.setSmallIcon(R.drawable.secure_notification_enabled)
 
                         // Set the color.
 
                         // Set the color.
-                        secureNetworkNotificationBuilder.setColor(getColor(R.color.blue_text))
+                        secureNetworkNotificationBuilder.setColor(getColor(R.color.blue_icon))
 
                         // Update the notification.
                         notificationManager.notify(NOTIFICATION_ID, secureNetworkNotificationBuilder.build())
 
                         // Update the notification.
                         notificationManager.notify(NOTIFICATION_ID, secureNetworkNotificationBuilder.build())
@@ -155,7 +172,13 @@ class RealtimeMonitoringService : Service() {
                         // Store the new network status.
                         currentStatus = SECURE_NETWORK
                     }
                         // Store the new network status.
                         currentStatus = SECURE_NETWORK
                     }
-                } else {  // This is not a secure 5G NR SA network.
+                } else if ((telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_LTE) || (!consider3gAntiquated && (telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_1xRTT ||
+                            (telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_EVDO_0) || (telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_EVDO_A) ||
+                            (telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_EVDO_B) || (telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_EHRPD) ||
+                            (telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_UMTS) || (telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_TD_SCDMA) ||
+                            (telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_HSDPA) || (telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_HSUPA) ||
+                            (telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_HSPA) || (telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_HSPAP)))) {
+                            // This is an insecure network.
                     // Only update the notification if the network status has changed.
                     if (currentStatus != INSECURE_NETWORK) {
                         // Create an insecure network notification builder.
                     // Only update the notification if the network status has changed.
                     if (currentStatus != INSECURE_NETWORK) {
                         // Create an insecure network notification builder.
@@ -168,10 +191,10 @@ class RealtimeMonitoringService : Service() {
                         insecureNetworkNotificationBuilder.setContentText(getString(R.string.insecure_network))
 
                         // Set the notification icon.
                         insecureNetworkNotificationBuilder.setContentText(getString(R.string.insecure_network))
 
                         // Set the notification icon.
-                        insecureNetworkNotificationBuilder.setSmallIcon(R.drawable.insecure_notification)
+                        insecureNetworkNotificationBuilder.setSmallIcon(R.drawable.insecure_notification_enabled)
 
                         // Set the color.
 
                         // Set the color.
-                        insecureNetworkNotificationBuilder.setColor(getColor(R.color.red_text))
+                        insecureNetworkNotificationBuilder.setColor(getColor(R.color.yellow_notification_icon))
 
                         // Update the notification.
                         notificationManager.notify(NOTIFICATION_ID, insecureNetworkNotificationBuilder.build())
 
                         // Update the notification.
                         notificationManager.notify(NOTIFICATION_ID, insecureNetworkNotificationBuilder.build())
@@ -179,6 +202,30 @@ class RealtimeMonitoringService : Service() {
                         // Store the new network status.
                         currentStatus = INSECURE_NETWORK
                     }
                         // Store the new network status.
                         currentStatus = INSECURE_NETWORK
                     }
+                } else {  // This is an antiquated network.
+                    // Only update the notification if the network status has changed.
+                    if (currentStatus != ANTIQUATED_NETWORK) {
+                        // Create an antiquated network notification builder.
+                        val antiquatedNetworkNotificationBuilder = Notification.Builder(applicationContext, ANTIQUATED_NETWORK)
+
+                        // Set the notification to open Privacy Cell.
+                        antiquatedNetworkNotificationBuilder.setContentIntent(privacyCellPendingIntent)
+
+                        // Set the notification text.
+                        antiquatedNetworkNotificationBuilder.setContentText(getString(R.string.antiquated_network))
+
+                        // Set the notification icon.
+                        antiquatedNetworkNotificationBuilder.setSmallIcon(R.drawable.antiquated_notification_enabled)
+
+                        // Set the color.
+                        antiquatedNetworkNotificationBuilder.setColor(getColor(R.color.red_notification_icon))
+
+                        // Update the notification.
+                        notificationManager.notify(NOTIFICATION_ID, antiquatedNetworkNotificationBuilder.build())
+
+                        // Store the new network status.
+                        currentStatus = ANTIQUATED_NETWORK
+                    }
                 }
             }
         }
                 }
             }
         }
diff --git a/app/src/main/res/drawable/antiquated.xml b/app/src/main/res/drawable/antiquated.xml
new file mode 100644 (file)
index 0000000..8bebbde
--- /dev/null
@@ -0,0 +1,42 @@
+<!--
+  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 `do_not_disturb`, 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"
+    android:height="200dp"
+    android:width="200dp"
+    android:viewportHeight="256"
+    android:viewportWidth="256" >
+
+    <!-- Inner Shield. -->
+    <path
+        android:fillColor="@color/red_900"
+        android:pathData="m128,12.8 l-94.255,41.891 0,62.836c0,58.124 40.215,112.477 94.255,125.673 54.039,-13.196 94.255,-67.549 94.255,-125.673l0,-62.836z" />
+
+    <!-- Outer Shield. -->
+    <path
+        android:fillColor="@color/red_700"
+        android:pathData="m128,0 l-104.727,46.545 0,69.818C23.273,180.945 67.956,241.338 128,256 188.044,241.338 232.727,180.945 232.727,116.364l0,-69.818L128,0ZM128,127.884 L209.455,127.884C203.287,175.825 171.287,218.531 128,231.913l0,-103.913 -81.455,0 0,-66.327L128,25.484l0,102.4z" />
+
+    <!-- Circle. -->
+    <path
+        android:fillColor="@color/white"
+        android:pathData="M128,47.744C83.248,47.744 46.928,84.064 46.928,128.816 46.928,173.568 83.248,209.888 128,209.888 172.752,209.888 209.072,173.568 209.072,128.816 209.072,84.064 172.752,47.744 128,47.744ZM128,193.673C92.166,193.673 63.143,164.65 63.143,128.816 63.143,113.818 68.25,100.035 76.844,89.091L167.725,179.972C156.78,188.566 142.998,193.673 128,193.673ZM179.156,168.541 L88.275,77.66C99.22,69.066 113.002,63.959 128,63.959c35.834,0 64.857,29.024 64.857,64.857 0,14.998 -5.108,28.78 -13.701,39.725z" />
+</vector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/antiquated_3g_disabled.xml b/app/src/main/res/drawable/antiquated_3g_disabled.xml
new file mode 100644 (file)
index 0000000..8750d1c
--- /dev/null
@@ -0,0 +1,31 @@
+<!--
+  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 `3g_mobiledata_rounded`, 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"
+    android:height="24dp"
+    android:width="24dp"
+    android:viewportHeight="256"
+    android:viewportWidth="256" >
+
+    <path
+        android:fillColor="@color/icon_disabled"
+        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" />
+</vector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/antiquated_3g_enabled.xml b/app/src/main/res/drawable/antiquated_3g_enabled.xml
new file mode 100644 (file)
index 0000000..1d1e63a
--- /dev/null
@@ -0,0 +1,31 @@
+<!--
+  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 `3g_mobiledata_rounded`, 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"
+    android:height="24dp"
+    android:width="24dp"
+    android:viewportHeight="256"
+    android:viewportWidth="256" >
+
+    <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" />
+</vector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/antiquated_notification_disabled.xml b/app/src/main/res/drawable/antiquated_notification_disabled.xml
new file mode 100644 (file)
index 0000000..3d58136
--- /dev/null
@@ -0,0 +1,31 @@
+<!--
+  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 `do_not_disturb`, 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"
+    android:height="24dp"
+    android:width="24dp"
+    android:viewportHeight="256"
+    android:viewportWidth="256" >
+
+    <path
+        android:fillColor="@color/icon_disabled"
+        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.546ZM128,46.928c44.752,0 81.072,36.321 81.072,81.072 0,44.752 -36.321,81.072 -81.072,81.072C83.248,209.072 46.928,172.752 46.928,128 46.928,83.248 83.248,46.928 128,46.928ZM128,63.143c-14.998,0 -28.781,5.108 -39.726,13.701L179.156,167.726C187.75,156.781 192.857,142.998 192.857,128 192.857,92.166 163.834,63.143 128,63.143ZM76.844,88.274C68.25,99.219 63.143,113.002 63.143,128c0,35.834 29.024,64.857 64.857,64.857 14.998,0 28.781,-5.108 39.726,-13.701z" />
+</vector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/antiquated_notification_enabled.xml b/app/src/main/res/drawable/antiquated_notification_enabled.xml
new file mode 100644 (file)
index 0000000..b92bd73
--- /dev/null
@@ -0,0 +1,31 @@
+<!--
+  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 `do_not_disturb`, 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"
+    android:height="24dp"
+    android:width="24dp"
+    android:viewportHeight="256"
+    android:viewportWidth="256" >
+
+    <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.546ZM128,46.928c44.752,0 81.072,36.321 81.072,81.072 0,44.752 -36.321,81.072 -81.072,81.072C83.248,209.072 46.928,172.752 46.928,128 46.928,83.248 83.248,46.928 128,46.928ZM128,63.143c-14.998,0 -28.781,5.108 -39.726,13.701L179.156,167.726C187.75,156.781 192.857,142.998 192.857,128 192.857,92.166 163.834,63.143 128,63.143ZM76.844,88.274C68.25,99.219 63.143,113.002 63.143,128c0,35.834 29.024,64.857 64.857,64.857 14.998,0 28.781,-5.108 39.726,-13.701z" />
+</vector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/antiquated_notification_ghosted.xml b/app/src/main/res/drawable/antiquated_notification_ghosted.xml
new file mode 100644 (file)
index 0000000..5f7496a
--- /dev/null
@@ -0,0 +1,31 @@
+<!--
+  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 `do_not_disturb`, 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"
+    android:height="24dp"
+    android:width="24dp"
+    android:viewportHeight="256"
+    android:viewportWidth="256" >
+
+    <path
+        android:fillColor="@color/icon_ghosted"
+        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.546ZM128,46.928c44.752,0 81.072,36.321 81.072,81.072 0,44.752 -36.321,81.072 -81.072,81.072C83.248,209.072 46.928,172.752 46.928,128 46.928,83.248 83.248,46.928 128,46.928ZM128,63.143c-14.998,0 -28.781,5.108 -39.726,13.701L179.156,167.726C187.75,156.781 192.857,142.998 192.857,128 192.857,92.166 163.834,63.143 128,63.143ZM76.844,88.274C68.25,99.219 63.143,113.002 63.143,128c0,35.834 29.024,64.857 64.857,64.857 14.998,0 28.781,-5.108 39.726,-13.701z" />
+</vector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/insecure.xml b/app/src/main/res/drawable/insecure.xml
new file mode 100644 (file)
index 0000000..ce16bf4
--- /dev/null
@@ -0,0 +1,42 @@
+<!--
+  Copyright © 2016,2022 Soren Stoutner <soren@stoutner.com>.  The resulting image is released under the GPLv3+ license.
+
+  This file is derived from `security` and `warning_amber_rounded`, 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"
+    android:height="200dp"
+    android:width="200dp"
+    android:viewportHeight="256"
+    android:viewportWidth="256" >
+
+    <!-- Inner Shield. -->
+    <path
+        android:fillColor="@color/yellow_900"
+        android:pathData="m128,12.8 l-94.255,41.891 0,62.836c0,58.124 40.215,112.477 94.255,125.673 54.039,-13.196 94.255,-67.549 94.255,-125.673l0,-62.836z" />
+
+    <!-- Outer Shield. -->
+    <path
+        android:fillColor="@color/yellow_700"
+        android:pathData="m128,0 l-104.727,46.545 0,69.818C23.273,180.945 67.956,241.338 128,256 188.044,241.338 232.727,180.945 232.727,116.364l0,-69.818L128,0ZM128,127.884 L209.455,127.884C203.287,175.825 171.287,218.531 128,231.913l0,-103.913 -81.455,0 0,-66.327L128,25.484l0,102.4z" />
+
+    <!-- Exclamation. -->
+    <path
+        android:fillColor="@color/white"
+        android:pathData="M128,49.247 L193.494,165.723L62.506,165.723L128,49.247M47.459,156.77c-6.697,11.907 1.653,26.858 15.047,26.858L193.494,183.628c13.394,0 21.744,-14.951 15.047,-26.858L143.047,40.295c-6.697,-11.907 -23.397,-11.907 -30.094,0zM119.302,94.101v17.905c0,4.924 3.914,8.953 8.698,8.953 4.784,0 8.698,-4.029 8.698,-8.953L136.698,94.101c0,-4.924 -3.914,-8.953 -8.698,-8.953 -4.784,0 -8.698,4.029 -8.698,8.953zM119.302,138.864h17.395v17.906h-17.395z" />
+</vector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/insecure_notification.xml b/app/src/main/res/drawable/insecure_notification.xml
deleted file mode 100644 (file)
index 4253f2f..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-<!--
-  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 `do_not_disturb`, 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"
-    android:height="24dp"
-    android:width="24dp"
-    android:viewportHeight="256"
-    android:viewportWidth="256" >
-
-    <path
-        android:fillColor="@color/red_700"
-        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.546ZM128,46.928c44.752,0 81.072,36.321 81.072,81.072 0,44.752 -36.321,81.072 -81.072,81.072C83.248,209.072 46.928,172.752 46.928,128 46.928,83.248 83.248,46.928 128,46.928ZM128,63.143c-14.998,0 -28.781,5.108 -39.726,13.701L179.156,167.726C187.75,156.781 192.857,142.998 192.857,128 192.857,92.166 163.834,63.143 128,63.143ZM76.844,88.274C68.25,99.219 63.143,113.002 63.143,128c0,35.834 29.024,64.857 64.857,64.857 14.998,0 28.781,-5.108 39.726,-13.701z" />
-</vector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/insecure_notification_disabled.xml b/app/src/main/res/drawable/insecure_notification_disabled.xml
new file mode 100644 (file)
index 0000000..0bd2267
--- /dev/null
@@ -0,0 +1,31 @@
+<!--
+  Copyright © 2016,2022 Soren Stoutner <soren@stoutner.com>.  The resulting image is released under the GPLv3+ license.
+
+  This file is derived from `security` and `warning_amber_rounded`, 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"
+    android:height="24dp"
+    android:width="24dp"
+    android:viewportHeight="256"
+    android:viewportWidth="256" >
+
+    <path
+        android:fillColor="@color/icon_disabled"
+        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.546ZM128.017,31.444c5.849,0 11.699,2.977 15.048,8.931l65.493,116.475c6.697,11.907 -1.652,26.858 -15.047,26.858l-130.987,0c-13.394,0 -21.744,-14.951 -15.047,-26.858L112.97,40.375c3.349,-5.954 9.198,-8.931 15.047,-8.931zM128.017,49.327 L62.523,165.803l130.987,0zM128.017,85.228c4.784,0 8.698,4.029 8.698,8.953l0,17.905c0,4.924 -3.915,8.953 -8.698,8.953 -4.784,0 -8.697,-4.029 -8.697,-8.953l0,-17.905c0,-4.924 3.914,-8.953 8.697,-8.953zM119.319,138.944l17.396,0l0,17.905l-17.396,0z" />
+</vector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/insecure_notification_enabled.xml b/app/src/main/res/drawable/insecure_notification_enabled.xml
new file mode 100644 (file)
index 0000000..550868f
--- /dev/null
@@ -0,0 +1,31 @@
+<!--
+  Copyright © 2016,2022 Soren Stoutner <soren@stoutner.com>.  The resulting image is released under the GPLv3+ license.
+
+  This file is derived from `security` and `warning_amber_rounded`, 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"
+    android:height="24dp"
+    android:width="24dp"
+    android:viewportHeight="256"
+    android:viewportWidth="256" >
+
+    <path
+        android:fillColor="@color/yellow_700"
+        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.546ZM128.017,31.444c5.849,0 11.699,2.977 15.048,8.931l65.493,116.475c6.697,11.907 -1.652,26.858 -15.047,26.858l-130.987,0c-13.394,0 -21.744,-14.951 -15.047,-26.858L112.97,40.375c3.349,-5.954 9.198,-8.931 15.047,-8.931zM128.017,49.327 L62.523,165.803l130.987,0zM128.017,85.228c4.784,0 8.698,4.029 8.698,8.953l0,17.905c0,4.924 -3.915,8.953 -8.698,8.953 -4.784,0 -8.697,-4.029 -8.697,-8.953l0,-17.905c0,-4.924 3.914,-8.953 8.697,-8.953zM119.319,138.944l17.396,0l0,17.905l-17.396,0z" />
+</vector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/insecure_notification_ghosted.xml b/app/src/main/res/drawable/insecure_notification_ghosted.xml
new file mode 100644 (file)
index 0000000..b2c70e3
--- /dev/null
@@ -0,0 +1,31 @@
+<!--
+  Copyright © 2016,2022 Soren Stoutner <soren@stoutner.com>.  The resulting image is released under the GPLv3+ license.
+
+  This file is derived from `security` and `warning_amber_rounded`, 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"
+    android:height="24dp"
+    android:width="24dp"
+    android:viewportHeight="256"
+    android:viewportWidth="256" >
+
+    <path
+        android:fillColor="@color/icon_ghosted"
+        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.546ZM128.017,31.444c5.849,0 11.699,2.977 15.048,8.931l65.493,116.475c6.697,11.907 -1.652,26.858 -15.047,26.858l-130.987,0c-13.394,0 -21.744,-14.951 -15.047,-26.858L112.97,40.375c3.349,-5.954 9.198,-8.931 15.047,-8.931zM128.017,49.327 L62.523,165.803l130.987,0zM128.017,85.228c4.784,0 8.698,4.029 8.698,8.953l0,17.905c0,4.924 -3.915,8.953 -8.698,8.953 -4.784,0 -8.697,-4.029 -8.697,-8.953l0,-17.905c0,-4.924 3.914,-8.953 8.697,-8.953zM119.319,138.944l17.396,0l0,17.905l-17.396,0z" />
+</vector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/not_secure.xml b/app/src/main/res/drawable/not_secure.xml
deleted file mode 100644 (file)
index aafcbcf..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-<!--
-  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 `do_not_disturb`, 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"
-    android:height="200dp"
-    android:width="200dp"
-    android:viewportHeight="256"
-    android:viewportWidth="256" >
-
-    <path
-        android:fillColor="#b71c1c"
-        android:pathData="m128,12.8 l-94.255,41.891 0,62.836c0,58.124 40.215,112.477 94.255,125.673 54.039,-13.196 94.255,-67.549 94.255,-125.673l0,-62.836z" />
-
-    <path
-        android:fillColor="#d32f2f"
-        android:pathData="m128,0 l-104.727,46.545 0,69.818C23.273,180.945 67.956,241.338 128,256 188.044,241.338 232.727,180.945 232.727,116.364l0,-69.818L128,0ZM128,127.884 L209.455,127.884C203.287,175.825 171.287,218.531 128,231.913l0,-103.913 -81.455,0 0,-66.327L128,25.484l0,102.4z" />
-
-    <path
-        android:fillColor="#ffffff"
-        android:pathData="M128,47.744C83.248,47.744 46.928,84.064 46.928,128.816 46.928,173.568 83.248,209.888 128,209.888 172.752,209.888 209.072,173.568 209.072,128.816 209.072,84.064 172.752,47.744 128,47.744ZM128,193.673C92.166,193.673 63.143,164.65 63.143,128.816 63.143,113.818 68.25,100.035 76.844,89.091L167.725,179.972C156.78,188.566 142.998,193.673 128,193.673ZM179.156,168.541 L88.275,77.66C99.22,69.066 113.002,63.959 128,63.959c35.834,0 64.857,29.024 64.857,64.857 0,14.998 -5.108,28.78 -13.701,39.725z" />
-</vector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/realtime_monitoring_disabled.xml b/app/src/main/res/drawable/realtime_monitoring_disabled.xml
deleted file mode 100644 (file)
index fe45484..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-<!--
-  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/>. -->
-
-<vector
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:height="24dp"
-    android:width="24dp"
-    android:viewportHeight="256"
-    android:viewportWidth="256" >
-
-    <path
-        android:fillColor="@color/icon_disabled"
-        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" />
-</vector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/realtime_monitoring_enabled.xml b/app/src/main/res/drawable/realtime_monitoring_enabled.xml
deleted file mode 100644 (file)
index 367ef0d..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-<!--
-  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/>. -->
-
-<vector
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:height="24dp"
-    android:width="24dp"
-    android:viewportHeight="256"
-    android:viewportWidth="256" >
-
-    <path
-        android:fillColor="@color/icon_enabled"
-        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" />
-</vector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/realtime_monitoring_ghosted.xml b/app/src/main/res/drawable/realtime_monitoring_ghosted.xml
deleted file mode 100644 (file)
index cf7cde8..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-<!--
-  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/>. -->
-
-<vector
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:height="24dp"
-    android:width="24dp"
-    android:viewportHeight="256"
-    android:viewportWidth="256" >
-
-    <path
-        android:fillColor="@color/icon_ghosted"
-        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" />
-</vector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/secure.xml b/app/src/main/res/drawable/secure.xml
new file mode 100644 (file)
index 0000000..14972a5
--- /dev/null
@@ -0,0 +1,46 @@
+<!--
+  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/>. -->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:height="200dp"
+    android:width="200dp"
+    android:viewportHeight="256"
+    android:viewportWidth="256" >
+
+    <!-- Inner Shield. -->
+    <path
+        android:fillColor="@color/blue_900"
+        android:pathData="m128,12.8 l-94.255,41.891v62.836c0,58.124 40.215,112.477 94.255,125.673 54.039,-13.196 94.255,-67.549 94.255,-125.673v-62.836z" />
+
+    <!-- Outer Shield. -->
+    <path
+        android:fillColor="@color/blue_700"
+        android:pathData="m128,0 l-104.727,46.545v69.818C23.273,180.945 67.956,241.338 128,256 188.044,241.338 232.727,180.945 232.727,116.364v-69.818zM128,127.884h81.455C203.287,175.825 171.287,218.531 128,231.913L128,128L46.545,128L46.545,61.673L128,25.484Z" />
+
+    <!-- 5. -->
+    <path
+        android:fillColor="@color/white"
+        android:pathData="M103.507,92.852L62.961,92.852l0,24.328l32.437,0c8.92,0 16.218,7.298 16.218,16.218L111.617,157.726c0,8.92 -7.298,16.218 -16.218,16.218L54.852,173.944C50.311,173.944 46.743,170.376 46.743,165.835l0,0C46.743,161.294 50.311,157.726 54.852,157.726L95.398,157.726L95.398,133.398L54.852,133.398C50.311,133.398 46.743,129.83 46.743,125.289L46.743,84.743C46.743,80.202 50.311,76.633 54.852,76.633l48.655,0C108.048,76.633 111.617,80.202 111.617,84.743l0,0C111.617,89.284 108.048,92.852 103.507,92.852Z" />
+
+    <!-- G. -->
+    <path
+        android:fillColor="@color/white"
+        android:pathData="M168.381,133.398L192.709,133.398L192.709,157.726L144.053,157.726L144.053,92.852l56.765,0C205.359,92.852 208.927,89.284 208.927,84.743l0,0C208.927,80.202 205.359,76.633 200.818,76.633L144.053,76.633c-8.92,0 -16.218,7.298 -16.218,16.218l0,64.874c0,8.92 7.298,16.218 16.218,16.218l48.655,0c8.92,0 16.218,-7.298 16.218,-16.218L208.927,125.289C208.927,120.748 205.359,117.18 200.818,117.18l-32.437,0C163.84,117.18 160.272,120.748 160.272,125.289l0,0c0,4.541 3.568,8.109 8.109,8.109z" />
+</vector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/secure_5g_nr_sa.xml b/app/src/main/res/drawable/secure_5g_nr_sa.xml
deleted file mode 100644 (file)
index 9775270..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-<!--
-  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/>. -->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:height="200dp"
-    android:width="200dp"
-    android:viewportHeight="256"
-    android:viewportWidth="256" >
-
-    <path
-        android:fillColor="#0d4781"
-        android:pathData="m128,12.8 l-94.255,41.891v62.836c0,58.124 40.215,112.477 94.255,125.673 54.039,-13.196 94.255,-67.549 94.255,-125.673v-62.836z" />
-
-    <path
-        android:fillColor="#1976d2"
-        android:pathData="m128,0 l-104.727,46.545v69.818C23.273,180.945 67.956,241.338 128,256 188.044,241.338 232.727,180.945 232.727,116.364v-69.818zM128,127.884h81.455C203.287,175.825 171.287,218.531 128,231.913L128,128L46.545,128L46.545,61.673L128,25.484Z" />
-
-    <path
-        android:fillColor="#ffffff"
-        android:pathData="M103.507,92.852L62.961,92.852l0,24.328l32.437,0c8.92,0 16.218,7.298 16.218,16.218L111.617,157.726c0,8.92 -7.298,16.218 -16.218,16.218L54.852,173.944C50.311,173.944 46.743,170.376 46.743,165.835l0,0C46.743,161.294 50.311,157.726 54.852,157.726L95.398,157.726L95.398,133.398L54.852,133.398C50.311,133.398 46.743,129.83 46.743,125.289L46.743,84.743C46.743,80.202 50.311,76.633 54.852,76.633l48.655,0C108.048,76.633 111.617,80.202 111.617,84.743l0,0C111.617,89.284 108.048,92.852 103.507,92.852Z" />
-
-    <path
-        android:fillColor="#ffffff"
-        android:pathData="M168.381,133.398L192.709,133.398L192.709,157.726L144.053,157.726L144.053,92.852l56.765,0C205.359,92.852 208.927,89.284 208.927,84.743l0,0C208.927,80.202 205.359,76.633 200.818,76.633L144.053,76.633c-8.92,0 -16.218,7.298 -16.218,16.218l0,64.874c0,8.92 7.298,16.218 16.218,16.218l48.655,0c8.92,0 16.218,-7.298 16.218,-16.218L208.927,125.289C208.927,120.748 205.359,117.18 200.818,117.18l-32.437,0C163.84,117.18 160.272,120.748 160.272,125.289l0,0c0,4.541 3.568,8.109 8.109,8.109z" />
-</vector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/secure_notification.xml b/app/src/main/res/drawable/secure_notification.xml
deleted file mode 100644 (file)
index a1f3727..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-<!--
-  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/>. -->
-
-<vector
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:height="24dp"
-    android:width="24dp"
-    android:viewportHeight="256"
-    android:viewportWidth="256" >
-
-    <path
-        android:fillColor="@color/blue_700"
-        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" />
-</vector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/secure_notification_disabled.xml b/app/src/main/res/drawable/secure_notification_disabled.xml
new file mode 100644 (file)
index 0000000..fe45484
--- /dev/null
@@ -0,0 +1,31 @@
+<!--
+  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/>. -->
+
+<vector
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:height="24dp"
+    android:width="24dp"
+    android:viewportHeight="256"
+    android:viewportWidth="256" >
+
+    <path
+        android:fillColor="@color/icon_disabled"
+        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" />
+</vector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/secure_notification_enabled.xml b/app/src/main/res/drawable/secure_notification_enabled.xml
new file mode 100644 (file)
index 0000000..83bd9c1
--- /dev/null
@@ -0,0 +1,31 @@
+<!--
+  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/>. -->
+
+<vector
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:height="24dp"
+    android:width="24dp"
+    android:viewportHeight="256"
+    android:viewportWidth="256" >
+
+    <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" />
+</vector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/secure_notification_ghosted.xml b/app/src/main/res/drawable/secure_notification_ghosted.xml
new file mode 100644 (file)
index 0000000..cf7cde8
--- /dev/null
@@ -0,0 +1,31 @@
+<!--
+  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/>. -->
+
+<vector
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:height="24dp"
+    android:width="24dp"
+    android:viewportHeight="256"
+    android:viewportWidth="256" >
+
+    <path
+        android:fillColor="@color/icon_ghosted"
+        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" />
+</vector>
\ No newline at end of file
index af8fd57b1c35400012f1e6281fd9bdd976433fa4..cdc285018434f5bff387ff7049772437e529b117 100644 (file)
@@ -67,7 +67,7 @@
                         <!-- The text color primary is only displayed if the read phone state permission is not granted.
                             The default text is replaced if the permission is not granted or the device is connected to a cell phone network. -->
                         <TextView
                         <!-- The text color primary is only displayed if the read phone state permission is not granted.
                             The default text is replaced if the permission is not granted or the device is connected to a cell phone network. -->
                         <TextView
-                            android:id="@+id/stingray_textview"
+                            android:id="@+id/summary_textview"
                             android:layout_height="wrap_content"
                             android:layout_width="wrap_content"
                             android:layout_gravity="center_horizontal"
                             android:layout_height="wrap_content"
                             android:layout_width="wrap_content"
                             android:layout_gravity="center_horizontal"
index a85f3a3b35f3b9527186d39a384af8637b3080a0..356f084f126c4c036f441a637ef5ffb5ff170b04 100644 (file)
@@ -79,7 +79,7 @@
                         <!-- The text color primary is only displayed if the read phone state permission is not granted.
                             The default text is replaced if the permission is not granted or the device is connected to a cell phone network. -->
                         <TextView
                         <!-- The text color primary is only displayed if the read phone state permission is not granted.
                             The default text is replaced if the permission is not granted or the device is connected to a cell phone network. -->
                         <TextView
-                            android:id="@+id/stingray_textview"
+                            android:id="@+id/summary_textview"
                             android:layout_height="wrap_content"
                             android:layout_width="wrap_content"
                             android:layout_gravity="center_horizontal"
                             android:layout_height="wrap_content"
                             android:layout_width="wrap_content"
                             android:layout_gravity="center_horizontal"
index aa6aae4c145542259c38c09b5ceadaf027abb8dc..e0b8ce1dca07348856f2c33972bb604c9904a96b 100644 (file)
@@ -3,7 +3,7 @@
 <!--
   Copyright © 2021-2022 Soren Stoutner <soren@stoutner.com>.
 
 <!--
   Copyright © 2021-2022 Soren Stoutner <soren@stoutner.com>.
 
-  Translation 2021 Bernhard G. Keller.  Copyright assigned to Soren Stoutner <soren@stoutner.com>.
+  Translation 2021-2022 Bernhard G. Keller.  Copyright assigned to Soren Stoutner <soren@stoutner.com>.
 
   This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
 
 
   This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
 
     <!-- Text views.  The `\n\n` code inserts a line break and should be preserved in translations.
         Android removes double spaces, but extra spaces can be manually specified with the Unicode `\u0020` formatting.
         The `%1$s` code inserts variables into the displayed text and should be preserved in translation. -->
     <!-- Text views.  The `\n\n` code inserts a line break and should be preserved in translations.
         Android removes double spaces, but extra spaces can be manually specified with the Unicode `\u0020` formatting.
         The `%1$s` code inserts variables into the displayed text and should be preserved in translation. -->
-    <string name="secure_from_stingray">Ihr Gerät ist mit einem 5G-Standalone-(SA)-Netzwerk verbunden.\n\nEs ist gegen gefälschte Basisstationen
-        (Man-In-The-Middle-Angriffe, Stingray, IMSI-Catcher) gesichert.</string>
-    <string name="not_secure_from_stingray">Ihr Gerät ist nicht mit einem 5G-Standalone-(SA)-Netzwerk verbunden.\n\nEs ist nicht gegen gefälschte Basisstationen
-        (Man-In-The-Middle-Angriffe, Stingray, IMSI-Catcher) gesichert.</string>
     <string name="voice_network">Sprach-Netzwerk: \u0020 %1$s</string>
     <string name="data_network">Daten-Netzwerk: \u0020 %1$s</string>
     <string name="additional_network_info">Zusätzliche Netzwerk-Information: \u0020 %1$s</string>
 
     <!-- Navigation menu. -->
     <string name="settings">Einstellungen</string>
     <string name="voice_network">Sprach-Netzwerk: \u0020 %1$s</string>
     <string name="data_network">Daten-Netzwerk: \u0020 %1$s</string>
     <string name="additional_network_info">Zusätzliche Netzwerk-Information: \u0020 %1$s</string>
 
     <!-- Navigation menu. -->
     <string name="settings">Einstellungen</string>
+    <string name="protocols">Protokolle</string>
     <string name="logcat">Logcat</string>
     <string name="permissions">Berechtigungen</string>
     <string name="privacy_policy">Datenschutz-Regeln</string>
     <string name="logcat">Logcat</string>
     <string name="permissions">Berechtigungen</string>
     <string name="privacy_policy">Datenschutz-Regeln</string>
     <string name="forum">Forum</string>
     <string name="donations">Spenden</string>
 
     <string name="forum">Forum</string>
     <string name="donations">Spenden</string>
 
+    <!-- Protocol families. -->
+    <string name="protocol_2g">2G</string>
+    <string name="protocol_3g">3G</string>
+    <string name="protocol_4g">4G</string>
+    <string name="protocol_5g">5G</string>
+    <string name="protocol_other">Andere</string>
+
     <!-- Network types. -->
     <string name="unknown">Unbekannt</string>
     <string name="gprs">GPRS – 2.5G/3G</string>
     <!-- Network types. -->
     <string name="unknown">Unbekannt</string>
     <string name="gprs">GPRS – 2.5G/3G</string>
     <string name="secure">Sicher</string>
     <string name="insecure">Unsicher</string>
     <string name="secure_network">Sie sind mit einem sicheren Netzwerk verbunden.</string>
     <string name="secure">Sicher</string>
     <string name="insecure">Unsicher</string>
     <string name="secure_network">Sie sind mit einem sicheren Netzwerk verbunden.</string>
-    <string name="insecure_network">Sie sind nicht mit einem sicheren Netzwerk verbunden.</string>
     <string name="unknown_network">Der Sicherheits-Status des Netzwerks ist unbekannt.</string>
     <string name="secure_network_channel">Sicheres Netzwerk</string>
     <string name="insecure_network_channel">Unsicheres Netzwerk</string>
     <string name="unknown_network">Der Sicherheits-Status des Netzwerks ist unbekannt.</string>
     <string name="secure_network_channel">Sicheres Netzwerk</string>
     <string name="insecure_network_channel">Unsicheres Netzwerk</string>
index 4651b8ea33b213e66110405f44463696649d2b70..1028db80c1ea1b6dee610eaef73d3e16f01fd897 100644 (file)
@@ -3,7 +3,7 @@
 <!--
   Copyright © 2021-2022 Soren Stoutner <soren@stoutner.com>.
 
 <!--
   Copyright © 2021-2022 Soren Stoutner <soren@stoutner.com>.
 
-  Translation 2021 Jose A. León.  Copyright assigned to Soren Stoutner <soren@stoutner.com>.
+  Translation 2021-2022 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>.
 
 
   This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
 
     <!-- Text views.  The `\n\n` code inserts a line break and should be preserved in translations.
         Android removes double spaces, but extra spaces can be manually specified with the Unicode `\u0020` formatting.
         The `%1$s` code inserts variables into the displayed text and should be preserved in translation. -->
     <!-- Text views.  The `\n\n` code inserts a line break and should be preserved in translations.
         Android removes double spaces, but extra spaces can be manually specified with the Unicode `\u0020` formatting.
         The `%1$s` code inserts variables into the displayed text and should be preserved in translation. -->
-    <string name="secure_from_stingray">Su dispositivo está conectado a una red 5G independiente.\n\n Está protegido de los ataques \"stingray IMSI man-in-the-middle\".</string>
-    <string name="not_secure_from_stingray">Su dispositivo no está conectado a una red 5G independiente.\n\n No está protegido de los ataques \"stingray IMSI man-in-the-middle\".</string>
     <string name="voice_network">Red de voz: \u0020 %1$s</string>
     <string name="data_network">Red de datos: \u0020 %1$s</string>
     <string name="additional_network_info">Información adicional sobre la red: \u0020 %1$s</string>
 
     <!-- Navigation menu. -->
     <string name="settings">Ajustes</string>
     <string name="voice_network">Red de voz: \u0020 %1$s</string>
     <string name="data_network">Red de datos: \u0020 %1$s</string>
     <string name="additional_network_info">Información adicional sobre la red: \u0020 %1$s</string>
 
     <!-- Navigation menu. -->
     <string name="settings">Ajustes</string>
+    <string name="protocols">Protocolos</string>
     <string name="logcat">Logcat</string>
     <string name="permissions">Permisos</string>
     <string name="privacy_policy">Política de privacidad</string>
     <string name="logcat">Logcat</string>
     <string name="permissions">Permisos</string>
     <string name="privacy_policy">Política de privacidad</string>
     <string name="forum">Foro</string>
     <string name="donations">Donaciones</string>
 
     <string name="forum">Foro</string>
     <string name="donations">Donaciones</string>
 
+    <!-- Protocol families. -->
+    <string name="protocol_2g">2G</string>
+    <string name="protocol_3g">3G</string>
+    <string name="protocol_4g">4G</string>
+    <string name="protocol_5g">5G</string>
+    <string name="protocol_other">Otro</string>
+
     <!-- Network types. -->
     <string name="unknown">Desconocido</string>
     <string name="gprs">GPRS – 2.5G/3G</string>
     <!-- Network types. -->
     <string name="unknown">Desconocido</string>
     <string name="gprs">GPRS – 2.5G/3G</string>
     <string name="secure">Seguro</string>
     <string name="insecure">Inseguro</string>
     <string name="secure_network">Estás conectado a una red segura.</string>
     <string name="secure">Seguro</string>
     <string name="insecure">Inseguro</string>
     <string name="secure_network">Estás conectado a una red segura.</string>
-    <string name="insecure_network">No estás conectado a una red segura.</string>
     <string name="unknown_network">La seguridad de la red es desconocida.</string>
     <string name="secure_network_channel">Red segura</string>
     <string name="insecure_network_channel">Red insegura</string>
     <string name="unknown_network">La seguridad de la red es desconocida.</string>
     <string name="secure_network_channel">Red segura</string>
     <string name="insecure_network_channel">Red insegura</string>
index ffea456986bfd8052754503d7584e768871f3017..0dfa7c2ab96904189787c17b9fb148df8030dc54 100644 (file)
@@ -3,7 +3,7 @@
 <!--
   Copyright © 2021-2022 Soren Stoutner <soren@stoutner.com>.
 
 <!--
   Copyright © 2021-2022 Soren Stoutner <soren@stoutner.com>.
 
-  Translation 2021 Kévin L. <kevinliste@framalistes.org>.  Copyright assigned to Soren Stoutner <soren@stoutner.com>.
+  Translation 2021-2022 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>.
 
 
   This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
 
     <!-- Text views.  The `\n\n` code inserts a line break and should be preserved in translations.
         Android removes double spaces, but extra spaces can be manually specified with the Unicode `\u0020` formatting.
         The `%1$s` code inserts variables into the displayed text and should be preserved in translation. -->
     <!-- Text views.  The `\n\n` code inserts a line break and should be preserved in translations.
         Android removes double spaces, but extra spaces can be manually specified with the Unicode `\u0020` formatting.
         The `%1$s` code inserts variables into the displayed text and should be preserved in translation. -->
-    <string name="secure_from_stingray">Votre appareil est connecté à un réseau 5G standalone.\n\nIl est protégé contre les attaques du type man-in-the-middle par des IMSI catcher.</string>
-    <string name="not_secure_from_stingray">Votre appareil n\'est pas connecté à un réseau 5G standalone.\n\nIl n\'est pas protégé contre les attaques du type man-in-the-middle par des IMSI catcher.</string>
     <string name="voice_network">Réseau voix : \u0020 %1$s</string>
     <string name="data_network">Réseau de données : \u0020 %1$s</string>
     <string name="additional_network_info">Informations réseau additionnelles : \u0020 %1$s</string>
 
     <!-- Navigation menu. -->
     <string name="settings">Réglages</string>
     <string name="voice_network">Réseau voix : \u0020 %1$s</string>
     <string name="data_network">Réseau de données : \u0020 %1$s</string>
     <string name="additional_network_info">Informations réseau additionnelles : \u0020 %1$s</string>
 
     <!-- Navigation menu. -->
     <string name="settings">Réglages</string>
+    <string name="protocols">Protocoles</string>
     <string name="logcat">Logcat</string>
     <string name="permissions">Autorisations</string>
     <string name="privacy_policy">Politique de confidentialité</string>
     <string name="logcat">Logcat</string>
     <string name="permissions">Autorisations</string>
     <string name="privacy_policy">Politique de confidentialité</string>
     <string name="forum">Forum</string>
     <string name="donations">Dons</string>
 
     <string name="forum">Forum</string>
     <string name="donations">Dons</string>
 
+    <!-- Protocol families. -->
+    <string name="protocol_2g">2G</string>
+    <string name="protocol_3g">3G</string>
+    <string name="protocol_4g">4G</string>
+    <string name="protocol_5g">5G</string>
+    <string name="protocol_other">Autres</string>
+
     <!-- Network types. -->
     <string name="unknown">Inconnu</string>
     <string name="gprs">GPRS – 2.5G/3G</string>
     <!-- Network types. -->
     <string name="unknown">Inconnu</string>
     <string name="gprs">GPRS – 2.5G/3G</string>
     <string name="secure">Sécurisé</string>
     <string name="insecure">Non-sécurisé</string>
     <string name="secure_network">Vous êtes connecté à un réseau sécurisé.</string>
     <string name="secure">Sécurisé</string>
     <string name="insecure">Non-sécurisé</string>
     <string name="secure_network">Vous êtes connecté à un réseau sécurisé.</string>
-    <string name="insecure_network">You are not connected to a secure network.</string>
     <string name="unknown_network">La sécurité du réseau est inconnue.</string>
     <string name="secure_network_channel">Réseau sécurisé</string>
     <string name="insecure_network_channel">Réseau non-sécurisé</string>
     <string name="unknown_network">La sécurité du réseau est inconnue.</string>
     <string name="secure_network_channel">Réseau sécurisé</string>
     <string name="insecure_network_channel">Réseau non-sécurisé</string>
index 235dabd345c88e76030a21c2beaa75ff092a1aba..ee7e1ebaef04ea4ca55d77abeab6e47d6a5e0253 100644 (file)
@@ -3,7 +3,7 @@
 <!--
   Copyright © 2021-2022 Soren Stoutner <soren@stoutner.com>.
 
 <!--
   Copyright © 2021-2022 Soren Stoutner <soren@stoutner.com>.
 
-  Translation 2021 Francesco Buratti.  Copyright assigned to Soren Stoutner <soren@stoutner.com>.
+  Translation 2021-2022 Francesco Buratti.  Copyright assigned to Soren Stoutner <soren@stoutner.com>.
 
   This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
 
 
   This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
 
     <!-- Text views.  The `\n\n` code inserts a line break and should be preserved in translations.
         Android removes double spaces, but extra spaces can be manually specified with the Unicode `\u0020` formatting.
         The `%1$s` code inserts variables into the displayed text and should be preserved in translation. -->
     <!-- Text views.  The `\n\n` code inserts a line break and should be preserved in translations.
         Android removes double spaces, but extra spaces can be manually specified with the Unicode `\u0020` formatting.
         The `%1$s` code inserts variables into the displayed text and should be preserved in translation. -->
-    <string name="secure_from_stingray">Il tuo dispositivo è connesso a una rete 5G autonoma.\n\nLa rete è sicura da attacchi del tipo stingray IMSI man-in-the-middle.</string>
-    <string name="not_secure_from_stingray">Il tuo dispositivo non è connesso a una rete 5G autonoma.\n\nLa rete non è sicura da attacchi del tipo stingray IMSI man-in-the-middle.</string>
     <string name="voice_network">Rete voce: \u0020 %1$s</string>
     <string name="data_network">Rete dati: \u0020 %1$s</string>
     <string name="additional_network_info">Informazioni aggiuntive sulla rete: \u0020 %1$s</string>
 
     <!-- Navigation menu. -->
     <string name="settings">Impostazioni</string>
     <string name="voice_network">Rete voce: \u0020 %1$s</string>
     <string name="data_network">Rete dati: \u0020 %1$s</string>
     <string name="additional_network_info">Informazioni aggiuntive sulla rete: \u0020 %1$s</string>
 
     <!-- Navigation menu. -->
     <string name="settings">Impostazioni</string>
+    <string name="protocols">Protocolli</string>
     <string name="logcat">Logcat</string>
     <string name="permissions">Autorizzazioni</string>
     <string name="privacy_policy">Privacy Policy</string>
     <string name="logcat">Logcat</string>
     <string name="permissions">Autorizzazioni</string>
     <string name="privacy_policy">Privacy Policy</string>
     <string name="forum">Forum</string>
     <string name="donations">Donazioni</string>
 
     <string name="forum">Forum</string>
     <string name="donations">Donazioni</string>
 
+    <!-- Protocol families. -->
+    <string name="protocol_2g">2G</string>
+    <string name="protocol_3g">3G</string>
+    <string name="protocol_4g">4G</string>
+    <string name="protocol_5g">5G</string>
+    <string name="protocol_other">Altri</string>
+
     <!-- Network types. -->
     <string name="unknown">Sconosciuta</string>
     <string name="gprs">GPRS – 2.5G/3G</string>
     <!-- Network types. -->
     <string name="unknown">Sconosciuta</string>
     <string name="gprs">GPRS – 2.5G/3G</string>
     <string name="secure">Sicura</string>
     <string name="insecure">Insicura</string>
     <string name="secure_network">Sei connesso ad una rete sicura.</string>
     <string name="secure">Sicura</string>
     <string name="insecure">Insicura</string>
     <string name="secure_network">Sei connesso ad una rete sicura.</string>
-    <string name="insecure_network">Non sei connesso ad una rete sicura.</string>
     <string name="unknown_network">Il livello di sicurezza della rete è sconosciuto.</string>
     <string name="secure_network_channel">Rete sicura</string>
     <string name="insecure_network_channel">Rete insicura</string>
     <string name="unknown_network">Il livello di sicurezza della rete è sconosciuto.</string>
     <string name="secure_network_channel">Rete sicura</string>
     <string name="insecure_network_channel">Rete insicura</string>
index 194ddaf3d07713178de89b0df7d92d4b0b7655cd..16f3a88119837255cfb22ec9aeb9f39de978dea6 100644 (file)
 
 <resources>
     <!-- Nicknamed colors. -->
 
 <resources>
     <!-- Nicknamed colors. -->
+    <color name="blue_icon">@color/violet_500</color>
     <color name="blue_text">@color/violet_500</color>
     <color name="icon_disabled">@color/gray_500</color>
     <color name="icon_enabled">@color/violet_500</color>
     <color name="icon_ghosted">@color/gray_700</color>
     <color name="logcat_icons">@color/white</color>
     <color name="blue_text">@color/violet_500</color>
     <color name="icon_disabled">@color/gray_500</color>
     <color name="icon_enabled">@color/violet_500</color>
     <color name="icon_ghosted">@color/gray_700</color>
     <color name="logcat_icons">@color/white</color>
+    <color name="red_icon">@color/salmon</color>
+    <color name="red_notification_icon">@color/red_900</color>
     <color name="red_text">@color/salmon</color>
     <color name="red_text">@color/salmon</color>
+    <color name="yellow_notification_icon">@color/yellow_700</color>
 
     <!-- Raw colors. -->
     <color name="black">#FF000000</color>
 
     <!-- Raw colors. -->
     <color name="black">#FF000000</color>
 
     <color name="red_600">#FFE53935</color>
     <color name="red_700">#FFD32F2F</color>
 
     <color name="red_600">#FFE53935</color>
     <color name="red_700">#FFD32F2F</color>
+    <color name="red_900">#FFB71C1C</color>
 
     <color name="salmon">#FFFC684E</color>
 
     <color name="soft_red">#FFC73625</color>
 
 
     <color name="salmon">#FFFC684E</color>
 
     <color name="soft_red">#FFC73625</color>
 
+    <color name="yellow_700">#FFFBC02D</color>
+    <color name="yellow_900">#FFF57F17</color>
+
     <color name="violet_500">#FF8AB4F8</color>
     <color name="violet_500">#FF8AB4F8</color>
+    <color name="violet_700">#FF5785C5</color>
 
     <color name="white">#FFFFFFFF</color>
 
 
     <color name="white">#FFFFFFFF</color>
 
index ddad0966eabaf1de5b14746a8b961e914d65d18a..47dcbb12ec3ff11d6e2714679eb6d1bce262bf68 100644 (file)
     <!-- Text views.  The `\n\n` code inserts a line break and should be preserved in translations.
         Android removes double spaces, but extra spaces can be manually specified with the Unicode `\u0020` formatting.
         The `%1$s` code inserts variables into the displayed text and should be preserved in translation. -->
     <!-- Text views.  The `\n\n` code inserts a line break and should be preserved in translations.
         Android removes double spaces, but extra spaces can be manually specified with the Unicode `\u0020` formatting.
         The `%1$s` code inserts variables into the displayed text and should be preserved in translation. -->
-    <string name="secure_from_stingray">Ваше устройство подключено к автономной сети 5G.\n\nОно защищено от атак типа StingRay IMSI (человек посередине).</string>
-    <string name="not_secure_from_stingray">Ваше устройство не подключено к автономной сети 5G.\n\nОно не защищено от атак типа StingRay IMSI (человек посередине).</string>
     <string name="voice_network">Сеть голосовой связи: \u0020 %1$s</string>
     <string name="data_network">Сеть передачи данных: \u0020 %1$s</string>
     <string name="additional_network_info">Дополнительная информация о сети: \u0020 %1$s</string>
 
     <!-- Navigation menu. -->
     <string name="settings">Настройки</string>
     <string name="voice_network">Сеть голосовой связи: \u0020 %1$s</string>
     <string name="data_network">Сеть передачи данных: \u0020 %1$s</string>
     <string name="additional_network_info">Дополнительная информация о сети: \u0020 %1$s</string>
 
     <!-- Navigation menu. -->
     <string name="settings">Настройки</string>
+    <string name="protocols">Протоколы</string>
     <string name="logcat">Logcat</string>
     <string name="permissions">Разрешения</string>
     <string name="privacy_policy">Политика конфиденциальности</string>
     <string name="logcat">Logcat</string>
     <string name="permissions">Разрешения</string>
     <string name="privacy_policy">Политика конфиденциальности</string>
     <string name="forum">Форум</string>
     <string name="donations">Пожертвования</string>
 
     <string name="forum">Форум</string>
     <string name="donations">Пожертвования</string>
 
+    <!-- Protocol families. -->
+    <string name="protocol_2g">2G</string>
+    <string name="protocol_3g">3G</string>
+    <string name="protocol_4g">4G</string>
+    <string name="protocol_5g">5G</string>
+    <string name="protocol_other">Другой</string>
+
     <!-- Network types. -->
     <string name="unknown">Неизвестно</string>
     <string name="gprs">GPRS – 2.5G/3G</string>
     <!-- Network types. -->
     <string name="unknown">Неизвестно</string>
     <string name="gprs">GPRS – 2.5G/3G</string>
     <string name="secure">Безопасна</string>
     <string name="insecure">Небезопасна</string>
     <string name="secure_network">Вы подключены к безопасной сети.</string>
     <string name="secure">Безопасна</string>
     <string name="insecure">Небезопасна</string>
     <string name="secure_network">Вы подключены к безопасной сети.</string>
-    <string name="insecure_network">Вы подключены к небезопасной сети.</string>
     <string name="unknown_network">Безопасность сети не определена.</string>
     <string name="secure_network_channel">Безопасная сеть</string>
     <string name="insecure_network_channel">Небезопасная сеть</string>
     <string name="unknown_network">Безопасность сети не определена.</string>
     <string name="secure_network_channel">Безопасная сеть</string>
     <string name="insecure_network_channel">Небезопасная сеть</string>
index 2b2a8fc62748728da2e774589db5b40b4aaad987..87a0154c0003ee403b409acf2d6a0c61f5d7a7ff 100644 (file)
 
 <resources>
     <!-- Nicknamed colors. -->
 
 <resources>
     <!-- Nicknamed colors. -->
+    <color name="blue_icon">@color/blue_700</color>
     <color name="blue_text">@color/blue_700</color>
     <color name="icon_disabled">@color/gray_600</color>
     <color name="icon_enabled">@color/blue_700</color>
     <color name="icon_ghosted">@color/gray_425</color>
     <color name="logcat_icons">@color/gray_925</color>
     <color name="blue_text">@color/blue_700</color>
     <color name="icon_disabled">@color/gray_600</color>
     <color name="icon_enabled">@color/blue_700</color>
     <color name="icon_ghosted">@color/gray_425</color>
     <color name="logcat_icons">@color/gray_925</color>
+    <color name="red_icon">@color/red_700</color>
+    <color name="red_notification_icon">@color/red_700</color>
     <color name="red_text">@color/red_700</color>
     <color name="red_text">@color/red_700</color>
+    <color name="yellow_notification_icon">@color/yellow_700</color>
 
     <!-- Raw colors. -->
 
     <!-- Raw colors. -->
+    <color name="amber_300">#FFFFD54F</color>
+    <color name="amber_500">#FFFFC107</color>
+
     <color name="black">#FF000000</color>
 
     <color name="blue_500">#FF2196F3</color>
     <color name="black">#FF000000</color>
 
     <color name="blue_500">#FF2196F3</color>
     <color name="gray_700">#FF616161</color>
     <color name="gray_925">#FF202020</color>
 
     <color name="gray_700">#FF616161</color>
     <color name="gray_925">#FF202020</color>
 
+    <color name="lime_a200">#FFEEFF41</color>
+
     <color name="red_600">#FFE53935</color>
     <color name="red_700">#FFD32F2F</color>
     <color name="red_600">#FFE53935</color>
     <color name="red_700">#FFD32F2F</color>
+    <color name="red_900">#FFB71C1C</color>
 
     <color name="salmon">#FFFC684E</color>
 
     <color name="soft_red">#FFC73625</color>
 
 
     <color name="salmon">#FFFC684E</color>
 
     <color name="soft_red">#FFC73625</color>
 
+    <color name="yellow_50">#FFFFFDE7</color>
+    <color name="yellow_100">#FFFFF9C4</color>
+    <color name="yellow_300">#FFFFF176</color>
+    <color name="yellow_500">#FFFFEB3B</color>
+    <color name="yellow_700">#FFFBC02D</color>
+    <color name="yellow_900">#FFF57F17</color>
+
+    <color name="yellow_a200">#FFFFFF00</color>
+    <color name="yellow_a400">#FFFFEA00</color>
+
     <color name="violet_500">#FF8AB4F8</color>
     <color name="violet_500">#FF8AB4F8</color>
+    <color name="violet_700">#FF5785C5</color>
 
     <color name="white">#FFFFFFFF</color>
 
 
     <color name="white">#FFFFFFFF</color>
 
index 9fa5e3e79482f387c0cb87f5878a59d032c21fc7..17356f3b36266c390924faa5fef4a12ade6b0602 100644 (file)
@@ -34,8 +34,9 @@
     <!-- Text views.  The `\n\n` code inserts a line break and should be preserved in translations.
         Android removes double spaces, but extra spaces can be manually specified with the Unicode `\u0020` formatting.
         The `%1$s` code inserts variables into the displayed text and should be preserved in translation. -->
     <!-- Text views.  The `\n\n` code inserts a line break and should be preserved in translations.
         Android removes double spaces, but extra spaces can be manually specified with the Unicode `\u0020` formatting.
         The `%1$s` code inserts variables into the displayed text and should be preserved in translation. -->
-    <string name="secure_from_stingray">Your device is connected to a standalone 5G network.\n\nIt is secure from stingray IMSI man-in-the-middle attacks.</string>
-    <string name="not_secure_from_stingray">Your device is not connected to a standalone 5G network.\n\nIt is not secure from stingray IMSI man-in-the-middle attacks.</string>
+    <string name="secure_protocols">Your device is connected to a network using secure protocols.\n\nIt is secure from stingray IMSI man-in-the-middle attacks.</string>
+    <string name="insecure_protocols">Your device is connected to a network using insecure protocols.\n\nIt is not secure from stingray IMSI man-in-the-middle attacks.</string>
+    <string name="antiquated_protocols">Your device is connected to a network using antiquated protocols.\n\nIt is exposed to numerous security vulnerabilities.</string>
     <string name="voice_network">Voice network: \u0020 %1$s</string>
     <string name="data_network">Data network: \u0020 %1$s</string>
     <string name="additional_network_info">Additional network info: \u0020 %1$s</string>
     <string name="voice_network">Voice network: \u0020 %1$s</string>
     <string name="data_network">Data network: \u0020 %1$s</string>
     <string name="additional_network_info">Additional network info: \u0020 %1$s</string>
 
     <!-- Dialogs. -->
     <string name="stingrays">Stingrays</string>
 
     <!-- Dialogs. -->
     <string name="stingrays">Stingrays</string>
+    <string name="antiquated_network_title">Antiquated Network</string>
     <string name="close">Close</string>
 
     <!-- Settings. -->
     <string name="close">Close</string>
 
     <!-- Settings. -->
     <string name="realtime_monitoring_summary">Place an icon in the status bar that monitors the cell network.</string>
     <string name="secure_network_notification">Secure network notification</string>
     <string name="insecure_network_notification">Insecure network notification</string>
     <string name="realtime_monitoring_summary">Place an icon in the status bar that monitors the cell network.</string>
     <string name="secure_network_notification">Secure network notification</string>
     <string name="insecure_network_notification">Insecure network notification</string>
+    <string name="antiquated_network_notification">Antiquated network notification</string>
+    <string name="consider_3g_antiquated">Consider 3G antiquated</string>
+    <string name="consider_3g_antiquated_summary">Consider the 3G protocols to be antiquated.  At a future point this will become the default.  Changing this setting will restart Privacy Cell.</string>
     <string name="interface_title">Interface</string>
     <string name="bottom_app_bar">Bottom app bar</string>
     <string name="bottom_app_bar_summary">Move the app bar to the bottom of the screen.  Changing this setting will restart Privacy Cell.</string>
     <string name="interface_title">Interface</string>
     <string name="bottom_app_bar">Bottom app bar</string>
     <string name="bottom_app_bar_summary">Move the app bar to the bottom of the screen.  Changing this setting will restart Privacy Cell.</string>
     <!-- Notifications. -->
     <string name="secure">Secure</string>
     <string name="insecure">Insecure</string>
     <!-- Notifications. -->
     <string name="secure">Secure</string>
     <string name="insecure">Insecure</string>
+    <string name="antiquated">Antiquated</string>
     <string name="secure_network">You are connected to a secure network.</string>
     <string name="secure_network">You are connected to a secure network.</string>
-    <string name="insecure_network">You are not connected to a secure network.</string>
+    <string name="insecure_network">You are connected to an insecure network.</string>
+    <string name="antiquated_network">You are connected to an antiquated network.</string>
     <string name="unknown_network">The security of the network is unknown.</string>
     <string name="secure_network_channel">Secure network</string>
     <string name="insecure_network_channel">Insecure network</string>
     <string name="unknown_network">The security of the network is unknown.</string>
     <string name="secure_network_channel">Secure network</string>
     <string name="insecure_network_channel">Insecure network</string>
+    <string name="antiquated_network_channel">Antiquated network</string>
     <string name="unknown_network_channel">Unknown network</string>
 
     <!-- Periodic Work Names. -->
     <string name="unknown_network_channel">Unknown network</string>
 
     <!-- Periodic Work Names. -->
     <string name="realtime_monitoring_key" translatable="false">realtime_monitoring</string>
     <string name="secure_network_notification_key" translatable="false">secure_network_notification</string>
     <string name="insecure_network_notification_key" translatable="false">insecure_network_notification</string>
     <string name="realtime_monitoring_key" translatable="false">realtime_monitoring</string>
     <string name="secure_network_notification_key" translatable="false">secure_network_notification</string>
     <string name="insecure_network_notification_key" translatable="false">insecure_network_notification</string>
+    <string name="antiquated_network_notification_key" translatable="false">antiquated_network_notification</string>
+    <string name="consider_3g_antiquated_key" translatable="false">consider_3g_antiquated</string>
     <string name="interface_key" translatable="false">interface</string>
     <string name="bottom_app_bar_key" translatable="false">bottom_app_bar</string>
 </resources>
\ No newline at end of file
     <string name="interface_key" translatable="false">interface</string>
     <string name="bottom_app_bar_key" translatable="false">bottom_app_bar</string>
 </resources>
\ No newline at end of file
index d41c3ca096e315ee627f04ee67dfa62483464146..20dc85363ecff6d810e4054a8e2a64ecb5456a5a 100644 (file)
         <Preference
             app:key="@string/insecure_network_notification_key"
             app:title="@string/insecure_network_notification" />
         <Preference
             app:key="@string/insecure_network_notification_key"
             app:title="@string/insecure_network_notification" />
+
+        <Preference
+            app:key="@string/antiquated_network_notification_key"
+            app:title="@string/antiquated_network_notification" />
+
+        <SwitchPreferenceCompat
+            app:key="@string/consider_3g_antiquated_key"
+            app:title="@string/consider_3g_antiquated"
+            app:summary="@string/consider_3g_antiquated_summary"
+            app:defaultValue="false" />
     </PreferenceCategory>
 
     <PreferenceCategory
     </PreferenceCategory>
 
     <PreferenceCategory
index 46c499fe9e4f2eeabcca9c818cff53dc861173f7..9c60970b2b7001c29967ea71e685f3c44609e353 100644 (file)
@@ -25,7 +25,7 @@ buildscript {
     }
 
     dependencies {
     }
 
     dependencies {
-        classpath 'com.android.tools.build:gradle:7.1.1'
+        classpath 'com.android.tools.build:gradle:7.1.2'
         classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.10"
 
         // NOTE: Do not place your application dependencies here; they belong
         classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.10"
 
         // NOTE: Do not place your application dependencies here; they belong
index 1425d4514eb9070cf5299c5a2235ef983f2d4461..d9d14c43edad68c8c1dc26f50dc874dda75c1aa9 100644 (file)
@@ -1,3 +1,5 @@
 Privacy Cell is a small app that displays the cell phone protocol information.
 
 Privacy Cell is a small app that displays the cell phone protocol information.
 
-At the time of this writing, many cell phone networks are switching from 4G (4th Generation) to 5G networks. The 5G network protocols were specifically designed to protect against some of the known insecurities of the older protocols, including those that allowed stingrays (IMSI catchers) to perform man-in-the-middle attacks on cell phone networks. To ease deployment and backwards compatibility, 4G and 5G networks can run together in what is known as 5G NR (New Radio) NSA (Non-Standalone) mode. This uses the 4G network for the control channel and the 5G network for the data communication. However, 5G NR NSA does not provide protection against stingrays. Android has access to all the information it needs to know if it is connected to a 5G NR NSA or a 5G NR SA (Standalone) network, but it doesn’t display that information to the user. The purpose of Privacy Cell is to make that information easy to access.
\ No newline at end of file
+At the time of this writing, many cell phone networks are switching from 4G (4th Generation) to 5G networks. The 5G network protocols were specifically designed to protect against some of the known insecurities of the older protocols, including those that allowed stingrays (IMSI catchers) to perform man-in-the-middle attacks on cell phone networks. To ease deployment and backwards compatibility, 4G and 5G networks can run together in what is known as 5G NR (New Radio) NSA (Non-Standalone) mode. This uses the 4G network for the control channel and the 5G network for the data communication. However, 5G NR NSA does not provide protection against stingrays. Android has access to all the information it needs to know if it is connected to a 5G NR NSA or a 5G NR SA (Standalone) network, but it doesn’t display that information to the user. The purpose of Privacy Cell is to make that information easy to access.
+
+Privacy Cell can also warn you when you are connected to antiquated 2G and 3G networks.
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/01-SecureNetwork-en.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/01-SecureNetwork-en.png
new file mode 100644 (file)
index 0000000..ed30194
Binary files /dev/null and b/fastlane/metadata/android/en-US/images/phoneScreenshots/01-SecureNetwork-en.png differ
diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/01-Standalone5G-en.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/01-Standalone5G-en.png
deleted file mode 100644 (file)
index 4f372f2..0000000
Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/01-Standalone5G-en.png and /dev/null differ
diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/02-Danger-en.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/02-Danger-en.png
deleted file mode 100644 (file)
index b260326..0000000
Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/02-Danger-en.png and /dev/null differ
diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/02-InsecureNetwork-en.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/02-InsecureNetwork-en.png
new file mode 100644 (file)
index 0000000..be0e984
Binary files /dev/null and b/fastlane/metadata/android/en-US/images/phoneScreenshots/02-InsecureNetwork-en.png differ
diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/03-AntiquatedNetwork-en.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/03-AntiquatedNetwork-en.png
new file mode 100644 (file)
index 0000000..baedf03
Binary files /dev/null and b/fastlane/metadata/android/en-US/images/phoneScreenshots/03-AntiquatedNetwork-en.png differ
diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/03-Stingrays-en.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/03-Stingrays-en.png
deleted file mode 100644 (file)
index e1312c3..0000000
Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/03-Stingrays-en.png and /dev/null differ
index 744256deff59a07e46c31f465dbe0602cc9cf851..6a506b64aa8e24012b2599c619fe4bfdb7fc9192 100644 (file)
Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/04-NavigationMenu-en.png and b/fastlane/metadata/android/en-US/images/phoneScreenshots/04-NavigationMenu-en.png differ
index f05ee16606d5cbec242dba08a497790278898953..01c1511963377196e14514171bf64c86f3adcf52 100644 (file)
Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/05-DarkTheme-en.png and b/fastlane/metadata/android/en-US/images/phoneScreenshots/05-DarkTheme-en.png differ