]> gitweb.stoutner.com Git - PrivacyCell.git/commitdiff
Release 1.11. master v1.11
authorSoren Stoutner <soren@stoutner.com>
Tue, 29 Apr 2025 16:03:35 +0000 (09:03 -0700)
committerSoren Stoutner <soren@stoutner.com>
Tue, 29 Apr 2025 16:03:35 +0000 (09:03 -0700)
224 files changed:
.gitignore
COPYING
app/build.gradle
app/src/main/AndroidManifest.xml
app/src/main/assets/de/changelog.html
app/src/main/assets/de/contributors.html
app/src/main/assets/de/licenses.html
app/src/main/assets/de/permissions.html
app/src/main/assets/de/privacy_policy.html
app/src/main/assets/en/changelog.html
app/src/main/assets/en/contributors.html
app/src/main/assets/en/licenses.html
app/src/main/assets/en/permissions.html
app/src/main/assets/en/privacy_policy.html
app/src/main/assets/es/changelog.html
app/src/main/assets/es/contributors.html
app/src/main/assets/es/licenses.html
app/src/main/assets/es/permissions.html
app/src/main/assets/es/privacy_policy.html
app/src/main/assets/fr/changelog.html
app/src/main/assets/fr/contributors.html
app/src/main/assets/fr/licenses.html
app/src/main/assets/fr/permissions.html
app/src/main/assets/fr/privacy_policy.html
app/src/main/assets/images/antiquated.svg
app/src/main/assets/images/antiquated_3g.svg
app/src/main/assets/images/antiquated_notification.svg
app/src/main/assets/images/bug_report_rounded.svg
app/src/main/assets/images/call_to_action_rounded.svg
app/src/main/assets/images/chrome_reader_mode_rounded.svg
app/src/main/assets/images/close_rounded.svg [deleted file]
app/src/main/assets/images/close_rounded_fill0_weight400_grade0_24px.svg [new file with mode: 0644]
app/src/main/assets/images/content_copy_outlined.svg
app/src/main/assets/images/fact_check_outlined.svg
app/src/main/assets/images/format_list_bulleted_rounded.svg
app/src/main/assets/images/forum_rounded.svg
app/src/main/assets/images/groups_filled.svg
app/src/main/assets/images/insecure.svg
app/src/main/assets/images/insecure_notification.svg
app/src/main/assets/images/keyboard_arrow_down_rounded_fill0_weight400_grade0_24px.svg [new file with mode: 0644]
app/src/main/assets/images/keyboard_arrow_up_rounded_fill0_weight400_grade0_24px.svg [new file with mode: 0644]
app/src/main/assets/images/list_alt_rounded.svg [deleted file]
app/src/main/assets/images/list_alt_rounded_24px.svg [new file with mode: 0644]
app/src/main/assets/images/map_rounded.svg
app/src/main/assets/images/notification_important_rounded_filled.svg
app/src/main/assets/images/payments_rounded.svg
app/src/main/assets/images/phone_android_outlined.svg
app/src/main/assets/images/policy_filled.svg
app/src/main/assets/images/save_outlined.svg
app/src/main/assets/images/search_rounded_fill0_weight400_grade0_24px.svg [new file with mode: 0644]
app/src/main/assets/images/secure.svg
app/src/main/assets/images/secure_notification.svg
app/src/main/assets/images/settings_input_antenna_rounded.svg
app/src/main/assets/images/settings_rounded.svg
app/src/main/assets/images/text_snippet_outlined.svg
app/src/main/assets/it/changelog.html
app/src/main/assets/it/contributors.html
app/src/main/assets/it/licenses.html
app/src/main/assets/it/permissions.html
app/src/main/assets/it/privacy_policy.html
app/src/main/assets/ru/changelog.html
app/src/main/assets/ru/contributors.html
app/src/main/assets/ru/licenses.html
app/src/main/assets/ru/permissions.html
app/src/main/assets/ru/privacy_policy.html
app/src/main/java/com/stoutner/privacycell/activities/LogcatActivity.kt
app/src/main/java/com/stoutner/privacycell/activities/PrivacyCellActivity.kt
app/src/main/java/com/stoutner/privacycell/activities/ProtocolsActivity.kt
app/src/main/java/com/stoutner/privacycell/activities/SettingsActivity.kt
app/src/main/java/com/stoutner/privacycell/adapters/ProtocolArrayAdapter.kt
app/src/main/java/com/stoutner/privacycell/dialogs/NotificationPermissionDialog.kt
app/src/main/java/com/stoutner/privacycell/dialogs/PhonePermissionDialog.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/helpers/ProtocolHelper.kt
app/src/main/java/com/stoutner/privacycell/receivers/OnBootCompletedReceiver.kt
app/src/main/java/com/stoutner/privacycell/services/RealtimeMonitoringService.kt
app/src/main/java/com/stoutner/privacycell/workers/RegisterRealtimeListenerWorker.kt
app/src/main/java/com/stoutner/privacycell/workers/RestartServiceWorker.kt
app/src/main/res/drawable/antiquated.xml
app/src/main/res/drawable/antiquated_3g_disabled.xml
app/src/main/res/drawable/antiquated_3g_enabled.xml
app/src/main/res/drawable/antiquated_notification_disabled.xml
app/src/main/res/drawable/antiquated_notification_enabled.xml
app/src/main/res/drawable/antiquated_notification_ghosted.xml
app/src/main/res/drawable/bottom_app_bar_disabled.xml
app/src/main/res/drawable/bottom_app_bar_enabled.xml
app/src/main/res/drawable/bug_tracker.xml
app/src/main/res/drawable/changelog.xml
app/src/main/res/drawable/clear.xml [deleted file]
app/src/main/res/drawable/close.xml [new file with mode: 0644]
app/src/main/res/drawable/close_blue.xml [new file with mode: 0644]
app/src/main/res/drawable/contributors.xml
app/src/main/res/drawable/copy.xml
app/src/main/res/drawable/donations.xml
app/src/main/res/drawable/forum.xml
app/src/main/res/drawable/insecure.xml
app/src/main/res/drawable/insecure_notification_disabled.xml
app/src/main/res/drawable/insecure_notification_enabled.xml
app/src/main/res/drawable/insecure_notification_ghosted.xml
app/src/main/res/drawable/licenses.xml
app/src/main/res/drawable/logcat.xml
app/src/main/res/drawable/news.xml
app/src/main/res/drawable/next.xml [new file with mode: 0644]
app/src/main/res/drawable/notification_permission.xml
app/src/main/res/drawable/permissions.xml
app/src/main/res/drawable/phone_permission.xml
app/src/main/res/drawable/previous.xml [new file with mode: 0644]
app/src/main/res/drawable/privacy_cell_foreground.xml
app/src/main/res/drawable/privacy_cell_monochrome.xml [new file with mode: 0644]
app/src/main/res/drawable/privacy_policy.xml
app/src/main/res/drawable/protocols.xml
app/src/main/res/drawable/roadmap.xml
app/src/main/res/drawable/save.xml
app/src/main/res/drawable/search.xml [new file with mode: 0644]
app/src/main/res/drawable/secure.xml
app/src/main/res/drawable/secure_notification_disabled.xml
app/src/main/res/drawable/secure_notification_enabled.xml
app/src/main/res/drawable/secure_notification_ghosted.xml
app/src/main/res/drawable/settings.xml
app/src/main/res/layout/app_bar_textview.xml
app/src/main/res/layout/logcat_bottom_appbar.xml
app/src/main/res/layout/logcat_top_appbar.xml
app/src/main/res/layout/privacy_cell_bottom_appbar.xml
app/src/main/res/layout/privacy_cell_top_appbar.xml
app/src/main/res/layout/protocol_header_textview.xml
app/src/main/res/layout/protocol_item_textview.xml
app/src/main/res/layout/protocols_bottom_appbar.xml
app/src/main/res/layout/protocols_top_appbar.xml
app/src/main/res/layout/settings_bottom_appbar.xml
app/src/main/res/layout/settings_top_appbar.xml
app/src/main/res/layout/webview_dialog.xml
app/src/main/res/menu/logcat_options_menu.xml
app/src/main/res/menu/navigation_menu_bottom_appbar.xml
app/src/main/res/menu/navigation_menu_top_appbar.xml
app/src/main/res/mipmap-anydpi-v26/privacy_cell.xml [deleted file]
app/src/main/res/mipmap/privacy_cell.xml [new file with mode: 0644]
app/src/main/res/values-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-ru/strings.xml
app/src/main/res/values/strings.xml
app/src/main/res/xml/locales_config.xml [new file with mode: 0644]
build.gradle
fastlane/metadata/android/de-DE/changelogs/11.txt [new file with mode: 0644]
fastlane/metadata/android/de-DE/changelogs/12.txt [new file with mode: 0644]
fastlane/metadata/android/de-DE/changelogs/13.txt [new file with mode: 0644]
fastlane/metadata/android/de-DE/images/phoneScreenshots/01 - Secure Network - de.png [new file with mode: 0644]
fastlane/metadata/android/de-DE/images/phoneScreenshots/01-SecureNetwork-de.png [deleted file]
fastlane/metadata/android/de-DE/images/phoneScreenshots/02 - Insecure Network - de.png [new file with mode: 0644]
fastlane/metadata/android/de-DE/images/phoneScreenshots/02-InsecureNetwork-de.png [deleted file]
fastlane/metadata/android/de-DE/images/phoneScreenshots/03 - Antiquated Network - de.png [new file with mode: 0644]
fastlane/metadata/android/de-DE/images/phoneScreenshots/03-AntiquatedNetwork-de.png [deleted file]
fastlane/metadata/android/de-DE/images/phoneScreenshots/04 - Navigation Menu - de.png [new file with mode: 0644]
fastlane/metadata/android/de-DE/images/phoneScreenshots/04-NavigationMenu-de.png [deleted file]
fastlane/metadata/android/de-DE/images/phoneScreenshots/05 - Dark Theme - de.png [new file with mode: 0644]
fastlane/metadata/android/de-DE/images/phoneScreenshots/05-DarkTheme-de.png [deleted file]
fastlane/metadata/android/en-US/changelogs/11.txt [new file with mode: 0644]
fastlane/metadata/android/en-US/changelogs/12.txt [new file with mode: 0644]
fastlane/metadata/android/en-US/changelogs/13.txt [new file with mode: 0644]
fastlane/metadata/android/en-US/images/phoneScreenshots/01 - Secure Network - en.png [new file with mode: 0644]
fastlane/metadata/android/en-US/images/phoneScreenshots/01-SecureNetwork-en.png [deleted file]
fastlane/metadata/android/en-US/images/phoneScreenshots/02 - Insecure Network - en.png [new file with mode: 0644]
fastlane/metadata/android/en-US/images/phoneScreenshots/02-InsecureNetwork-en.png [deleted file]
fastlane/metadata/android/en-US/images/phoneScreenshots/03 - Antiquated Network - en.png [new file with mode: 0644]
fastlane/metadata/android/en-US/images/phoneScreenshots/03-AntiquatedNetwork-en.png [deleted file]
fastlane/metadata/android/en-US/images/phoneScreenshots/04 - Navigation Menu - en.png [new file with mode: 0644]
fastlane/metadata/android/en-US/images/phoneScreenshots/04-NavigationMenu-en.png [deleted file]
fastlane/metadata/android/en-US/images/phoneScreenshots/05 - Dark Theme - en.png [new file with mode: 0644]
fastlane/metadata/android/en-US/images/phoneScreenshots/05-DarkTheme-en.png [deleted file]
fastlane/metadata/android/es-ES/changelogs/11.txt [new file with mode: 0644]
fastlane/metadata/android/es-ES/changelogs/12.txt [new file with mode: 0644]
fastlane/metadata/android/es-ES/changelogs/13.txt [new file with mode: 0644]
fastlane/metadata/android/es-ES/images/phoneScreenshots/01 - Secure Network - es.png [new file with mode: 0644]
fastlane/metadata/android/es-ES/images/phoneScreenshots/01-SecureNetwork-es.png [deleted file]
fastlane/metadata/android/es-ES/images/phoneScreenshots/02 - Insecure Network - es.png [new file with mode: 0644]
fastlane/metadata/android/es-ES/images/phoneScreenshots/02-InsecureNetwork-es.png [deleted file]
fastlane/metadata/android/es-ES/images/phoneScreenshots/03 - Antiquated Network - es.png [new file with mode: 0644]
fastlane/metadata/android/es-ES/images/phoneScreenshots/03-AntiquatedNetwork-es.png [deleted file]
fastlane/metadata/android/es-ES/images/phoneScreenshots/04 - Navigation Menu - es.png [new file with mode: 0644]
fastlane/metadata/android/es-ES/images/phoneScreenshots/04-NavigationMenu-es.png [deleted file]
fastlane/metadata/android/es-ES/images/phoneScreenshots/05 - Dark Theme - es.png [new file with mode: 0644]
fastlane/metadata/android/es-ES/images/phoneScreenshots/05-DarkTheme-es.png [deleted file]
fastlane/metadata/android/fr-FR/changelogs/11.txt [new file with mode: 0644]
fastlane/metadata/android/fr-FR/changelogs/12.txt [new file with mode: 0644]
fastlane/metadata/android/fr-FR/images/phoneScreenshots/01 - Amazon Secure Network - fr.png [new file with mode: 0644]
fastlane/metadata/android/fr-FR/images/phoneScreenshots/01-SecureNetwork-fr.png [deleted file]
fastlane/metadata/android/fr-FR/images/phoneScreenshots/02 - Amazon Insecure Network - fr.png [new file with mode: 0644]
fastlane/metadata/android/fr-FR/images/phoneScreenshots/02-InsecureNetwork-fr.png [deleted file]
fastlane/metadata/android/fr-FR/images/phoneScreenshots/03 - Amazon Antiquated Network - fr.png [new file with mode: 0644]
fastlane/metadata/android/fr-FR/images/phoneScreenshots/03-AntiquatedNetwork-fr.png [deleted file]
fastlane/metadata/android/fr-FR/images/phoneScreenshots/04 - Amazon Navigation Menu - fr.png [new file with mode: 0644]
fastlane/metadata/android/fr-FR/images/phoneScreenshots/04-NavigationMenu-fr.png [deleted file]
fastlane/metadata/android/fr-FR/images/phoneScreenshots/05 - Amazon Dark Theme - fr.png [new file with mode: 0644]
fastlane/metadata/android/fr-FR/images/phoneScreenshots/05-DarkTheme-fr.png [deleted file]
fastlane/metadata/android/it-IT/changelogs/11.txt [new file with mode: 0644]
fastlane/metadata/android/it-IT/changelogs/12.txt [new file with mode: 0644]
fastlane/metadata/android/it-IT/changelogs/13.txt [new file with mode: 0644]
fastlane/metadata/android/it-IT/images/phoneScreenshots/01 - Secure Network - it.png [new file with mode: 0644]
fastlane/metadata/android/it-IT/images/phoneScreenshots/01-SecureNetwork-it.png [deleted file]
fastlane/metadata/android/it-IT/images/phoneScreenshots/02 - Insecure Network - it.png [new file with mode: 0644]
fastlane/metadata/android/it-IT/images/phoneScreenshots/02-InsecureNetwork-it.png [deleted file]
fastlane/metadata/android/it-IT/images/phoneScreenshots/03 - Antiquated Network - it.png [new file with mode: 0644]
fastlane/metadata/android/it-IT/images/phoneScreenshots/03-AntiquatedNetwork-it.png [deleted file]
fastlane/metadata/android/it-IT/images/phoneScreenshots/04 - Navigation Menu - it.png [new file with mode: 0644]
fastlane/metadata/android/it-IT/images/phoneScreenshots/04-NavigationMenu-it.png [deleted file]
fastlane/metadata/android/it-IT/images/phoneScreenshots/05 - Dark Theme - it.png [new file with mode: 0644]
fastlane/metadata/android/it-IT/images/phoneScreenshots/05-DarkTheme-it.png [deleted file]
fastlane/metadata/android/ru-RU/changelogs/11.txt [new file with mode: 0644]
fastlane/metadata/android/ru-RU/changelogs/12.txt [new file with mode: 0644]
fastlane/metadata/android/ru-RU/changelogs/13.txt [new file with mode: 0644]
fastlane/metadata/android/ru-RU/images/phoneScreenshots/01 - Secure Network - ru.png [new file with mode: 0644]
fastlane/metadata/android/ru-RU/images/phoneScreenshots/01-SecureNetwork-ru.png [deleted file]
fastlane/metadata/android/ru-RU/images/phoneScreenshots/02 - Insecure Network - ru.png [new file with mode: 0644]
fastlane/metadata/android/ru-RU/images/phoneScreenshots/02-InsecureNetwork-ru.png [deleted file]
fastlane/metadata/android/ru-RU/images/phoneScreenshots/03 - Antiquated Network - ru.png [new file with mode: 0644]
fastlane/metadata/android/ru-RU/images/phoneScreenshots/03-AntiquatedNetwork-ru.png [deleted file]
fastlane/metadata/android/ru-RU/images/phoneScreenshots/04 - Navigation Menu - ru.png [new file with mode: 0644]
fastlane/metadata/android/ru-RU/images/phoneScreenshots/04-NavigationMenu-ru.png [deleted file]
fastlane/metadata/android/ru-RU/images/phoneScreenshots/05 - Dark Theme - ru.png [new file with mode: 0644]
fastlane/metadata/android/ru-RU/images/phoneScreenshots/05-DarkTheme-ru.png [deleted file]
gradle.properties
gradle/wrapper/gradle-wrapper.properties

index ed7caad39eeed54e5a48d9cb88ef11eeebf55ad6..b3878e6d6c926a683d02e80528d7ed93481833d3 100644 (file)
@@ -6,6 +6,9 @@
 /captures
 /projectFilesBackup
 
+# Kotlin session files.
+.kotlin
+
 # Built APK files.
 *.apk
 
diff --git a/COPYING b/COPYING
index aa4972b9c554a871dbea8d73512e1ecda907c41d..d18173f9c4c1f34362a274045ea0a645e02b0902 100644 (file)
--- a/COPYING
+++ b/COPYING
@@ -1,4 +1,5 @@
-Privacy Cell copyright © 2021-2022 Soren Stoutner <soren@stoutner.com>.
+SPDX-License-Identifier: GPL-3.0-or-later
+SPDX-FileCopyrightText: 2021-2023, 2025 Soren Stoutner <soren@stoutner.com>
 
 This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
 
index 160ef730ed34285779b16ad50342944abc672102..25f3e64c7119bd901b38a5ef8e36f5c3bb10f862 100644 (file)
@@ -1,20 +1,20 @@
-/*
- * Copyright 2021-2022 Soren Stoutner <soren@stoutner.com>.
+/* SPDX-License-Identifier: GPL-3.0-or-later
+ * SPDX-FileCopyrightText: 2021-2025 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/>.
  *
- * 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.
+ * This program 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.
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+ * details.
  *
- * You should have received a copy of the GNU General Public License
- * along with Privacy Browser.  If not, see <http://www.gnu.org/licenses/>.
+ * You should have received a copy of the GNU General Public License along with
+ * this program.  If not, see <https://www.gnu.org/licenses/>.
  */
 
 plugins {
@@ -23,14 +23,26 @@ plugins {
 }
 
 android {
-    compileSdk 33
+    compileSdk 35
 
     defaultConfig {
         applicationId "com.stoutner.privacycell"
         minSdk 30
-        targetSdk 33
-        versionCode 10
-        versionName "1.8.1"
+        targetSdk 35
+        versionCode 13
+        versionName "1.11"
+        resourceConfigurations += ['en', 'de', 'es', 'fr', 'it', 'ru']
+    }
+
+    // Specify the compile Java version.  This must match the Kotlin JVM target.  For some reason the system was not setting this correctly.  These can probably be removed in the future.
+    compileOptions {
+        sourceCompatibility JavaVersion.VERSION_17
+        targetCompatibility JavaVersion.VERSION_17
+    }
+
+    // Specify the Kotlin JVM target.  This must match the compile Java version.  For some reason the system was not setting this correctly.  These can probably be removed in the future.
+    kotlinOptions {
+        jvmTarget = 17
     }
 
     buildTypes {
@@ -51,17 +63,17 @@ android {
 
 dependencies {
     // Include the following AndroidX libraries.
-    implementation 'androidx.appcompat:appcompat:1.5.1'
-    implementation 'androidx.core:core-ktx:1.9.0'
-    implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1'
-    implementation 'androidx.preference:preference-ktx:1.2.0'
+    implementation 'androidx.appcompat:appcompat:1.7.0'
+    implementation 'androidx.core:core-ktx:1.16.0'
+    implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7'
+    implementation 'androidx.preference:preference-ktx:1.2.1'
     implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
-    implementation 'androidx.webkit:webkit:1.5.0'
-    implementation 'androidx.work:work-runtime-ktx:2.7.1'
+    implementation 'androidx.webkit:webkit:1.13.0'
+    implementation 'androidx.work:work-runtime-ktx:2.10.1'
 
     // Include the Kotlin standard library.  This should be the same version number listed in the project build.gradle.
-    implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.20'
+    implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.1.0'
 
     // Include the Google material library.
-    implementation 'com.google.android.material:material:1.7.0'
+    implementation 'com.google.android.material:material:1.12.0'
 }
index f79605c1cd9c9d41031a31c980dad4b226e34b8e..dbdc5dc662706d9f279990a5e70135610487e798 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 
 <!--
-  Copyright 2021-2022 Soren Stoutner <soren@stoutner.com>.
+  Copyright 2021-2023, 2025 Soren Stoutner <soren@stoutner.com>.
 
   This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
 
     <!-- Required to read cell network information.  <Dangerous permission> -->
     <uses-permission android:name="android.permission.READ_PHONE_STATE" />
 
+    <!-- Required to read sim card phone numbers.  <Dangerous permission> -->
+    <uses-permission android:name="android.permission.READ_PHONE_NUMBERS" />
+
     <!-- Required to display a notification.  <Dangerous permission> -->
     <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
 
-    <!-- Required to run a foreground service (which is the only type of service that can display notifications). -->
-    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
-
     <!-- Required to start the realtime notification icon at boot. -->
     <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
 
+    <!-- Required to run a foreground service (which is the only type of service that can display notifications). -->
+    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
+    <uses-permission android:name="android.permission.FOREGROUND_SERVICE_SPECIAL_USE" />
+
     <!-- Disabled the unneeded permissions that are automatically added by `androidx.work`.  <https://developer.android.com/reference/androidx/work/package-summary> -->
     <uses-permission android:name="android.permission.WAKE_LOCK" tools:node="remove" />
     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" tools:node="remove" />
     <!-- Support Chromebooks that don't have a touch screen. -->
     <uses-feature android:name="android.hardware.touchscreen" android:required="false" />
 
-    <!-- App data is automatically backed up to Google cloud servers unless `android:allowBackup="false"` and `android:fullBackupContent="false"` is set.
-        `tools:ignore="DataExtractionRules` removes the warning that backups can still transfer data device to device. -->
+    <!-- `tools:ignore="UnusedAttribute` removes the warning that `android:localeConfig` only applies to API >= 33. -->
     <application
         android:label="@string/privacy_cell"
         android:icon="@mipmap/privacy_cell"
-        android:allowBackup="false"
-        android:fullBackupContent="false"
         android:supportsRtl="true"
         android:theme="@style/Theme.PrivacyCell"
-        tools:ignore="DataExtractionRules" >
+        android:localeConfig="@xml/locales_config"
+        tools:ignore="UnusedAttribute" >
 
         <!-- Privacy Cell Activity.  The label uses the short name so that it isn't truncated under the icon in the launcher on most phones.
             `android:launchMode="singleTask"` makes the app launch in a new task instead of inside the task of the program that sends it an intent.
@@ -62,7 +64,8 @@
             android:label="@string/cell"
             android:launchMode="singleTask"
             android:screenOrientation="fullUser"
-            android:exported="true" >
+            android:exported="true"
+            tools:ignore="DiscouragedApi" >
 
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
             android:name=".activities.SettingsActivity"
             android:label="@string/settings"
             android:parentActivityName=".activities.PrivacyCellActivity"
-            android:screenOrientation="fullUser" />
+            android:screenOrientation="fullUser"
+            tools:ignore="DiscouragedApi" />
 
         <!-- Protocols Activity.  The `parentActivityName` is used when navigating back. -->
         <activity
             android:name=".activities.ProtocolsActivity"
             android:label="@string/protocols"
             android:parentActivityName=".activities.PrivacyCellActivity"
-            android:screenOrientation="fullUser" />
+            android:screenOrientation="fullUser"
+            tools:ignore="DiscouragedApi" />
 
         <!-- Logcat Activity. The `parentActivityName` is used when navigating back. -->
         <activity
             android:name=".activities.LogcatActivity"
             android:label="@string/logcat"
             android:parentActivityName=".activities.PrivacyCellActivity"
-            android:screenOrientation="fullUser" />
+            android:screenOrientation="fullUser"
+            tools:ignore="DiscouragedApi" />
 
         <!-- Realtime Monitoring Service. -->
-        <service android:name=".services.RealtimeMonitoringService" />
+        <service
+            android:name=".services.RealtimeMonitoringService"
+            android:foregroundServiceType="specialUse" >
+
+            <property
+                android:name="android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE"
+                android:value="Displays current cell protocol security information." />
+        </service>
 
         <!-- On Boot Completed Receiver. -->
         <receiver
index 611653c4c84f0665481076d5d93aad4faa2db0e7..9519db3a7db58b96df90e8a0c650c192665d46eb 100644 (file)
@@ -1,24 +1,25 @@
 <!--
-  Copyright © 2021-2022 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021-2023, 2025 Soren Stoutner <soren@stoutner.com>
 
-  Translation 2021-2022 Bernhard G. Keller.  Copyright assigned to Soren Stoutner <soren@stoutner.com>.
+  Translation 2021-2023, 2025 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/>.
 
-  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
-<html>
+<html lang="de">
     <head>
         <meta charset="UTF-8">
 
 
         <!-- Setting the color scheme instructs the WebView to respect `prefers-color-scheme` @media CSS. -->
         <meta name="color-scheme" content="light dark">
+
+        <title>Changelog</title>
     </head>
 
     <body>
+        <h3>1.11 (Version Code 13)</h3>
+        <p>29. April 2025 - Mindest-API 30, Ziel-API 35</p>
+        <ul>
+            <li>Anzeige der für jede Verbindung genutzen <a href="https://redmine.stoutner.com/issues/1117">SIM-Karte</a>.</li>
+            <li>Suche in <a href="https://redmine.stoutner.com/issues/1192">logcat</a> nun möglich.</li>
+            <li><a href="https://redmine.stoutner.com/issues/1272">Ziel-API auf 35</a> (Android 15) geändert.</li>
+            <li>Erste komplette deutsche Übersetzung von Bernhard G. Keller.</li>
+        </ul>
+
+        <h3><a href="https://www.stoutner.com/privacy-cell-1-10/">1.10</a> (Version Code 12)</h3>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyCell.git;a=commitdiff;h=d9f4f93fa472e77d526b0621882577ff9490da48;ds=sidebyside">30. Oktober 2023</a> - Mindest-API 30, Ziel-API 34</p>
+        <ul>
+            <li>Optionales <a href="https://redmine.stoutner.com/issues/988">einfarbiges Icon</a> hinzugefügt (kann in Android >= 13 genutzt werden).</li>
+            <li>Privacy Cell kann in <a href="https://redmine.stoutner.com/issues/1001">System-Backups</a> integriert werden.</li>
+            <li><a href="https://redmine.stoutner.com/issues/1104">Ziel-API auf 34</a> (Android 14) angehoben.</li>
+            <li>Für <a href="https://redmine.stoutner.com/issues/940">neuere Android-Versionen</a> <a href="https://redmine.stoutner.com/issues/942">benötigte Berechtigungen</a> dokumentiert.</li>
+            <li>Benachrichtigungen der Echtzeit-Überwachung werden alle <a href="https://redmine.stoutner.com/issues/1105">15 Minuten</a> automatisch wiederholt.</li>
+            <li>Erste komplette deutsche Übersetzung von Bernhard G. Keller.</li>
+        </ul>
+
+        <h3><a href="https://www.stoutner.com/privacy-cell-1-9/">1.9</a> (Version Code 11)</h3>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyCell.git;a=commitdiff;h=53f5dd586d2e9eb38280648b9084db15163fe682">5. Dezember 2022</a> - Mindest-API 30, Ziel-API 33</p>
+        <ul>
+            <li><a href="https://redmine.stoutner.com/issues/890">Ziel-API auf 33</a> (Android 13) angehoben.</li>
+            <li><a href="https://redmine.stoutner.com/issues/894">Wischgeste zum zum Ablehnen</a> der Benachrichtigungen des Echtzeit-Monitorings unter  Android 13 deaktiviert.</li>
+            <li><a href="https://redmine.stoutner.com/issues/935">App-Sprachauswahl</a> zur Auswahl der Sprache von Privacy Cell unter Android 13 hinzugefügt.</li>
+            <li><a href="https://redmine.stoutner.com/issues/913">Scroll-Position im Einstellungs-Dialog</a> wird nun bei Neustarts beibehalten.</li>
+            <li>Erste komplette deutsche Übersetzung von Bernhard G. Keller.</li>
+        </ul>
+
         <h3><a href="https://www.stoutner.com/privacy-cell-1-8-1/">1.8.1</a> (Version Code 10)</h3>
         <p><a href="https://gitweb.stoutner.com/?p=PrivacyCell.git;a=commitdiff;h=ab7601a6d91b6035862bb47b1ac259855e3aba3b">8. August 2022</a> - Mindest-API 30, Ziel-API 32</p>
         <ul>
             <li>Erst-Veröffentlichung.</li>
         </ul>
     </body>
-</html>
\ No newline at end of file
+</html>
index ca404476f69b6abbb1007703cfbd745214e0c2d3..92ece287f3d15f7fe0ce844b10c520045738ec83 100644 (file)
@@ -1,24 +1,25 @@
 <!--
-  Copyright © 2021 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021, 2025 Soren Stoutner <soren@stoutner.com>
 
   Translation 2021 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/>.
 
-  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
-<html>
+<html lang="de">
     <head>
         <meta charset="UTF-8">
 
@@ -26,6 +27,8 @@
 
         <!-- Setting the color scheme instructs the WebView to respect `prefers-color-scheme` @media CSS. -->
         <meta name="color-scheme" content="light dark">
+
+        <title>Contributors</title>
     </head>
 
     <body>
index a0143c889a77119d82ceee41d3de608b98f6fba3..7e217916e6f675e65a96251281dd7b1f019fb054 100644 (file)
@@ -1,24 +1,25 @@
 <!--
-  Copyright 2021-2022 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021-2023, 2025 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/>.
 
-  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
-<html>
+<html lang="de">
     <head>
         <meta charset="UTF-8">
 
 
         <!-- Setting the color scheme instructs the WebView to respect `prefers-color-scheme` @media CSS. -->
         <meta name="color-scheme" content="light dark">
+
+        <title>Licenses</title>
     </head>
 
     <body>
         <h3>Copyright</h3>
-        <p>Privacy Cell ist Copyright 2021-2022 von <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.</p>
+        <p>Privacy Cell ist Copyright 2021-2023, 2025 von <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.</p>
 
         <h3>Lizenz</h3>
         <p>Privacy Cell wird unter der <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+-Lizenz</a> veröffentlicht. Den gesamten Text der Lizenz finden Sie unterhalb.
             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/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
+        <p><img class="left" src="../images/secure.svg" alt="Secure"/> <img class="left" src="../images/secure_notification.svg" alt="Secure Notification"/> sind abgeleitet von <code>security</code> und
+            <code>5g</code>, welche Teil des <a href="https://fonts.google.com/icons">Android Material Icon-Sets</a> sind und unter der
             <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache 2.0 Lizenz</a> veröffentlicht werden.
-            Den gesamten Text der Lizenz finden Sie unterhalb. Copyright der Änderungen: © 2016, 2021-2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+            Den gesamten Text der Lizenz finden Sie unterhalb. Copyright der Änderungen: 2016, 2021-2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             Die resultierenden Grafiken werden unter der <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+-Lizenz</a> veröffentlicht.</p>
-        <p><img class="left" src="../images/insecure.svg"> <img class="left" src="../images/insecure_notification.svg"/> sind abgeleitet von <code>security</code> und <code>warning_amber_rounded</code>,
-            welche Teil des <a href="https://material.io/icons/">Android Material Icon-Sets</a> sind und unter der
+        <p><img class="left" src="../images/insecure.svg" alt="Insecure"> <img class="left" src="../images/insecure_notification.svg" alt="Insecure Notification"/> sind abgeleitet von <code>security</code> und
+            <code>warning_amber_rounded</code>, welche Teil des <a href="https://fonts.google.com/icons">Android Material Icon-Sets</a> sind und unter der
             <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache 2.0 Lizenz</a> veröffentlicht werden.
-            Copyright der Änderungen: © 2016, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+            Copyright der Änderungen: 2016, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             Die resultierenden Grafiken werden unter der <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+-Lizenz</a> veröffentlicht.</p>
-        <p><img class="left" src="../images/antiquated.svg"/> <img class="left" src="../images/antiquated_notification.svg"/> sind abgeleitet von <code>security</code> und <code>do_not_disturb</code>,
-            welche Teil des <a href="https://material.io/icons/">Android Material Icon-Sets</a> sind und unter der
+        <p><img class="left" src="../images/antiquated.svg" alt="Antiquated"/> <img class="left" src="../images/antiquated_notification.svg" alt="Antiquated Notification"/> sind abgeleitet von
+            <code>security</code> und <code>do_not_disturb</code>, welche Teil des <a href="https://fonts.google.com/icons">Android Material Icon-Sets</a> sind und unter der
             <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache 2.0 Lizenz</a> veröffentlicht werden.
-            Copyright der Änderungen: © 2016, 2021-2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+            Copyright der Änderungen: 2016, 2021-2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             Die resultierenden Grafiken werden unter der <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+-Lizenz</a> veröffentlicht.</p>
-        <p><img class="left" src="../images/antiquated_3g.svg"/> ist abgeleitet von <code>security</code> und <code>3g_mobiledata_rounded</code>,
-            welche ein Teil des <a href="https://material.io/icons/">Android Material icon set</a> und unter der <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
-            lizensiert sind. Die Änderungen stehen under dem Copyright © 2016, 2022 von <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+        <p><img class="left" src="../images/antiquated_3g.svg" alt="Antiquated 3G"/> ist abgeleitet von <code>security</code> und <code>3g_mobiledata_rounded</code>,
+            welche ein Teil des <a href="https://fonts.google.com/icons">Android Material icon set</a> und unter der <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
+            lizensiert sind. Die Änderungen stehen under dem Copyright 2016, 2022 von <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             Die abgeleitete Grafik steht unter der <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+ Lizenz</a>.</p>
-        <p>Die folgenden Icons stammen aus dem <a href="https://material.io/icons/">Android Material Icon-Sets</a>,
+        <p>Die folgenden Icons stammen aus dem <a href="https://fonts.google.com/icons">Android Material Icon-Sets</a>,
             das unter der <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache 2.0 Lizenz</a> veröffentlicht wird.
             Sie sind bis auf Layout-Informationen wie Farbe und Größe unverändert. Einige von Ihnen wurden Ihrer Verwendung im Code entsprechend umbenannt.
             Die Origina-Icons und -Namen findend Sie unterhalb.</p>
         <p><svg class="icon"><use href="../images/bug_report_rounded.svg#icon"/></svg> bug_report_rounded.</p>
         <p><svg class="icon"><use href="../images/call_to_action_rounded.svg#icon"/></svg> call_to_action_rounded.</p>
-        <p><svg class="icon"><use href="../images/chrome_reader_mode_rounded.svg#icon"/></svg> chrome_reader_mode_rounded.</p>
-        <p><svg class="icon"><use href="../images/close_rounded.svg#icon"/></svg> close_rounded.</p>
+        <p><svg class="icon"><use href="../images/chrome_reader_mode_rounded.svg#icon"/></svg> chrome_<wbr>reader_<wbr>mode_<wbr>rounded.</p>
+        <p><svg class="icon"><use href="../images/close_rounded_fill0_weight400_grade0_24px.svg#icon"/></svg> close_<wbr>rounded_<wbr>fill0_<wbr>weight400_<wbr>grade0_<wbr>24px.</p>
         <p><svg class="icon"><use href="../images/content_copy_outlined.svg#icon"/></svg> content_copy_outlined.</p>
         <p><svg class="icon"><use href="../images/fact_check_outlined.svg#icon"/></svg> fact_checked_outlined.</p>
-        <p><svg class="icon"><use href="../images/format_list_bulleted_rounded.svg#icon"/></svg> format_list_bulleted_rounded.</p>
+        <p><svg class="icon"><use href="../images/format_list_bulleted_rounded.svg#icon"/></svg> format_<wbr>list_<wbr>bulleted_<wbr>rounded.</p>
         <p><svg class="icon"><use href="../images/forum_rounded.svg#icon"/></svg> forum_rounded.</p>
         <p><svg class="icon"><use href="../images/groups_filled.svg#icon"/></svg> groups_filled.</p>
-        <p><svg class="icon"><use href="../images/list_alt_rounded.svg#icon"/></svg> list_alt_rounded.</p>
+        <p><svg class="icon"><use href="../images/keyboard_arrow_down_rounded_fill0_weight400_grade0_24px.svg#icon"/></svg>
+            keyboard_<wbr>arrow_<wbr>down_<wbr>rounded_<wbr>fill0_<wbr>weight400_<wbr>grade0_<wbr>24px.</p>
+        <p><svg class="icon"><use href="../images/keyboard_arrow_up_rounded_fill0_weight400_grade0_24px.svg#icon"/></svg>
+            keyboard_<wbr>arrow_<wbr>up_<wbr>rounded_<wbr>fill0_<wbr>weight400_<wbr>grade0_<wbr>24px.</p>
+        <p><svg class="icon"><use href="../images/list_alt_rounded_24px.svg#icon"/></svg> list_alt_rounded_24px.</p>
         <p><svg class="icon"><use href="../images/map_rounded.svg#icon"/></svg> map_rounded.</p>
-        <p><svg class="icon"><use href="../images/notification_important_rounded_filled.svg#icon"/></svg> notification_important_<wbr>rounded_filled.</p>
+        <p><svg class="icon"><use href="../images/notification_important_rounded_filled.svg#icon"/></svg> notification_<wbr>important_<wbr>rounded_<wbr>filled.</p>
         <p><svg class="icon"><use href="../images/payments_rounded.svg#icon"/></svg> payments_rounded.</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/search_rounded_fill0_weight400_grade0_24px.svg#icon"/></svg> search_<wbr>rounded_<wbr>fill0_<wbr>weight400_<wbr>grade0_<wbr>24px.</p>
+        <p><svg class="icon"><use href="../images/settings_input_antenna_rounded.svg#icon"/></svg> settings_<wbr>input_<wbr>antenna_<wbr>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>
 
             state the exclusion of warranty; and each file should have at least
             the “copyright” line and a pointer to where the full notice is found.</p>
 
-<pre>&lt;one line to give the program’s
-name and a brief idea of what
-it does.&gt;
+<pre>&lt;one line to give the
+program’s name and a brief
+idea of what it does.&gt;
 Copyright (C) &lt;year&gt;
 &lt;name of author&gt;
 
@@ -759,14 +767,15 @@ You should have received a
 copy of the GNU General Public
 License along with this
 program.  If not, see
-&lt;http://www.gnu.org/licenses/&gt;.</pre>
+&lt;http://www.gnu.org/
+licenses/&gt;.</pre>
 
         <p>Also add information on how to contact you by electronic and paper mail.</p>
 
         <p>If the program does terminal interaction, make it output a short
             notice like this when it starts in an interactive mode:</p>
 
-<pre>&lt;program&gt;  Copyright (C) &lt;year&gt;
+<pre>&lt;program&gt; Copyright (C) &lt;year&gt;
 &lt;name of author&gt;
 This program comes with
 ABSOLUTELY NO WARRANTY; for
@@ -995,10 +1004,11 @@ License, Version 2.0 (the
 “License”); you may not use
 this file except in compliance
 with the License. You may
-obtain a copy of the License at
+obtain a copy of the License
+at
 
-http://www.apache.org/licenses/
-LICENSE-2.0
+http://www.apache.org/
+licenses/LICENSE-2.0
 
 Unless required by applicable
 law or agreed to in writing,
@@ -1008,8 +1018,9 @@ License is distributed on an
 WARRANTIES OR CONDITIONS OF
 ANY KIND, either express or
 implied. See the License for
-the specific language governing
-permissions and limitations
-under the License.</pre>
+the specific language
+governing permissions and
+limitations under the
+License.</pre>
     </body>
 </html>
index 8c137594e7eac60a96ae363a512d1a7f3a3867d8..0134a666a0166dea0c652d834fb689950e3dc398 100644 (file)
@@ -1,24 +1,25 @@
 <!--
-  Copyright © 2021 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021-2023, 2025 Soren Stoutner <soren@stoutner.com>
 
-  Translation 2021 Bernhard G. Keller.  Copyright assigned to Soren Stoutner <soren@stoutner.com>.
+  Translation 2021-2023, 2025 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/>.
 
-  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
-<html>
+<html lang="de">
     <head>
         <meta charset="UTF-8">
 
 
         <!-- Setting the color scheme instructs the WebView to respect `prefers-color-scheme` @media CSS. -->
         <meta name="color-scheme" content="light dark">
+
+        <title>Permissions</title>
     </head>
 
     <body>
         <p>Privacy Cell verwendet folgende Berechtigungen:</p>
 
         <h3>Telefon-Status und Identität lesen</h3>
-        <p><a href="https://developer.android.com/reference/android/Manifest.permission.html#READ_PHONE_STATE">android.permission.<wbr>READ_PHONE_STATE</a></p>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission.html#READ_PHONE_STATE">android.permission.<wbr>READ_<wbr>PHONE_<wbr>STATE</a></p>
         <p>Benötigt, um die vom Mobilfunk-Netzwerk genutzten Protokolle zu ermitteln.</p>
 
-        <h3>Vordergrund-Service ausführen</h3>
-        <p><a href="https://developer.android.com/reference/android/Manifest.permission#FOREGROUND_SERVICE">android.permission.<wbr>FOREGROUND_SERVICE</a></p>
+        <h3>Telefonnummern auslesen</h3>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission.html#READ_PHONE_NUMBERS">android.permission.<wbr>READ_<wbr>PHONE_<wbr>NUMBERS</a></p>
+        <p>Wird benötigt, um den Namen des Mobilfunk-Anbieters und die Telefonnummer der SIM-Karte anzeigen zu können.</p>
+
+        <h3>Zeige Benachrichtigungen</h3>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission.html#POST_NOTIFICATIONS">android.permission.<wbr>POST_<wbr>NOTIFICATIONS</a></p>
         <p>Erlaubt Privacy Cell, ein Benachrichtigungs-Icon für die Echtzeit-Überwachung in der Status-Zeile anzuzeigen.</p>
 
+        <h3>Vordergrund-Service ausführen</h3>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission#FOREGROUND_SERVICE">android.permission.<wbr>FOREGROUND_<wbr>SERVICE</a></p>
+        <p>Erlaubt Privacy Cell, das Benachrichtigungs-Icon für die Echtzeit-Überwachung in der Status-Zeile zu aktualisieren, auch wenn die App im Hintergrund läuft.</p>
+
+        <h3>Spezieller Vordergrund-Service</h3>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission#FOREGROUND_SERVICE_SPECIAL_USE">android.permission.<wbr>FOREGROUND_<wbr>SERVICE_<wbr>SPECIAL_<wbr>USE</a></p>
+        <p>Legt den Typ des verwendeten Vordergrund-Services fest. "Special Use" wird für Services verwendet, die nicht in die
+            <a href="https://developer.android.com/about/versions/14/changes/fgs-types-required">Standard-Kategorien</a> für Vordergrund-Services (z.B. Medienwiedergabe, Positionsbestimmung, etc.) fallen.</p>
+
         <h3>Ausführung bei Systemstart</h3>
-        <p><a href="https://developer.android.com/reference/android/Manifest.permission#RECEIVE_BOOT_COMPLETED">android.permission.<wbr>RECEIVE_BOOT_COMPLETED</a></p>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission#RECEIVE_BOOT_COMPLETED">android.permission.<wbr>RECEIVE_<wbr>BOOT_<wbr>COMPLETED</a></p>
         <p>Erlaubt Privacy Cell die Echtzeit-Überwachung zu aktivieren, wenn das Smartphone gebootet wird.</p>
+
+        <h3>Dynamischen Empfänger nicht bereitstellen</h3>
+        <p><a href="https://developer.android.com/about/versions/13/features#runtime-receivers">com.stoutner.privacycell.<wbr>DYNAMIC_<wbr>RECEIVER_<wbr>NOT_<wbr>EXPORTED_<wbr>PERMISSION</a></p>
+        <p>Automatisch hinzugefügt für alle Apps mit API >= 33 (Android >= 13), um zu verhindern, dass sich andere Apps ohne expliziter Erlaubnis mit dynamischen BroadcastReceivern verbinden.</p>
     </body>
 </html>
\ No newline at end of file
index 283d4a372d7358225b7f646a2f8e2894f907fbac..702e337917cfb3776567194a9444407539dd01f0 100644 (file)
@@ -1,24 +1,25 @@
 <!--
-  Copyright © 2021 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021, 2025 Soren Stoutner <soren@stoutner.com>
 
   Translation 2021 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/>.
 
-  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
-<html>
+<html lang="de">
     <head>
         <meta charset="UTF-8">
 
@@ -26,6 +27,8 @@
 
         <!-- Setting the color scheme instructs the WebView to respect `prefers-color-scheme` @media CSS. -->
         <meta name="color-scheme" content="light dark">
+
+        <title>Privacy Policy</title>
     </head>
 
     <body>
index 8886d011daee4fd490877c72c705b0f08b54e8e1..57c3ef0dce08a431e7ea9fb10dd16a60cbe1570c 100644 (file)
@@ -1,22 +1,23 @@
 <!--
-  Copyright © 2021-2022 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021-2023, 2025 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/>.
 
-  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
-<html>
+<html lang="en">
     <head>
         <meta charset="UTF-8">
 
 
         <!-- Setting the color scheme instructs the WebView to respect `prefers-color-scheme` @media CSS. -->
         <meta name="color-scheme" content="light dark">
+
+        <title>Changelog</title>
     </head>
 
     <body>
+        <h3>1.11 (version code 13)</h3>
+        <p>29 April 2025 - minimum API 30, target API 35</p>
+        <ul>
+            <li>Indicate <a href="https://redmine.stoutner.com/issues/1117">which SIM card</a> is used for each connection.</li>
+            <li>Add support for <a href="https://redmine.stoutner.com/issues/1192">searching the logcat</a>.</li>
+            <li>Bump the <a href="https://redmine.stoutner.com/issues/1272">target API to 35</a> (Android 15).</li>
+        </ul>
+
+        <h3><a href="https://www.stoutner.com/privacy-cell-1-10/">1.10</a> (version code 12)</h3>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyCell.git;a=commitdiff;h=d9f4f93fa472e77d526b0621882577ff9490da48;ds=sidebyside">30 October 2023</a> - minimum API 30, target API 34</p>
+        <ul>
+            <li>Create an optional <a href="https://redmine.stoutner.com/issues/988">monochrome icon</a> (can be used in Android >= 13).</li>
+            <li>Allow Privacy Cell to be included in <a href="https://redmine.stoutner.com/issues/1001">system backups</a>.</li>
+            <li>Bump the <a href="https://redmine.stoutner.com/issues/1104">target API to 34</a> (Android 14).</li>
+            <li>Document <a href="https://redmine.stoutner.com/issues/940">permissions needed</a> for <a href="https://redmine.stoutner.com/issues/942">newer versions of Android</a>.</li>
+            <li>Repopulate the realtime monitoring notification every <a href="https://redmine.stoutner.com/issues/1105">15 minutes</a>.</li>
+        </ul>
+
+        <h3><a href="https://www.stoutner.com/privacy-cell-1-9/">1.9</a> (version code 11)</h3>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyCell.git;a=commitdiff;h=53f5dd586d2e9eb38280648b9084db15163fe682">5 December 2022</a> - minimum API 30, target API 33</p>
+        <ul>
+            <li>Bump the <a href="https://redmine.stoutner.com/issues/890">target API to 33</a> (Android 13).</li>
+            <li>Disable <a href="https://redmine.stoutner.com/issues/894">swiping to dismiss</a> the realtime monitoring notification on Android 13.</li>
+            <li>Enable <a href="https://redmine.stoutner.com/issues/935">per-app language support</a> on Android 13.</li>
+            <li>Preserve the <a href="https://redmine.stoutner.com/issues/913">Settings scroll location</a> on restart.</li>
+        </ul>
+
         <h3><a href="https://www.stoutner.com/privacy-cell-1-8-1/">1.8.1</a> (version code 10)</h3>
         <p><a href="https://gitweb.stoutner.com/?p=PrivacyCell.git;a=commitdiff;h=ab7601a6d91b6035862bb47b1ac259855e3aba3b">8 August 2022</a> - minimum API 30, target API 32</p>
         <ul>
             <li>Initial release.</li>
         </ul>
     </body>
-</html>
\ No newline at end of file
+</html>
index d3f91b1edf543da3b20b98e95beae8dea68b0f1f..f1fcba06a4d5f3698f467b5d1026f70260f8ad93 100644 (file)
@@ -1,22 +1,23 @@
 <!--
-  Copyright © 2021 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021, 2025 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/>.
 
-  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
-<html>
+<html lang="en">
     <head>
         <meta charset="UTF-8">
 
@@ -24,6 +25,8 @@
 
         <!-- Setting the color scheme instructs the WebView to respect `prefers-color-scheme` @media CSS. -->
         <meta name="color-scheme" content="light dark">
+
+        <title>Contributors</title>
     </head>
 
     <body>
index 70854bee7929614decfc9975549f4acabe579f45..a739524e2c4de17829c5605ac00a6b7b154c79da 100644 (file)
@@ -1,22 +1,23 @@
 <!--
-  Copyright 2021-2022 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021-2023, 2025 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/>.
 
-  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
-<html>
+<html lang="en">
     <head>
         <meta charset="UTF-8">
 
 
         <!-- Setting the color scheme instructs the WebView to respect `prefers-color-scheme` @media CSS. -->
         <meta name="color-scheme" content="light dark">
+
+        <title>Licenses</title>
     </head>
 
     <body>
         <h3>Copyright</h3>
-        <p>Privacy Cell copyright 2021-2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.</p>
+        <p>Privacy Cell copyright 2021-2023, 2025 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.</p>
 
         <h3>License</h3>
         <p>Privacy Cell is released under the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+ license</a>. The full text of the license is below.
             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/secure.svg"/> <img class="left" src="../images/secure_notification.svg"/> are derived from <code>security</code> and <code>5g</code>,
-            which are part of the <a href="https://material.io/icons/">Android Material icon set</a> and are released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
-            The full text of the license is below. Modifications copyright © 2016, 2021-2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
-            The resulting images are released under the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+ license</a>.</p>
-        <p><img class="left" src="../images/insecure.svg"> <img class="left" src="../images/insecure_notification.svg"/> are derived from <code>security</code> and <code>warning_amber_rounded</code>,
-            which are part of the <a href="https://material.io/icons/">Android Material icon set</a> and are released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
-            Modifications copyright © 2016, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+        <p><img class="left" src="../images/secure.svg" alt="Secure"/> <img class="left" src="../images/secure_notification.svg" alt="Secure Notification"/> are derived from <code>security</code> and
+            <code>5g</code>, which are part of the <a href="https://fonts.google.com/icons">Android Material icon set</a> and are released under the
+            <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>. The full text of the license is below. Modifications copyright 2016, 2021-2022
+            <a href="mailto:soren@stoutner.com">Soren Stoutner</a>. The resulting images are released under the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+ license</a>.</p>
+        <p><img class="left" src="../images/insecure.svg" alt="Insecure"> <img class="left" src="../images/insecure_notification.svg" alt="Insecure Notification"/> are derived from <code>security</code> and
+            <code>warning_amber_rounded</code>, which are part of the <a href="https://fonts.google.com/icons">Android Material icon set</a> and are released under the
+            <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>. Modifications copyright 2016, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             The resulting images are released under the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+ license</a>.</p>
-        <p><img class="left" src="../images/antiquated.svg"/> <img class="left" src="../images/antiquated_notification.svg"/> are derived from <code>security</code> and <code>do_not_disturb</code>,
-            which are part of the <a href="https://material.io/icons/">Android Material icon set</a> and are released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
-            Modifications copyright © 2016, 2021-2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+        <p><img class="left" src="../images/antiquated.svg" alt="Antiquated"/> <img class="left" src="../images/antiquated_notification.svg" alt="Antiquated Notification"/> are derived from
+            <code>security</code> and <code>do_not_disturb</code>, which are part of the <a href="https://fonts.google.com/icons">Android Material icon set</a> and are released under the
+            <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>. Modifications copyright 2016, 2021-2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             The resulting images are released under the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+ license</a>.</p>
-        <p><img class="left" src="../images/antiquated_3g.svg"/> is derived from <code>security</code> and <code>3g_mobiledata_rounded</code>,
-            which are part of the <a href="https://material.io/icons/">Android Material icon set</a> and are released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
-            Modifications copyright © 2016, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+        <p><img class="left" src="../images/antiquated_3g.svg" alt="Antiquated 3G"/> is derived from <code>security</code> and <code>3g_mobiledata_rounded</code>,
+            which are part of the <a href="https://fonts.google.com/icons">Android Material icon set</a> and are released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
+            Modifications copyright 2016, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             The resulting image is released under the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+ license</a>.</p>
-        <p>The following icons come from the <a href="https://material.io/icons/">Android Material icon set</a>,
+        <p>The following icons come from the <a href="https://fonts.google.com/icons">Android Material icon set</a>,
             which is released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
             They are unchanged except for layout information like color and size. Some of them have been renamed to match their use in the code. The original icons and names are shown below.</p>
         <p><svg class="icon"><use href="../images/bug_report_rounded.svg#icon"/></svg> bug_report_rounded.</p>
         <p><svg class="icon"><use href="../images/call_to_action_rounded.svg#icon"/></svg> call_to_action_rounded.</p>
-        <p><svg class="icon"><use href="../images/chrome_reader_mode_rounded.svg#icon"/></svg> chrome_reader_mode_rounded.</p>
-        <p><svg class="icon"><use href="../images/close_rounded.svg#icon"/></svg> close_rounded.</p>
+        <p><svg class="icon"><use href="../images/chrome_reader_mode_rounded.svg#icon"/></svg> chrome_<wbr>reader_<wbr>mode_<wbr>rounded.</p>
+        <p><svg class="icon"><use href="../images/close_rounded_fill0_weight400_grade0_24px.svg#icon"/></svg> close_<wbr>rounded_<wbr>fill0_<wbr>weight400_<wbr>grade0_<wbr>24px.</p>
         <p><svg class="icon"><use href="../images/content_copy_outlined.svg#icon"/></svg> content_copy_outlined.</p>
         <p><svg class="icon"><use href="../images/fact_check_outlined.svg#icon"/></svg> fact_checked_outlined.</p>
-        <p><svg class="icon"><use href="../images/format_list_bulleted_rounded.svg#icon"/></svg> format_list_bulleted_rounded.</p>
+        <p><svg class="icon"><use href="../images/format_list_bulleted_rounded.svg#icon"/></svg> format_<wbr>list_<wbr>bulleted_<wbr>rounded.</p>
         <p><svg class="icon"><use href="../images/forum_rounded.svg#icon"/></svg> forum_rounded.</p>
         <p><svg class="icon"><use href="../images/groups_filled.svg#icon"/></svg> groups_filled.</p>
-        <p><svg class="icon"><use href="../images/list_alt_rounded.svg#icon"/></svg> list_alt_rounded.</p>
+        <p><svg class="icon"><use href="../images/keyboard_arrow_down_rounded_fill0_weight400_grade0_24px.svg#icon"/></svg>
+            keyboard_<wbr>arrow_<wbr>down_<wbr>rounded_<wbr>fill0_<wbr>weight400_<wbr>grade0_<wbr>24px.</p>
+        <p><svg class="icon"><use href="../images/keyboard_arrow_up_rounded_fill0_weight400_grade0_24px.svg#icon"/></svg>
+            keyboard_<wbr>arrow_<wbr>up_<wbr>rounded_<wbr>fill0_<wbr>weight400_<wbr>grade0_<wbr>24px.</p>
+        <p><svg class="icon"><use href="../images/list_alt_rounded_24px.svg#icon"/></svg> list_alt_rounded_24px.</p>
         <p><svg class="icon"><use href="../images/map_rounded.svg#icon"/></svg> map_rounded.</p>
-        <p><svg class="icon"><use href="../images/notification_important_rounded_filled.svg#icon"/></svg> notification_important_<wbr>rounded_filled.</p>
+        <p><svg class="icon"><use href="../images/notification_important_rounded_filled.svg#icon"/></svg> notification_<wbr>important_<wbr>rounded_<wbr>filled.</p>
         <p><svg class="icon"><use href="../images/payments_rounded.svg#icon"/></svg> payments_rounded.</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/search_rounded_fill0_weight400_grade0_24px.svg#icon"/></svg> search_<wbr>rounded_<wbr>fill0_<wbr>weight400_<wbr>grade0_<wbr>24px.</p>
+        <p><svg class="icon"><use href="../images/settings_input_antenna_rounded.svg#icon"/></svg> settings_<wbr>input_<wbr>antenna_<wbr>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>
 
             state the exclusion of warranty; and each file should have at least
             the “copyright” line and a pointer to where the full notice is found.</p>
 
-<pre>&lt;one line to give the program’s
-name and a brief idea of what
-it does.&gt;
+<pre>&lt;one line to give the
+program’s name and a brief
+idea of what it does.&gt;
 Copyright (C) &lt;year&gt;
 &lt;name of author&gt;
 
@@ -753,14 +761,15 @@ You should have received a
 copy of the GNU General Public
 License along with this
 program.  If not, see
-&lt;http://www.gnu.org/licenses/&gt;.</pre>
+&lt;http://www.gnu.org/
+licenses/&gt;.</pre>
 
         <p>Also add information on how to contact you by electronic and paper mail.</p>
 
         <p>If the program does terminal interaction, make it output a short
             notice like this when it starts in an interactive mode:</p>
 
-<pre>&lt;program&gt;  Copyright (C) &lt;year&gt;
+<pre>&lt;program&gt; Copyright (C) &lt;year&gt;
 &lt;name of author&gt;
 This program comes with
 ABSOLUTELY NO WARRANTY; for
@@ -989,10 +998,11 @@ License, Version 2.0 (the
 “License”); you may not use
 this file except in compliance
 with the License. You may
-obtain a copy of the License at
+obtain a copy of the License
+at
 
-http://www.apache.org/licenses/
-LICENSE-2.0
+http://www.apache.org/
+licenses/LICENSE-2.0
 
 Unless required by applicable
 law or agreed to in writing,
@@ -1002,8 +1012,9 @@ License is distributed on an
 WARRANTIES OR CONDITIONS OF
 ANY KIND, either express or
 implied. See the License for
-the specific language governing
-permissions and limitations
-under the License.</pre>
+the specific language
+governing permissions and
+limitations under the
+License.</pre>
     </body>
 </html>
index be792c7cc15057f5a99e3e2937923b5f9f815e6b..5a07babad01c90c873d32fba155c8868977ef8af 100644 (file)
@@ -1,22 +1,23 @@
 <!--
-  Copyright © 2021 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021-2023, 2025 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/>.
 
-  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
-<html>
+<html lang="en">
     <head>
         <meta charset="UTF-8">
 
 
         <!-- Setting the color scheme instructs the WebView to respect `prefers-color-scheme` @media CSS. -->
         <meta name="color-scheme" content="light dark">
+
+        <title>Permissions</title>
     </head>
 
     <body>
         <p>Privacy Cell uses the following permissions.</p>
 
         <h3>Read phone status and identity</h3>
-        <p><a href="https://developer.android.com/reference/android/Manifest.permission.html#READ_PHONE_STATE">android.permission.<wbr>READ_PHONE_STATE</a></p>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission.html#READ_PHONE_STATE">android.permission.<wbr>READ_<wbr>PHONE_<wbr>STATE</a></p>
         <p>Required to determine which protocols are being used by the cell phone network.</p>
 
-        <h3>Run foreground service</h3>
-        <p><a href="https://developer.android.com/reference/android/Manifest.permission#FOREGROUND_SERVICE">android.permission.<wbr>FOREGROUND_SERVICE</a></p>
+        <h3>Read phone numbers</h3>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission.html#READ_PHONE_NUMBERS">android.permission.<wbr>READ_<wbr>PHONE_<wbr>NUMBERS</a></p>
+        <p>Required to display the cell network name and phone number of the SIM card.</p>
+
+        <h3>Show notifications</h3>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission.html#POST_NOTIFICATIONS">android.permission.<wbr>POST_<wbr>NOTIFICATIONS</a></p>
         <p>Allows Privacy Cell to display a realtime monitoring notification icon in the status bar.</p>
 
+        <h3>Run foreground service</h3>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission#FOREGROUND_SERVICE">android.permission.<wbr>FOREGROUND_<wbr>SERVICE</a></p>
+        <p>Allows Privacy Cell to update the realtime monitoring notification icon when the app is not in the foreground.</p>
+
+        <h3>Foreground service special use</h3>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission#FOREGROUND_SERVICE_SPECIAL_USE">android.permission.<wbr>FOREGROUND_<wbr>SERVICE_<wbr>SPECIAL_<wbr>USE</a></p>
+        <p>Specifies the type of foreground service.
+            Special Use is for services that don't fit into any of the <a href="https://developer.android.com/about/versions/14/changes/fgs-types-required">standard categories</a>.</p>
+
         <h3>Run at startup</h3>
-        <p><a href="https://developer.android.com/reference/android/Manifest.permission#RECEIVE_BOOT_COMPLETED">android.permission.<wbr>RECEIVE_BOOT_COMPLETED</a></p>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission#RECEIVE_BOOT_COMPLETED">android.permission.<wbr>RECEIVE_<wbr>BOOT_<wbr>COMPLETED</a></p>
         <p>Allows Privacy Cell to enable the realtime monitoring service when the phone boots.</p>
+
+        <h3>Dynamic receiver not exported</h3>
+        <p><a href="https://developer.android.com/about/versions/13/features#runtime-receivers">com.stoutner.privacycell.<wbr>DYNAMIC_<wbr>RECEIVER_<wbr>NOT_<wbr>EXPORTED_<wbr>PERMISSION</a></p>
+        <p>Automatically added to all apps targeting API >= 33 (Android >= 13) to prevent other apps from connecting to dynamic receivers without explicit permission.</p>
     </body>
-</html>
\ No newline at end of file
+</html>
index c7020e9a28dfc6fbd3ca77a47c15abb147469409..a1f960be330e73b7a9f85b3b45fa89a8a75c36ee 100644 (file)
@@ -1,22 +1,23 @@
 <!--
-  Copyright © 2021 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021, 2025 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/>.
 
-  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
-<html>
+<html lang="en">
     <head>
         <meta charset="UTF-8">
 
@@ -24,6 +25,8 @@
 
         <!-- Setting the color scheme instructs the WebView to respect `prefers-color-scheme` @media CSS. -->
         <meta name="color-scheme" content="light dark">
+
+        <title>Privacy Policy</title>
     </head>
 
     <body>
index 9e3b1c45c3cfa6f32417390725edbf5bf1e3b190..71df8c598f65ecc56b374df09448a879baf5d673 100644 (file)
@@ -1,24 +1,25 @@
 <!--
-  Copyright © 2021-2022 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021-2023, 2025 Soren Stoutner <soren@stoutner.com>
 
-  Translation 2021-2022 Jose A. León.  Copyright assigned to Soren Stoutner <soren@stoutner.com>.
+  Translation 2021-2023, 2025 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/>.
 
-  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
-<html>
+<html lang="es">
     <head>
         <meta charset="UTF-8">
 
 
         <!-- Setting the color scheme instructs the WebView to respect `prefers-color-scheme` @media CSS. -->
         <meta name="color-scheme" content="light dark">
+
+        <title>Changelog</title>
     </head>
 
     <body>
+        <h3>1.11 (versión del código 13)</h3>
+        <p>29 de abril de 2025 - API mínimo 30, API objetivo 35</p>
+        <ul>
+            <li>Indicar <a href="https://redmine.stoutner.com/issues/1117">qué tarjeta SIM</a> es usada por cada conexión.</li>
+            <li>Añadir soporte para <a href="https://redmine.stoutner.com/issues/1192">buscar el logcat</a>.</li>
+            <li>Aumentar la <a href="https://redmine.stoutner.com/issues/1272">API de destino a 35</a> (Android 15).</li>
+            <li>Traducción actualizada al español aportada por Jose A. León.</li>
+        </ul>
+
+        <h3><a href="https://www.stoutner.com/privacy-cell-1-10/">1.10</a> (versión del código 12)</h3>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyCell.git;a=commitdiff;h=d9f4f93fa472e77d526b0621882577ff9490da48;ds=sidebyside">30 de octubre de 2023</a> - API mínimo 30, API objetivo 34</p>
+        <ul>
+            <li>Crear un icono <a href="https://redmine.stoutner.com/issues/988">monocromo opcional</a> (puede usarse en Android >= 13).</li>
+            <li>Permitir que Privacy Cell se incluya en <a href="https://redmine.stoutner.com/issues/1001">las copias de seguridad del sistema</a>.</li>
+            <li>Subir la <a href="https://redmine.stoutner.com/issues/1104">API objetivo a 34</a> (Android 14).</li>
+            <li>Documentar <a href="https://redmine.stoutner.com/issues/940">los permisos necesarios</a> para <a href="https://redmine.stoutner.com/issues/942">las nuevas versiones de Android</a>.</li>
+            <li>Repoblar la notificación de seguimiento en tiempo real cada <a href="https://redmine.stoutner.com/issues/1105">15 minutos</a>.</li>
+            <li>Traducción actualizada al español aportada por Jose A. León.</li>
+        </ul>
+
+        <h3><a href="https://www.stoutner.com/privacy-cell-1-9/">1.9</a> (versión del código 11)</h3>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyCell.git;a=commitdiff;h=53f5dd586d2e9eb38280648b9084db15163fe682">5 de diciembre de 2022</a> - API mínimo 30, API objetivo 33</p>
+        <ul>
+            <li>Subir la <a href="https://redmine.stoutner.com/issues/890">API de destino a 33</a> (Android 13).</li>
+            <li>Desactivar <a href="https://redmine.stoutner.com/issues/894">el deslizamiento para descartar</a> la notificación de seguimiento en tiempo real en Android 13.</li>
+            <li>Habilitar <a href="https://redmine.stoutner.com/issues/935">el soporte de idiomas por aplicación</a> en Android 13.</li>
+            <li>Preservar la <a href="https://redmine.stoutner.com/issues/913">localización de desplazamiento de los Ajustes</a> al reiniciar.</li>
+            <li>Traducción actualizada al español aportada por Jose A. León.</li>
+        </ul>
+
         <h3><a href="https://www.stoutner.com/privacy-cell-1-8-1/">1.8.1</a> (versión del código 10)</h3>
         <p><a href="https://gitweb.stoutner.com/?p=PrivacyCell.git;a=commitdiff;h=ab7601a6d91b6035862bb47b1ac259855e3aba3b">8 de agosto de 2022</a> - API mínimo 30, API objetivo 32</p>
         <ul>
             <li>Versión inicial.</li>
         </ul>
     </body>
-</html>
\ No newline at end of file
+</html>
index a493f6ccad9fd694484cbd2ccd5d8f05117d6703..a8d3420b81cf88fa09ca44133853c8181868624d 100644 (file)
@@ -1,24 +1,25 @@
 <!--
-  Copyright © 2021 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021, 2025 Soren Stoutner <soren@stoutner.com>
 
   Translation 2021 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/>.
 
-  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
-<html>
+<html lang="es">
     <head>
         <meta charset="UTF-8">
 
@@ -26,6 +27,8 @@
 
         <!-- Setting the color scheme instructs the WebView to respect `prefers-color-scheme` @media CSS. -->
         <meta name="color-scheme" content="light dark">
+
+        <title>Contributors</title>
     </head>
 
     <body>
index fe4125fa365c8f4d86e55db36017d8d22786d4c6..0f2c649d08cc5a3d7a4cc199dc2a3dcda7c893b5 100644 (file)
@@ -1,24 +1,25 @@
 <!--
-  Copyright 2021-2022 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021-2023, 2025 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/>.
 
-  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
-<html>
+<html lang="es">
     <head>
         <meta charset="UTF-8">
 
 
         <!-- Setting the color scheme instructs the WebView to respect `prefers-color-scheme` @media CSS. -->
         <meta name="color-scheme" content="light dark">
+
+        <title>Licenses</title>
     </head>
 
     <body>
         <h3>Copyright</h3>
-        <p>Copyright de Privacy Cell 2021-2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.</p>
+        <p>Copyright de Privacy Cell 2021-2023, 2025 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.</p>
 
         <h3>Licencia</h3>
         <p>Privacy Cell se libera bajo la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licencia GPLv3+</a>. El texto completo de la licencia se muestra abajo.
             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/secure.svg"/> <img class="left" src="../images/secure_notification.svg"/> derivan de <code>security</code> y <code>5g</code>,
-            que son parte del <a href="https://material.io/icons/">conjunto de iconos de Android Material</a>
+        <p><img class="left" src="../images/secure.svg" alt="Secure"/> <img class="left" src="../images/secure_notification.svg" alt="Secure Notification"/> derivan de <code>security</code> y <code>5g</code>,
+            que son parte del <a href="https://fonts.google.com/icons">conjunto de iconos de Android Material</a>
             y son liberados bajo la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licencia Apache 2.0</a>.
-            El texto completo de la licencia se muestra abajo. Copyright de modificaciones © 2016, 2021-2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+            El texto completo de la licencia se muestra abajo. Copyright de modificaciones 2016, 2021-2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             Las imágenes resultante se liberan bajo la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licencia GPLv3+</a>.</p>
-        <p><img class="left" src="../images/insecure.svg"> <img class="left" src="../images/insecure_notification.svg"/> derivan de <code>security</code> y <code>warning_amber_rounded</code>,
-            que son parte del <a href="https://material.io/icons/">conjunto de iconos de Android Material</a>
+        <p><img class="left" src="../images/insecure.svg" alt="Insecure"> <img class="left" src="../images/insecure_notification.svg" alt="Insecure Notification"/> derivan de <code>security</code> y
+            <code>warning_amber_rounded</code>, que son parte del <a href="https://fonts.google.com/icons">conjunto de iconos de Android Material</a>
             y son liberados bajo la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licencia Apache 2.0</a>.
-            Copyright de modificaciones © 2016, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+            Copyright de modificaciones 2016, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             Las imágenes resultantes se liberan bajo la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licencia GPLv3+</a>.</p>
-        <p><img class="left" src="../images/antiquated.svg"/> <img class="left" src="../images/antiquated_notification.svg"/> derivan de <code>security</code> y <code>do_not_disturb</code>,
-            que son parte del <a href="https://material.io/icons/">conjunto de iconos de Android Material</a>
+        <p><img class="left" src="../images/antiquated.svg" alt="Antiquated"/> <img class="left" src="../images/antiquated_notification.svg" alt="Antiquated Notification"/> derivan de <code>security</code> y
+            <code>do_not_disturb</code>, que son parte del <a href="https://fonts.google.com/icons">conjunto de iconos de Android Material</a>
             y son liberados bajo la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licencia Apache 2.0</a>.
-            Copyright de modificaciones © 2016, 2021-2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+            Copyright de modificaciones 2016, 2021-2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             Las imágenes resultantes se liberan bajo la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licencia GPLv3+</a>.</p>
-        <p><img class="left" src="../images/antiquated_3g.svg"/> se deriva de <code>security</code> y <code>3g_mobiledata_rounded</code>,
-            que son parte del <a href="https://material.io/icons/">conjunto de iconos de Android Material</a>
+        <p><img class="left" src="../images/antiquated_3g.svg" alt="Antiquated 3G"/> se deriva de <code>security</code> y <code>3g_mobiledata_rounded</code>,
+            que son parte del <a href="https://fonts.google.com/icons">conjunto de iconos de Android Material</a>
             y son liberados bajo la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licencia Apache 2.0</a>.
-            Copyright de modificaciones © 2016, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+            Copyright de modificaciones 2016, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             La imagen resultante se libera bajo la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licencia GPLv3+</a>.</p>
-        <p>Los siguientes iconos vienen del <a href="https://material.io/icons/">conjunto de iconos de Android Material</a>,
+        <p>Los siguientes iconos vienen del <a href="https://fonts.google.com/icons">conjunto de iconos de Android Material</a>,
             que se liberan bajo la <a href ="https://www.apache.org/licenses/LICENSE-2.0">licencia Apache 2.0</a>.
             No se han modificado, salvo la información sobre el diseño, como el color y el tamaño. Algunos de ellos han sido renombrados para que coincidan con su uso en el código.
             Los iconos y nombres originales se muestran a continuación.</p>
         <p><svg class="icon"><use href="../images/bug_report_rounded.svg#icon"/></svg> bug_report_rounded.</p>
         <p><svg class="icon"><use href="../images/call_to_action_rounded.svg#icon"/></svg> call_to_action_rounded.</p>
-        <p><svg class="icon"><use href="../images/chrome_reader_mode_rounded.svg#icon"/></svg> chrome_reader_mode_rounded.</p>
-        <p><svg class="icon"><use href="../images/close_rounded.svg#icon"/></svg> close_rounded.</p>
+        <p><svg class="icon"><use href="../images/chrome_reader_mode_rounded.svg#icon"/></svg> chrome_<wbr>reader_<wbr>mode_<wbr>rounded.</p>
+        <p><svg class="icon"><use href="../images/close_rounded_fill0_weight400_grade0_24px.svg#icon"/></svg> close_<wbr>rounded_<wbr>fill0_<wbr>weight400_<wbr>grade0_<wbr>24px.</p>
         <p><svg class="icon"><use href="../images/content_copy_outlined.svg#icon"/></svg> content_copy_outlined.</p>
         <p><svg class="icon"><use href="../images/fact_check_outlined.svg#icon"/></svg> fact_checked_outlined.</p>
-        <p><svg class="icon"><use href="../images/format_list_bulleted_rounded.svg#icon"/></svg> format_list_bulleted_rounded.</p>
+        <p><svg class="icon"><use href="../images/format_list_bulleted_rounded.svg#icon"/></svg> format_<wbr>list_<wbr>bulleted_<wbr>rounded.</p>
         <p><svg class="icon"><use href="../images/forum_rounded.svg#icon"/></svg> forum_rounded.</p>
         <p><svg class="icon"><use href="../images/groups_filled.svg#icon"/></svg> groups_filled.</p>
-        <p><svg class="icon"><use href="../images/list_alt_rounded.svg#icon"/></svg> list_alt_rounded.</p>
+        <p><svg class="icon"><use href="../images/keyboard_arrow_down_rounded_fill0_weight400_grade0_24px.svg#icon"/></svg>
+            keyboard_<wbr>arrow_<wbr>down_<wbr>rounded_<wbr>fill0_<wbr>weight400_<wbr>grade0_<wbr>24px.</p>
+        <p><svg class="icon"><use href="../images/keyboard_arrow_up_rounded_fill0_weight400_grade0_24px.svg#icon"/></svg>
+            keyboard_<wbr>arrow_<wbr>up_<wbr>rounded_<wbr>fill0_<wbr>weight400_<wbr>grade0_<wbr>24px.</p>
+        <p><svg class="icon"><use href="../images/list_alt_rounded_24px.svg#icon"/></svg> list_alt_rounded_24px.</p>
         <p><svg class="icon"><use href="../images/map_rounded.svg#icon"/></svg> map_rounded.</p>
-        <p><svg class="icon"><use href="../images/notification_important_rounded_filled.svg#icon"/></svg> notification_important_<wbr>rounded_filled.</p>
+        <p><svg class="icon"><use href="../images/notification_important_rounded_filled.svg#icon"/></svg> notification_<wbr>important_<wbr>rounded_<wbr>filled.</p>
         <p><svg class="icon"><use href="../images/payments_rounded.svg#icon"/></svg> payments_rounded.</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/search_rounded_fill0_weight400_grade0_24px.svg#icon"/></svg> search_<wbr>rounded_<wbr>fill0_<wbr>weight400_<wbr>grade0_<wbr>24px.</p>
+        <p><svg class="icon"><use href="../images/settings_input_antenna_rounded.svg#icon"/></svg> settings_<wbr>input_<wbr>antenna_<wbr>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>
 
             state the exclusion of warranty; and each file should have at least
             the “copyright” line and a pointer to where the full notice is found.</p>
 
-<pre>&lt;one line to give the program’s
-name and a brief idea of what
-it does.&gt;
+<pre>&lt;one line to give the
+program’s name and a brief
+idea of what it does.&gt;
 Copyright (C) &lt;year&gt;
 &lt;name of author&gt;
 
@@ -760,14 +768,15 @@ You should have received a
 copy of the GNU General Public
 License along with this
 program.  If not, see
-&lt;http://www.gnu.org/licenses/&gt;.</pre>
+&lt;http://www.gnu.org/
+licenses/&gt;.</pre>
 
         <p>Also add information on how to contact you by electronic and paper mail.</p>
 
         <p>If the program does terminal interaction, make it output a short
             notice like this when it starts in an interactive mode:</p>
 
-<pre>&lt;program&gt;  Copyright (C) &lt;year&gt;
+<pre>&lt;program&gt; Copyright (C) &lt;year&gt;
 &lt;name of author&gt;
 This program comes with
 ABSOLUTELY NO WARRANTY; for
@@ -996,10 +1005,11 @@ License, Version 2.0 (the
 “License”); you may not use
 this file except in compliance
 with the License. You may
-obtain a copy of the License at
+obtain a copy of the License
+at
 
-http://www.apache.org/licenses/
-LICENSE-2.0
+http://www.apache.org/
+licenses/LICENSE-2.0
 
 Unless required by applicable
 law or agreed to in writing,
@@ -1009,8 +1019,9 @@ License is distributed on an
 WARRANTIES OR CONDITIONS OF
 ANY KIND, either express or
 implied. See the License for
-the specific language governing
-permissions and limitations
-under the License.</pre>
+the specific language
+governing permissions and
+limitations under the
+License.</pre>
     </body>
 </html>
index dd8000eb9041b9336404fc33f7277feae1a65d06..7f1583997350cdbb657d74ccc0846079081e0df5 100644 (file)
@@ -1,24 +1,25 @@
 <!--
-  Copyright © 2021 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021-2023, 2025 Soren Stoutner <soren@stoutner.com>
 
-  Translation 2021 Jose A. León.  Copyright assigned to Soren Stoutner <soren@stoutner.com>.
+  Translation 2021-2023, 2025 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/>.
 
-  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
-<html>
+<html lang="es">
     <head>
         <meta charset="UTF-8">
 
 
         <!-- Setting the color scheme instructs the WebView to respect `prefers-color-scheme` @media CSS. -->
         <meta name="color-scheme" content="light dark">
+
+        <title>Permissions</title>
     </head>
 
     <body>
         <p>Privacy Cell usa los siguientes permisos.</p>
 
         <h3>Leer el estado del teléfono e identidad</h3>
-        <p><a href="https://developer.android.com/reference/android/Manifest.permission.html#READ_PHONE_STATE">android.permission.<wbr>READ_PHONE_STATE</a></p>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission.html#READ_PHONE_STATE">android.permission.<wbr>READ_<wbr>PHONE_<wbr>STATE</a></p>
         <p>Requerido para determinar qué protocolos se están usando por la red del teléfono celular.</p>
 
-        <h3>Run foreground service</h3>
-        <p><a href="https://developer.android.com/reference/android/Manifest.permission#FOREGROUND_SERVICE">android.permission.<wbr>FOREGROUND_SERVICE</a></p>
-        <p>Allows Privacy Cell to display a realtime monitoring notification icon in the status bar.</p>
+        <h3>Leer números de teléfono</h3>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission.html#READ_PHONE_NUMBERS">android.permission.<wbr>READ_<wbr>PHONE_<wbr>NUMBERS</a></p>
+        <p>Necesario para mostrar el nombre de la red celular y el número de teléfono de la tarjeta SIM</p>
+
+        <h3>Mostrar notificaciones</h3>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission.html#POST_NOTIFICATIONS">android.permission.<wbr>POST_<wbr>NOTIFICATIONS</a></p>
+        <p>Permite a Privacy Cell mostrar un icono de notificación de supervisión en tiempo real en la barrra de estado.</p>
+
+        <h3>Ejecutar servicio en primer plano</h3>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission#FOREGROUND_SERVICE">android.permission.<wbr>FOREGROUND_<wbr>SERVICE</a></p>
+        <p>Permite a Privacy Cell actualizar el icono de notificación de supervisión cuando la aplicación no está en primer plano.</p>
+
+        <h3>Uso especial de los servicios en primer plano</h3>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission#FOREGROUND_SERVICE_SPECIAL_USE">android.permission.<wbr>FOREGROUND_<wbr>SERVICE_<wbr>SPECIAL_<wbr>USE</a></p>
+        <p>Especifica el tipo de servicio en primer plano.
+            El uso especial es para servicios que no encajan en ninguna de las <a href="https://developer.android.com/about/versions/14/changes/fgs-types-required">categorías estándar</a>.</p>
+
+        <h3>Ejecutar al inicio</h3>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission#RECEIVE_BOOT_COMPLETED">android.permission.<wbr>RECEIVE_<wbr>BOOT_<wbr>COMPLETED</a></p>
+        <p>Permite a Privacy Cell activar el servicio de monitorización en tiempo real al arrancar el teléfono.</p>
 
-        <h3>Run at startup</h3>
-        <p><a href="https://developer.android.com/reference/android/Manifest.permission#RECEIVE_BOOT_COMPLETED">android.permission.<wbr>RECEIVE_BOOT_COMPLETED</a></p>
-        <p>Allows Privacy Cell to enable the realtime monitoring service when the phone boots.</p>
+        <h3>Receptor dinámico no exportado</h3>
+        <p><a href="https://developer.android.com/about/versions/13/features#runtime-receivers">com.stoutner.privacycell.<wbr>DYNAMIC_<wbr>RECEIVER_<wbr>NOT_<wbr>EXPORTED_<wbr>PERMISSION</a></p>
+        <p>Se añade automáticamente a todas las aplicaciones con API >= 33 (Android >= 13) para impedir que otras aplicaciones se conecten a receptores dinámicos sin permiso explícito.</p>
     </body>
-</html>
\ No newline at end of file
+</html>
index 92e7f92d4ccc0a94bcefcb7b10a73d48b7aeadad..e22cc94678d731c3efa6a666f64b808ad4bd3ddf 100644 (file)
@@ -1,24 +1,25 @@
 <!--
-  Copyright © 2021 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021, 2025 Soren Stoutner <soren@stoutner.com>
 
   Translation 2021 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/>.
 
-  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
-<html>
+<html lang="es">
     <head>
         <meta charset="UTF-8">
 
@@ -26,6 +27,8 @@
 
         <!-- Setting the color scheme instructs the WebView to respect `prefers-color-scheme` @media CSS. -->
         <meta name="color-scheme" content="light dark">
+
+        <title>Privacy Policy</title>
     </head>
 
     <body>
index 2be404f606f027fe6ee6f2eb1de26471c31b2ed0..08e537717a6e7f03ff9cf6a290c516cccb1f7c43 100644 (file)
@@ -1,24 +1,25 @@
 <!--
-  Copyright © 2021-2022 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021-2023, 2025 Soren Stoutner <soren@stoutner.com>
 
-  Translation 2021-2022 Kévin L. <kevinliste@framalistes.org>.  Copyright assigned to Soren Stoutner <soren@stoutner.com>.
+  Translation 2021-2023 Kévin L. <kevinliste@framalistes.org>.  Copyright assigned to Soren Stoutner <soren@stoutner.com>.
 
-  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
+  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
-<html>
+<html lang="fr">
     <head>
         <meta charset="UTF-8">
 
 
         <!-- Setting the color scheme instructs the WebView to respect `prefers-color-scheme` @media CSS. -->
         <meta name="color-scheme" content="light dark">
+
+        <title>Changelog</title>
     </head>
 
     <body>
+        <h3>1.11 (version du code 13)</h3>
+        <p>29 Avril 2025 - API minimale : 30, API optimale : 35</p>
+        <ul>
+            <li>Indicate <a href="https://redmine.stoutner.com/issues/1117">which SIM card</a> is used for each connection.</li>
+            <li>Add support for <a href="https://redmine.stoutner.com/issues/1192">searching the logcat</a>.</li>
+            <li>Bump the <a href="https://redmine.stoutner.com/issues/1272">target API to 35</a> (Android 15).</li>
+        </ul>
+
+        <h3><a href="https://www.stoutner.com/privacy-cell-1-10/">1.10</a> (version du code 12)</h3>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyCell.git;a=commitdiff;h=d9f4f93fa472e77d526b0621882577ff9490da48;ds=sidebyside">30 Octobre 2023</a> - API minimale : 30, API optimale : 34</p>
+        <ul>
+            <li>Création d'une icône <a href="https://redmine.stoutner.com/issues/988">monochrome optionnelle</a> (utilisable sous Android >= 13).</li>
+            <li>Permettre l'inclusion de "Privacy Cell" dans <a href="https://redmine.stoutner.com/issues/1001">les sauvegardes du système</a>.</li>
+            <li>Passage de <a href="https://redmine.stoutner.com/issues/1104">l'API cible à 34</a> (Android 14).</li>
+            <li>Documentation <a href="https://redmine.stoutner.com/issues/940">sur les autorisation nécessaires</a> pour
+                <a href="https://redmine.stoutner.com/issues/942">les nouvelles version d'Android</a>.</li>
+            <li>Renouveler la notification de surveillance en temps réel tous les <a href="https://redmine.stoutner.com/issues/1105">15 minutes</a>.</li>
+            <li>Mise à jour de la traduction française par <a href="mailto:kevinliste@framalistes.org">Kévin L</a>.</li>
+        </ul>
+
+        <h3><a href="https://www.stoutner.com/privacy-cell-1-9/">1.9</a> (version du code 11)</h3>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyCell.git;a=commitdiff;h=53f5dd586d2e9eb38280648b9084db15163fe682">5 Décembre 2022</a> - API minimale : 30, API optimale : 33</p>
+        <ul>
+            <li>Passage de <a href="https://redmine.stoutner.com/issues/890">l'API cible à 33</a> (Android 13).</li>
+            <li>Désactivation <a href="https://redmine.stoutner.com/issues/894">du glissement pour rejeter </a> la notification de surveillance en temps réel sur Android 13.</li>
+            <li>Activation <a href="https://redmine.stoutner.com/issues/935">du support de la langue par application</a> sur Android 13.</li>
+            <li>Conservation de <a href="https://redmine.stoutner.com/issues/913">l'emplacement du défilement des paramètres </a>au redémarrage.</li>
+            <li>Mise à jour de la traduction française par <a href="mailto:kevinliste@framalistes.org">Kévin L</a>.</li>
+        </ul>
+
         <h3><a href="https://www.stoutner.com/privacy-cell-1-8-1/">1.8.1</a> (version du code 10)</h3>
         <p><a href="https://gitweb.stoutner.com/?p=PrivacyCell.git;a=commitdiff;h=ab7601a6d91b6035862bb47b1ac259855e3aba3b">8 Août 2022</a> - API minimale : 30, API optimale : 32</p>
         <ul>
             <li>Version initiale.</li>
         </ul>
     </body>
-</html>
\ No newline at end of file
+</html>
index 0692484a711f23955dead1f77ff5d57f83ac37bd..06878725806b7545292aebb0347cb9769cd387a1 100644 (file)
@@ -1,24 +1,25 @@
 <!--
-  Copyright © 2021 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021, 2025 Soren Stoutner <soren@stoutner.com>
 
   Translation 2021 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/>.
 
-  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
-<html>
+<html lang="fr">
     <head>
         <meta charset="UTF-8">
 
@@ -26,6 +27,8 @@
 
         <!-- Setting the color scheme instructs the WebView to respect `prefers-color-scheme` @media CSS. -->
         <meta name="color-scheme" content="light dark">
+
+        <title>Contributors</title>
     </head>
 
     <body>
index cd091d94fe8243060b4d3af51801012363d3309f..2534cbf4f3b6282584ee8734dbcbae3074a1526f 100644 (file)
@@ -1,24 +1,25 @@
 <!--
-  Copyright 2021-2022 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021-2023, 2025 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/>.
 
-  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
-<html>
+<html lang="fr">
     <head>
         <meta charset="UTF-8">
 
 
         <!-- Setting the color scheme instructs the WebView to respect `prefers-color-scheme` @media CSS. -->
         <meta name="color-scheme" content="light dark">
+
+        <title>Licenses</title>
     </head>
 
     <body>
         <h3>Copyright</h3>
-        <p>Privacy Cell copyright 2021-2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.</p>
+        <p>Privacy Cell copyright 2021-2023, 2025 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.</p>
 
         <h3>Licence</h3>
         <p>Privacy Cell est publiée sous la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licence GPLv3+</a>. Le texte intégral de la licence se trouve ci-dessous.
             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/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>
+        <p><img class="left" src="../images/secure.svg" alt="Secure"/> <img class="left" src="../images/secure_notification.svg" alt="Secure Notification"/> 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://fonts.google.com/icons">Android Material</a>
             et sont publiés sous la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licence Apache 2.0</a>.
-            Le texte intégral de la licence est ci-dessous. Les modifications font l'objet d'un copyright © 2016, 2021-2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+            Le texte intégral de la licence est ci-dessous. Les modifications font l'objet d'un copyright 2016, 2021-2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             Les images résultantes sont publiées sous la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licence GPLv3+</a>.</p>
-        <p><img class="left" src="../images/insecure.svg"> <img class="left" src="../images/insecure_notification.svg"/> sont dérivés de <code>security</code> et de <code>warning_amber_rounded</code>,
-            qui font partie de l'ensemble d'icônes <a href="https://material.io/icons/">Android Material</a>
+        <p><img class="left" src="../images/insecure.svg" alt="Insecure"> <img class="left" src="../images/insecure_notification.svg" alt="Insecure Notification"/> 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://fonts.google.com/icons">Android Material</a>
             et sont publiés sous la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licence Apache 2.0</a>.
-            Les modifications font l'objet d'un copyright © 2016, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+            Les modifications font l'objet d'un copyright 2016, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             Les images résultantes sont publiées sous la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licence GPLv3+</a>.</p>
-        <p><img class="left" src="../images/antiquated.svg"/> <img class="left" src="../images/antiquated_notification.svg"/> sont dérivés de <code>security</code> et de <code>do_not_disturb</code>,
-            qui font partie de l'ensemble d'icônes <a href="https://material.io/icons/">Android Material</a>
+        <p><img class="left" src="../images/antiquated.svg" alt="Antiquated"/> <img class="left" src="../images/antiquated_notification.svg" alt="Antiquated Notification"/> 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://fonts.google.com/icons">Android Material</a>
             et sont publiés sous la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licence Apache 2.0</a>.
-            Les modifications font l'objet d'un copyright © 2016, 2021-2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+            Les modifications font l'objet d'un copyright 2016, 2021-2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             Les images résultantes sont publiées sous la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licence GPLv3+</a>.</p>
-        <p><img class="left" src="../images/antiquated_3g.svg"/> est un dérivé de <code>security</code> et de <code>3g_mobiledata_rounded</code>,
-            qui font partie de l'ensemble d'icônes <a href="https://material.io/icons/">Android Material</a>
+        <p><img class="left" src="../images/antiquated_3g.svg" alt="Antiquated 3G"/> est un dérivé de <code>security</code> et de <code>3g_mobiledata_rounded</code>,
+            qui font partie de l'ensemble d'icônes <a href="https://fonts.google.com/icons">Android Material</a>
             et sont publiés sous la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
-            Les modifications font l'objet d'un copyright © 2016, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+            Les modifications font l'objet d'un copyright 2016, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             L'image résultante est publiée sous la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licence GPLv3+</a>.</p>
-        <p>Les icônes suivantes proviennent de l'ensemble d'icônes <a href="https://material.io/icons/">Android Material</a>,
+        <p>Les icônes suivantes proviennent de l'ensemble d'icônes <a href="https://fonts.google.com/icons">Android Material</a>,
             qui sont publiées sous la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licence Apache 2.0</a>.
             Elles sont inchangés, à l'exception des informations de mise en page comme la couleur et la taille. Certaines d'entre elles ont été renommées pour correspondre à leur utilisation dans le code.
             Les icônes et les noms originaux sont présentés ci-dessous.</p>
         <p><svg class="icon"><use href="../images/bug_report_rounded.svg#icon"/></svg> bug_report_rounded.</p>
         <p><svg class="icon"><use href="../images/call_to_action_rounded.svg#icon"/></svg> call_to_action_rounded.</p>
-        <p><svg class="icon"><use href="../images/chrome_reader_mode_rounded.svg#icon"/></svg> chrome_reader_mode_rounded.</p>
-        <p><svg class="icon"><use href="../images/close_rounded.svg#icon"/></svg> close_rounded.</p>
+        <p><svg class="icon"><use href="../images/chrome_reader_mode_rounded.svg#icon"/></svg> chrome_<wbr>reader_<wbr>mode_<wbr>rounded.</p>
+        <p><svg class="icon"><use href="../images/close_rounded_fill0_weight400_grade0_24px.svg#icon"/></svg> close_<wbr>rounded_<wbr>fill0_<wbr>weight400_<wbr>grade0_<wbr>24px.</p>
         <p><svg class="icon"><use href="../images/content_copy_outlined.svg#icon"/></svg> content_copy_outlined.</p>
         <p><svg class="icon"><use href="../images/fact_check_outlined.svg#icon"/></svg> fact_checked_outlined.</p>
-        <p><svg class="icon"><use href="../images/format_list_bulleted_rounded.svg#icon"/></svg> format_list_bulleted_rounded.</p>
+        <p><svg class="icon"><use href="../images/format_list_bulleted_rounded.svg#icon"/></svg> format_<wbr>list_<wbr>bulleted_<wbr>rounded.</p>
         <p><svg class="icon"><use href="../images/forum_rounded.svg#icon"/></svg> forum_rounded.</p>
         <p><svg class="icon"><use href="../images/groups_filled.svg#icon"/></svg> groups_filled.</p>
-        <p><svg class="icon"><use href="../images/list_alt_rounded.svg#icon"/></svg> list_alt_rounded.</p>
+        <p><svg class="icon"><use href="../images/keyboard_arrow_down_rounded_fill0_weight400_grade0_24px.svg#icon"/></svg>
+            keyboard_<wbr>arrow_<wbr>down_<wbr>rounded_<wbr>fill0_<wbr>weight400_<wbr>grade0_<wbr>24px.</p>
+        <p><svg class="icon"><use href="../images/keyboard_arrow_up_rounded_fill0_weight400_grade0_24px.svg#icon"/></svg>
+            keyboard_<wbr>arrow_<wbr>up_<wbr>rounded_<wbr>fill0_<wbr>weight400_<wbr>grade0_<wbr>24px.</p>
+        <p><svg class="icon"><use href="../images/list_alt_rounded_24px.svg#icon"/></svg> list_alt_rounded_24px.</p>
         <p><svg class="icon"><use href="../images/map_rounded.svg#icon"/></svg> map_rounded.</p>
-        <p><svg class="icon"><use href="../images/notification_important_rounded_filled.svg#icon"/></svg> notification_important_<wbr>rounded_filled.</p>
+        <p><svg class="icon"><use href="../images/notification_important_rounded_filled.svg#icon"/></svg> notification_<wbr>important_<wbr>rounded_<wbr>filled.</p>
         <p><svg class="icon"><use href="../images/payments_rounded.svg#icon"/></svg> payments_rounded.</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/search_rounded_fill0_weight400_grade0_24px.svg#icon"/></svg> search_<wbr>rounded_<wbr>fill0_<wbr>weight400_<wbr>grade0_<wbr>24px.</p>
+        <p><svg class="icon"><use href="../images/settings_input_antenna_rounded.svg#icon"/></svg> settings_<wbr>input_<wbr>antenna_<wbr>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>
 
             state the exclusion of warranty; and each file should have at least
             the “copyright” line and a pointer to where the full notice is found.</p>
 
-<pre>&lt;one line to give the program’s
-name and a brief idea of what
-it does.&gt;
+<pre>&lt;one line to give the
+program’s name and a brief
+idea of what it does.&gt;
 Copyright (C) &lt;year&gt;
 &lt;name of author&gt;
 
@@ -760,14 +768,15 @@ You should have received a
 copy of the GNU General Public
 License along with this
 program.  If not, see
-&lt;http://www.gnu.org/licenses/&gt;.</pre>
+&lt;http://www.gnu.org/
+licenses/&gt;.</pre>
 
         <p>Also add information on how to contact you by electronic and paper mail.</p>
 
         <p>If the program does terminal interaction, make it output a short
             notice like this when it starts in an interactive mode:</p>
 
-<pre>&lt;program&gt;  Copyright (C) &lt;year&gt;
+<pre>&lt;program&gt; Copyright (C) &lt;year&gt;
 &lt;name of author&gt;
 This program comes with
 ABSOLUTELY NO WARRANTY; for
@@ -996,10 +1005,11 @@ License, Version 2.0 (the
 “License”); you may not use
 this file except in compliance
 with the License. You may
-obtain a copy of the License at
+obtain a copy of the License
+at
 
-http://www.apache.org/licenses/
-LICENSE-2.0
+http://www.apache.org/
+licenses/LICENSE-2.0
 
 Unless required by applicable
 law or agreed to in writing,
@@ -1009,8 +1019,9 @@ License is distributed on an
 WARRANTIES OR CONDITIONS OF
 ANY KIND, either express or
 implied. See the License for
-the specific language governing
-permissions and limitations
-under the License.</pre>
+the specific language
+governing permissions and
+limitations under the
+License.</pre>
     </body>
 </html>
index 04e1c79fb7da7b888ab995d7a0acde603b15c937..b3151aa78bc45547a50222c97911451cddfd9999 100644 (file)
@@ -1,24 +1,25 @@
 <!--
-  Copyright © 2021 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021-2023, 2025 Soren Stoutner <soren@stoutner.com>
 
-  Translation 2021 Kévin L. <kevinliste@framalistes.org>.  Copyright assigned to Soren Stoutner <soren@stoutner.com>.
+  Translation 2021-2023 Kévin L. <kevinliste@framalistes.org>.  Copyright assigned to Soren Stoutner <soren@stoutner.com>.
 
-  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
+  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
-<html>
+<html lang="fr">
     <head>
         <meta charset="UTF-8">
 
 
         <!-- Setting the color scheme instructs the WebView to respect `prefers-color-scheme` @media CSS. -->
         <meta name="color-scheme" content="light dark">
+
+        <title>Permissions</title>
     </head>
 
     <body>
         <p>Privacy Cell utilise l'autorisation suivante.</p>
 
         <h3>Lecture du statut et de l'identité du téléphone</h3>
-        <p><a href="https://developer.android.com/reference/android/Manifest.permission.html#READ_PHONE_STATE">android.permission.<wbr>READ_PHONE_STATE</a></p>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission.html#READ_PHONE_STATE">android.permission.<wbr>READ_<wbr>PHONE_<wbr>STATE</a></p>
         <p>Nécessaire pour déterminer quels protocoles sont utilisés par le réseau de téléphonie mobile.</p>
 
-        <h3>Exécuter un service en premier plan</h3>
-        <p><a href="https://developer.android.com/reference/android/Manifest.permission#FOREGROUND_SERVICE">android.permission.<wbr>FOREGROUND_SERVICE</a></p>
+        <h3>Read phone numbers</h3>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission.html#READ_PHONE_NUMBERS">android.permission.<wbr>READ_<wbr>PHONE_<wbr>NUMBERS</a></p>
+        <p>Required to display the cell network name and phone number of the SIM card.</p>
+
+        <h3>Afficher les Notifications</h3>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission.html#POST_NOTIFICATIONS">android.permission.<wbr>POST_<wbr>NOTIFICATIONS</a></p>
         <p>Permet à Privacy Cell d'afficher une icône de notification de surveillance en temps réel dans la barre d'état.</p>
 
+        <h3>Exécuter un service en premier plan</h3>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission#FOREGROUND_SERVICE">android.permission.<wbr>FOREGROUND_<wbr>SERVICE</a></p>
+        <p>Permet à Privacy Cell de mettre à jour l'icône de notification de surveillance en temps réel lorsque l'application n'est pas au premier plan.</p>
+
+        <h3>Foreground service special use</h3>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission#FOREGROUND_SERVICE_SPECIAL_USE">android.permission.<wbr>FOREGROUND_<wbr>SERVICE_<wbr>SPECIAL_<wbr>USE</a></p>
+        <p>Spécifie le type de service de premier plan.
+            L'utilisation spécifique concerne les services qui n'entrent dans <a href="https://developer.android.com/about/versions/14/changes/fgs-types-required">aucune des catégories standard</a>.</p>
+
         <h3>Exécution au démarrage</h3>
-        <p><a href="https://developer.android.com/reference/android/Manifest.permission#RECEIVE_BOOT_COMPLETED">android.permission.<wbr>RECEIVE_BOOT_COMPLETED</a></p>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission#RECEIVE_BOOT_COMPLETED">android.permission.<wbr>RECEIVE_<wbr>BOOT_<wbr>COMPLETED</a></p>
         <p>Permet à Privacy Cell d'activer le service de surveillance en temps réel lorsque le téléphone démarre.</p>
+
+        <h3>Dynamic receiver not exported</h3>
+        <p><a href="https://developer.android.com/about/versions/13/features#runtime-receivers">com.stoutner.privacycell.<wbr>DYNAMIC_<wbr>RECEIVER_<wbr>NOT_<wbr>EXPORTED_<wbr>PERMISSION</a></p>
+        <p>Ajout automatique à toutes les applications ciblant l'API >= 33 (Android >= 13) pour empêcher les autres applications de se connecter aux destinataires dynamiques sans autorisation explicite.</p>
     </body>
-</html>
\ No newline at end of file
+</html>
index c58c8e6c950869c014ea4eab676a7754df96e945..6af7400691d23ea0ef21aef8093ce39975df7777 100644 (file)
@@ -1,24 +1,25 @@
 <!--
-  Copyright © 2021 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021, 2025 Soren Stoutner <soren@stoutner.com>
 
   Translation 2021 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/>.
 
-  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
-<html>
+<html lang="fr">
     <head>
         <meta charset="UTF-8">
 
@@ -26,6 +27,8 @@
 
         <!-- Setting the color scheme instructs the WebView to respect `prefers-color-scheme` @media CSS. -->
         <meta name="color-scheme" content="light dark">
+
+        <title>Privacy Policy</title>
     </head>
 
     <body>
index e89a7a96b7370dc2160b91726daf24af9d285211..b0263547e65172ced0199a7da871296c85544b6f 100644 (file)
@@ -1,24 +1,27 @@
 <?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.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2016, 2021-2022 Soren Stoutner <soren@stoutner.com>
 
-  Changes copyright © 2016, 2021-2022 Soren Stoutner <soren@stoutner.com>.  The resulting file 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 <https://fonts.google.com/icons>.
 
-  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
+  Changes 2016, 2021-2022 Soren Stoutner <soren@stoutner.com>.  The resulting file is released under the GPLv3+ license.
 
-  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.
+  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell/>.
 
-  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.
+  This program 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.
 
-  You should have received a copy of the GNU General Public License
-  along with Privacy Cell.  If not, see <http://www.gnu.org/licenses/>. -->
+  This program 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
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
 <svg
     xmlns="http://www.w3.org/2000/svg"
index 19e786af657f6f6d3e546e2bf206047d9d517442..8f1aef35328b3c21c56d342f7c2366341afc2880 100644 (file)
@@ -1,24 +1,27 @@
 <?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.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2016, 2022 Soren Stoutner <soren@stoutner.com>
 
-  Changes copyright © 2016, 2022 Soren Stoutner <soren@stoutner.com>.  The resulting file 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 <https://fonts.google.com/icons>.
 
-  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
+  Changes 2016, 2022 Soren Stoutner <soren@stoutner.com>.  The resulting file is released under the GPLv3+ license.
 
-  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.
+  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell/>.
 
-  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.
+  This program 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.
 
-  You should have received a copy of the GNU General Public License
-  along with Privacy Cell.  If not, see <http://www.gnu.org/licenses/>. -->
+  This program 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
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
 <svg
     xmlns="http://www.w3.org/2000/svg"
index 074e9e0840cc5f1eca63b61a40a4ddb66eda5e12..c7e16f00d2ea999fc6cc014e7149342758c10a5b 100644 (file)
@@ -1,24 +1,27 @@
 <?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.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2016, 2021-2022 Soren Stoutner <soren@stoutner.com>
 
-  Changes copyright © 2016, 2021-2022 Soren Stoutner <soren@stoutner.com>.  The resulting file 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 <https://fonts.google.com/icons>.
 
-  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
+  Changes 2016, 2021-2022 Soren Stoutner <soren@stoutner.com>.  The resulting file is released under the GPLv3+ license.
 
-  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.
+  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell/>.
 
-  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.
+  This program 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.
 
-  You should have received a copy of the GNU General Public License
-  along with Privacy Cell.  If not, see <http://www.gnu.org/licenses/>. -->
+  This program 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
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
 <svg
     xmlns="http://www.w3.org/2000/svg"
index 3ec48b02f6819f52a98e2aa057b0f8dc1b09c953..4b3f069a428823bc1ec74f6b44101e1d6d4cb9cf 100644 (file)
@@ -1,24 +1,27 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
 <!--
-  This file is a modified version of `bug_report_rounded`, which is part of the Android Material icon set and is released under the Apache License 2.0.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021 Soren Stoutner <soren@stoutner.com>
 
-  Changes copyright © 2021 Soren Stoutner <soren@stoutner.com>.  The resulting file is released under the GPLv3+ license.
+  This file is a modified version of `bug_report_rounded`, which is part of the Android Material icon set and is released under the Apache License 2.0 <https://fonts.google.com/icons>.
 
-  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
+  Changes 2021 Soren Stoutner <soren@stoutner.com>.  The resulting file is released under the GPLv3+ license.
 
-  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.
+  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell/>.
 
-  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.
+  This program 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.
 
-  You should have received a copy of the GNU General Public License
-  along with Privacy Cell.  If not, see <http://www.gnu.org/licenses/>. -->
+  This program 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
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
 <svg
     xmlns="http://www.w3.org/2000/svg"
index 9921a52ada1a02a508e1fb0e4f17d0c229105d23..4d92307ff4791ff20f8086349085270ca6386e28 100644 (file)
@@ -1,24 +1,27 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
 <!--
-  This file is a modified version of `call_to_action_rounded`, which is part of the Android Material icon set and is released under the Apache License 2.0.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021 Soren Stoutner <soren@stoutner.com>
 
-  Changes copyright © 2021 Soren Stoutner <soren@stoutner.com>.  The resulting file is released under the GPLv3+ license.
+  This file is a modified version of `call_to_action_rounded`, which is part of the Android Material icon set and is released under the Apache License 2.0 <https://fonts.google.com/icons>.
 
-  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
+  Changes 2021 Soren Stoutner <soren@stoutner.com>.  The resulting file is released under the GPLv3+ license.
 
-  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.
+  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell/>.
 
-  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.
+  This program 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.
 
-  You should have received a copy of the GNU General Public License
-  along with Privacy Cell.  If not, see <http://www.gnu.org/licenses/>. -->
+  This program 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
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
 <svg
     xmlns="http://www.w3.org/2000/svg"
index 855df2cd28b82375d45e1f8de51d3513e5e97f39..11e8776b4804ade2a49b8116bc14f774423f6755 100644 (file)
@@ -1,24 +1,27 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
 <!--
-  This file is a modified version of `chrome_reader_mode_rounded`, which is part of the Android Material icon set and is released under the Apache License 2.0.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021 Soren Stoutner <soren@stoutner.com>
 
-  Changes copyright © 2021 Soren Stoutner <soren@stoutner.com>.  The resulting file is released under the GPLv3+ license.
+  This file is a modified version of `chrome_reader_mode_rounded`, which is part of the Android Material icon set and is released under the Apache License 2.0 <https://fonts.google.com/icons>.
 
-  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
+  Changes 2021 Soren Stoutner <soren@stoutner.com>.  The resulting file is released under the GPLv3+ license.
 
-  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.
+  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell/>.
 
-  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.
+  This program 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.
 
-  You should have received a copy of the GNU General Public License
-  along with Privacy Cell.  If not, see <http://www.gnu.org/licenses/>. -->
+  This program 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
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
 <svg
     xmlns="http://www.w3.org/2000/svg"
diff --git a/app/src/main/assets/images/close_rounded.svg b/app/src/main/assets/images/close_rounded.svg
deleted file mode 100644 (file)
index f895cea..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-
-<!--
-  This file is a modified version of `content_copy_outlined`, which is part of the Android Material icon set and is released under the Apache License 2.0.
-
-  Changes copyright © 2021 Soren Stoutner <soren@stoutner.com>.  The resulting file is released under the GPLv3+ license.
-
-  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
-
-  Privacy Cell is free software: you can redistribute it and/or modify
-  it under the terms of the GNU General Public License as published by
-  the Free Software Foundation, either version 3 of the License, or
-  (at your option) any later version.
-
-  Privacy Cell is distributed in the hope that it will be useful,
-  but WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  GNU General Public License for more details.
-
-  You should have received a copy of the GNU General Public License
-  along with Privacy Cell.  If not, see <http://www.gnu.org/licenses/>. -->
-
-<svg
-    xmlns="http://www.w3.org/2000/svg"
-    viewBox="0 0 24 24"
-    id="icon" >
-
-    <path
-        d="M18.3 5.71c-.39-.39-1.02-.39-1.41 0L12 10.59 7.11 5.7c-.39-.39-1.02-.39-1.41 0-.39.39-.39 1.02 0 1.41L10.59 12 5.7 16.89c-.39.39-.39 1.02 0 1.41.39.39 1.02.39 1.41 0L12 13.41l4.89 4.89c.39.39 1.02.39 1.41 0 .39-.39.39-1.02 0-1.41L13.41 12l4.89-4.89c.38-.38.38-1.02 0-1.4z" />
-</svg>
diff --git a/app/src/main/assets/images/close_rounded_fill0_weight400_grade0_24px.svg b/app/src/main/assets/images/close_rounded_fill0_weight400_grade0_24px.svg
new file mode 100644 (file)
index 0000000..8a3c249
--- /dev/null
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<!--
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2025 Soren Stoutner <soren@stoutner.com>
+
+  This file is a modified version of `close_rounded_fill0_weight_grade0_24px`, which is part of the Android Material icon set and is released under the Apache License 2.0 <https://fonts.google.com/icons>.
+
+  Changes copyright 2025 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 program 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.
+
+  This program 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
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
+
+<svg
+    xmlns="http://www.w3.org/2000/svg"
+    viewBox="0 -960 960 960"
+    id="icon" >
+
+    <path
+        d="M480-424 284-228q-11 11-28 11t-28-11q-11-11-11-28t11-28l196-196-196-196q-11-11-11-28t11-28q11-11 28-11t28 11l196 196 196-196q11-11 28-11t28 11q11 11 11 28t-11 28L536-480l196 196q11 11 11 28t-11 28q-11 11-28 11t-28-11L480-424Z" />
+</svg>
index 3c33f2d3e4adeb7105b79e0c04ed6a8b5551eeb7..afadf92f412227560e3945442deb2970d2a4348e 100644 (file)
@@ -1,24 +1,27 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
 <!--
-  This file is a modified version of `content_copy_outlined`, which is part of the Android Material icon set and is released under the Apache License 2.0.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021 Soren Stoutner <soren@stoutner.com>
 
-  Changes copyright © 2021 Soren Stoutner <soren@stoutner.com>.  The resulting file is released under the GPLv3+ license.
+  This file is a modified version of `content_copy_outlined`, which is part of the Android Material icon set and is released under the Apache License 2.0 <https://fonts.google.com/icons>.
 
-  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
+  Changes 2021 Soren Stoutner <soren@stoutner.com>.  The resulting file is released under the GPLv3+ license.
 
-  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.
+  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell/>.
 
-  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.
+  This program 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.
 
-  You should have received a copy of the GNU General Public License
-  along with Privacy Cell.  If not, see <http://www.gnu.org/licenses/>. -->
+  This program 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
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
 <svg
     xmlns="http://www.w3.org/2000/svg"
index 2bcbcd6a4d4c4e29a9c0cbe3f09da3ed94342391..95355af67aa01436298e1109c13c51493a3c1799 100644 (file)
@@ -1,24 +1,27 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
 <!--
-  This file is a modified version of `fact_check_outlined`, which is part of the Android Material icon set and is released under the Apache License 2.0.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021 Soren Stoutner <soren@stoutner.com>
 
-  Changes copyright © 2021 Soren Stoutner <soren@stoutner.com>.  The resulting file is released under the GPLv3+ license.
+  This file is a modified version of `fact_check_outlined`, which is part of the Android Material icon set and is released under the Apache License 2.0 <https://fonts.google.com/icons>.
 
-  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
+  Changes 2021 Soren Stoutner <soren@stoutner.com>.  The resulting file is released under the GPLv3+ license.
 
-  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.
+  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell/>.
 
-  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.
+  This program 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.
 
-  You should have received a copy of the GNU General Public License
-  along with Privacy Cell.  If not, see <http://www.gnu.org/licenses/>. -->
+  This program 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
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
 <svg
     xmlns="http://www.w3.org/2000/svg"
index 4ea9b140b36ab594ac4c548292c165eff7cb8df7..d334f30f742529a20cf0e12203507fa199625aaa 100644 (file)
@@ -1,24 +1,27 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
 <!--
-  This file is a modified version of `format_list_bulleted_rounded`, which is part of the Android Material icon set and is released under the Apache License 2.0.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021 Soren Stoutner <soren@stoutner.com>
 
-  Changes copyright © 2021 Soren Stoutner <soren@stoutner.com>.  The resulting file is released under the GPLv3+ license.
+  This file is a modified version of `format_list_bulleted_rounded`, which is part of the Android Material icon set and is released under the Apache License 2.0 <https://fonts.google.com/icons>.
 
-  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
+  Changes 2021 Soren Stoutner <soren@stoutner.com>.  The resulting file is released under the GPLv3+ license.
 
-  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.
+  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell/>.
 
-  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.
+  This program 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.
 
-  You should have received a copy of the GNU General Public License
-  along with Privacy Cell.  If not, see <http://www.gnu.org/licenses/>. -->
+  This program 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
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
 <svg
     xmlns="http://www.w3.org/2000/svg"
index 0179ccf952921d4fa2f561d0607732546bd60520..ff428772893d64a1dae23cf2551bf3fa2daa8048 100644 (file)
@@ -1,24 +1,27 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
 <!--
-  This file is a modified version of `forum_rounded`, which is part of the Android Material icon set and is released under the Apache License 2.0.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021 Soren Stoutner <soren@stoutner.com>
 
-  Changes copyright © 2021 Soren Stoutner <soren@stoutner.com>.  The resulting file is released under the GPLv3+ license.
+  This file is a modified version of `forum_rounded`, which is part of the Android Material icon set and is released under the Apache License 2.0 <https://fonts.google.com/icons>.
 
-  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
+  Changes 2021 Soren Stoutner <soren@stoutner.com>.  The resulting file is released under the GPLv3+ license.
 
-  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.
+  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell/>.
 
-  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.
+  This program 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.
 
-  You should have received a copy of the GNU General Public License
-  along with Privacy Cell.  If not, see <http://www.gnu.org/licenses/>. -->
+  This program 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
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
 <svg
     xmlns="http://www.w3.org/2000/svg"
index 72b0f803722990dda676f3f48019bb43c9072063..53501e830e1357eb7266be34bdc5ae11e28ae088 100644 (file)
@@ -1,24 +1,27 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
 <!--
-  This file is a modified version of `groups_filled`, which is part of the Android Material icon set and is released under the Apache License 2.0.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021 Soren Stoutner <soren@stoutner.com>
 
-  Changes copyright © 2021 Soren Stoutner <soren@stoutner.com>.  The resulting file is released under the GPLv3+ license.
+  This file is a modified version of `groups_filled`, which is part of the Android Material icon set and is released under the Apache License 2.0 <https://fonts.google.com/icons>.
 
-  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
+  Changes 2021 Soren Stoutner <soren@stoutner.com>.  The resulting file is released under the GPLv3+ license.
 
-  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.
+  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell/>.
 
-  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.
+  This program 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.
 
-  You should have received a copy of the GNU General Public License
-  along with Privacy Cell.  If not, see <http://www.gnu.org/licenses/>. -->
+  This program 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
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
 <svg
     xmlns="http://www.w3.org/2000/svg"
index d4820a24a9ac5dadf5b1454a7284b1dabcc4e33d..77adbabcd3b80cdb903cb7a0de8cd0dd0811bf6f 100644 (file)
@@ -1,24 +1,27 @@
 <?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.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2016, 2022 Soren Stoutner <soren@stoutner.com>
 
-  Changes copyright © 2016, 2022 Soren Stoutner <soren@stoutner.com>.  The resulting file 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 <https://fonts.google.com/icons>.
 
-  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
+  Changes 2016, 2022 Soren Stoutner <soren@stoutner.com>.  The resulting file is released under the GPLv3+ license.
 
-  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.
+  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell/>.
 
-  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.
+  This program 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.
 
-  You should have received a copy of the GNU General Public License
-  along with Privacy Cell.  If not, see <http://www.gnu.org/licenses/>. -->
+  This program 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
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
 <svg
     xmlns="http://www.w3.org/2000/svg"
index 4408b7bcd329aa48c66e823837b8fed967bbebdc..26a4e56f038248d1fc41324ab0d5da6cf7ef86df 100644 (file)
@@ -1,24 +1,27 @@
 <?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.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2016, 2022 Soren Stoutner <soren@stoutner.com>
 
-  Changes copyright © 2016, 2022 Soren Stoutner <soren@stoutner.com>.  The resulting file 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 <https://fonts.google.com/icons>.
 
-  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
+  Changes 2016, 2022 Soren Stoutner <soren@stoutner.com>.  The resulting file is released under the GPLv3+ license.
 
-  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.
+  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell/>.
 
-  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.
+  This program 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.
 
-  You should have received a copy of the GNU General Public License
-  along with Privacy Cell.  If not, see <http://www.gnu.org/licenses/>. -->
+  This program 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
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
 <svg
     xmlns="http://www.w3.org/2000/svg"
diff --git a/app/src/main/assets/images/keyboard_arrow_down_rounded_fill0_weight400_grade0_24px.svg b/app/src/main/assets/images/keyboard_arrow_down_rounded_fill0_weight400_grade0_24px.svg
new file mode 100644 (file)
index 0000000..33990ac
--- /dev/null
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<!--
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2025 Soren Stoutner <soren@stoutner.com>
+
+  This file is a modified version of `keyboard_arrow_down_rounded_fill0_weight_grade0_24px`,
+  which is part of the Android Material icon set and is released under the Apache License 2.0 <https://fonts.google.com/icons>.
+
+  Changes copyright 2025 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 program 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.
+
+  This program 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
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
+
+<svg
+    xmlns="http://www.w3.org/2000/svg"
+    viewBox="0 -960 960 960"
+    id="icon">
+
+    <path
+        d="M480-361q-8 0-15-2.5t-13-8.5L268-556q-11-11-11-28t11-28q11-11 28-11t28 11l156 156 156-156q11-11 28-11t28 11q11 11 11 28t-11 28L508-372q-6 6-13 8.5t-15 2.5Z" />
+</svg>
diff --git a/app/src/main/assets/images/keyboard_arrow_up_rounded_fill0_weight400_grade0_24px.svg b/app/src/main/assets/images/keyboard_arrow_up_rounded_fill0_weight400_grade0_24px.svg
new file mode 100644 (file)
index 0000000..8296c80
--- /dev/null
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<!--
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2025 Soren Stoutner <soren@stoutner.com>
+
+  This file is a modified version of `keyboard_arrow_up_rounded_fill0_weight_grade0_24px`,
+  which is part of the Android Material icon set and is released under the Apache License 2.0 <https://fonts.google.com/icons>.
+
+  Changes copyright 2025 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 program 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.
+
+  This program 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
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
+
+<svg
+    xmlns="http://www.w3.org/2000/svg"
+    viewBox="0 -960 960 960"
+    id="icon">
+
+    <path
+        d="M480-528 324-372q-11 11-28 11t-28-11q-11-11-11-28t11-28l184-184q12-12 28-12t28 12l184 184q11 11 11 28t-11 28q-11 11-28 11t-28-11L480-528Z" />
+</svg>
diff --git a/app/src/main/assets/images/list_alt_rounded.svg b/app/src/main/assets/images/list_alt_rounded.svg
deleted file mode 100644 (file)
index c07743c..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-
-<!--
-  This file is a modified version of `list_alt_rounded`, which is part of the Android Material icon set and is released under the Apache License 2.0.
-
-  Changes copyright © 2021 Soren Stoutner <soren@stoutner.com>.  The resulting file is released under the GPLv3+ license.
-
-  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
-
-  Privacy Cell is free software: you can redistribute it and/or modify
-  it under the terms of the GNU General Public License as published by
-  the Free Software Foundation, either version 3 of the License, or
-  (at your option) any later version.
-
-  Privacy Cell is distributed in the hope that it will be useful,
-  but WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  GNU General Public License for more details.
-
-  You should have received a copy of the GNU General Public License
-  along with Privacy Cell.  If not, see <http://www.gnu.org/licenses/>. -->
-
-<svg
-    xmlns="http://www.w3.org/2000/svg"
-    viewBox="0 0 24 24"
-    id="icon" >
-
-    <path
-        d="M12 9h4c.55 0 1-.45 1-1s-.45-1-1-1h-4c-.55 0-1 .45-1 1s.45 1 1 1zm0 4h4c.55 0 1-.45 1-1s-.45-1-1-1h-4c-.55 0-1 .45-1 1s.45 1 1 1zm0 4h4c.55 0 1-.45 1-1s-.45-1-1-1h-4c-.55 0-1 .45-1 1s.45 1 1 1zM7 7h2v2H7zm0 4h2v2H7zm0 4h2v2H7zM20 3H4c-.55 0-1 .45-1 1v16c0 .55.45 1 1 1h16c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zm-1 16H5V5h14v14z" />
-</svg>
diff --git a/app/src/main/assets/images/list_alt_rounded_24px.svg b/app/src/main/assets/images/list_alt_rounded_24px.svg
new file mode 100644 (file)
index 0000000..e71acff
--- /dev/null
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<!--
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2022 Soren Stoutner <soren@stoutner.com>
+
+  This file is a modified version of `list_alt_rounded_24px`, which is part of the Android Material icon set and is released under the Apache License 2.0 <https://fonts.google.com/icons>.
+
+  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/>.
+
+  This program 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.
+
+  This program 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
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
+
+<svg
+    xmlns="http://www.w3.org/2000/svg"
+    viewBox="0 0 24 24"
+    id="icon" >
+
+    <path
+        d="M5 21q-.825 0-1.413-.587Q3 19.825 3 19V5q0-.825.587-1.413Q4.175 3 5 3h14q.825 0 1.413.587Q21 4.175 21 5v14q0 .825-.587 1.413Q19.825 21 19 21Zm0-2h14V5H5v14Zm3-2q.425 0 .713-.288Q9 16.425 9 16t-.287-.713Q8.425 15 8 15t-.713.287Q7 15.575 7 16t.287.712Q7.575 17 8 17Zm0-4q.425 0 .713-.288Q9 12.425 9 12t-.287-.713Q8.425 11 8 11t-.713.287Q7 11.575 7 12t.287.712Q7.575 13 8 13Zm0-4q.425 0 .713-.288Q9 8.425 9 8t-.287-.713Q8.425 7 8 7t-.713.287Q7 7.575 7 8t.287.712Q7.575 9 8 9Zm4 8h4q.425 0 .712-.288Q17 16.425 17 16t-.288-.713Q16.425 15 16 15h-4q-.425 0-.712.287Q11 15.575 11 16t.288.712Q11.575 17 12 17Zm0-4h4q.425 0 .712-.288Q17 12.425 17 12t-.288-.713Q16.425 11 16 11h-4q-.425 0-.712.287Q11 11.575 11 12t.288.712Q11.575 13 12 13Zm0-4h4q.425 0 .712-.288Q17 8.425 17 8t-.288-.713Q16.425 7 16 7h-4q-.425 0-.712.287Q11 7.575 11 8t.288.712Q11.575 9 12 9ZM5 19V5v14Z" />
+</svg>
index 84bafe2ebcbe17713e6a4f1f78210c21bc491820..92f43f2baf24fb275300937baf13d2b95e6aeca8 100644 (file)
@@ -1,24 +1,27 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
 <!--
-  This file is a modified version of `map_rounded`, which is part of the Android Material icon set and is released under the Apache License 2.0.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021 Soren Stoutner <soren@stoutner.com>
 
-  Changes copyright © 2021 Soren Stoutner <soren@stoutner.com>.  The resulting file is released under the GPLv3+ license.
+  This file is a modified version of `map_rounded`, which is part of the Android Material icon set and is released under the Apache License 2.0 <https://fonts.google.com/icons>.
 
-  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
+  Changes 2021 Soren Stoutner <soren@stoutner.com>.  The resulting file is released under the GPLv3+ license.
 
-  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.
+  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell/>.
 
-  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.
+  This program 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.
 
-  You should have received a copy of the GNU General Public License
-  along with Privacy Cell.  If not, see <http://www.gnu.org/licenses/>. -->
+  This program 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
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
 <svg
     xmlns="http://www.w3.org/2000/svg"
index 202926a5d416f63e074eabc5abf9d5b292419476..7f980c8c8065707df0fe9ba4a05b8c8a8670fece 100644 (file)
@@ -1,24 +1,27 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
 <!--
-  This file is a modified version of `notification_importang_rounded_filled`, which is part of the Android Material icon set and is released under the Apache License 2.0.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2022 Soren Stoutner <soren@stoutner.com>
 
-  Changes copyright 2022 Soren Stoutner <soren@stoutner.com>.  The resulting file is released under the GPLv3+ license.
+  This file is a modified version of `notification_importang_rounded_filled`, which is part of the Android Material icon set and is released under the Apache License 2.0 <https://fonts.google.com/icons>.
 
-  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
+  Changes 2022 Soren Stoutner <soren@stoutner.com>.  The resulting file is released under the GPLv3+ license.
 
-  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.
+  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell/>.
 
-  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.
+  This program 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.
 
-  You should have received a copy of the GNU General Public License
-  along with Privacy Cell.  If not, see <http://www.gnu.org/licenses/>. -->
+  This program 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
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
 <svg
     xmlns="http://www.w3.org/2000/svg"
index 7d707ee076bf7e2e4f1a0a8bd686d74c782b54e0..cb80e3786bce00a612b24172ad6b80c90edc0e97 100644 (file)
@@ -1,24 +1,27 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
 <!--
-  This file is a modified version of `payments_rounded`, which is part of the Android Material icon set and is released under the Apache License 2.0.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021 Soren Stoutner <soren@stoutner.com>
 
-  Changes copyright 2021 Soren Stoutner <soren@stoutner.com>.  The resulting file is released under the GPLv3+ license.
+  This file is a modified version of `payments_rounded`, which is part of the Android Material icon set and is released under the Apache License 2.0 <https://fonts.google.com/icons>.
 
-  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
+  Changes 2021 Soren Stoutner <soren@stoutner.com>.  The resulting file is released under the GPLv3+ license.
 
-  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.
+  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell/>.
 
-  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.
+  This program 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.
 
-  You should have received a copy of the GNU General Public License
-  along with Privacy Cell.  If not, see <http://www.gnu.org/licenses/>. -->
+  This program 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
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
 <svg
     xmlns="http://www.w3.org/2000/svg"
index cdf565f086545b091adf2d483abb1604c31d6c5e..76f79581d078f29c4b12f112957eeb9ec48ecb73 100644 (file)
@@ -1,24 +1,27 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
 <!--
-  This file is a modified version of `phone_android_outlined`, which is part of the Android Material icon set and is released under the Apache License 2.0.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021 Soren Stoutner <soren@stoutner.com>
 
-  Changes copyright © 2021 Soren Stoutner <soren@stoutner.com>.  The resulting file is released under the GPLv3+ license.
+  This file is a modified version of `phone_android_outlined`, which is part of the Android Material icon set and is released under the Apache License 2.0 <https://fonts.google.com/icons>.
 
-  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
+  Changes 2021 Soren Stoutner <soren@stoutner.com>.  The resulting file is released under the GPLv3+ license.
 
-  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.
+  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell/>.
 
-  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.
+  This program 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.
 
-  You should have received a copy of the GNU General Public License
-  along with Privacy Cell.  If not, see <http://www.gnu.org/licenses/>. -->
+  This program 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
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
 <svg
     xmlns="http://www.w3.org/2000/svg"
index 84820fe9f863ccc6bc1eceb5fece08b3d459e662..c0bf5be7d6bfa0ae9657ab55ab4fb5c352c33852 100644 (file)
@@ -1,24 +1,27 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
 <!--
-  This file is a modified version of `policy_filled`, which is part of the Android Material icon set and is released under the Apache License 2.0.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021 Soren Stoutner <soren@stoutner.com>
 
-  Changes copyright © 2021 Soren Stoutner <soren@stoutner.com>.  The resulting file is released under the GPLv3+ license.
+  This file is a modified version of `policy_filled`, which is part of the Android Material icon set and is released under the Apache License 2.0 <https://fonts.google.com/icons>.
 
-  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
+  Changes 2021 Soren Stoutner <soren@stoutner.com>.  The resulting file is released under the GPLv3+ license.
 
-  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.
+  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell/>.
 
-  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.
+  This program 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.
 
-  You should have received a copy of the GNU General Public License
-  along with Privacy Cell.  If not, see <http://www.gnu.org/licenses/>. -->
+  This program 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
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
 <svg
     xmlns="http://www.w3.org/2000/svg"
index d5ab83df07b2a5d4bb9bc2c351c5cedbb5e72138..b9885b0cca103f713af833b02aab1630d79031ab 100644 (file)
@@ -1,24 +1,27 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
 <!--
-  This file is a modified version of `save_outlined`, which is part of the Android Material icon set and is released under the Apache License 2.0.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021 Soren Stoutner <soren@stoutner.com>
 
-  Changes copyright © 2021 Soren Stoutner <soren@stoutner.com>.  The resulting file is released under the GPLv3+ license.
+  This file is a modified version of `save_outlined`, which is part of the Android Material icon set and is released under the Apache License 2.0 <https://fonts.google.com/icons>.
 
-  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
+  Changes 2021 Soren Stoutner <soren@stoutner.com>.  The resulting file is released under the GPLv3+ license.
 
-  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.
+  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell/>.
 
-  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.
+  This program 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.
 
-  You should have received a copy of the GNU General Public License
-  along with Privacy Cell.  If not, see <http://www.gnu.org/licenses/>. -->
+  This program 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
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
 <svg
     xmlns="http://www.w3.org/2000/svg"
diff --git a/app/src/main/assets/images/search_rounded_fill0_weight400_grade0_24px.svg b/app/src/main/assets/images/search_rounded_fill0_weight400_grade0_24px.svg
new file mode 100644 (file)
index 0000000..ad9dd4a
--- /dev/null
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<!--
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2025 Soren Stoutner <soren@stoutner.com>
+
+  This file is a modified version of `search_rounded_fill0_weight400_grade0_24px`, which is part of the Android Material icon set and is released under the Apache License 2.0 <https://fonts.google.com/icons>.
+
+  Changes copyright 2025 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 program 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.
+
+  This program 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
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
+
+<svg
+    xmlns="http://www.w3.org/2000/svg"
+    viewBox="0 -960 960 960"
+    id="icon" >
+
+    <path
+        d="M380-320q-109 0-184.5-75.5T120-580q0-109 75.5-184.5T380-840q109 0 184.5 75.5T640-580q0 44-14 83t-38 69l224 224q11 11 11 28t-11 28q-11 11-28 11t-28-11L532-372q-30 24-69 38t-83 14Zm0-80q75 0 127.5-52.5T560-580q0-75-52.5-127.5T380-760q-75 0-127.5 52.5T200-580q0 75 52.5 127.5T380-400Z" />
+</svg>
index d3a71760adee4f6bf66d44e3eb78736a1aece8d3..0757fed35933c07c82b868920a4a7e63d31b8558 100644 (file)
@@ -1,24 +1,27 @@
 <?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.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2016, 2021 Soren Stoutner <soren@stoutner.com>
 
-  Changes copyright © 2016, 2021 Soren Stoutner <soren@stoutner.com>.  The resulting file 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 <https://fonts.google.com/icons>.
 
-  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
+  Changes 2016, 2021 Soren Stoutner <soren@stoutner.com>.  The resulting file is released under the GPLv3+ license.
 
-  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.
+  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell/>.
 
-  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.
+  This program 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.
 
-  You should have received a copy of the GNU General Public License
-  along with Privacy Cell.  If not, see <http://www.gnu.org/licenses/>. -->
+  This program 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
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
 <svg
     xmlns="http://www.w3.org/2000/svg"
index a957ddf4d283b850d0c8f4f3c346e84c0ba4f2e8..8674dcea30a0e246bdccb28b52c3462ba5cb069c 100644 (file)
@@ -1,24 +1,27 @@
 <?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.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2016, 2021 Soren Stoutner <soren@stoutner.com>
 
-  Changes copyright © 2016, 2021 Soren Stoutner <soren@stoutner.com>.  The resulting file 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 <https://fonts.google.com/icons>.
 
-  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
+  Changes 2016, 2021 Soren Stoutner <soren@stoutner.com>.  The resulting file is released under the GPLv3+ license.
 
-  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.
+  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell/>.
 
-  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.
+  This program 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.
 
-  You should have received a copy of the GNU General Public License
-  along with Privacy Cell.  If not, see <http://www.gnu.org/licenses/>. -->
+  This program 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
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
 <svg
     xmlns="http://www.w3.org/2000/svg"
index d97459b553b2f49b8eddf2cbbc4bea7672c59c58..d0126b820147bc0077b703d6edac915f719e0db7 100644 (file)
@@ -1,24 +1,27 @@
 <?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.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2022 Soren Stoutner <soren@stoutner.com>
 
-  Changes copyright © 2022 Soren Stoutner <soren@stoutner.com>.  The resulting file is released under the GPLv3+ license.
+  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 <https://fonts.google.com/icons>.
 
-  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
+  Changes 2022 Soren Stoutner <soren@stoutner.com>.  The resulting file is released under the GPLv3+ license.
 
-  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.
+  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell/>.
 
-  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.
+  This program 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.
 
-  You should have received a copy of the GNU General Public License
-  along with Privacy Cell.  If not, see <http://www.gnu.org/licenses/>. -->
+  This program 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
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
 <svg
     xmlns="http://www.w3.org/2000/svg"
index e68c928cb7d69798773f18b2346dd262392f8c96..959ecc01485999a040856f43c22069ddc5a3c1d3 100644 (file)
@@ -1,24 +1,27 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
 <!--
-  This file is a modified version of `settings_rounded`, which is part of the Android Material icon set and is released under the Apache License 2.0.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021 Soren Stoutner <soren@stoutner.com>
 
-  Changes copyright © 2021 Soren Stoutner <soren@stoutner.com>.  The resulting file is released under the GPLv3+ license.
+  This file is a modified version of `settings_rounded`, which is part of the Android Material icon set and is released under the Apache License 2.0 <https://fonts.google.com/icons>.
 
-  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
+  Changes 2021 Soren Stoutner <soren@stoutner.com>.  The resulting file is released under the GPLv3+ license.
 
-  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.
+  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell/>.
 
-  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.
+  This program 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.
 
-  You should have received a copy of the GNU General Public License
-  along with Privacy Cell.  If not, see <http://www.gnu.org/licenses/>. -->
+  This program 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
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
 <svg
     xmlns="http://www.w3.org/2000/svg"
index 121240c46e2b4edf38e1df9b4714b60c473de105..d07e1ae9a7b76c0448dc4665dbcb552318648668 100644 (file)
@@ -1,24 +1,27 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
 <!--
-  This file is a modified version of `text_snippet_outlined`, which is part of the Android Material icon set and is released under the Apache License 2.0.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021 Soren Stoutner <soren@stoutner.com>
 
-  Changes copyright © 2021 Soren Stoutner <soren@stoutner.com>.  The resulting file is released under the GPLv3+ license.
+  This file is a modified version of `text_snippet_outlined`, which is part of the Android Material icon set and is released under the Apache License 2.0 <https://fonts.google.com/icons>.
 
-  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
+  Changes 2021 Soren Stoutner <soren@stoutner.com>.  The resulting file is released under the GPLv3+ license.
 
-  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.
+  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell/>.
 
-  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.
+  This program 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.
 
-  You should have received a copy of the GNU General Public License
-  along with Privacy Cell.  If not, see <http://www.gnu.org/licenses/>. -->
+  This program 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
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
 <svg
     xmlns="http://www.w3.org/2000/svg"
index 55e406f885563a20a51da8e4d572d4ba58830d1a..195ce3cbda86529bcc37c5662c76025f3a4e8fcc 100644 (file)
@@ -1,24 +1,25 @@
 <!--
-  Copyright © 2021-2022 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021-2023, 2025 Soren Stoutner <soren@stoutner.com>
 
-  Translation 2021-2022 Francesco Buratti.  Copyright assigned to Soren Stoutner <soren@stoutner.com>.
+  Translation 2021-2023, 2025 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/>.
 
-  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
-<html>
+<html lang="it">
     <head>
         <meta charset="UTF-8">
 
 
         <!-- Setting the color scheme instructs the WebView to respect `prefers-color-scheme` @media CSS. -->
         <meta name="color-scheme" content="light dark">
+
+        <title>Changelog</title>
     </head>
 
     <body>
+        <h3>1.11 (versione codice 13)</h3>
+        <p>29 Aprile 2025 - minima API 30, target API 35</p>
+        <ul>
+            <li>Indicazione <a href="https://redmine.stoutner.com/issues/1117">di quale SIM card</a> è utilizzata per ogni connessione.</li>
+            <li>Aggiunto il supporto per la <a href="https://redmine.stoutner.com/issues/1192">ricerca nel logcat</a>.</li>
+            <li>Spostamento della <a href="https://redmine.stoutner.com/issues/1272">target API a 35</a> (Android 15).</li>
+            <li>Aggiornamento della traduzione in lingua Italiana fornito da Francesco Buratti.</li>
+        </ul>
+
+        <h3><a href="https://www.stoutner.com/privacy-cell-1-10/">1.10</a> (versione codice 12)</h3>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyCell.git;a=commitdiff;h=d9f4f93fa472e77d526b0621882577ff9490da48;ds=sidebyside">30 Ottobre 2023</a> - minima API 30, target API 34</p>
+        <ul>
+            <li>Creata una <a href="https://redmine.stoutner.com/issues/988">icona monocromatica</a> opzionale (utilizzabile in Android >= 13).</li>
+            <li>Aggiunta la possibilità di includere Privacy Cell nei <a href="https://redmine.stoutner.com/issues/1001">backup di sistema</a>.</li>
+            <li>Spostamento della <a href="https://redmine.stoutner.com/issues/1104">target API a 34</a> (Android 14).</li>
+            <li>Aggiunta l'indicazione delle <a href="https://redmine.stoutner.com/issues/940">autorizzazioni necessarie</a> per
+                <a href="https://redmine.stoutner.com/issues/942">più recenti versioni di Android</a>.</li>
+            <li>Aggiornamento della notifica di monitoraggio in tempo reale ogni <a href="https://redmine.stoutner.com/issues/1105">15 minuti</a>.</li>
+            <li>Aggiornamento della traduzione in lingua Italiana fornito da Francesco Buratti.</li>
+        </ul>
+
+        <h3><a href="https://www.stoutner.com/privacy-cell-1-9/">1.9</a> (versione codice 11)</h3>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyCell.git;a=commitdiff;h=53f5dd586d2e9eb38280648b9084db15163fe682">5 Dicembre 2022</a> - minima API 30, target API 33</p>
+        <ul>
+            <li>Modifica della <a href="https://redmine.stoutner.com/issues/890">target API a 33</a> (Android 13).</li>
+            <li>Disabilitata la possibilità di <a href="https://redmine.stoutner.com/issues/894">effettuare lo swipe per eliminare</a> la notifica di monitoraggio in tempo reale su Android 13.</li>
+            <li>Abilitato il <a href="https://redmine.stoutner.com/issues/935">supporto della lingua per-app</a> su Android 13.</li>
+            <li>Mantenimento della <a href="https://redmine.stoutner.com/issues/913">posizione dello scorrimento delle impostazioni</a> al riavvio.</li>
+            <li>Aggiornamento della traduzione in lingua Italiana fornito da Francesco Buratti.</li>
+        </ul>
+
         <h3><a href="https://www.stoutner.com/privacy-cell-1-8-1/">1.8.1</a> (versione codice 10)</h3>
-        <p><a href="https://gitweb.stoutner.com/?p=PrivacyCell.git;a=commitdiff;h=ab7601a6d91b6035862bb47b1ac259855e3aba3b">8 Agosto 2022</a> -  minima API 30, target API 32</p>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyCell.git;a=commitdiff;h=ab7601a6d91b6035862bb47b1ac259855e3aba3b">8 Agosto 2022</a> - minima API 30, target API 32</p>
         <ul>
             <li>Correzione di un baco che <a href="https://redmine.stoutner.com/issues/864">riabilitava le notifiche</a> quando la rete cambiava.</li>
             <li>Aggiunta di <a href="https://redmine.stoutner.com/issues/884">un testo con doppio tono di viola</a> al tema scuro.</li>
             <li>Primo rilascio.</li>
         </ul>
     </body>
-</html>
\ No newline at end of file
+</html>
index 88c5d4d6cfe25fbac4de5a0b24cf66c975b903d5..30d612db71f920c8ce3941e8b84508be7b204998 100644 (file)
@@ -1,24 +1,25 @@
 <!--
-  Copyright © 2021 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021, 2025 Soren Stoutner <soren@stoutner.com>
 
   Translation 2021 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/>.
 
-  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
-<html>
+<html lang="it">
     <head>
         <meta charset="UTF-8">
 
@@ -26,6 +27,8 @@
 
         <!-- Setting the color scheme instructs the WebView to respect `prefers-color-scheme` @media CSS. -->
         <meta name="color-scheme" content="light dark">
+
+        <title>Contributors</title>
     </head>
 
     <body>
index 13233640d8bb05a9a0a2fc01e00bbc84209992fa..aa264d16004fd0935705a66342d1bc80b4166109 100644 (file)
@@ -1,24 +1,25 @@
 <!--
-  Copyright 2021-2022 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021-2023, 2025 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/>.
 
-  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
-<html>
+<html lang="it">
     <head>
         <meta charset="UTF-8">
 
 
         <!-- Setting the color scheme instructs the WebView to respect `prefers-color-scheme` @media CSS. -->
         <meta name="color-scheme" content="light dark">
+
+        <title>Licenses</title>
     </head>
 
     <body>
         <h3>Copyright</h3>
-        <p>Privacy Cell copyright 2021-2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.</p>
+        <p>Privacy Cell copyright 2021-2023, 2025 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.</p>
 
         <h3>Licenza</h3>
         <p>Privacy Cell è rilasciato con <a href="https://www.gnu.org/licenses/gpl-3.0.html">Licenza GPLv3+</a>. Il testo completo è riportato di seguito.
             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/secure.svg"/> <img class="left" src="../images/secure_notification.svg"/> sono derivate da <code>security</code> e <code>5g</code>,
-            che sono parte del <a href="https://material.io/icons/">set di icone Android Material</a> e sono rilasciate sotto la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licenza Apache 2.0</a>.
-            Il testo completo della licenza è riportato qui sotto. Il copyright delle modifiche © 2016, 2021-2022 appartiene a <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+        <p><img class="left" src="../images/secure.svg" alt="Secure"/> <img class="left" src="../images/secure_notification.svg" alt="Secure Notification"/> sono derivate da <code>security</code> e
+            <code>5g</code>, che sono parte del <a href="https://fonts.google.com/icons">set di icone Android Material</a> e sono rilasciate sotto la
+            <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licenza Apache 2.0</a>. Il testo completo della licenza è riportato qui sotto.
+            Il copyright delle modifiche 2016, 2021-2022 appartiene a <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             Le immagini risultanti sono rilasciate sotto la <a href="https://www.gnu.org/licenses/gpl-3.0.html">Licenza GPLv3+</a>.</p>
-        <p><img class="left" src="../images/insecure.svg"> <img class="left" src="../images/insecure_notification.svg"/> sono derivate da <code>security</code> e <code>warning_amber_rounded</code>,
-            che sono parte del <a href="https://material.io/icons/">set di icone Android Material</a> e sono rilasciate sotto la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licenza Apache 2.0</a>.
-            Il copyright delle modifiche © 2016, 2022 appartiene a <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+        <p><img class="left" src="../images/insecure.svg" alt="Insecure"> <img class="left" src="../images/insecure_notification.svg" alt="Insecure Notification"/> sono derivate da <code>security</code> e
+            <code>warning_amber_rounded</code>, che sono parte del <a href="https://fonts.google.com/icons">set di icone Android Material</a> e sono rilasciate sotto la
+            <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licenza Apache 2.0</a>. Il copyright delle modifiche 2016, 2022 appartiene a <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             Le immagini risultanti sono rilasciate sotto la <a href="https://www.gnu.org/licenses/gpl-3.0.html">Licenza GPLv3+</a>.</p>
-        <p><img class="left" src="../images/antiquated.svg"/> <img class="left" src="../images/antiquated_notification.svg"/> sono derivate da <code>security</code> e <code>do_not_disturb</code>,
-            che sono parte del <a href="https://material.io/icons/">set di icone Android Material</a> e sono rilasciate sotto la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licenza Apache 2.0</a>.
-            Il copyright delle modifiche © 2016, 2021-2022 appartiene a <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+        <p><img class="left" src="../images/antiquated.svg" alt="Antiquated"/> <img class="left" src="../images/antiquated_notification.svg" alt="Antiquated Notification"/> sono derivate da
+            <code>security</code> e <code>do_not_disturb</code>, che sono parte del <a href="https://fonts.google.com/icons">set di icone Android Material</a> e sono rilasciate sotto la
+            <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licenza Apache 2.0</a>. Il copyright delle modifiche 2016, 2021-2022 appartiene a <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             Le immagini risultanti sono rilasciate sotto la <a href="https://www.gnu.org/licenses/gpl-3.0.html">Licenza GPLv3+</a>.</p>
-        <p><img class="left" src="../images/antiquated_3g.svg"/> è derivata da <code>security</code> e <code>3g_mobiledata_rounded</code>,
-            che sono parte del <a href="https://material.io/icons/">set di icone Android Material</a> e sono rilasciate sotto la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licenza Apache 2.0</a>.
-            Il copyright delle modifiche © 2016, 2022 appartiene a <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+        <p><img class="left" src="../images/antiquated_3g.svg" alt="Antiquated 3G"/> è derivata da <code>security</code> e <code>3g_mobiledata_rounded</code>, che sono parte del
+            <a href="https://fonts.google.com/icons">set di icone Android Material</a> e sono rilasciate sotto la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licenza Apache 2.0</a>.
+            Il copyright delle modifiche 2016, 2022 appartiene a <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             L'immagine risultante è rilasciata sotto la <a href="https://www.gnu.org/licenses/gpl-3.0.html">Licenza GPLv3+</a>.</p>
-        <p>Le icone seguenti provengono dal <a href="https://material.io/icons/">set di icone Android Material</a>,
+        <p>Le icone seguenti provengono dal <a href="https://fonts.google.com/icons">set di icone Android Material</a>,
             che è rilasciato sotto la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licenza Apache 2.0</a>.
             Non sono state modificate ad eccezione delle informazioni del layout come il colore e le dimensioni. Alcune sono state rinominate per essere coerenti con il loro utilizzo nel codice.
             Le icone originali e i loro nomi sono riportate di seguito.</p>
         <p><svg class="icon"><use href="../images/bug_report_rounded.svg#icon"/></svg> bug_report_rounded.</p>
         <p><svg class="icon"><use href="../images/call_to_action_rounded.svg#icon"/></svg> call_to_action_rounded.</p>
-        <p><svg class="icon"><use href="../images/chrome_reader_mode_rounded.svg#icon"/></svg> chrome_reader_mode_rounded.</p>
-        <p><svg class="icon"><use href="../images/close_rounded.svg#icon"/></svg> close_rounded.</p>
+        <p><svg class="icon"><use href="../images/chrome_reader_mode_rounded.svg#icon"/></svg> chrome_<wbr>reader_<wbr>mode_<wbr>rounded.</p>
+        <p><svg class="icon"><use href="../images/close_rounded_fill0_weight400_grade0_24px.svg#icon"/></svg> close_<wbr>rounded_<wbr>fill0_<wbr>weight400_<wbr>grade0_<wbr>24px.</p>
         <p><svg class="icon"><use href="../images/content_copy_outlined.svg#icon"/></svg> content_copy_outlined.</p>
         <p><svg class="icon"><use href="../images/fact_check_outlined.svg#icon"/></svg> fact_checked_outlined.</p>
-        <p><svg class="icon"><use href="../images/format_list_bulleted_rounded.svg#icon"/></svg> format_list_bulleted_rounded.</p>
+        <p><svg class="icon"><use href="../images/format_list_bulleted_rounded.svg#icon"/></svg> format_<wbr>list_<wbr>bulleted_<wbr>rounded.</p>
         <p><svg class="icon"><use href="../images/forum_rounded.svg#icon"/></svg> forum_rounded.</p>
         <p><svg class="icon"><use href="../images/groups_filled.svg#icon"/></svg> groups_filled.</p>
-        <p><svg class="icon"><use href="../images/list_alt_rounded.svg#icon"/></svg> list_alt_rounded.</p>
+        <p><svg class="icon"><use href="../images/keyboard_arrow_down_rounded_fill0_weight400_grade0_24px.svg#icon"/></svg>
+            keyboard_<wbr>arrow_<wbr>down_<wbr>rounded_<wbr>fill0_<wbr>weight400_<wbr>grade0_<wbr>24px.</p>
+        <p><svg class="icon"><use href="../images/keyboard_arrow_up_rounded_fill0_weight400_grade0_24px.svg#icon"/></svg>
+            keyboard_<wbr>arrow_<wbr>up_<wbr>rounded_<wbr>fill0_<wbr>weight400_<wbr>grade0_<wbr>24px.</p>
+        <p><svg class="icon"><use href="../images/list_alt_rounded_24px.svg#icon"/></svg> list_alt_rounded_24px.</p>
         <p><svg class="icon"><use href="../images/map_rounded.svg#icon"/></svg> map_rounded.</p>
-        <p><svg class="icon"><use href="../images/notification_important_rounded_filled.svg#icon"/></svg> notification_important_<wbr>rounded_filled.</p>
+        <p><svg class="icon"><use href="../images/notification_important_rounded_filled.svg#icon"/></svg> notification_<wbr>important_<wbr>rounded_<wbr>filled.</p>
         <p><svg class="icon"><use href="../images/payments_rounded.svg#icon"/></svg> payments_rounded.</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/search_rounded_fill0_weight400_grade0_24px.svg#icon"/></svg> search_<wbr>rounded_<wbr>fill0_<wbr>weight400_<wbr>grade0_<wbr>24px.</p>
+        <p><svg class="icon"><use href="../images/settings_input_antenna_rounded.svg#icon"/></svg> settings_<wbr>input_<wbr>antenna_<wbr>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>
 
             state the exclusion of warranty; and each file should have at least
             the “copyright” line and a pointer to where the full notice is found.</p>
 
-<pre>&lt;one line to give the program’s
-name and a brief idea of what
-it does.&gt;
+<pre>&lt;one line to give the
+program’s name and a brief
+idea of what it does.&gt;
 Copyright (C) &lt;year&gt;
 &lt;name of author&gt;
 
@@ -756,14 +765,15 @@ You should have received a
 copy of the GNU General Public
 License along with this
 program.  If not, see
-&lt;http://www.gnu.org/licenses/&gt;.</pre>
+&lt;http://www.gnu.org/
+licenses/&gt;.</pre>
 
         <p>Also add information on how to contact you by electronic and paper mail.</p>
 
         <p>If the program does terminal interaction, make it output a short
             notice like this when it starts in an interactive mode:</p>
 
-<pre>&lt;program&gt;  Copyright (C) &lt;year&gt;
+<pre>&lt;program&gt; Copyright (C) &lt;year&gt;
 &lt;name of author&gt;
 This program comes with
 ABSOLUTELY NO WARRANTY; for
@@ -992,10 +1002,11 @@ License, Version 2.0 (the
 “License”); you may not use
 this file except in compliance
 with the License. You may
-obtain a copy of the License at
+obtain a copy of the License
+at
 
-http://www.apache.org/licenses/
-LICENSE-2.0
+http://www.apache.org/
+licenses/LICENSE-2.0
 
 Unless required by applicable
 law or agreed to in writing,
@@ -1005,8 +1016,9 @@ License is distributed on an
 WARRANTIES OR CONDITIONS OF
 ANY KIND, either express or
 implied. See the License for
-the specific language governing
-permissions and limitations
-under the License.</pre>
+the specific language
+governing permissions and
+limitations under the
+License.</pre>
     </body>
 </html>
index 5062c6a3d26b23164d860f5c4d5e3d2e26191dfe..f9c789017d28aa6dcbfbab046dccd7515fccc3e6 100644 (file)
@@ -1,24 +1,25 @@
 <!--
-  Copyright © 2021 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021-2023, 2025 Soren Stoutner <soren@stoutner.com>
 
-  Translation 2021 Francesco Buratti.  Copyright assigned to Soren Stoutner <soren@stoutner.com>.
+  Translation 2021-2023, 2025 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/>.
 
-  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
-<html>
+<html lang="it">
     <head>
         <meta charset="UTF-8">
 
 
         <!-- Setting the color scheme instructs the WebView to respect `prefers-color-scheme` @media CSS. -->
         <meta name="color-scheme" content="light dark">
+
+        <title>Permissions</title>
     </head>
 
     <body>
         <p>Privacy Cell richiede le seguenti autorizzazioni.</p>
 
         <h3>Lettura dello stato e dell'identità del telefono</h3>
-        <p><a href="https://developer.android.com/reference/android/Manifest.permission.html#READ_PHONE_STATE">android.permission.<wbr>READ_PHONE_STATE</a></p>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission.html#READ_PHONE_STATE">android.permission.<wbr>READ_<wbr>PHONE_<wbr>STATE</a></p>
         <p>Richiesta per determinare i protocolli utilizzati dalla rete.</p>
 
-        <h3>Run foreground service</h3>
-        <p><a href="https://developer.android.com/reference/android/Manifest.permission#FOREGROUND_SERVICE">android.permission.<wbr>FOREGROUND_SERVICE</a></p>
-        <p>Allows Privacy Cell to display a realtime monitoring notification icon in the status bar.</p>
+        <h3>Lettura dei numeri di telefono</h3>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission.html#READ_PHONE_NUMBERS">android.permission.<wbr>READ_<wbr>PHONE_<wbr>NUMBERS</a></p>
+        <p>Richiesta per mostrare il nome della rete cellulare e il numero di telefono della SIM card.</p>
+
+        <h3>Mostra notifiche</h3>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission.html#POST_NOTIFICATIONS">android.permission.<wbr>POST_<wbr>NOTIFICATIONS</a></p>
+        <p>Permette a Privacy Cell di mostrare una icona di notifica di monitoraggio in tempo reale nella barra di stato.</p>
+
+        <h3>Esegui il servizio in primo piano</h3>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission#FOREGROUND_SERVICE">android.permission.<wbr>FOREGROUND_<wbr>SERVICE</a></p>
+        <p>Permette a Privacy Cell di aggiornare licona di notifica di monitoraggio in tempo reale anche quando la app non è in primo piano.</p>
+
+        <h3>Utilizzo speciale del servizio in primo piano</h3>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission#FOREGROUND_SERVICE_SPECIAL_USE">android.permission.<wbr>FOREGROUND_<wbr>SERVICE_<wbr>SPECIAL_<wbr>USE</a></p>
+        <p>Specifica il tipo di servizio in primo piano.
+            L'utilizzo speciale è per i servizi che non ricadono in nessuna delle <a href="https://developer.android.com/about/versions/14/changes/fgs-types-required">categorie standard</a>.</p>
+
+        <h3>Esegui all'avvio</h3>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission#RECEIVE_BOOT_COMPLETED">android.permission.<wbr>RECEIVE_<wbr>BOOT_<wbr>COMPLETED</a></p>
+        <p>Permette a Privacy Cell di abilitare il servizio di monitoraggio in tempo reale durante l'avvio del dispositivo.</p>
 
-        <h3>Run at startup</h3>
-        <p><a href="https://developer.android.com/reference/android/Manifest.permission#RECEIVE_BOOT_COMPLETED">android.permission.<wbr>RECEIVE_BOOT_COMPLETED</a></p>
-        <p>Allows Privacy Cell to enable the realtime monitoring service when the phone boots.</p>
+        <h3>Ricevitore dinamico non esportato</h3>
+        <p><a href="https://developer.android.com/about/versions/13/features#runtime-receivers">com.stoutner.privacycell.<wbr>DYNAMIC_<wbr>RECEIVER_<wbr>NOT_<wbr>EXPORTED_<wbr>PERMISSION</a></p>
+        <p>Aggiunta automaticamente a tutte le App che hanno come target API >= 33 (Android >= 13) per impedire ad altre App di connettersi ai ricevitori dinamici senza una autorizzazione esplicita.</p>
     </body>
-</html>
\ No newline at end of file
+</html>
index f2ba655a8f8a6551103888f5669235cb1ce3fc66..768f2850f0c43d35466ca0615edab34e3644a092 100644 (file)
@@ -1,24 +1,25 @@
 <!--
-  Copyright © 2021 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021, 2025 Soren Stoutner <soren@stoutner.com>
 
   Translation 2021 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/>.
 
-  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
-<html>
+<html lang="it">
     <head>
         <meta charset="UTF-8">
 
@@ -26,6 +27,8 @@
 
         <!-- Setting the color scheme instructs the WebView to respect `prefers-color-scheme` @media CSS. -->
         <meta name="color-scheme" content="light dark">
+
+        <title>Privacy Policy</title>
     </head>
 
     <body>
index 03d6c7c7ddac952ac3f73e8faec6028e39feea2a..c51ed359d679fc2b022abb6dd8b221c9bbfa6603 100644 (file)
@@ -1,22 +1,23 @@
 <!--
-  Copyright © 2021-2022 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021-2023, 2025 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/>.
 
-  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
-<html>
+<html lang="ru">
     <head>
         <meta charset="UTF-8">
 
 
         <!-- Setting the color scheme instructs the WebView to respect `prefers-color-scheme` @media CSS. -->
         <meta name="color-scheme" content="light dark">
+
+        <title>Changelog</title>
     </head>
 
     <body>
+        <h3>1.11 (код версии 13)</h3>
+        <p>29 апреля 2025 года - минимальный API 30, целевой API 35</p>
+        <ul>
+            <li>Теперь для каждого соединения можно указывать <a href="https://redmine.stoutner.com/issues/1117">какая используется SIM-карта</a>.</li>
+            <li>Добавлена поддержка <a href="https://redmine.stoutner.com/issues/1192">поиска в logcat</a>.</li>
+            <li>Повышен <a href="https://redmine.stoutner.com/issues/1272">целевой API до 35</a> (Android 15).</li>
+        </ul>
+
+        <h3><a href="https://www.stoutner.com/privacy-cell-1-10/">1.10</a> (код версии 12)</h3>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyCell.git;a=commitdiff;h=d9f4f93fa472e77d526b0621882577ff9490da48;ds=sidebyside">30 октября 2023 года</a> - минимальный API 30, целевой API 34</p>
+        <ul>
+            <li>Создан дополнительный <a href="https://redmine.stoutner.com/issues/988">монохромный значок</a> (может использоваться в Android >= 13).</li>
+            <li>Разрешено включать Privacy Cell в <a href="https://redmine.stoutner.com/issues/1001">системные резервные копии</a>.</li>
+            <li>Целевой API <a href="https://redmine.stoutner.com/issues/1104">повышен до 34</a> (Android 14).</li>
+            <li>Документированы <a href="https://redmine.stoutner.com/issues/940">необходимые разрешения</a> для <a href="https://redmine.stoutner.com/issues/942">новых версий Android</a>.</li>
+            <li>Повторное формирование уведомления о мониторинге в реальном времени каждые <a href="https://redmine.stoutner.com/issues/1105">15 минут</a>.</li>
+        </ul>
+
+        <h3><a href="https://www.stoutner.com/privacy-cell-1-9/">1.9</a> (код версии 11)</h3>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyCell.git;a=commitdiff;h=53f5dd586d2e9eb38280648b9084db15163fe682">5 декабря 2022 года</a> - минимальный API 30, целевой API 33</p>
+        <ul>
+            <li>Целевой API <a href="https://redmine.stoutner.com/issues/890">повышен до 33</a> (Android 13).</li>
+            <li>Отключен <a href="https://redmine.stoutner.com/issues/894">свайп уведомления</a> о мониторинге в реальном времени на Android 13.</li>
+            <li>Включена <a href="https://redmine.stoutner.com/issues/935">поддержка языков для каждого приложения</a> на Android 13.</li>
+            <li>При перезапуске <a href="https://redmine.stoutner.com/issues/913">сохраняется положение прокрутки</a> настроек.</li>
+            <li>Первый полный перевод на русский язык.</li>
+        </ul>
+
         <h3><a href="https://www.stoutner.com/privacy-cell-1-8-1/">1.8.1</a> (код версии 10)</h3>
         <p><a href="https://gitweb.stoutner.com/?p=PrivacyCell.git;a=commitdiff;h=ab7601a6d91b6035862bb47b1ac259855e3aba3b">8 августа 2022 года</a> - минимальный API 30, целевой API 32</p>
         <ul>
             <li>Первый релиз.</li>
         </ul>
     </body>
-</html>
\ No newline at end of file
+</html>
index 19e44e4cc4a62695046924e09e42bfcc5dc00794..3815db4aa4eb62bdfc034e7a274ad91847421958 100644 (file)
@@ -1,22 +1,23 @@
 <!--
-  Copyright © 2021 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021, 2025 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/>.
 
-  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
-<html>
+<html lang="ru">
     <head>
         <meta charset="UTF-8">
 
@@ -24,6 +25,8 @@
 
         <!-- Setting the color scheme instructs the WebView to respect `prefers-color-scheme` @media CSS. -->
         <meta name="color-scheme" content="light dark">
+
+        <title>Contributors</title>
     </head>
 
     <body>
index 6a989f5250a1d783a42d531825210ff2e5afcaaf..1a16b6099153024c5957dc466816d52fded15d62 100644 (file)
@@ -1,22 +1,23 @@
 <!--
-  Copyright 2021-2022 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021-2023, 2025 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/>.
 
-  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
-<html>
+<html lang="ru">
     <head>
         <meta charset="UTF-8">
 
 
         <!-- Setting the color scheme instructs the WebView to respect `prefers-color-scheme` @media CSS. -->
         <meta name="color-scheme" content="light dark">
+        
+        <title>Licenses</title>
     </head>
 
     <body>
         <h3>Авторские права</h3>
-        <p>Авторские права Privacy Cell 2021-2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.</p>
+        <p>Авторские права Privacy Cell 2021-2023, 2025 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.</p>
 
         <h3>Лицензия</h3>
         <p>Privacy Cell выпускается под <a href="https://www.gnu.org/licenses/gpl-3.0.html">лицензией GPLv3+</a>. Полный текст лицензии приведен ниже.
             которые выпускаются под <a href="https://www.apache.org/licenses/LICENSE-2.0">лицензией Apache 2.0</a>. Полный текст лицензии приведен ниже.</p>
 
         <h3>Значки</h3>
-        <p><img class="left" src="../images/secure.svg"/> <img class="left" src="../images/secure_notification.svg"/> являются производными от <code>security</code> и <code>5g</code>,
-            которые являются частью набора значков <a href="https://material.io/icons/">Android Material</a> и выпущены под <a href ="https://www.apache.org/licenses/LICENSE-2.0">лицензией Apache 2.0</a>.
-            Полный текст лицензии приведен ниже. Модификации авторских прав © 2016, 2021-2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+        <p><img class="left" src="../images/secure.svg" alt="Secure"/> <img class="left" src="../images/secure_notification.svg" alt="Secure Notification"/> являются производными от <code>security</code> и
+            <code>5g</code>, которые являются частью набора значков <a href="https://fonts.google.com/icons">Android Material</a> и выпущены под
+            <a href ="https://www.apache.org/licenses/LICENSE-2.0">лицензией Apache 2.0</a>.
+            Полный текст лицензии приведен ниже. Модификации авторских прав 2016, 2021-2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             Получившиеся изображения выпускаются под <a href="https://www.gnu.org/licenses/gpl-3.0.html">лицензией GPLv3+</a>.</p>
-        <p><img class="left" src="../images/insecure.svg"> <img class="left" src="../images/insecure_notification.svg"/> являются производными от <code>security</code> и <code>warning_amber_rounded</code>,
-            которые являются частью набора значков <a href="https://material.io/icons/">Android Material</a> и выпущены под <a href ="https://www.apache.org/licenses/LICENSE-2.0">лицензией Apache 2.0</a>.
-            Модификации авторских прав © 2016, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+        <p><img class="left" src="../images/insecure.svg" alt="Insecure"> <img class="left" src="../images/insecure_notification.svg" alt="Insecure Notification"/> являются производными от
+            <code>security</code> и <code>warning_amber_rounded</code>, которые являются частью набора значков <a href="https://fonts.google.com/icons">Android Material</a> и выпущены под
+            <a href ="https://www.apache.org/licenses/LICENSE-2.0">лицензией Apache 2.0</a>. Модификации авторских прав 2016, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             Получившиеся изображения выпускаются под <a href="https://www.gnu.org/licenses/gpl-3.0.html">лицензией GPLv3+</a>.</p>
-        <p><img class="left" src="../images/antiquated.svg"/> <img class="left" src="../images/antiquated_notification.svg"/> являются производными от <code>security</code> и <code>do_not_disturb</code>,
-            которые являются частью набора значков <a href="https://material.io/icons/">Android Material</a> и выпущены под <a href ="https://www.apache.org/licenses/LICENSE-2.0">лицензией Apache 2.0</a>.
-            Модификации авторских прав © 2016, 2021-2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+        <p><img class="left" src="../images/antiquated.svg" alt="Antiquated"/> <img class="left" src="../images/antiquated_notification.svg" alt="Antiquated Notification"/> являются производными от
+            <code>security</code> и <code>do_not_disturb</code>, которые являются частью набора значков <a href="https://fonts.google.com/icons">Android Material</a> и выпущены под
+            <a href ="https://www.apache.org/licenses/LICENSE-2.0">лицензией Apache 2.0</a>. Модификации авторских прав 2016, 2021-2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             Получившиеся изображения выпускаются под <a href="https://www.gnu.org/licenses/gpl-3.0.html">лицензией GPLv3+</a>.</p>
-        <p><img class="left" src="../images/antiquated_3g.svg"/> является производной от <code>security</code> и <code>3g_mobiledata_rounded</code>,
-            которые являются частью набора значков <a href="https://material.io/icons/">Android Material</a> и выпущены под <a href ="https://www.apache.org/licenses/LICENSE-2.0">лицензией Apache 2.0</a>.
-            Модификации авторских прав © 2016, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+        <p><img class="left" src="../images/antiquated_3g.svg" alt="Antiquated 3G"/> является производной от <code>security</code> и <code>3g_mobiledata_rounded</code>,
+            которые являются частью набора значков <a href="https://fonts.google.com/icons">Android Material</a> и выпущены под <a href ="https://www.apache.org/licenses/LICENSE-2.0">лицензией Apache 2.0</a>.
+            Модификации авторских прав 2016, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             Получившееся изображение выпускается под <a href="https://www.gnu.org/licenses/gpl-3.0.html">лицензией GPLv3+</a>.</p>
-        <p>Следующие значки взяты из набора значков <a href="https://material.io/icons/">Android Material</a>,
+        <p>Следующие значки взяты из набора значков <a href="https://fonts.google.com/icons">Android Material</a>,
             который выпущен под <a href ="https://www.apache.org/licenses/LICENSE-2.0">лицензией Apache 2.0</a>.
             Они не изменились, за исключением информации о макете, такой как цвет и размер. Некоторые из них были переименованы, чтобы обеспечить их соответствие использованию в коде.
             Оригинальные значки и их названия показаны ниже.</p>
         <p><svg class="icon"><use href="../images/bug_report_rounded.svg#icon"/></svg> bug_report_rounded.</p>
         <p><svg class="icon"><use href="../images/call_to_action_rounded.svg#icon"/></svg> call_to_action_rounded.</p>
-        <p><svg class="icon"><use href="../images/chrome_reader_mode_rounded.svg#icon"/></svg> chrome_reader_mode_rounded.</p>
-        <p><svg class="icon"><use href="../images/close_rounded.svg#icon"/></svg> close_rounded.</p>
+        <p><svg class="icon"><use href="../images/chrome_reader_mode_rounded.svg#icon"/></svg> chrome_<wbr>reader_<wbr>mode_<wbr>rounded.</p>
+        <p><svg class="icon"><use href="../images/close_rounded_fill0_weight400_grade0_24px.svg#icon"/></svg> close_<wbr>rounded_<wbr>fill0_<wbr>weight400_<wbr>grade0_<wbr>24px.</p>
         <p><svg class="icon"><use href="../images/content_copy_outlined.svg#icon"/></svg> content_copy_outlined.</p>
         <p><svg class="icon"><use href="../images/fact_check_outlined.svg#icon"/></svg> fact_checked_outlined.</p>
-        <p><svg class="icon"><use href="../images/format_list_bulleted_rounded.svg#icon"/></svg> format_list_bulleted_rounded.</p>
+        <p><svg class="icon"><use href="../images/format_list_bulleted_rounded.svg#icon"/></svg> format_<wbr>list_<wbr>bulleted_<wbr>rounded.</p>
         <p><svg class="icon"><use href="../images/forum_rounded.svg#icon"/></svg> forum_rounded.</p>
         <p><svg class="icon"><use href="../images/groups_filled.svg#icon"/></svg> groups_filled.</p>
-        <p><svg class="icon"><use href="../images/list_alt_rounded.svg#icon"/></svg> list_alt_rounded.</p>
+        <p><svg class="icon"><use href="../images/keyboard_arrow_down_rounded_fill0_weight400_grade0_24px.svg#icon"/></svg>
+            keyboard_<wbr>arrow_<wbr>down_<wbr>rounded_<wbr>fill0_<wbr>weight400_<wbr>grade0_<wbr>24px.</p>
+        <p><svg class="icon"><use href="../images/keyboard_arrow_up_rounded_fill0_weight400_grade0_24px.svg#icon"/></svg>
+            keyboard_<wbr>arrow_<wbr>up_<wbr>rounded_<wbr>fill0_<wbr>weight400_<wbr>grade0_<wbr>24px.</p>
+        <p><svg class="icon"><use href="../images/list_alt_rounded_24px.svg#icon"/></svg> list_alt_rounded_24px.</p>
         <p><svg class="icon"><use href="../images/map_rounded.svg#icon"/></svg> map_rounded.</p>
-        <p><svg class="icon"><use href="../images/notification_important_rounded_filled.svg#icon"/></svg> notification_important_<wbr>rounded_filled.</p>
+        <p><svg class="icon"><use href="../images/notification_important_rounded_filled.svg#icon"/></svg> notification_<wbr>important_<wbr>rounded_<wbr>filled.</p>
         <p><svg class="icon"><use href="../images/payments_rounded.svg#icon"/></svg> payments_rounded.</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/search_rounded_fill0_weight400_grade0_24px.svg#icon"/></svg> search_<wbr>rounded_<wbr>fill0_<wbr>weight400_<wbr>grade0_<wbr>24px.</p>
+        <p><svg class="icon"><use href="../images/settings_input_antenna_rounded.svg#icon"/></svg> settings_<wbr>input_<wbr>antenna_<wbr>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>
 
             state the exclusion of warranty; and each file should have at least
             the “copyright” line and a pointer to where the full notice is found.</p>
 
-<pre>&lt;one line to give the program’s
-name and a brief idea of what
-it does.&gt;
+<pre>&lt;one line to give the
+program’s name and a brief
+idea of what it does.&gt;
 Copyright (C) &lt;year&gt;
 &lt;name of author&gt;
 
@@ -754,14 +763,15 @@ You should have received a
 copy of the GNU General Public
 License along with this
 program.  If not, see
-&lt;http://www.gnu.org/licenses/&gt;.</pre>
+&lt;http://www.gnu.org/
+licenses/&gt;.</pre>
 
         <p>Also add information on how to contact you by electronic and paper mail.</p>
 
         <p>If the program does terminal interaction, make it output a short
             notice like this when it starts in an interactive mode:</p>
 
-<pre>&lt;program&gt;  Copyright (C) &lt;year&gt;
+<pre>&lt;program&gt; Copyright (C) &lt;year&gt;
 &lt;name of author&gt;
 This program comes with
 ABSOLUTELY NO WARRANTY; for
@@ -990,10 +1000,11 @@ License, Version 2.0 (the
 “License”); you may not use
 this file except in compliance
 with the License. You may
-obtain a copy of the License at
+obtain a copy of the License
+at
 
-http://www.apache.org/licenses/
-LICENSE-2.0
+http://www.apache.org/
+licenses/LICENSE-2.0
 
 Unless required by applicable
 law or agreed to in writing,
@@ -1003,8 +1014,9 @@ License is distributed on an
 WARRANTIES OR CONDITIONS OF
 ANY KIND, either express or
 implied. See the License for
-the specific language governing
-permissions and limitations
-under the License.</pre>
+the specific language
+governing permissions and
+limitations under the
+License.</pre>
     </body>
 </html>
index 8c84905142f45a8eeaeefd8fd1762109a3cb186a..4d1f3746c50fe6e4e41bbe05d1e8703e3378473c 100644 (file)
@@ -1,22 +1,23 @@
 <!--
-  Copyright © 2021 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021-2023, 2025 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/>.
 
-  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
-<html>
+<html lang="ru">
     <head>
         <meta charset="UTF-8">
 
 
         <!-- Setting the color scheme instructs the WebView to respect `prefers-color-scheme` @media CSS. -->
         <meta name="color-scheme" content="light dark">
+
+        <title>Permissions</title>
     </head>
 
     <body>
         <p>Privacy Cell использует следующие разрешения:</p>
 
         <h3>Чтение статуса и идентификатора телефона</h3>
-        <p><a href="https://developer.android.com/reference/android/Manifest.permission.html#READ_PHONE_STATE">android.permission.<wbr>READ_PHONE_STATE</a></p>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission.html#READ_PHONE_STATE">android.permission.<wbr>READ_<wbr>PHONE_<wbr>STATE</a></p>
         <p>Необходим для определения используемых протоколов в сети сотовой связи.</p>
 
-        <h3>Запуск фоновой службы</h3>
-        <p><a href="https://developer.android.com/reference/android/Manifest.permission#FOREGROUND_SERVICE">android.permission.<wbr>FOREGROUND_SERVICE</a></p>
+        <h3>Чтение номеров телефонов</h3>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission.html#READ_PHONE_NUMBERS">android.permission.<wbr>READ_<wbr>PHONE_<wbr>NUMBERS</a></p>
+        <p>Требуется для отображения названия сотовой сети и номера телефона SIM-карты.</p>
+
+        <h3>Отображение уведомлений</h3>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission.html#POST_NOTIFICATIONS">android.permission.<wbr>POST_<wbr>NOTIFICATIONS</a></p>
         <p>Разрешает Privacy Cell отображать значок уведомления о мониторинге в реальном времени в строке состояния.</p>
 
+        <h3>Запуск фоновой службы</h3>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission#FOREGROUND_SERVICE">android.permission.<wbr>FOREGROUND_<wbr>SERVICE</a></p>
+        <p>Разрешает Privacy Cell обновлять значок уведомления о мониторинге в реальном времени при работе приложения в фоновом режиме.</p>
+
+        <h3>Сервис специального назначения в фоновом режиме</h3>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission#FOREGROUND_SERVICE_SPECIAL_USE">android.permission.<wbr>FOREGROUND_<wbr>SERVICE_<wbr>SPECIAL_<wbr>USE</a></p>
+        <p>Определяет тип сервиса фонового режима.
+            Специальное использование предназначено для сервисов, которые не соответствуют ни одной из
+            <a href="https://developer.android.com/about/versions/14/changes/fgs-types-required">стандартных категорий</a>.</p>
+
         <h3>Запуск при загрузке</h3>
-        <p><a href="https://developer.android.com/reference/android/Manifest.permission#RECEIVE_BOOT_COMPLETED">android.permission.<wbr>RECEIVE_BOOT_COMPLETED</a></p>
+        <p><a href="https://developer.android.com/reference/android/Manifest.permission#RECEIVE_BOOT_COMPLETED">android.permission.<wbr>RECEIVE_<wbr>BOOT_<wbr>COMPLETED</a></p>
         <p>Разрешает Privacy Cell включать службу мониторинга в реальном времени при загрузке телефона.</p>
+
+        <h3>Динамический ресивер не экспортируется</h3>
+        <p><a href="https://developer.android.com/about/versions/13/features#runtime-receivers">com.stoutner.privacycell.<wbr>DYNAMIC_<wbr>RECEIVER_<wbr>NOT_<wbr>EXPORTED_<wbr>PERMISSION</a></p>
+        <p>Автоматически добавляется во все приложения, использующие API >= 33 (Android >= 13) для предотвращения подключения других приложений к динамическим приемникам без явного разрешения.</p>
     </body>
-</html>
\ No newline at end of file
+</html>
index e30257e16a80ee1eb0ae23e5134dd1bbd72ff65d..b46de5b6ac450c3b6bf9b71dd001f74d8a1e9db0 100644 (file)
@@ -1,22 +1,23 @@
 <!--
-  Copyright © 2021 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021, 2025 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/>.
 
-  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
-<html>
+<html lang="ru">
     <head>
         <meta charset="UTF-8">
 
@@ -24,6 +25,8 @@
 
         <!-- Setting the color scheme instructs the WebView to respect `prefers-color-scheme` @media CSS. -->
         <meta name="color-scheme" content="light dark">
+
+        <title>Privacy Policy</title>
     </head>
 
     <body>
index e7ba180168a2c39cc54715aef9197f393e31c9cb..070edf81d48cb3134d266a2f38190fc366e91912 100644 (file)
@@ -1,20 +1,20 @@
-/*
- * Copyright 2021-2022 Soren Stoutner <soren@stoutner.com>.
+/* SPDX-License-Identifier: GPL-3.0-or-later
+ * SPDX-FileCopyrightText: 2021-2025 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/>.
  *
- * 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.
+ * This program 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.
+ * This program 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/>.
+ * You should have received a copy of the GNU General Public License along with
+ * this program.  If not, see <https://www.gnu.org/licenses/>.
  */
 
 package com.stoutner.privacycell.activities
@@ -22,12 +22,21 @@ package com.stoutner.privacycell.activities
 import android.content.ClipData
 import android.content.ClipboardManager
 import android.net.Uri
+import android.os.Build
 import android.os.Bundle
 import android.provider.OpenableColumns
+import android.text.Editable
+import android.text.TextWatcher
+import android.util.Base64
 import android.util.TypedValue
+import android.view.KeyEvent
 import android.view.Menu
 import android.view.MenuItem
-import android.widget.ScrollView
+import android.view.View
+import android.view.inputmethod.InputMethodManager
+import android.webkit.WebView
+import android.widget.EditText
+import android.widget.LinearLayout
 import android.widget.TextView
 
 import androidx.activity.result.contract.ActivityResultContracts
@@ -52,25 +61,25 @@ import java.lang.Exception
 import java.nio.charset.StandardCharsets
 
 // Define the class constants.
-private const val SCROLLVIEW_POSITION = "scrollview_position"
+private const val SCROLL_Y = "scroll_y"
 
 class LogcatActivity : AppCompatActivity() {
-    // Define the class variables.
-    private var scrollViewYPositionInt = 0
+    // Declare the class variables.
+    private lateinit var inputMethodManager: InputMethodManager
+    private lateinit var logcatPlainTextStringBuilder: StringBuilder
 
     // Define the class views.
+    private lateinit var logcatWebView: WebView
+    private lateinit var searchEditText: EditText
+    private lateinit var searchLinearLayout: LinearLayout
     private lateinit var swipeRefreshLayout: SwipeRefreshLayout
-    private lateinit var logcatScrollView: ScrollView
-    private lateinit var logcatTextView: TextView
+    private lateinit var toolbar: Toolbar
 
     // Define the save logcat activity result launcher.  It must be defined before `onCreate()` is run or the app will crash.
     private val saveLogcatActivityResultLauncher = registerForActivityResult(ActivityResultContracts.CreateDocument("text/plain")) { fileNameUri: Uri? ->
         // Only save the file if the URI is not null, which happens if the user exited the file picker by pressing back.
         if (fileNameUri != null) {
             try {
-                // Get the logcat as a string.
-                val logcatString = logcatTextView.text.toString()
-
                 // Open an output stream.
                 val outputStream = contentResolver.openOutputStream(fileNameUri)!!
 
@@ -78,7 +87,7 @@ class LogcatActivity : AppCompatActivity() {
                 CoroutineScope(Dispatchers.Main).launch {
                     withContext(Dispatchers.IO) {
                         // Write the logcat string to the output stream.
-                        outputStream.write(logcatString.toByteArray(StandardCharsets.UTF_8))
+                        outputStream.write(logcatPlainTextStringBuilder.toString().toByteArray(StandardCharsets.UTF_8))
 
                         // Close the output stream.
                         outputStream.close()
@@ -98,10 +107,10 @@ class LogcatActivity : AppCompatActivity() {
                 contentResolverCursor.close()
 
                 // Display a snackbar with the saved logcat information.
-                Snackbar.make(logcatTextView, getString(R.string.logcat_saved, fileNameString), Snackbar.LENGTH_SHORT).show()
+                Snackbar.make(logcatWebView, getString(R.string.logcat_saved, fileNameString), Snackbar.LENGTH_SHORT).show()
             } catch (exception: Exception) {
                 // Display a snackbar with the error message.
-                Snackbar.make(logcatTextView, getString(R.string.error_saving_logcat, exception.toString()), Snackbar.LENGTH_INDEFINITE).show()
+                Snackbar.make(logcatWebView, getString(R.string.error_saving_logcat, exception.toString()), Snackbar.LENGTH_INDEFINITE).show()
             }
         }
     }
@@ -117,17 +126,18 @@ class LogcatActivity : AppCompatActivity() {
         val bottomAppBar = sharedPreferences.getBoolean(getString(R.string.bottom_app_bar_key), false)
 
         // Set the content view.
-        if (bottomAppBar) {
+        if (bottomAppBar)
             setContentView(R.layout.logcat_bottom_appbar)
-        } else {
+        else
             setContentView(R.layout.logcat_top_appbar)
-        }
 
         // Get handles for the views.
-        val toolbar = findViewById<Toolbar>(R.id.toolbar)
+        toolbar = findViewById(R.id.toolbar)
+        searchLinearLayout = findViewById(R.id.search_linearlayout)
+        searchEditText = findViewById(R.id.search_edittext)
+        val searchCountTextView = findViewById<TextView>(R.id.search_count_textview)
         swipeRefreshLayout = findViewById(R.id.swiperefreshlayout)
-        logcatScrollView = findViewById(R.id.scrollview)
-        logcatTextView = findViewById(R.id.logcat_textview)
+        logcatWebView = findViewById(R.id.logcat_webview)
 
         // Set the toolbar as the action bar.
         setSupportActionBar(toolbar)
@@ -140,8 +150,8 @@ class LogcatActivity : AppCompatActivity() {
 
         // Implement swipe to refresh.
         swipeRefreshLayout.setOnRefreshListener {
-            // Get the current logcat.
-            getLogcat()
+            // Populate the current logcat.
+            populateLogcat()
         }
 
         // Set the swipe refresh color scheme according to the theme.
@@ -159,14 +169,65 @@ class LogcatActivity : AppCompatActivity() {
         // Set the swipe refresh background color.
         swipeRefreshLayout.setProgressBackgroundColorSchemeColor(colorBackgroundInt)
 
-        // Check to see if the activity has been restarted.
-        if (savedInstanceState != null) {
-            // Get the saved scrollview position.
-            scrollViewYPositionInt = savedInstanceState.getInt(SCROLLVIEW_POSITION)
+        // Get a handle for the input method manager.
+        inputMethodManager = (getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager)
+
+        // Search for the string on the page whenever a character changes in the search edit text.
+        searchEditText.addTextChangedListener(object : TextWatcher {
+            override fun beforeTextChanged(charSequence: CharSequence, start: Int, count: Int, after: Int) {
+                // Do nothing.
+            }
+
+            override fun onTextChanged(charSequence: CharSequence, start: Int, before: Int, count: Int) {
+                // Do nothing.
+            }
+
+            override fun afterTextChanged(editable: Editable) {
+                // Search for the text in the WebView.
+                logcatWebView.findAllAsync(searchEditText.text.toString())
+            }
+        })
+
+        // Set the `check mark` button for the search edit text keyboard to close the soft keyboard.
+        searchEditText.setOnKeyListener { _: View?, keyCode: Int, keyEvent: KeyEvent ->
+            if ((keyEvent.action == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_ENTER)) {  // The `enter` key was pressed.
+                // Search for the text in the WebView.
+                logcatWebView.findAllAsync(searchEditText.text.toString())
+
+                // Hide the soft keyboard.
+                inputMethodManager.hideSoftInputFromWindow(logcatWebView.windowToken, 0)
+
+                // Consume the event.
+                return@setOnKeyListener true
+            } else {  // A different key was pressed.
+                // Do not consume the event.
+                return@setOnKeyListener false
+            }
         }
 
-        // Get the logcat.
-        getLogcat()
+        // Update the find on page count.
+        logcatWebView.setFindListener { activeMatchOrdinal, numberOfMatches, isDoneCounting ->
+            if (isDoneCounting && (numberOfMatches == 0)) {  // There are no matches.
+                // Set the search count text view to be `0/0`.
+                searchCountTextView.setText(R.string.zero_of_zero)
+            } else if (isDoneCounting) {  // There are matches.
+                // The active match ordinal is zero-based.
+                val activeMatch = activeMatchOrdinal + 1
+
+                // Build the match string.
+                val matchString = "$activeMatch/$numberOfMatches"
+
+                // Update the search count text view.
+                searchCountTextView.text = matchString
+            }
+        }
+
+        // Restore the WebView scroll position if the activity has been restarted.
+        if (savedInstanceState != null)
+            logcatWebView.scrollY = savedInstanceState.getInt(SCROLL_Y)
+
+        // Populate the logcat.
+        populateLogcat()
     }
 
     override fun onCreateOptionsMenu(menu: Menu): Boolean {
@@ -180,18 +241,48 @@ class LogcatActivity : AppCompatActivity() {
     override fun onOptionsItemSelected(menuItem: MenuItem): Boolean {
         // Run the commands that correlate to the selected menu item.
         return when (menuItem.itemId) {
+            R.id.search -> {  // Search was selected.
+                // Set the minimum height of the search linear layout to match the toolbar.
+                searchLinearLayout.minimumHeight = toolbar.height
+
+                // Hide the toolbar.
+                toolbar.visibility = View.GONE
+
+                // Show the search linear layout.
+                searchLinearLayout.visibility = View.VISIBLE
+
+                // Display the keyboard once the UI has quiesced.
+                searchLinearLayout.post {
+                    // Set the focus on the find on page edit text.
+                    searchEditText.requestFocus()
+
+                    // Get a handle for the input method manager.
+                    val inputMethodManager = (getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager)
+
+                    // Display the keyboard.  `0` sets no input flags.
+                    inputMethodManager.showSoftInput(searchEditText, 0)
+                }
+
+                // Resume the WebView timers.  For some reason they get automatically paused, which prevents searching.
+                logcatWebView.resumeTimers()
+
+                // Consume the event.
+                return true
+            }
+
             R.id.copy -> {  // Copy was selected.
                 // Get a handle for the clipboard manager.
                 val clipboardManager = getSystemService(CLIPBOARD_SERVICE) as ClipboardManager
 
                 // Save the logcat in a clip data.
-                val logcatClipData = ClipData.newPlainText(getString(R.string.logcat), logcatTextView.text)
+                val logcatClipData = ClipData.newPlainText(getString(R.string.logcat), logcatPlainTextStringBuilder)
 
                 // Place the clip data on the clipboard.
                 clipboardManager.setPrimaryClip(logcatClipData)
 
-                // Display a snackbar.
-                Snackbar.make(logcatTextView, R.string.logcat_copied, Snackbar.LENGTH_SHORT).show()
+                // Display a snackbar if the API <= 32 (Android 12L).  Beginning in Android 13 the OS displays a notification that covers up the snackbar.
+                if (Build.VERSION.SDK_INT <= 32)
+                    Snackbar.make(logcatWebView, R.string.logcat_copied, Snackbar.LENGTH_SHORT).show()
 
                 // Consume the event.
                 true
@@ -213,11 +304,8 @@ class LogcatActivity : AppCompatActivity() {
                     // Wait for the process to finish.
                     process.waitFor()
 
-                    // Reset the scroll view Y position int.
-                    scrollViewYPositionInt = 0
-
                     // Reload the logcat.
-                    getLogcat()
+                    populateLogcat()
                 } catch (exception: Exception) {
                     // Do nothing.
                 }
@@ -233,18 +321,15 @@ class LogcatActivity : AppCompatActivity() {
         }
     }
 
-    public override fun onSaveInstanceState(savedInstanceState: Bundle) {
+    public override fun onSaveInstanceState(outState: Bundle) {
         // Run the default commands.
-        super.onSaveInstanceState(savedInstanceState)
-
-        // Get the scrollview Y position.
-        val scrollViewYPositionInt = logcatScrollView.scrollY
+        super.onSaveInstanceState(outState)
 
-        // Store the scrollview Y position in the bundle.
-        savedInstanceState.putInt(SCROLLVIEW_POSITION, scrollViewYPositionInt)
+        // Store the scroll Y position in the bundle.
+        outState.putInt(SCROLL_Y, logcatWebView.scrollY)
     }
 
-    private fun getLogcat() {
+    private fun populateLogcat() {
         try {
             // Get the logcat.  `-b all` gets all the buffers (instead of just crash, main, and system).  `-v long` produces more complete information.  `-d` dumps the logcat and exits.
             val getLogcatProcess = Runtime.getRuntime().exec("logcat -b all -v long -d")
@@ -252,8 +337,83 @@ class LogcatActivity : AppCompatActivity() {
             // Wrap the logcat in a buffered reader.
             val logcatBufferedReader = BufferedReader(InputStreamReader(getLogcatProcess.inputStream))
 
-            // Display the logcat.
-            logcatTextView.text = logcatBufferedReader.readText()
+            // Reset the logcat plain text string.
+            logcatPlainTextStringBuilder = StringBuilder()
+
+            // Create a logcat HTML string builder.
+            val logcatHtmlStringBuilder = StringBuilder()
+
+            // Populate the initial HTML.
+            logcatHtmlStringBuilder.append("<html>")
+            logcatHtmlStringBuilder.append("<head>")
+            logcatHtmlStringBuilder.append("<style>")
+
+            // Set the word break so that lines never exceed the width of the screen.
+            logcatHtmlStringBuilder.append("body { word-break: break-word; }")
+
+            // Set the colors.
+            logcatHtmlStringBuilder.append("@media (prefers-color-scheme: dark) { body { color: #C1C1C1;  /* Gray 350 */ background-color: #303030;  /* Gray 860 */ } }")
+            logcatHtmlStringBuilder.append("span.header { color: #0D47A1;  /* Blue 900 */ } @media (prefers-color-scheme: dark) { span.header { color: #8AB4F8;  /* Violet 500 */ } }")
+            logcatHtmlStringBuilder.append("strong.crash { color: #B71C1C;  /* Red 900. */ } @media (prefers-color-scheme: dark) { strong.crash { color: #E24B4C;  /* Red Night. */ } }")
+            logcatHtmlStringBuilder.append("span.crash { color: #EF5350;  /* Red 400. */ } @media (prefers-color-scheme: dark) { span.crash { color: #EF9A9A;  /* Red Night. */ } }")
+
+            // Close the style tag.
+            logcatHtmlStringBuilder.append("</style>")
+
+            // Respect dark mode.
+            logcatHtmlStringBuilder.append("<meta name=\"color-scheme\" content=\"light dark\">")
+
+            // Start the HTML body.
+            logcatHtmlStringBuilder.append("</head>")
+            logcatHtmlStringBuilder.append("<body>")
+
+            // Create a logcat line string.
+            var logcatLineString: String?
+
+            while (logcatBufferedReader.readLine().also { logcatLineString = it } != null) {
+                // Populate the logcat plain text string builder.
+                logcatPlainTextStringBuilder.append(logcatLineString)
+
+                // Add a line break.
+                logcatPlainTextStringBuilder.append("\n")
+
+                // Trim the string, which is necessary for correct detection of lines that start with `at`.
+                logcatLineString = logcatLineString!!.trim()
+
+                // Apply syntax highlighting to the logcat.
+                if (logcatLineString!!.contains("crash") || logcatLineString!!.contains("Exception") ) {  // Colorize crashes.
+                    logcatHtmlStringBuilder.append("<strong class=\"crash\">")
+                    logcatHtmlStringBuilder.append(logcatLineString)
+                    logcatHtmlStringBuilder.append("</strong>")
+                } else if (logcatLineString!!.startsWith("at") || logcatLineString!!.startsWith("Process:") || logcatLineString!!.contains("FATAL")) {  // Colorize lines relating to crashes.
+                    logcatHtmlStringBuilder.append("<span class=\"crash\">")
+                    logcatHtmlStringBuilder.append(logcatLineString)
+                    logcatHtmlStringBuilder.append("</span>")
+                } else if (logcatLineString!!.startsWith("-")) {  // Colorize the headers.
+                    logcatHtmlStringBuilder.append("<span class=\"header\">")
+                    logcatHtmlStringBuilder.append(logcatLineString)
+                    logcatHtmlStringBuilder.append("</span>")
+                } else if (logcatLineString!!.startsWith("[ ")) {  // Colorize the time stamps.
+                    logcatHtmlStringBuilder.append("<span style=color:gray>")
+                    logcatHtmlStringBuilder.append(logcatLineString)
+                    logcatHtmlStringBuilder.append("</span>")
+                } else {  // Display the standard lines.
+                    logcatHtmlStringBuilder.append(logcatLineString)
+                }
+
+                // Add a line break.
+                logcatHtmlStringBuilder.append("<br>")
+            }
+
+            // Close the HTML.
+            logcatHtmlStringBuilder.append("</body>")
+            logcatHtmlStringBuilder.append("</html>")
+
+            // Encode the logcat HTML.
+            val base64EncodedLogcatHtml: String = Base64.encodeToString(logcatHtmlStringBuilder.toString().toByteArray(Charsets.UTF_8), Base64.NO_PADDING)
+
+            // Load the encoded logcat.
+            logcatWebView.loadData(base64EncodedLogcatHtml, "text/html", "base64")
 
             // Close the buffered reader.
             logcatBufferedReader.close()
@@ -261,13 +421,37 @@ class LogcatActivity : AppCompatActivity() {
             // Do nothing.
         }
 
-        // Update the scroll position after the text is populated.
-        logcatTextView.post {
-            // Set the scroll position.
-            logcatScrollView.scrollY = scrollViewYPositionInt
-        }
-
         // Stop the swipe to refresh animation if it is displayed.
         swipeRefreshLayout.isRefreshing = false
     }
+
+    // The view parameter cannot be removed because it is called from the layout onClick.
+    fun closeSearch(@Suppress("UNUSED_PARAMETER")view: View?) {
+        // Delete the contents of the search edit text.
+        searchEditText.text = null
+
+        // Clear the highlighted phrases in the logcat WebView.
+        logcatWebView.clearMatches()
+
+        // Hide the search linear layout.
+        searchLinearLayout.visibility = View.GONE
+
+        // Show the toolbar.
+        toolbar.visibility = View.VISIBLE
+
+        // Hide the keyboard.
+        inputMethodManager.hideSoftInputFromWindow(toolbar.windowToken, 0)
+    }
+
+    // The view parameter cannot be removed because it is called from the layout onClick.
+    fun searchNext(@Suppress("UNUSED_PARAMETER")view: View?) {
+        // Go to the next highlighted phrase on the page. `true` goes forwards instead of backwards.
+        logcatWebView.findNext(true)
+    }
+
+    // The view parameter cannot be removed because it is called from the layout onClick.
+    fun searchPrevious(@Suppress("UNUSED_PARAMETER")view: View?) {
+        // Go to the previous highlighted phrase on the page.  `false` goes backwards instead of forwards.
+        logcatWebView.findNext(false)
+    }
 }
index dcdd6a3a0fb882554a66561ad2fe8ea6b29b45a6..3b89b88b4377b72963e6e8d0af7331ebe5f85446 100644 (file)
@@ -1,20 +1,20 @@
-/*
- * Copyright 2021-2022 Soren Stoutner <soren@stoutner.com>.
+/* SPDX-License-Identifier: GPL-3.0-or-later
+ * SPDX-FileCopyrightText: 2021-2022, 2025 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/>.
  *
- * 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.
+ * This program 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.
+ * This program 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/>.
+ * You should have received a copy of the GNU General Public License along with
+ * this program.  If not, see <https://www.gnu.org/licenses/>.
  */
 
 // The suppression of deprecation lint can be removed once the minimum API >= 31.
@@ -28,10 +28,11 @@ import android.app.ActivityManager
 import android.content.Context
 import android.content.Intent
 import android.content.pm.PackageManager
-import android.net.Uri
+import android.os.Build
 import android.os.Bundle
 import android.telephony.PhoneStateListener  // This can be replaced by `TelephonyCallback` once the minimum API >= 31.
 import android.telephony.ServiceState
+import android.telephony.SubscriptionManager
 import android.telephony.TelephonyDisplayInfo
 import android.telephony.TelephonyManager
 import android.view.MenuItem
@@ -45,7 +46,9 @@ import androidx.appcompat.app.ActionBarDrawerToggle
 import androidx.appcompat.app.AppCompatActivity
 import androidx.appcompat.content.res.AppCompatResources
 import androidx.appcompat.widget.Toolbar
+import androidx.cardview.widget.CardView
 import androidx.core.app.ActivityCompat
+import androidx.core.net.toUri
 import androidx.core.view.GravityCompat
 import androidx.drawerlayout.widget.DrawerLayout
 import androidx.preference.PreferenceManager
@@ -70,7 +73,7 @@ class PrivacyCellActivity : AppCompatActivity(), NavigationView.OnNavigationItem
     // Declare the class views.
     private lateinit var actionBarDrawerToggle: ActionBarDrawerToggle
     private lateinit var drawerLayout: DrawerLayout
-    private lateinit var overallStatusLinearLayout: LinearLayout
+    private lateinit var overallStatusCardView: CardView
     private lateinit var overallStatusImageView: ImageView
     private lateinit var overallStatusTextView: TextView
 
@@ -102,15 +105,17 @@ class PrivacyCellActivity : AppCompatActivity(), NavigationView.OnNavigationItem
         // Get handles for the views.
         drawerLayout = findViewById(R.id.drawerlayout)
         val toolbar = findViewById<Toolbar>(R.id.toolbar)
-        overallStatusLinearLayout = findViewById(R.id.overall_status_linearlayout)
+        overallStatusCardView = findViewById(R.id.overall_status_cardview)
         overallStatusImageView = findViewById(R.id.overall_status_imageview)
         overallStatusTextView = findViewById(R.id.overall_status_textview)
-        val voiceNetworkLinearLayout = findViewById<LinearLayout>(R.id.voice_network_linearlayout)
+        val voiceNetworkCardView = findViewById<CardView>(R.id.voice_network_cardview)
         val voiceNetworkTextView = findViewById<TextView>(R.id.voice_network)
         val voiceNetworkDetailsTextView = findViewById<TextView>(R.id.voice_network_details)
+        val voiceNetworkSubscriptionInfoTextView = findViewById<TextView>(R.id.voice_network_subscription_info)
         val dataNetworkLinearLayout = findViewById<LinearLayout>(R.id.data_network_linearlayout)
         val dataNetworkTextView = findViewById<TextView>(R.id.data_network)
         val dataNetworkDetailsTextView = findViewById<TextView>(R.id.data_network_details)
+        val dataNetworkSubscriptionInfoTextView = findViewById<TextView>(R.id.data_network_subscription_info)
         val additionalNetworkInfoLinearLayout = findViewById<LinearLayout>(R.id.additional_network_info_linearlayout)
         val additionalNetworkInfoTextView = findViewById<TextView>(R.id.additional_network_info)
         val additionalNetworkInfoDetailsTextView = findViewById<TextView>(R.id.additional_network_info_details)
@@ -157,6 +162,9 @@ class PrivacyCellActivity : AppCompatActivity(), NavigationView.OnNavigationItem
         // Instantiate the protocol helper.
         val protocolHelper = ProtocolHelper()
 
+        // Get a handle for the subscription manager.
+        val subscriptionManager = getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE) as SubscriptionManager
+
         // Define the phone state listener.  The `PhoneStateListener` can be replaced by `TelephonyCallback` once the minimum API >= 31.
         phoneStateListener = object : PhoneStateListener() {
             @Deprecated("Deprecated in Java")
@@ -173,9 +181,31 @@ class PrivacyCellActivity : AppCompatActivity(), NavigationView.OnNavigationItem
                 // Get the voice network type.
                 val voiceNetworkStringArray = protocolHelper.getNetworkTypeStringArray(voiceNetworkTypeInt, applicationContext)
 
+                // Get the default voice subscription id.
+                val voiceSubscriptionId = SubscriptionManager.getDefaultVoiceSubscriptionId()
+
+                // Create the voice subscription info string.
+                var voiceSubscriptionInfoString = ""
+
+                // Populate the voice carrier info string if the appropriate permission has been granted.
+                if (ActivityCompat.checkSelfPermission(applicationContext, Manifest.permission.READ_PHONE_NUMBERS) == PackageManager.PERMISSION_GRANTED) {
+                    // Populate the voice carrier info string.  The deprecated command must be used until the API >= 33.
+                    voiceSubscriptionInfoString = if (Build.VERSION.SDK_INT <= 32)
+                        "${subscriptionManager.getActiveSubscriptionInfo(voiceSubscriptionId).carrierName} – ${subscriptionManager.getActiveSubscriptionInfo(voiceSubscriptionId).number}"
+                    else
+                        "${subscriptionManager.getActiveSubscriptionInfo(voiceSubscriptionId).carrierName} – ${subscriptionManager.getPhoneNumber(voiceSubscriptionId)}"
+                }
+
                 // Populate the voice network text views.
                 voiceNetworkTextView.text = getString(R.string.voice_network, voiceNetworkStringArray[0])
                 voiceNetworkDetailsTextView.text = voiceNetworkStringArray[1]
+                voiceNetworkSubscriptionInfoTextView.text = voiceSubscriptionInfoString
+
+                // Hide the voice network details text view if it is empty, which happens with Wi-Fi calling.
+                if (voiceNetworkDetailsTextView.text.isNullOrBlank())
+                    voiceNetworkDetailsTextView.visibility = View.GONE
+                else
+                    voiceNetworkDetailsTextView.visibility = View.VISIBLE
 
                 // Set the color of the voice network.
                 when (voiceNetworkSecurityStatus) {
@@ -185,7 +215,7 @@ class PrivacyCellActivity : AppCompatActivity(), NavigationView.OnNavigationItem
                 }
 
                 // Set the voice network click listener.
-                voiceNetworkLinearLayout.setOnClickListener {
+                voiceNetworkCardView.setOnClickListener {
                     // Instantiate the voice network dialog fragment according to the network type.
                     val voiceNetworkDialogFragment = when (voiceNetworkTypeInt) {
                         TelephonyManager.NETWORK_TYPE_UNKNOWN -> WebViewDialog().type(WebViewDialog.NETWORK_UNKNOWN)
@@ -195,7 +225,7 @@ class PrivacyCellActivity : AppCompatActivity(), NavigationView.OnNavigationItem
                         TelephonyManager.NETWORK_TYPE_CDMA -> WebViewDialog().type(WebViewDialog.NETWORK_CDMA)
                         TelephonyManager.NETWORK_TYPE_EVDO_0 -> WebViewDialog().type(WebViewDialog.NETWORK_EVDO_0)
                         TelephonyManager.NETWORK_TYPE_EVDO_A -> WebViewDialog().type(WebViewDialog.NETWORK_EVDO_A)
-                        TelephonyManager.NETWORK_TYPE_1xRTT -> WebViewDialog().type(WebViewDialog.NETWORK_1xRTT)
+                        TelephonyManager.NETWORK_TYPE_1xRTT -> WebViewDialog().type(WebViewDialog.NETWORK_1XRTT)
                         TelephonyManager.NETWORK_TYPE_HSDPA -> WebViewDialog().type(WebViewDialog.NETWORK_HSDPA)
                         TelephonyManager.NETWORK_TYPE_HSUPA -> WebViewDialog().type(WebViewDialog.NETWORK_HSUPA)
                         TelephonyManager.NETWORK_TYPE_HSPA -> WebViewDialog().type(WebViewDialog.NETWORK_HSPA)
@@ -233,9 +263,25 @@ class PrivacyCellActivity : AppCompatActivity(), NavigationView.OnNavigationItem
                 val dataNetworkStringArray = protocolHelper.getNetworkTypeStringArray(dataNetworkTypeInt, applicationContext)
                 val additionalNetworkInfoStringArray = protocolHelper.getAdditionalNetworkInfoStringArray(additionalNetworkInfoTypeInt, applicationContext)
 
+                // Get the active data subscription id.
+                val dataSubscriptionId = SubscriptionManager.getActiveDataSubscriptionId()
+
+                // Create the data carrier info string.
+                var dataSubscriptionInfoString = ""
+
+                // Populate the data carrier info string if the appropriate permission has been granted.
+                if (ActivityCompat.checkSelfPermission(applicationContext, Manifest.permission.READ_PHONE_NUMBERS) == PackageManager.PERMISSION_GRANTED) {
+                    // Populate the data carrier info string.  The deprecated command must be used until the API >= 33.
+                    dataSubscriptionInfoString = if (Build.VERSION.SDK_INT <= 32)
+                        "${subscriptionManager.getActiveSubscriptionInfo(dataSubscriptionId).carrierName} – ${subscriptionManager.getActiveSubscriptionInfo(dataSubscriptionId).number}"
+                    else
+                        "${subscriptionManager.getActiveSubscriptionInfo(dataSubscriptionId).carrierName} – ${subscriptionManager.getPhoneNumber(dataSubscriptionId)}"
+                }
+
                 // Populate the data network text views.
                 dataNetworkTextView.text = getString(R.string.data_network, dataNetworkStringArray[0])
                 dataNetworkDetailsTextView.text = dataNetworkStringArray[1]
+                dataNetworkSubscriptionInfoTextView.text = dataSubscriptionInfoString
                 additionalNetworkInfoTextView.text = getString(R.string.additional_network_info, additionalNetworkInfoStringArray[0])
                 additionalNetworkInfoDetailsTextView.text = additionalNetworkInfoStringArray[1]
 
@@ -264,7 +310,7 @@ class PrivacyCellActivity : AppCompatActivity(), NavigationView.OnNavigationItem
                         TelephonyManager.NETWORK_TYPE_CDMA -> WebViewDialog().type(WebViewDialog.NETWORK_CDMA)
                         TelephonyManager.NETWORK_TYPE_EVDO_0 -> WebViewDialog().type(WebViewDialog.NETWORK_EVDO_0)
                         TelephonyManager.NETWORK_TYPE_EVDO_A -> WebViewDialog().type(WebViewDialog.NETWORK_EVDO_A)
-                        TelephonyManager.NETWORK_TYPE_1xRTT -> WebViewDialog().type(WebViewDialog.NETWORK_1xRTT)
+                        TelephonyManager.NETWORK_TYPE_1xRTT -> WebViewDialog().type(WebViewDialog.NETWORK_1XRTT)
                         TelephonyManager.NETWORK_TYPE_HSDPA -> WebViewDialog().type(WebViewDialog.NETWORK_HSDPA)
                         TelephonyManager.NETWORK_TYPE_HSUPA -> WebViewDialog().type(WebViewDialog.NETWORK_HSUPA)
                         TelephonyManager.NETWORK_TYPE_HSPA -> WebViewDialog().type(WebViewDialog.NETWORK_HSPA)
@@ -334,7 +380,8 @@ class PrivacyCellActivity : AppCompatActivity(), NavigationView.OnNavigationItem
         super.onStart()
 
         // Check to see if the read phone state permission has been granted.  These commands need to be run on every start so that the listener is reregistered.
-        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED) {  // The storage permission has been granted.
+        if ((ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED) &&
+            (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_NUMBERS) == PackageManager.PERMISSION_GRANTED)) {  // The phone permissions have been granted.
             // Register the telephony manager listener.
             registerTelephonyManagerListener()
         } else {  // The phone permission has not been granted.
@@ -350,7 +397,7 @@ class PrivacyCellActivity : AppCompatActivity(), NavigationView.OnNavigationItem
                 }
             } else {  // Show the permission request directly.
                 // Request the read phone state permission.
-                ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.READ_PHONE_STATE), PHONE_PERMISSION_REQUEST_CODE)
+                ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.READ_PHONE_STATE, Manifest.permission.READ_PHONE_NUMBERS), PHONE_PERMISSION_REQUEST_CODE)
             }
         }
     }
@@ -438,7 +485,7 @@ class PrivacyCellActivity : AppCompatActivity(), NavigationView.OnNavigationItem
                 val newsUrlIntent = Intent(Intent.ACTION_VIEW)
 
                 // Add the URL to the intent.
-                newsUrlIntent.data = Uri.parse("https://www.stoutner.com/category/privacy-cell/")
+                newsUrlIntent.data = "https://www.stoutner.com/category/privacy-cell/".toUri()
 
                 // Make it so.
                 startActivity(newsUrlIntent)
@@ -449,7 +496,7 @@ class PrivacyCellActivity : AppCompatActivity(), NavigationView.OnNavigationItem
                 val roadmapUrlIntent = Intent(Intent.ACTION_VIEW)
 
                 // Add the URL to the intent.
-                roadmapUrlIntent.data = Uri.parse("https://www.stoutner.com/category/privacy-cell-roadmap/")
+                roadmapUrlIntent.data = "https://www.stoutner.com/category/privacy-cell-roadmap/".toUri()
 
                 // Make it so.
                 startActivity(roadmapUrlIntent)
@@ -460,7 +507,7 @@ class PrivacyCellActivity : AppCompatActivity(), NavigationView.OnNavigationItem
                 val bugTrackerUrlIntent = Intent(Intent.ACTION_VIEW)
 
                 // Add the URL to the intent.
-                bugTrackerUrlIntent.data = Uri.parse("https://redmine.stoutner.com/projects/privacy-cell/issues")
+                bugTrackerUrlIntent.data = "https://redmine.stoutner.com/projects/privacy-cell/issues".toUri()
 
                 // Make it so.
                 startActivity(bugTrackerUrlIntent)
@@ -471,7 +518,7 @@ class PrivacyCellActivity : AppCompatActivity(), NavigationView.OnNavigationItem
                 val forumUrlIntent = Intent(Intent.ACTION_VIEW)
 
                 // Add the URL to the intent.
-                forumUrlIntent.data = Uri.parse("https://redmine.stoutner.com/projects/privacy-cell/boards")
+                forumUrlIntent.data = "https://redmine.stoutner.com/projects/privacy-cell/boards".toUri()
 
                 // Make it so.
                 startActivity(forumUrlIntent)
@@ -482,7 +529,7 @@ class PrivacyCellActivity : AppCompatActivity(), NavigationView.OnNavigationItem
                 val donationsUrlIntent = Intent(Intent.ACTION_VIEW)
 
                 // Add the URL to the intent.
-                donationsUrlIntent.data = Uri.parse("https://www.stoutner.com/donations/")
+                donationsUrlIntent.data = "https://www.stoutner.com/donations/".toUri()
 
                 // Make it so.
                 startActivity(donationsUrlIntent)
@@ -570,7 +617,7 @@ class PrivacyCellActivity : AppCompatActivity(), NavigationView.OnNavigationItem
         }
 
         // Set the overall status click listener.
-        overallStatusLinearLayout.setOnClickListener {
+        overallStatusCardView.setOnClickListener {
             // Instantiate the stingray dialog fragment.
             val stingrayDialogFragment = WebViewDialog().type(overallStatusDialogTypeInt)
 
index d27d57adad776980dbe00651df68f974fa2bec48..63a55a8e2bb03d5d48f54d780fa7989a3444a35b 100644 (file)
@@ -1,20 +1,20 @@
-/*
- * Copyright 2022 Soren Stoutner <soren@stoutner.com>.
+/* SPDX-License-Identifier: GPL-3.0-or-later
+ * SPDX-FileCopyrightText: 2022, 2025 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/>.
  *
- * 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.
+ * This program 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.
+ * This program 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/>.
+ * You should have received a copy of the GNU General Public License along with
+ * this program.  If not, see <https://www.gnu.org/licenses/>.
  */
 
 package com.stoutner.privacycell.activities
@@ -122,7 +122,7 @@ class ProtocolsActivity : AppCompatActivity() {
                 getString(R.string.cdma_detail) -> WebViewDialog().type(WebViewDialog.NETWORK_CDMA)
                 getString(R.string.evdo_0_detail) -> WebViewDialog().type(WebViewDialog.NETWORK_EVDO_0)
                 getString(R.string.evdo_a_detail) -> WebViewDialog().type(WebViewDialog.NETWORK_EVDO_A)
-                getString(R.string.rtt_detail) -> WebViewDialog().type(WebViewDialog.NETWORK_1xRTT)
+                getString(R.string.rtt_detail) -> WebViewDialog().type(WebViewDialog.NETWORK_1XRTT)
                 getString(R.string.hsdpa_detail) -> WebViewDialog().type(WebViewDialog.NETWORK_HSDPA)
                 getString(R.string.hsupa_detail) -> WebViewDialog().type(WebViewDialog.NETWORK_HSUPA)
                 getString(R.string.hspa_detail) -> WebViewDialog().type(WebViewDialog.NETWORK_HSPA)
index c9fe9300f9cf50a89a7f8d69dce47b732a7f0502..3ead3256c7620087a0dfb180d0cf73a6f9ae2f7f 100644 (file)
@@ -1,20 +1,20 @@
-/*
- * Copyright 2021-2022 Soren Stoutner <soren@stoutner.com>.
+/* SPDX-License-Identifier: GPL-3.0-or-later
+ * SPDX-FileCopyrightText: 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/>.
  *
- * 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.
+ * This program 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.
+ * This program 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/>.
+ * You should have received a copy of the GNU General Public License along with
+ * this program.  If not, see <https://www.gnu.org/licenses/>.
  */
 
 package com.stoutner.privacycell.activities
index 54bfd652f1320cf8fa558aba9733d1f9898f73a6..d4261efd78e161b228484081740d015d825993d5 100644 (file)
@@ -1,20 +1,20 @@
-/*
- * Copyright © 2021-2022 Soren Stoutner <soren@stoutner.com>.
+/* SPDX-License-Identifier: GPL-3.0-or-later
+ * SPDX-FileCopyrightText: 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/>.
  *
- * 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.
+ * This program 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.
+ * This program 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/>.
+ * You should have received a copy of the GNU General Public License along with
+ * this program.  If not, see <https://www.gnu.org/licenses/>.
  */
 
 package com.stoutner.privacycell.adapters
@@ -55,4 +55,4 @@ class ProtocolArrayAdapter(context: Context, protocolArrayList: ArrayList<Protoc
         // Return the populated view.
         return populatedView
     }
-}
\ No newline at end of file
+}
index 9989945e9a4990d1fc5b246f05c0436d7090d6b9..63a4591d04d7662db74157fa98ba0d7a5da5ec03 100644 (file)
@@ -1,20 +1,20 @@
-/*
- * Copyright 2021-2022 Soren Stoutner <soren@stoutner.com>.
+/* SPDX-License-Identifier: GPL-3.0-or-later
+ * SPDX-FileCopyrightText: 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/>.
  *
- * 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.
+ * This program 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.
+ * This program 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/>.
+ * You should have received a copy of the GNU General Public License along with
+ * this program.  If not, see <https://www.gnu.org/licenses/>.
  */
 
 package com.stoutner.privacycell.dialogs
index 745c7a7bbbef81c74ed25cf1563473680fd3fad8..d8b880cbda17620996a85ef4cdd83a3e971f3907 100644 (file)
@@ -1,20 +1,20 @@
-/*
- * Copyright 2021-2022 Soren Stoutner <soren@stoutner.com>.
+/* SPDX-License-Identifier: GPL-3.0-or-later
+ * SPDX-FileCopyrightText: 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/>.
  *
- * 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.
+ * This program 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.
+ * This program 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/>.
+ * You should have received a copy of the GNU General Public License along with
+ * this program.  If not, see <https://www.gnu.org/licenses/>.
  */
 
 package com.stoutner.privacycell.dialogs
index aa7d296a141def98def55dd87cfd32b767038b85..071f17cdeac61dd6bbf52318b00d05f478c60bc5 100644 (file)
@@ -1,20 +1,20 @@
-/*
- * Copyright 2021-2022 Soren Stoutner <soren@stoutner.com>.
+/* SPDX-License-Identifier: GPL-3.0-or-later
+ * SPDX-FileCopyrightText: 2021-2022, 2025 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/>.
  *
- * 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.
+ * This program 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.
+ * This program 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/>.
+ * You should have received a copy of the GNU General Public License along with
+ * this program.  If not, see <https://www.gnu.org/licenses/>.
  */
 
 package com.stoutner.privacycell.dialogs
@@ -54,7 +54,7 @@ class WebViewDialog : DialogFragment() {
         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_1XRTT = 14
         const val NETWORK_HSDPA = 15
         const val NETWORK_HSUPA = 16
         const val NETWORK_HSPA = 17
@@ -217,7 +217,7 @@ class WebViewDialog : DialogFragment() {
                 dialogBuilder.setTitle(R.string.evdo_a)
             }
 
-            NETWORK_1xRTT -> {
+            NETWORK_1XRTT -> {
                 // Set the icon.
                 dialogBuilder.setIcon(R.drawable.protocols)
 
@@ -428,7 +428,7 @@ class WebViewDialog : DialogFragment() {
             NETWORK_CDMA -> webView.loadUrl("https://appassets.androidplatform.net/assets/" + getString(R.string.asset_directory) + "/explanations/network_cdma.html")
             NETWORK_EVDO_0 -> webView.loadUrl("https://appassets.androidplatform.net/assets/" + getString(R.string.asset_directory) + "/explanations/network_evdo_0.html")
             NETWORK_EVDO_A -> webView.loadUrl("https://appassets.androidplatform.net/assets/" + getString(R.string.asset_directory) + "/explanations/network_evdo_a.html")
-            NETWORK_1xRTT -> webView.loadUrl("https://appassets.androidplatform.net/assets/" + getString(R.string.asset_directory) + "/explanations/network_1xrtt.html")
+            NETWORK_1XRTT -> webView.loadUrl("https://appassets.androidplatform.net/assets/" + getString(R.string.asset_directory) + "/explanations/network_1xrtt.html")
             NETWORK_HSDPA -> webView.loadUrl("https://appassets.androidplatform.net/assets/" + getString(R.string.asset_directory) + "/explanations/network_hsdpa.html")
             NETWORK_HSUPA -> webView.loadUrl("https://appassets.androidplatform.net/assets/" + getString(R.string.asset_directory) + "/explanations/network_hsupa.html")
             NETWORK_HSPA -> webView.loadUrl("https://appassets.androidplatform.net/assets/" + getString(R.string.asset_directory) + "/explanations/network_hspa.html")
index dc8545ffb0abcfa96225bc19f86dcb6f29b250b9..911ab08e856c55040304edde0bdeb70a3ee515ee 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2021-2022 Soren Stoutner <soren@stoutner.com>.
+ * Copyright 2021-2023 Soren Stoutner <soren@stoutner.com>.
  *
  * This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
  *
@@ -56,7 +56,7 @@ class SettingsFragment : PreferenceFragmentCompat() {
     private lateinit var bottomAppBarPreference: Preference
 
     companion object {
-        // Declare the private static class variables.  Otherwise, onRestart will not pull the same values that are populated from the saved instance state.
+        // Declare the private static class variables.  For some reason (I'm looking at you Android's Activity Lifecycle) this only works if these are static.
         private var fragmentRestarted: Boolean = false
         private var scrollY: Int = 0
     }
@@ -140,7 +140,7 @@ class SettingsFragment : PreferenceFragmentCompat() {
 
         // Check if the fragment has been restarted.
         if (savedInstanceState != null) {
-            // Set the fragment restored flag.
+            // Set the fragment restarted flag.
             fragmentRestarted = true
 
             // Save the scroll Y.
index 11407f7517d0e9e87941876f5597c0c20b8ec50d..cb6ca1db880210aa4f7712b5bea247ac653009ca 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2022 Soren Stoutner <soren@stoutner.com>.
+ * Copyright 2022-2023 Soren Stoutner <soren@stoutner.com>.
  *
  * This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
  *
@@ -84,7 +84,8 @@ class ProtocolHelper {
     }
 
     fun getNetworkTypeStringArray(networkType: Int, context: Context) : Array<String> {
-        // Return the string array that corresponds to the network type.
+        // Return the string array that corresponds to the network type.  The deprecated `NETWORK_TYPE_IDEN` can be removed once the minimum API >= 34.
+        @Suppress("DEPRECATION")
         return when(networkType) {
             TelephonyManager.NETWORK_TYPE_UNKNOWN -> arrayOf(context.getString(R.string.unknown), "")
             TelephonyManager.NETWORK_TYPE_GPRS -> arrayOf(context.getString(R.string.gprs), context.getString(R.string.gprs_detail))
index 54e23e937281a57004921a4ccbd98fb4745e1162..72cc4532f52596b767f9d3eed6e912a9e00a157a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright © 2021 Soren Stoutner <soren@stoutner.com>.
+ * Copyright 2021,2023 Soren Stoutner <soren@stoutner.com>.
  *
  * This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
  *
@@ -42,4 +42,4 @@ class OnBootCompletedReceiver : BroadcastReceiver() {
             }
         }
     }
-}
\ No newline at end of file
+}
index 19e1a3e2cede164c571b6dbc4558801bd5108979..72ace814d742aac8de7f08c6e4540ba2205b302e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2021-2022 Soren Stoutner <soren@stoutner.com>.
+ * Copyright 2021-2023 Soren Stoutner <soren@stoutner.com>.
  *
  * This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
  *
@@ -148,7 +148,7 @@ class RealtimeMonitoringService : Service() {
             // Set the color.
             notificationBuilder.setColor(getColor(R.color.red_notification_icon))
 
-            // Prevent swiping to dismiss the notification.
+            // Prevent swiping to dismiss the notification.  This no longer works (except on the lock screen) in API >= 34.
             notificationBuilder.setOngoing(true)
 
             // Start the foreground notification.
@@ -204,9 +204,9 @@ class RealtimeMonitoringService : Service() {
 
             // Check to see if the read phone state permission has been granted.
             if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED) {
-                // Create a register realtime listener work request that fires every hour.
-                // This periodic request will fire shortly after being created (it fires about every hour near the beginning of the hour) and will reregister the listener if it gets garbage collected.
-                val registerRealtimeListenerWorkRequest = PeriodicWorkRequestBuilder<RegisterRealtimeListenerWorker>(1, TimeUnit.HOURS).build()
+                // Create a register realtime listener work request that fires every fifteen minutes.
+                // This periodic request will fire shortly after being created and will reregister the listener if it gets garbage collected.
+                val registerRealtimeListenerWorkRequest = PeriodicWorkRequestBuilder<RegisterRealtimeListenerWorker>(15, TimeUnit.MINUTES).build()
 
                 // Register the realtime listener work request.
                 WorkManager.getInstance(this).enqueueUniquePeriodicWork(getString(R.string.register_listener_work_request), ExistingPeriodicWorkPolicy.REPLACE, registerRealtimeListenerWorkRequest)
@@ -235,10 +235,16 @@ class RealtimeMonitoringService : Service() {
     }
 
     fun populateNotification() {
+        // Get the list of current notifications.
+        val activeNotificationsArray = notificationManager.activeNotifications
+
+        // Check to see if there is a current notification.
+        val noCurrentNotification = activeNotificationsArray.isEmpty()
+
         // Populate the notification according to the security status.
         if ((voiceNetworkSecurityStatus == ProtocolHelper.ANTIQUATED) || (dataNetworkSecurityStatus == ProtocolHelper.ANTIQUATED)) {  // This is an antiquated network.
             // Only update the notification if the network status has changed.
-            if (currentStatus != ANTIQUATED_NETWORK) {
+            if ((currentStatus != ANTIQUATED_NETWORK) || noCurrentNotification) {
                 // Create an antiquated network notification builder.
                 val antiquatedNetworkNotificationBuilder = Notification.Builder(applicationContext, ANTIQUATED_NETWORK)
 
@@ -254,7 +260,7 @@ class RealtimeMonitoringService : Service() {
                 // Set the color.
                 antiquatedNetworkNotificationBuilder.setColor(getColor(R.color.red_notification_icon))
 
-                // Prevent swiping to dismiss the notification.
+                // Prevent swiping to dismiss the notification.  This no longer works (except on the lock screen) in API >= 34.
                 antiquatedNetworkNotificationBuilder.setOngoing(true)
 
                 // Update the notification.
@@ -265,7 +271,7 @@ class RealtimeMonitoringService : Service() {
             }
         } else if ((voiceNetworkSecurityStatus == ProtocolHelper.INSECURE) || (dataNetworkSecurityStatus == ProtocolHelper.INSECURE)) {  // This is an insecure network.
             // Only update the notification if the network status has changed.
-            if (currentStatus != INSECURE_NETWORK) {
+            if ((currentStatus != INSECURE_NETWORK) || noCurrentNotification) {
                 // Create an insecure network notification builder.
                 val insecureNetworkNotificationBuilder = Notification.Builder(applicationContext, INSECURE_NETWORK)
 
@@ -281,7 +287,7 @@ class RealtimeMonitoringService : Service() {
                 // Set the color.
                 insecureNetworkNotificationBuilder.setColor(getColor(R.color.yellow_notification_icon))
 
-                // Prevent swiping to dismiss the notification.
+                // Prevent swiping to dismiss the notification.  This no longer works (except on the lock screen) in API >= 34.
                 insecureNetworkNotificationBuilder.setOngoing(true)
 
                 // Update the notification.
@@ -292,7 +298,7 @@ class RealtimeMonitoringService : Service() {
             }
         } else {  // This is a secure network.
             // Only update the notification if the network status has changed.
-            if (currentStatus != SECURE_NETWORK) {
+            if ((currentStatus != SECURE_NETWORK) || noCurrentNotification) {
                 // Create a secure network notification builder.
                 val secureNetworkNotificationBuilder = Notification.Builder(applicationContext, SECURE_NETWORK)
 
@@ -308,7 +314,7 @@ class RealtimeMonitoringService : Service() {
                 // Set the color.
                 secureNetworkNotificationBuilder.setColor(getColor(R.color.blue_icon))
 
-                // Prevent swiping to dismiss the notification.
+                // Prevent swiping to dismiss the notification.  This no longer works (except on the lock screen) in API >= 34.
                 secureNetworkNotificationBuilder.setOngoing(true)
 
                 // Update the notification.
index 6bb76add73692863138dcc4930427af3a1af7239..7eeea89b2dfb22e54844605e361477a65995e682 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright © 2021-2022 Soren Stoutner <soren@stoutner.com>.
+ * Copyright 2021-2023 Soren Stoutner <soren@stoutner.com>.
  *
  * This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
  *
@@ -77,6 +77,9 @@ class RegisterRealtimeListenerWorker(appContext: Context, workerParameters: Work
                         // Register the telephony manager listener.
                         realtimeMonitoringService.registerTelephonyManagerListener()
 
+                        // Populate the notification, which might have been accidentally dismissed by the user beginning in Android 14.
+                        realtimeMonitoringService.populateNotification()
+
                         // Unbind the service.
                         applicationContext.unbindService(this)
                     }
@@ -100,4 +103,4 @@ class RegisterRealtimeListenerWorker(appContext: Context, workerParameters: Work
         // Return a success.
         return Result.success()
     }
-}
\ No newline at end of file
+}
index 720ca7a937353ac758216d94250cc559904be230..ed1fddebd66a3024184aa0cde21adafef044350c 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright © 2021-2022 Soren Stoutner <soren@stoutner.com>.
+ * Copyright 2021-2023 Soren Stoutner <soren@stoutner.com>.
  *
  * This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
  *
@@ -51,4 +51,4 @@ class RestartServiceWorker(appContext: Context, workerParameters: WorkerParamete
         // Return a success.
         return Result.success()
     }
-}
\ No newline at end of file
+}
index 8bebbde56af43255f97d03f3e7002ad7229b9d6a..78f00d7e33d942763c6e81d44873cfc994f2d67c 100644 (file)
@@ -1,9 +1,9 @@
 <!--
   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 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 <https://fonts.google.com/icons>.
 
-  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/>.
 
   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
index a88bf32fe602ab2c5ab7bf37c65359abdcdaf408..06a731e0bebeb8e09584b1626c35c62f0deca5f0 100644 (file)
@@ -1,9 +1,9 @@
 <!--
-  Copyright © 2016,2021-2022 Soren Stoutner <soren@stoutner.com>.  The resulting image is released under the GPLv3+ license.
+  Copyright © 2016,2021-2023 Soren Stoutner <soren@stoutner.com>.  The resulting image is released under the GPLv3+ license.
 
-  This file is derived from `security` and `3g_mobiledata_rounded`, which are part of the Android Material icon set.  They are released under the Apache License 2.0.
+  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 <https://fonts.google.com/icons>.
 
-  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/>.
 
   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
@@ -20,6 +20,7 @@
 
 <vector
     xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
     android:height="24dp"
     android:width="24dp"
     android:viewportHeight="256"
@@ -27,5 +28,6 @@
 
     <path
         android:fillColor="@color/disabled_icon"
-        android:pathData="M128,0 L23.272,46.546L23.272,116.363C23.272,180.945 67.956,241.338 128,256 188.044,241.338 232.728,180.945 232.728,116.363L232.728,46.546ZM57.188,83.742l35.405,0c9.737,-0 17.703,7.967 17.703,17.703l0,13.277c0,7.347 -5.931,13.277 -13.277,13.277 7.347,0 13.277,5.931 13.277,13.277l0,13.277c0,9.737 -7.967,17.703 -17.703,17.703l-35.405,0c-4.868,0 -8.852,-3.983 -8.852,-8.852 0,-4.868 3.983,-8.852 8.852,-8.852l35.405,0l0,-17.703l-26.554,0c-4.868,0 -8.852,-3.983 -8.852,-8.852 0,-4.868 3.983,-8.852 8.852,-8.852l26.554,0l0,-17.703l-35.405,0c-4.868,0 -8.852,-3.983 -8.852,-8.852 0,-4.868 3.983,-8.852 8.852,-8.852zM145.703,83.742l53.108,0c4.868,0 8.852,3.983 8.852,8.852 0,4.868 -3.983,8.852 -8.852,8.852l-53.108,0l0,53.109l44.257,0l0,-17.703l-13.277,0c-4.868,0 -8.851,-3.983 -8.851,-8.852 0,-4.868 3.982,-8.852 8.851,-8.852l22.129,0c4.868,0 8.852,3.983 8.852,8.852l0,26.555c0,9.737 -7.967,17.703 -17.703,17.703L145.703,172.258C135.967,172.258 128,164.291 128,154.555L128,101.445c0,-9.737 7.967,-17.703 17.703,-17.703z" />
+        android:pathData="M128,0 L23.272,46.546L23.272,116.363C23.272,180.945 67.956,241.338 128,256 188.044,241.338 232.728,180.945 232.728,116.363L232.728,46.546ZM57.188,83.742l35.405,0c9.737,-0 17.703,7.967 17.703,17.703l0,13.277c0,7.347 -5.931,13.277 -13.277,13.277 7.347,0 13.277,5.931 13.277,13.277l0,13.277c0,9.737 -7.967,17.703 -17.703,17.703l-35.405,0c-4.868,0 -8.852,-3.983 -8.852,-8.852 0,-4.868 3.983,-8.852 8.852,-8.852l35.405,0l0,-17.703l-26.554,0c-4.868,0 -8.852,-3.983 -8.852,-8.852 0,-4.868 3.983,-8.852 8.852,-8.852l26.554,0l0,-17.703l-35.405,0c-4.868,0 -8.852,-3.983 -8.852,-8.852 0,-4.868 3.983,-8.852 8.852,-8.852zM145.703,83.742l53.108,0c4.868,0 8.852,3.983 8.852,8.852 0,4.868 -3.983,8.852 -8.852,8.852l-53.108,0l0,53.109l44.257,0l0,-17.703l-13.277,0c-4.868,0 -8.851,-3.983 -8.851,-8.852 0,-4.868 3.982,-8.852 8.851,-8.852l22.129,0c4.868,0 8.852,3.983 8.852,8.852l0,26.555c0,9.737 -7.967,17.703 -17.703,17.703L145.703,172.258C135.967,172.258 128,164.291 128,154.555L128,101.445c0,-9.737 7.967,-17.703 17.703,-17.703z"
+        tools:ignore="VectorPath" />
 </vector>
\ No newline at end of file
index 1d1e63afcfef79450345a5de8ad1f9f74af63b7c..37c421db2d78d6dc189e19fb51ef8e895ae8b050 100644 (file)
@@ -1,9 +1,9 @@
 <!--
-  Copyright © 2016,2021-2022 Soren Stoutner <soren@stoutner.com>.  The resulting image is released under the GPLv3+ license.
+  Copyright © 2016,2021-2023 Soren Stoutner <soren@stoutner.com>.  The resulting image is released under the GPLv3+ license.
 
-  This file is derived from `security` and `3g_mobiledata_rounded`, which are part of the Android Material icon set.  They are released under the Apache License 2.0.
+  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 <https://fonts.google.com/icons>.
 
-  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/>.
 
   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
@@ -20,6 +20,7 @@
 
 <vector
     xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
     android:height="24dp"
     android:width="24dp"
     android:viewportHeight="256"
@@ -27,5 +28,6 @@
 
     <path
         android:fillColor="@color/red_icon"
-        android:pathData="M128,0 L23.272,46.546L23.272,116.363C23.272,180.945 67.956,241.338 128,256 188.044,241.338 232.728,180.945 232.728,116.363L232.728,46.546ZM57.188,83.742l35.405,0c9.737,-0 17.703,7.967 17.703,17.703l0,13.277c0,7.347 -5.931,13.277 -13.277,13.277 7.347,0 13.277,5.931 13.277,13.277l0,13.277c0,9.737 -7.967,17.703 -17.703,17.703l-35.405,0c-4.868,0 -8.852,-3.983 -8.852,-8.852 0,-4.868 3.983,-8.852 8.852,-8.852l35.405,0l0,-17.703l-26.554,0c-4.868,0 -8.852,-3.983 -8.852,-8.852 0,-4.868 3.983,-8.852 8.852,-8.852l26.554,0l0,-17.703l-35.405,0c-4.868,0 -8.852,-3.983 -8.852,-8.852 0,-4.868 3.983,-8.852 8.852,-8.852zM145.703,83.742l53.108,0c4.868,0 8.852,3.983 8.852,8.852 0,4.868 -3.983,8.852 -8.852,8.852l-53.108,0l0,53.109l44.257,0l0,-17.703l-13.277,0c-4.868,0 -8.851,-3.983 -8.851,-8.852 0,-4.868 3.982,-8.852 8.851,-8.852l22.129,0c4.868,0 8.852,3.983 8.852,8.852l0,26.555c0,9.737 -7.967,17.703 -17.703,17.703L145.703,172.258C135.967,172.258 128,164.291 128,154.555L128,101.445c0,-9.737 7.967,-17.703 17.703,-17.703z" />
+        android:pathData="M128,0 L23.272,46.546L23.272,116.363C23.272,180.945 67.956,241.338 128,256 188.044,241.338 232.728,180.945 232.728,116.363L232.728,46.546ZM57.188,83.742l35.405,0c9.737,-0 17.703,7.967 17.703,17.703l0,13.277c0,7.347 -5.931,13.277 -13.277,13.277 7.347,0 13.277,5.931 13.277,13.277l0,13.277c0,9.737 -7.967,17.703 -17.703,17.703l-35.405,0c-4.868,0 -8.852,-3.983 -8.852,-8.852 0,-4.868 3.983,-8.852 8.852,-8.852l35.405,0l0,-17.703l-26.554,0c-4.868,0 -8.852,-3.983 -8.852,-8.852 0,-4.868 3.983,-8.852 8.852,-8.852l26.554,0l0,-17.703l-35.405,0c-4.868,0 -8.852,-3.983 -8.852,-8.852 0,-4.868 3.983,-8.852 8.852,-8.852zM145.703,83.742l53.108,0c4.868,0 8.852,3.983 8.852,8.852 0,4.868 -3.983,8.852 -8.852,8.852l-53.108,0l0,53.109l44.257,0l0,-17.703l-13.277,0c-4.868,0 -8.851,-3.983 -8.851,-8.852 0,-4.868 3.982,-8.852 8.851,-8.852l22.129,0c4.868,0 8.852,3.983 8.852,8.852l0,26.555c0,9.737 -7.967,17.703 -17.703,17.703L145.703,172.258C135.967,172.258 128,164.291 128,154.555L128,101.445c0,-9.737 7.967,-17.703 17.703,-17.703z"
+        tools:ignore="VectorPath" />
 </vector>
\ No newline at end of file
index 9413e813c4d587bb183471ce76a5885451e72a50..8a397c22ca5c695ddfd5c7653978770618a34da5 100644 (file)
@@ -1,9 +1,9 @@
 <!--
   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 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 <https://fonts.google.com/icons>.
 
-  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/>.
 
   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
index b92bd73f6c6c84dbf3c45691247d2db16794f437..409a781fb08a0597395b9f64368b1cde0aaef905 100644 (file)
@@ -1,9 +1,9 @@
 <!--
   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 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 <https://fonts.google.com/icons>.
 
-  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/>.
 
   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
index 321ab0ff0e50dad0654dd46648b4bb1c570965e6..e231e83f87561d34371371cb859b14b192a898b4 100644 (file)
@@ -1,9 +1,9 @@
 <!--
   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 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 <https://fonts.google.com/icons>.
 
-  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/>.
 
   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
index fe24790e27bd3600712d9e8d1e6912e437386b1a..8b5837bf28895e3aabfcc82799397155080f3968 100644 (file)
@@ -1,4 +1,4 @@
-<!-- This file comes from the Android Material icon set, where it is called `call_to_action_rounded`.  It is released under the Apache License 2.0. -->
+<!-- This file comes from the Android Material icon set, where it is called `call_to_action_rounded`.  It is released under the Apache License 2.0 <https://fonts.google.com/icons>. -->
 
 <vector
     xmlns:android="http://schemas.android.com/apk/res/android"
index 81b33f1e19abe56f5c8fae2400dd18f30be81601..54fba7527ee6e6c9098804d2a85e10ae9e5d8015 100644 (file)
@@ -1,4 +1,4 @@
-<!-- This file comes from the Android Material icon set, where it is called `call_to_action_rounded`.  It is released under the Apache License 2.0. -->
+<!-- This file comes from the Android Material icon set, where it is called `call_to_action_rounded`.  It is released under the Apache License 2.0 <https://fonts.google.com/icons>. -->
 
 <vector
     xmlns:android="http://schemas.android.com/apk/res/android"
index de91740a7b660c304ddd8a41fff7ab397bf79876..3bedf12d47843641d3795a6c6c00cc9890b67e95 100644 (file)
@@ -1,7 +1,8 @@
-<!-- This file comes from the Android Material icon set, where it is called `bug_report_rounded`.  It is released under the Apache License 2.0. -->
+<!-- This file comes from the Android Material icon set, where it is called `bug_report_rounded`.  It is released under the Apache License 2.0 <https://fonts.google.com/icons>. -->
 
 <vector
     xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
     android:height="24dp"
     android:width="24dp"
     android:viewportHeight="24"
@@ -9,5 +10,6 @@
 
     <path
         android:fillColor="@color/blue_icon"
-        android:pathData="M19,8h-1.81c-0.45,-0.78 -1.07,-1.45 -1.82,-1.96l0.93,-0.93c0.39,-0.39 0.39,-1.02 0,-1.41 -0.39,-0.39 -1.02,-0.39 -1.41,0l-1.47,1.47C12.96,5.06 12.49,5 12,5s-0.96,0.06 -1.41,0.17L9.11,3.7c-0.39,-0.39 -1.02,-0.39 -1.41,0 -0.39,0.39 -0.39,1.02 0,1.41l0.92,0.93C7.88,6.55 7.26,7.22 6.81,8L5,8c-0.55,0 -1,0.45 -1,1s0.45,1 1,1h1.09c-0.05,0.33 -0.09,0.66 -0.09,1v1L5,12c-0.55,0 -1,0.45 -1,1s0.45,1 1,1h1v1c0,0.34 0.04,0.67 0.09,1L5,16c-0.55,0 -1,0.45 -1,1s0.45,1 1,1h1.81c1.04,1.79 2.97,3 5.19,3s4.15,-1.21 5.19,-3L19,18c0.55,0 1,-0.45 1,-1s-0.45,-1 -1,-1h-1.09c0.05,-0.33 0.09,-0.66 0.09,-1v-1h1c0.55,0 1,-0.45 1,-1s-0.45,-1 -1,-1h-1v-1c0,-0.34 -0.04,-0.67 -0.09,-1L19,10c0.55,0 1,-0.45 1,-1s-0.45,-1 -1,-1zM13,16h-2c-0.55,0 -1,-0.45 -1,-1s0.45,-1 1,-1h2c0.55,0 1,0.45 1,1s-0.45,1 -1,1zM13,12h-2c-0.55,0 -1,-0.45 -1,-1s0.45,-1 1,-1h2c0.55,0 1,0.45 1,1s-0.45,1 -1,1z" />
+        android:pathData="M19,8h-1.81c-0.45,-0.78 -1.07,-1.45 -1.82,-1.96l0.93,-0.93c0.39,-0.39 0.39,-1.02 0,-1.41 -0.39,-0.39 -1.02,-0.39 -1.41,0l-1.47,1.47C12.96,5.06 12.49,5 12,5s-0.96,0.06 -1.41,0.17L9.11,3.7c-0.39,-0.39 -1.02,-0.39 -1.41,0 -0.39,0.39 -0.39,1.02 0,1.41l0.92,0.93C7.88,6.55 7.26,7.22 6.81,8L5,8c-0.55,0 -1,0.45 -1,1s0.45,1 1,1h1.09c-0.05,0.33 -0.09,0.66 -0.09,1v1L5,12c-0.55,0 -1,0.45 -1,1s0.45,1 1,1h1v1c0,0.34 0.04,0.67 0.09,1L5,16c-0.55,0 -1,0.45 -1,1s0.45,1 1,1h1.81c1.04,1.79 2.97,3 5.19,3s4.15,-1.21 5.19,-3L19,18c0.55,0 1,-0.45 1,-1s-0.45,-1 -1,-1h-1.09c0.05,-0.33 0.09,-0.66 0.09,-1v-1h1c0.55,0 1,-0.45 1,-1s-0.45,-1 -1,-1h-1v-1c0,-0.34 -0.04,-0.67 -0.09,-1L19,10c0.55,0 1,-0.45 1,-1s-0.45,-1 -1,-1zM13,16h-2c-0.55,0 -1,-0.45 -1,-1s0.45,-1 1,-1h2c0.55,0 1,0.45 1,1s-0.45,1 -1,1zM13,12h-2c-0.55,0 -1,-0.45 -1,-1s0.45,-1 1,-1h2c0.55,0 1,0.45 1,1s-0.45,1 -1,1z"
+        tools:ignore="VectorPath" />
 </vector>
\ No newline at end of file
index 08ce8d30ab7ff272b4e12a1fed33e86afe33976a..0a2a6dd402ed7ff41622e196cd2e3f87d613a673 100644 (file)
@@ -1,4 +1,4 @@
-<!-- This file comes from the Android Material icon set, where it is called `format_list_bulleted_rounded`.  It is released under the Apache License 2.0. -->
+<!-- This file comes from the Android Material icon set, where it is called `format_list_bulleted_rounded`.  It is released under the Apache License 2.0 <https://fonts.google.com/icons>. -->
 
 <vector
     xmlns:android="http://schemas.android.com/apk/res/android"
diff --git a/app/src/main/res/drawable/clear.xml b/app/src/main/res/drawable/clear.xml
deleted file mode 100644 (file)
index f73c37e..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-<!-- This file comes from the Android Material icon set, where it is called `close_rounded`.  It is released under the Apache License 2.0. -->
-
-<vector
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:height="24dp"
-    android:width="24dp"
-    android:viewportHeight="24"
-    android:viewportWidth="24" >
-
-    <path
-        android:fillColor="@color/logcat_icon"
-        android:pathData="M18.3,5.71c-0.39,-0.39 -1.02,-0.39 -1.41,0L12,10.59 7.11,5.7c-0.39,-0.39 -1.02,-0.39 -1.41,0 -0.39,0.39 -0.39,1.02 0,1.41L10.59,12 5.7,16.89c-0.39,0.39 -0.39,1.02 0,1.41 0.39,0.39 1.02,0.39 1.41,0L12,13.41l4.89,4.89c0.39,0.39 1.02,0.39 1.41,0 0.39,-0.39 0.39,-1.02 0,-1.41L13.41,12l4.89,-4.89c0.38,-0.38 0.38,-1.02 0,-1.4z" />
-</vector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/close.xml b/app/src/main/res/drawable/close.xml
new file mode 100644 (file)
index 0000000..02c4fed
--- /dev/null
@@ -0,0 +1,13 @@
+<!-- This file comes from the Android Material icon set, where it is called `close_rounded_fill0_weight400_grade0_24px`.  It is released under the Apache License 2.0 <https://fonts.google.com/icons>. -->
+
+<vector
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:height="24dp"
+    android:width="24dp"
+    android:viewportHeight="960"
+    android:viewportWidth="960" >
+
+    <path
+        android:fillColor="@color/logcat_icon"
+        android:pathData="M480,536 L284,732q-11,11 -28,11t-28,-11q-11,-11 -11,-28t11,-28l196,-196 -196,-196q-11,-11 -11,-28t11,-28q11,-11 28,-11t28,11l196,196 196,-196q11,-11 28,-11t28,11q11,11 11,28t-11,28L536,480l196,196q11,11 11,28t-11,28q-11,11 -28,11t-28,-11L480,536Z"/>
+</vector>
diff --git a/app/src/main/res/drawable/close_blue.xml b/app/src/main/res/drawable/close_blue.xml
new file mode 100644 (file)
index 0000000..6cb599a
--- /dev/null
@@ -0,0 +1,13 @@
+<!-- This file comes from the Android Material icon set, where it is called `close_rounded_fill0_weight400_grade0_24px`.  It is released under the Apache License 2.0 <https://fonts.google.com/icons>. -->
+
+<vector
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:height="24dp"
+    android:width="24dp"
+    android:viewportHeight="960"
+    android:viewportWidth="960" >
+
+    <path
+        android:fillColor="@color/blue_icon"
+        android:pathData="M480,536 L284,732q-11,11 -28,11t-28,-11q-11,-11 -11,-28t11,-28l196,-196 -196,-196q-11,-11 -11,-28t11,-28q11,-11 28,-11t28,11l196,196 196,-196q11,-11 28,-11t28,11q11,11 11,28t-11,28L536,480l196,196q11,11 11,28t-11,28q-11,11 -28,11t-28,-11L480,536Z"/>
+</vector>
index a19353721d299ec6e6651456079dcf2be3a04a03..ad50e217c79d63376dd1652077c28378670c791d 100644 (file)
@@ -1,4 +1,4 @@
-<!-- This file comes from the Android Material icon set, where it is called `groups_filled`.  It is released under the Apache License 2.0. -->
+<!-- This file comes from the Android Material icon set, where it is called `groups_filled`.  It is released under the Apache License 2.0 <https://fonts.google.com/icons>. -->
 
 <vector
     xmlns:android="http://schemas.android.com/apk/res/android"
index 8488b34d6bf1fb58a5d635fa5b008664df64d654..0f9fa63113d6fa693b62d5b7daa12746a4ca770e 100644 (file)
@@ -1,4 +1,4 @@
-<!-- This file comes from the Android Material icon set, where it is called `content_copy_outlined`.  It is released under the Apache License 2.0. -->
+<!-- This file comes from the Android Material icon set, where it is called `content_copy_outlined`.  It is released under the Apache License 2.0 <https://fonts.google.com/icons>. -->
 
 <vector
     xmlns:android="http://schemas.android.com/apk/res/android"
index 61cbe43ad0e599813e392f018b4114b6e0b675e3..331ae5a1d2e4fda27c73c9e4fa8e0ffe3a69fdc1 100644 (file)
@@ -1,4 +1,4 @@
-<!-- This file comes from the Android Material icon set, where it is called `payments_rounded`.  It is released under the Apache License 2.0. -->
+<!-- This file comes from the Android Material icon set, where it is called `payments_rounded`.  It is released under the Apache License 2.0 <https://fonts.google.com/icons>. -->
 
 <vector
     xmlns:android="http://schemas.android.com/apk/res/android"
index 4d1a0b6a471d763d6cc62c6c2ab66f4c8ab233b2..ef65b74f2997cf372fc9f9d5718a7e22ff14d981 100644 (file)
@@ -1,4 +1,4 @@
-<!-- This file comes from the Android Material icon set, where it is called `forum_rounded`.  It is released under the Apache License 2.0. -->
+<!-- This file comes from the Android Material icon set, where it is called `forum_rounded`.  It is released under the Apache License 2.0 <https://fonts.google.com/icons>. -->
 
 <vector
     xmlns:android="http://schemas.android.com/apk/res/android"
index ce16bf405835aa7819e0647ee8a601946680af89..404507a5beed64af1470fa8b0dd84627ea861763 100644 (file)
@@ -1,9 +1,9 @@
 <!--
   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 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 <https://fonts.google.com/icons>.
 
-  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/>.
 
   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
index 2e90c583242e703afeade3725e292d2ba8aefd31..6c0c0991dbcc0c6f6eba0338513052409cf05f23 100644 (file)
@@ -1,9 +1,9 @@
 <!--
   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 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 <https://fonts.google.com/icons>.
 
-  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/>.
 
   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
index 550868f6644bb8ee5b990b1bee26e73aec01dd26..4e804b80919e978fb8bfb06932c949d0e99c8b0e 100644 (file)
@@ -1,9 +1,9 @@
 <!--
   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 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 <https://fonts.google.com/icons>.
 
-  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/>.
 
   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
index 261c954bf31bf7cf496ff2d191ff6659a4f78acb..419565191c71fd3bd57d6ce73b442c1965ad0648 100644 (file)
@@ -1,9 +1,9 @@
 <!--
   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 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 <https://fonts.google.com/icons>.
 
-  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/>.
 
   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
index 9b74891d39a51024de697de0af094ae57684553f..99f63ba39d22e3e9fa7be96c52e065e404e433cc 100644 (file)
@@ -1,4 +1,4 @@
-<!-- This file comes from the Android Material icon set, where it is called `text_snippet_outlined`.  It is released under the Apache License 2.0. -->
+<!-- This file comes from the Android Material icon set, where it is called `text_snippet_outlined`.  It is released under the Apache License 2.0 <https://fonts.google.com/icons>. -->
 
 <vector
     xmlns:android="http://schemas.android.com/apk/res/android"
index 2bd25feb0c7cd0221484560079fd4750aaca7512..24b3ab978b00bc341f7419e38523ead059539d3e 100644 (file)
@@ -1,7 +1,8 @@
-<!-- This file comes from the Android Material icon set, where it is called `chrome_reader_mode_rounded`.  It is released under the Apache License 2.0. -->
+<!-- This file comes from the Android Material icon set, where it is called `list_alt_rounded_24`.  It is released under the Apache License 2.0 <https://fonts.google.com/icons>. -->
 
 <vector
     xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
     android:height="24dp"
     android:width="24dp"
     android:viewportHeight="24"
@@ -10,5 +11,6 @@
 
     <path
         android:fillColor="@color/blue_icon"
-        android:pathData="M12,9h4c0.55,0 1,-0.45 1,-1s-0.45,-1 -1,-1h-4c-0.55,0 -1,0.45 -1,1s0.45,1 1,1zM12,13h4c0.55,0 1,-0.45 1,-1s-0.45,-1 -1,-1h-4c-0.55,0 -1,0.45 -1,1s0.45,1 1,1zM12,17h4c0.55,0 1,-0.45 1,-1s-0.45,-1 -1,-1h-4c-0.55,0 -1,0.45 -1,1s0.45,1 1,1zM7,7h2v2L7,9zM7,11h2v2L7,13zM7,15h2v2L7,17zM20,3L4,3c-0.55,0 -1,0.45 -1,1v16c0,0.55 0.45,1 1,1h16c0.55,0 1,-0.45 1,-1L21,4c0,-0.55 -0.45,-1 -1,-1zM19,19L5,19L5,5h14v14z" />
-</vector>
\ No newline at end of file
+        android:pathData="M5,21q-0.825,0 -1.413,-0.587Q3,19.825 3,19L3,5q0,-0.825 0.587,-1.413Q4.175,3 5,3h14q0.825,0 1.413,0.587Q21,4.175 21,5v14q0,0.825 -0.587,1.413Q19.825,21 19,21ZM5,19h14L19,5L5,5v14ZM8,17q0.425,0 0.713,-0.288Q9,16.425 9,16t-0.287,-0.713Q8.425,15 8,15t-0.713,0.287Q7,15.575 7,16t0.287,0.712Q7.575,17 8,17ZM8,13q0.425,0 0.713,-0.288Q9,12.425 9,12t-0.287,-0.713Q8.425,11 8,11t-0.713,0.287Q7,11.575 7,12t0.287,0.712Q7.575,13 8,13ZM8,9q0.425,0 0.713,-0.288Q9,8.425 9,8t-0.287,-0.713Q8.425,7 8,7t-0.713,0.287Q7,7.575 7,8t0.287,0.712Q7.575,9 8,9ZM12,17h4q0.425,0 0.712,-0.288Q17,16.425 17,16t-0.288,-0.713Q16.425,15 16,15h-4q-0.425,0 -0.712,0.287Q11,15.575 11,16t0.288,0.712Q11.575,17 12,17ZM12,13h4q0.425,0 0.712,-0.288Q17,12.425 17,12t-0.288,-0.713Q16.425,11 16,11h-4q-0.425,0 -0.712,0.287Q11,11.575 11,12t0.288,0.712Q11.575,13 12,13ZM12,9h4q0.425,0 0.712,-0.288Q17,8.425 17,8t-0.288,-0.713Q16.425,7 16,7h-4q-0.425,0 -0.712,0.287Q11,7.575 11,8t0.288,0.712Q11.575,9 12,9ZM5,19L5,5v14Z"
+        tools:ignore="VectorPath" />
+</vector>
index 5d70ee1fef5b8021ed05a1a5298dee0251c1abbd..9ee84a26d34d7747670812e74bc7e11d3949f5e9 100644 (file)
@@ -1,4 +1,4 @@
-<!-- This file comes from the Android Material icon set, where it is called `chrome_reader_mode_rounded`.  It is released under the Apache License 2.0. -->
+<!-- This file comes from the Android Material icon set, where it is called `chrome_reader_mode_rounded`.  It is released under the Apache License 2.0 <https://fonts.google.com/icons>. -->
 
 <vector
     xmlns:android="http://schemas.android.com/apk/res/android"
diff --git a/app/src/main/res/drawable/next.xml b/app/src/main/res/drawable/next.xml
new file mode 100644 (file)
index 0000000..28d3d3a
--- /dev/null
@@ -0,0 +1,14 @@
+<!-- This file comes from the Android Material icon set, where it is called `keyboard_arrow_up_rounded_fill0_weight400_grade0_24px`.
+    It is released under the Apache License 2.0 <https://fonts.google.com/icons>. -->
+
+<vector
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:height="24dp"
+    android:width="24dp"
+    android:viewportHeight="960"
+    android:viewportWidth="960" >
+
+    <path
+        android:fillColor="@color/blue_icon"
+        android:pathData="M480,599q-8,0 -15,-2.5t-13,-8.5L268,404q-11,-11 -11,-28t11,-28q11,-11 28,-11t28,11l156,156 156,-156q11,-11 28,-11t28,11q11,11 11,28t-11,28L508,588q-6,6 -13,8.5t-15,2.5Z" />
+</vector>
index 24cb9426bfff7c4092bf3a904f9515948954ec00..b792065b3628e178a361b4fd52aade2f9ed23774 100644 (file)
@@ -1,4 +1,4 @@
-<!-- This file comes from the Android Material icon set, where it is called `notification_important_rounded_filled`.  It is released under the Apache License 2.0. -->
+<!-- This file comes from the Android Material icon set, where it is called `notification_important_rounded_filled`.  It is released under the Apache License 2.0 <https://fonts.google.com/icons>. -->
 
 <vector
     xmlns:android="http://schemas.android.com/apk/res/android"
index bae4fa9f9ca07689bdb7555da9955b9f98288c85..30811d1627a3d6d15834af6aff75e1779ba46b62 100644 (file)
@@ -1,4 +1,4 @@
-<!-- This file comes from the Android Material icon set, where it is called `fact_check_outlined`.  It is released under the Apache License 2.0. -->
+<!-- This file comes from the Android Material icon set, where it is called `fact_check_outlined`.  It is released under the Apache License 2.0 <https://fonts.google.com/icons>. -->
 
 <vector
     xmlns:android="http://schemas.android.com/apk/res/android"
index 12f65df70dd741fa5e4def62d9ec757b785acf8b..cab9f368cf2a437f19c235e86869c96b0e2e45a6 100644 (file)
@@ -1,4 +1,4 @@
-<!-- This file comes from the Android Material icon set, where it is called `phone_android_outlined`.  It is released under the Apache License 2.0. -->
+<!-- This file comes from the Android Material icon set, where it is called `phone_android_outlined`.  It is released under the Apache License 2.0 <https://fonts.google.com/icons>. -->
 
 <vector xmlns:android="http://schemas.android.com/apk/res/android"
     android:height="24dp"
diff --git a/app/src/main/res/drawable/previous.xml b/app/src/main/res/drawable/previous.xml
new file mode 100644 (file)
index 0000000..487bb22
--- /dev/null
@@ -0,0 +1,14 @@
+<!-- This file comes from the Android Material icon set, where it is called `keyboard_arrow_down_rounded_fill0_weight400_grade0_24px`.
+    It is released under the Apache License 2.0 <https://fonts.google.com/icons>. -->
+
+<vector
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:height="24dp"
+    android:width="24dp"
+    android:viewportHeight="960"
+    android:viewportWidth="960" >
+
+    <path
+        android:fillColor="@color/blue_icon"
+        android:pathData="M480,432 L324,588q-11,11 -28,11t-28,-11q-11,-11 -11,-28t11,-28l184,-184q12,-12 28,-12t28,12l184,184q11,11 11,28t-11,28q-11,11 -28,11t-28,-11L480,432Z" />
+</vector>
index 9f877bb2e76206ef57d96c2ba24c1de819b5701c..9e21da8a44b41d7815fa5e8eddfc480a13e6f8c5 100644 (file)
@@ -1,9 +1,9 @@
 <!--
   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 derived from `security` and `5g`, which are part of the Android Material icon set.  They are released under the Apache License 2.0 <https://fonts.google.com/icons>.
 
-  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/>.
 
   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
diff --git a/app/src/main/res/drawable/privacy_cell_monochrome.xml b/app/src/main/res/drawable/privacy_cell_monochrome.xml
new file mode 100644 (file)
index 0000000..5c7d13d
--- /dev/null
@@ -0,0 +1,40 @@
+<!--
+  Copyright © 2016,2021-2023 Soren Stoutner <soren@stoutner.com>.  The resulting image is released under the GPLv3+ license.
+
+  This file is derived from `security` and `5g`, which are part of the Android Material icon set.  They are released under the Apache License 2.0 <https://fonts.google.com/icons>.
+
+  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell/>.
+
+  Privacy Cell is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+
+  Privacy Cell is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with Privacy Cell.  If not, see <http://www.gnu.org/licenses/>. -->
+
+<vector
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:height="108dp"
+    android:width="108dp"
+    android:viewportHeight="256"
+    android:viewportWidth="256" >
+
+    <group
+        android:scaleX="0.4888889"
+        android:scaleY="0.4888889"
+        android:translateX="65.422226"
+        android:translateY="65.422226" >
+
+        <path
+            android:fillColor="@color/black"
+            android:pathData="M128,0 L23.27,46.55L23.27,116.36c-0,64.58 44.68,124.97 104.73,139.64 60.04,-14.66 104.73,-75.05 104.73,-139.64L232.73,46.55ZM54.85,76.63l48.66,0c4.54,0 8.11,3.57 8.11,8.11 0,4.54 -3.57,8.11 -8.11,8.11l-40.55,0l0,24.33l32.44,0c8.92,0 16.22,7.3 16.22,16.22l0,24.33c0,8.92 -7.3,16.22 -16.22,16.22l-40.55,0c-4.54,0 -8.11,-3.57 -8.11,-8.11 0,-4.54 3.57,-8.11 8.11,-8.11l40.55,0l0,-24.33l-40.55,0c-4.54,0 -8.11,-3.57 -8.11,-8.11l0,-40.55c0,-4.54 3.57,-8.11 8.11,-8.11zM144.05,76.63l56.76,0c4.54,0 8.11,3.57 8.11,8.11 0,4.54 -3.57,8.11 -8.11,8.11L144.05,92.85l0,64.87l48.66,0l0,-24.33l-24.33,0c-4.54,0 -8.11,-3.57 -8.11,-8.11 0,-4.54 3.57,-8.11 8.11,-8.11l32.44,0c4.54,0 8.11,3.57 8.11,8.11l0,32.44c0,8.92 -7.3,16.22 -16.22,16.22L144.05,173.94c-8.92,0 -16.22,-7.3 -16.22,-16.22L127.84,92.85c0,-8.92 7.3,-16.22 16.22,-16.22z"
+            tools:ignore="VectorPath" />
+    </group>
+</vector>
index b2ea3b57d9c17c967a15acf69a1222df3428d8b5..1d7c5c978d03cb45179d3ddd258ad29b3e568a16 100644 (file)
@@ -1,4 +1,4 @@
-<!-- This file comes from the Android Material icon set, where it is called `policy_filled`.  It is released under the Apache License 2.0. -->
+<!-- This file comes from the Android Material icon set, where it is called `policy_filled`.  It is released under the Apache License 2.0 <https://fonts.google.com/icons>. -->
 
 <vector
     xmlns:android="http://schemas.android.com/apk/res/android"
index 6b4efb48a47d666d36d58991bfc4fb7616e8f81d..a51b7114cb19115f335172680b1cc54ab5271a57 100644 (file)
@@ -1,4 +1,4 @@
-<!-- This file comes from the Android Material icon set, where it is called `settings_input_antenna_rounded`.  It is released under the Apache License 2.0. -->
+<!-- This file comes from the Android Material icon set, where it is called `settings_input_antenna_rounded`.  It is released under the Apache License 2.0 <https://fonts.google.com/icons>. -->
 
 <vector
     xmlns:android="http://schemas.android.com/apk/res/android"
index bebdbcbefa7b334cb2b1f43501272603ff374497..caf79ed8a15157d6eeff49cbd183a63487fbcbf7 100644 (file)
@@ -1,4 +1,4 @@
-<!-- This file comes from the Android Material icon set, where it is called `map_rounded`.  It is released under the Apache License 2.0. -->
+<!-- This file comes from the Android Material icon set, where it is called `map_rounded`.  It is released under the Apache License 2.0 <https://fonts.google.com/icons>. -->
 
 <vector
     xmlns:android="http://schemas.android.com/apk/res/android"
index 3d1e203927c31f2eec54c24a50c6208d85ef4947..29549d78283ccd0c10e487c81ae34fa8a3f84035 100644 (file)
@@ -1,4 +1,4 @@
-<!-- This file comes from the Android Material icon set, where it is called `save_outlined`.  It is released under the Apache License 2.0. -->
+<!-- This file comes from the Android Material icon set, where it is called `save_outlined`.  It is released under the Apache License 2.0 <https://fonts.google.com/icons>. -->
 
 <vector
     xmlns:android="http://schemas.android.com/apk/res/android"
diff --git a/app/src/main/res/drawable/search.xml b/app/src/main/res/drawable/search.xml
new file mode 100644 (file)
index 0000000..fea074c
--- /dev/null
@@ -0,0 +1,14 @@
+<!-- This file comes from the Android Material icon set, where it is called `search_rounded_fill0_weight400_grade0_24px`.  It is released under the Apache License 2.0 <https://fonts.google.com/icons>. -->
+
+<vector
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:height="24dp"
+    android:width="24dp"
+    android:viewportHeight="960"
+    android:viewportWidth="960"
+    android:autoMirrored="true" >
+      
+    <path
+        android:fillColor="@color/logcat_icon"
+        android:pathData="M380,640q-109,0 -184.5,-75.5T120,380q0,-109 75.5,-184.5T380,120q109,0 184.5,75.5T640,380q0,44 -14,83t-38,69l224,224q11,11 11,28t-11,28q-11,11 -28,11t-28,-11L532,588q-30,24 -69,38t-83,14ZM380,560q75,0 127.5,-52.5T560,380q0,-75 -52.5,-127.5T380,200q-75,0 -127.5,52.5T200,380q0,75 52.5,127.5T380,560Z" />
+</vector>
index 14972a52b331ff4c44bb0258288227cb0bdd0811..5643da6544c93de97e56e6735489ffb6ca14ae48 100644 (file)
@@ -1,9 +1,9 @@
 <!--
   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 derived from `security` and `5g`, which are part of the Android Material icon set.  They are released under the Apache License 2.0 <https://fonts.google.com/icons>.
 
-  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/>.
 
   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
index a4ed573e9ba78653ce554b85a698d0f41bfee347..05141eb6442d3171ee46c2b77cc6ddaaab631a89 100644 (file)
@@ -1,9 +1,9 @@
 <!--
-  Copyright © 2016,2021-2022 Soren Stoutner <soren@stoutner.com>.  The resulting image is released under the GPLv3+ license.
+  Copyright © 2016,2021-2023 Soren Stoutner <soren@stoutner.com>.  The resulting image is released under the GPLv3+ license.
 
-  This file is derived from `security` and `5g`, which are part of the Android Material icon set.  They are released under the Apache License 2.0.
+  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 <https://fonts.google.com/icons>.
 
-  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/>.
 
   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
@@ -20,6 +20,7 @@
 
 <vector
     xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
     android:height="24dp"
     android:width="24dp"
     android:viewportHeight="256"
@@ -27,5 +28,6 @@
 
     <path
         android:fillColor="@color/disabled_icon"
-        android:pathData="M128,0 L23.273,46.545L23.273,116.364c-0,64.582 44.684,124.974 104.727,139.636 60.044,-14.662 104.727,-75.054 104.727,-139.636L232.727,46.545ZM54.852,76.633l48.656,0c4.541,0 8.109,3.569 8.109,8.11 0,4.541 -3.568,8.109 -8.109,8.109l-40.547,0l0,24.327l32.437,0c8.92,0 16.219,7.298 16.219,16.219l0,24.328c0,8.92 -7.298,16.219 -16.219,16.219l-40.546,0c-4.541,0 -8.11,-3.569 -8.11,-8.11 0,-4.541 3.569,-8.109 8.11,-8.109l40.546,0l0,-24.328l-40.546,0c-4.541,0 -8.11,-3.568 -8.11,-8.109l0,-40.546c0,-4.541 3.569,-8.11 8.11,-8.11zM144.054,76.633l56.765,0c4.541,0 8.109,3.569 8.109,8.11 0,4.541 -3.568,8.109 -8.109,8.109L144.054,92.852l0,64.874l48.656,0l0,-24.328l-24.328,0c-4.541,0 -8.109,-3.568 -8.109,-8.109 0,-4.541 3.568,-8.11 8.109,-8.11l32.437,0c4.541,0 8.109,3.569 8.109,8.11l0,32.437c0,8.92 -7.297,16.219 -16.218,16.219L144.054,173.945c-8.92,0 -16.219,-7.298 -16.219,-16.219L127.835,92.852c0,-8.92 7.298,-16.219 16.219,-16.219z" />
+        android:pathData="M128,0 L23.273,46.545L23.273,116.364c-0,64.582 44.684,124.974 104.727,139.636 60.044,-14.662 104.727,-75.054 104.727,-139.636L232.727,46.545ZM54.852,76.633l48.656,0c4.541,0 8.109,3.569 8.109,8.11 0,4.541 -3.568,8.109 -8.109,8.109l-40.547,0l0,24.327l32.437,0c8.92,0 16.219,7.298 16.219,16.219l0,24.328c0,8.92 -7.298,16.219 -16.219,16.219l-40.546,0c-4.541,0 -8.11,-3.569 -8.11,-8.11 0,-4.541 3.569,-8.109 8.11,-8.109l40.546,0l0,-24.328l-40.546,0c-4.541,0 -8.11,-3.568 -8.11,-8.109l0,-40.546c0,-4.541 3.569,-8.11 8.11,-8.11zM144.054,76.633l56.765,0c4.541,0 8.109,3.569 8.109,8.11 0,4.541 -3.568,8.109 -8.109,8.109L144.054,92.852l0,64.874l48.656,0l0,-24.328l-24.328,0c-4.541,0 -8.109,-3.568 -8.109,-8.109 0,-4.541 3.568,-8.11 8.109,-8.11l32.437,0c4.541,0 8.109,3.569 8.109,8.11l0,32.437c0,8.92 -7.297,16.219 -16.218,16.219L144.054,173.945c-8.92,0 -16.219,-7.298 -16.219,-16.219L127.835,92.852c0,-8.92 7.298,-16.219 16.219,-16.219z"
+        tools:ignore="VectorPath" />
 </vector>
\ No newline at end of file
index 83bd9c15827a42b6c57fdd4ed410860eab185be5..ea3fc18171d563a8438f3c3549b67b327bec1a2c 100644 (file)
@@ -1,9 +1,9 @@
 <!--
-  Copyright © 2016,2021-2022 Soren Stoutner <soren@stoutner.com>.  The resulting image is released under the GPLv3+ license.
+  Copyright © 2016,2021-2023 Soren Stoutner <soren@stoutner.com>.  The resulting image is released under the GPLv3+ license.
 
-  This file is derived from `security` and `5g`, which are part of the Android Material icon set.  They are released under the Apache License 2.0.
+  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 <https://fonts.google.com/icons>.
 
-  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/>.
 
   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
@@ -20,6 +20,7 @@
 
 <vector
     xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
     android:height="24dp"
     android:width="24dp"
     android:viewportHeight="256"
@@ -27,5 +28,6 @@
 
     <path
         android:fillColor="@color/blue_icon"
-        android:pathData="M128,0 L23.273,46.545L23.273,116.364c-0,64.582 44.684,124.974 104.727,139.636 60.044,-14.662 104.727,-75.054 104.727,-139.636L232.727,46.545ZM54.852,76.633l48.656,0c4.541,0 8.109,3.569 8.109,8.11 0,4.541 -3.568,8.109 -8.109,8.109l-40.547,0l0,24.327l32.437,0c8.92,0 16.219,7.298 16.219,16.219l0,24.328c0,8.92 -7.298,16.219 -16.219,16.219l-40.546,0c-4.541,0 -8.11,-3.569 -8.11,-8.11 0,-4.541 3.569,-8.109 8.11,-8.109l40.546,0l0,-24.328l-40.546,0c-4.541,0 -8.11,-3.568 -8.11,-8.109l0,-40.546c0,-4.541 3.569,-8.11 8.11,-8.11zM144.054,76.633l56.765,0c4.541,0 8.109,3.569 8.109,8.11 0,4.541 -3.568,8.109 -8.109,8.109L144.054,92.852l0,64.874l48.656,0l0,-24.328l-24.328,0c-4.541,0 -8.109,-3.568 -8.109,-8.109 0,-4.541 3.568,-8.11 8.109,-8.11l32.437,0c4.541,0 8.109,3.569 8.109,8.11l0,32.437c0,8.92 -7.297,16.219 -16.218,16.219L144.054,173.945c-8.92,0 -16.219,-7.298 -16.219,-16.219L127.835,92.852c0,-8.92 7.298,-16.219 16.219,-16.219z" />
+        android:pathData="M128,0 L23.273,46.545L23.273,116.364c-0,64.582 44.684,124.974 104.727,139.636 60.044,-14.662 104.727,-75.054 104.727,-139.636L232.727,46.545ZM54.852,76.633l48.656,0c4.541,0 8.109,3.569 8.109,8.11 0,4.541 -3.568,8.109 -8.109,8.109l-40.547,0l0,24.327l32.437,0c8.92,0 16.219,7.298 16.219,16.219l0,24.328c0,8.92 -7.298,16.219 -16.219,16.219l-40.546,0c-4.541,0 -8.11,-3.569 -8.11,-8.11 0,-4.541 3.569,-8.109 8.11,-8.109l40.546,0l0,-24.328l-40.546,0c-4.541,0 -8.11,-3.568 -8.11,-8.109l0,-40.546c0,-4.541 3.569,-8.11 8.11,-8.11zM144.054,76.633l56.765,0c4.541,0 8.109,3.569 8.109,8.11 0,4.541 -3.568,8.109 -8.109,8.109L144.054,92.852l0,64.874l48.656,0l0,-24.328l-24.328,0c-4.541,0 -8.109,-3.568 -8.109,-8.109 0,-4.541 3.568,-8.11 8.109,-8.11l32.437,0c4.541,0 8.109,3.569 8.109,8.11l0,32.437c0,8.92 -7.297,16.219 -16.218,16.219L144.054,173.945c-8.92,0 -16.219,-7.298 -16.219,-16.219L127.835,92.852c0,-8.92 7.298,-16.219 16.219,-16.219z"
+        tools:ignore="VectorPath" />
 </vector>
\ No newline at end of file
index 5ddf76e3731819acb71f31cc7cfa0a47b615104a..b25116da8909f1e4ef644257c06d6aa47f78336d 100644 (file)
@@ -1,9 +1,9 @@
 <!--
-  Copyright © 2016,2021-2022 Soren Stoutner <soren@stoutner.com>.  The resulting image is released under the GPLv3+ license.
+  Copyright © 2016,2021-2023 Soren Stoutner <soren@stoutner.com>.  The resulting image is released under the GPLv3+ license.
 
-  This file is derived from `security` and `5g`, which are part of the Android Material icon set.  They are released under the Apache License 2.0.
+  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 <https://fonts.google.com/icons>.
 
-  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/>.
 
   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
@@ -20,6 +20,7 @@
 
 <vector
     xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
     android:height="24dp"
     android:width="24dp"
     android:viewportHeight="256"
@@ -27,5 +28,6 @@
 
     <path
         android:fillColor="@color/ghosted_icon"
-        android:pathData="M128,0 L23.273,46.545L23.273,116.364c-0,64.582 44.684,124.974 104.727,139.636 60.044,-14.662 104.727,-75.054 104.727,-139.636L232.727,46.545ZM54.852,76.633l48.656,0c4.541,0 8.109,3.569 8.109,8.11 0,4.541 -3.568,8.109 -8.109,8.109l-40.547,0l0,24.327l32.437,0c8.92,0 16.219,7.298 16.219,16.219l0,24.328c0,8.92 -7.298,16.219 -16.219,16.219l-40.546,0c-4.541,0 -8.11,-3.569 -8.11,-8.11 0,-4.541 3.569,-8.109 8.11,-8.109l40.546,0l0,-24.328l-40.546,0c-4.541,0 -8.11,-3.568 -8.11,-8.109l0,-40.546c0,-4.541 3.569,-8.11 8.11,-8.11zM144.054,76.633l56.765,0c4.541,0 8.109,3.569 8.109,8.11 0,4.541 -3.568,8.109 -8.109,8.109L144.054,92.852l0,64.874l48.656,0l0,-24.328l-24.328,0c-4.541,0 -8.109,-3.568 -8.109,-8.109 0,-4.541 3.568,-8.11 8.109,-8.11l32.437,0c4.541,0 8.109,3.569 8.109,8.11l0,32.437c0,8.92 -7.297,16.219 -16.218,16.219L144.054,173.945c-8.92,0 -16.219,-7.298 -16.219,-16.219L127.835,92.852c0,-8.92 7.298,-16.219 16.219,-16.219z" />
+        android:pathData="M128,0 L23.273,46.545L23.273,116.364c-0,64.582 44.684,124.974 104.727,139.636 60.044,-14.662 104.727,-75.054 104.727,-139.636L232.727,46.545ZM54.852,76.633l48.656,0c4.541,0 8.109,3.569 8.109,8.11 0,4.541 -3.568,8.109 -8.109,8.109l-40.547,0l0,24.327l32.437,0c8.92,0 16.219,7.298 16.219,16.219l0,24.328c0,8.92 -7.298,16.219 -16.219,16.219l-40.546,0c-4.541,0 -8.11,-3.569 -8.11,-8.11 0,-4.541 3.569,-8.109 8.11,-8.109l40.546,0l0,-24.328l-40.546,0c-4.541,0 -8.11,-3.568 -8.11,-8.109l0,-40.546c0,-4.541 3.569,-8.11 8.11,-8.11zM144.054,76.633l56.765,0c4.541,0 8.109,3.569 8.109,8.11 0,4.541 -3.568,8.109 -8.109,8.109L144.054,92.852l0,64.874l48.656,0l0,-24.328l-24.328,0c-4.541,0 -8.109,-3.568 -8.109,-8.109 0,-4.541 3.568,-8.11 8.109,-8.11l32.437,0c4.541,0 8.109,3.569 8.109,8.11l0,32.437c0,8.92 -7.297,16.219 -16.218,16.219L144.054,173.945c-8.92,0 -16.219,-7.298 -16.219,-16.219L127.835,92.852c0,-8.92 7.298,-16.219 16.219,-16.219z"
+        tools:ignore="VectorPath" />
 </vector>
\ No newline at end of file
index 9c55e11df1262df54db7d7ae258eb4d0d4993559..79c6dd2119518faf0d711de33cd10f37ff8a8b59 100644 (file)
@@ -1,7 +1,8 @@
-<!-- This file comes from the Android Material icon set, where it is called `settings_rounded`.  It is released under the Apache License 2.0. -->
+<!-- This file comes from the Android Material icon set, where it is called `settings_rounded`.  It is released under the Apache License 2.0 <https://fonts.google.com/icons>. -->
 
 <vector
     xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
     android:height="24dp"
     android:width="24dp"
     android:viewportHeight="24"
@@ -9,5 +10,6 @@
 
     <path
         android:fillColor="@color/blue_icon"
-        android:pathData="M19.43,12.98c0.04,-0.32 0.07,-0.64 0.07,-0.98s-0.03,-0.66 -0.07,-0.98l2.11,-1.65c0.19,-0.15 0.24,-0.42 0.12,-0.64l-2,-3.46c-0.12,-0.22 -0.39,-0.3 -0.61,-0.22l-2.49,1c-0.52,-0.4 -1.08,-0.73 -1.69,-0.98l-0.38,-2.65C14.46,2.18 14.25,2 14,2h-4c-0.25,0 -0.46,0.18 -0.49,0.42l-0.38,2.65c-0.61,0.25 -1.17,0.59 -1.69,0.98l-2.49,-1c-0.23,-0.09 -0.49,0 -0.61,0.22l-2,3.46c-0.13,0.22 -0.07,0.49 0.12,0.64l2.11,1.65c-0.04,0.32 -0.07,0.65 -0.07,0.98s0.03,0.66 0.07,0.98l-2.11,1.65c-0.19,0.15 -0.24,0.42 -0.12,0.64l2,3.46c0.12,0.22 0.39,0.3 0.61,0.22l2.49,-1c0.52,0.4 1.08,0.73 1.69,0.98l0.38,2.65c0.03,0.24 0.24,0.42 0.49,0.42h4c0.25,0 0.46,-0.18 0.49,-0.42l0.38,-2.65c0.61,-0.25 1.17,-0.59 1.69,-0.98l2.49,1c0.23,0.09 0.49,0 0.61,-0.22l2,-3.46c0.12,-0.22 0.07,-0.49 -0.12,-0.64l-2.11,-1.65zM12,15.5c-1.93,0 -3.5,-1.57 -3.5,-3.5s1.57,-3.5 3.5,-3.5 3.5,1.57 3.5,3.5 -1.57,3.5 -3.5,3.5z" />
+        android:pathData="M19.43,12.98c0.04,-0.32 0.07,-0.64 0.07,-0.98s-0.03,-0.66 -0.07,-0.98l2.11,-1.65c0.19,-0.15 0.24,-0.42 0.12,-0.64l-2,-3.46c-0.12,-0.22 -0.39,-0.3 -0.61,-0.22l-2.49,1c-0.52,-0.4 -1.08,-0.73 -1.69,-0.98l-0.38,-2.65C14.46,2.18 14.25,2 14,2h-4c-0.25,0 -0.46,0.18 -0.49,0.42l-0.38,2.65c-0.61,0.25 -1.17,0.59 -1.69,0.98l-2.49,-1c-0.23,-0.09 -0.49,0 -0.61,0.22l-2,3.46c-0.13,0.22 -0.07,0.49 0.12,0.64l2.11,1.65c-0.04,0.32 -0.07,0.65 -0.07,0.98s0.03,0.66 0.07,0.98l-2.11,1.65c-0.19,0.15 -0.24,0.42 -0.12,0.64l2,3.46c0.12,0.22 0.39,0.3 0.61,0.22l2.49,-1c0.52,0.4 1.08,0.73 1.69,0.98l0.38,2.65c0.03,0.24 0.24,0.42 0.49,0.42h4c0.25,0 0.46,-0.18 0.49,-0.42l0.38,-2.65c0.61,-0.25 1.17,-0.59 1.69,-0.98l2.49,1c0.23,0.09 0.49,0 0.61,-0.22l2,-3.46c0.12,-0.22 0.07,-0.49 -0.12,-0.64l-2.11,-1.65zM12,15.5c-1.93,0 -3.5,-1.57 -3.5,-3.5s1.57,-3.5 3.5,-3.5 3.5,1.57 3.5,3.5 -1.57,3.5 -3.5,3.5z"
+        tools:ignore="VectorPath" />
 </vector>
\ No newline at end of file
index cbb82a3ff3f22bc06a853f474358affc2ac1014b..addb6819f85a38a46edf303b67e0234ab777dd87 100644 (file)
@@ -1,22 +1,23 @@
 <?xml version="1.0" encoding="utf-8"?>
 
 <!--
-  Copyright © 2021 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021 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/>.
 
-  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
 <TextView
     xmlns:android="http://schemas.android.com/apk/res/android"
index 49d9adbe82fdc5b51168a8dbc8e5ae5c9222408c..41e210a45b39913d14355639624907cba09154bf 100644 (file)
@@ -1,28 +1,32 @@
 <?xml version="1.0" encoding="utf-8"?>
 
 <!--
-  Copyright © 2021 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021, 2025 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/>.
 
-  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
+<!-- API 35 (Android 15) requires setting `android:fitsSystemWindows="true"`. -->
 <androidx.coordinatorlayout.widget.CoordinatorLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
     android:layout_height="match_parent"
-    android:layout_width="match_parent" >
+    android:layout_width="match_parent"
+    android:fitsSystemWindows="true" >
 
     <!-- The linear layout with `orientation="vertical"` keeps the content above the app bar layout.  `app:layout_dodgeInsetEdges="bottom"` as a child of a coordinator layout moves the view above snackbars. -->
     <LinearLayout
             android:layout_width="match_parent"
             android:layout_weight="1" >
 
-            <ScrollView
-                android:id="@+id/scrollview"
+            <WebView
+                android:id="@+id/logcat_webview"
                 android:layout_height="wrap_content"
-                android:layout_width="match_parent" >
-
-                <TextView
-                    android:id="@+id/logcat_textview"
-                    android:layout_height="wrap_content"
-                    android:layout_width="match_parent"
-                    android:layout_margin="10dp"
-                    android:textIsSelectable="true" />
-            </ScrollView>
+                android:layout_width="match_parent" />
         </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
 
         <!-- The app bar theme must be specified here because the activity uses a `NoActionBar` theme. -->
                 android:id="@+id/toolbar"
                 android:layout_height="wrap_content"
                 android:layout_width="match_parent" />
+
+            <!-- The search linear layout.  It is initially `visibility="gone"` and is only displayed when requested. -->
+            <LinearLayout
+                android:id="@+id/search_linearlayout"
+                android:layout_height="wrap_content"
+                android:layout_width="match_parent"
+                android:orientation="horizontal"
+                android:visibility="gone" >
+
+                <!-- `android:imeOptions="actionDone"` sets the keyboard to have a `check mark` key instead of a `new line` key. -->
+                <EditText
+                    android:id="@+id/search_edittext"
+                    android:layout_height="wrap_content"
+                    android:layout_width="0dp"
+                    android:layout_weight="1"
+                    android:layout_marginStart="8dp"
+                    android:layout_marginEnd="4dp"
+                    android:hint="@string/search"
+                    android:lines="1"
+                    android:imeOptions="actionDone"
+                    android:inputType="text"
+                    tools:ignore="Autofill" />
+
+                <TextView
+                    android:id="@+id/search_count_textview"
+                    android:layout_height="wrap_content"
+                    android:layout_width="wrap_content"
+                    android:layout_marginStart="4dp"
+                    android:layout_marginEnd="4dp"
+                    android:text="@string/zero_of_zero" />
+
+                <!-- `android:background="?attr/selectableItemBackground"` adds a ripple animation on touch. -->
+                <ImageView
+                    android:id="@+id/search_previous"
+                    android:layout_height="35dp"
+                    android:layout_width="35dp"
+                    android:layout_marginStart="4dp"
+                    android:layout_marginEnd="4dp"
+                    android:layout_gravity="center_vertical"
+                    android:src="@drawable/previous"
+                    android:background="?attr/selectableItemBackground"
+                    android:contentDescription="@string/previous"
+                    android:onClick="searchPrevious"
+                    app:tint="@color/blue_icon" />
+
+                <!-- `android:background="?attr/selectableItemBackground"` adds a ripple animation on touch. -->
+                <ImageView
+                    android:id="@+id/search_next"
+                    android:layout_height="35dp"
+                    android:layout_width="35dp"
+                    android:layout_marginStart="4dp"
+                    android:layout_marginEnd="4dp"
+                    android:layout_gravity="center_vertical"
+                    android:src="@drawable/next"
+                    android:background="?attr/selectableItemBackground"
+                    android:contentDescription="@string/next"
+                    android:onClick="searchNext"
+                    app:tint="@color/blue_icon" />
+
+                <!-- `android:background="?attr/selectableItemBackground"` adds a ripple animation on touch. -->
+                <ImageView
+                    android:id="@+id/close_search"
+                    android:layout_height="35dp"
+                    android:layout_width="35dp"
+                    android:layout_marginStart="4dp"
+                    android:layout_marginEnd="8dp"
+                    android:layout_gravity="center_vertical"
+                    android:src="@drawable/close"
+                    android:background="?attr/selectableItemBackground"
+                    android:contentDescription="@string/close"
+                    android:onClick="closeSearch"
+                    app:tint="@color/blue_icon" />
+            </LinearLayout>
         </com.google.android.material.appbar.AppBarLayout>
     </LinearLayout>
 </androidx.coordinatorlayout.widget.CoordinatorLayout>
\ No newline at end of file
index 3e3a53a05b7861aa6796c95618665f227a65f123..a8cf2c6f965f2ba113ff21b7662911f66bb6cbe5 100644 (file)
@@ -1,27 +1,32 @@
 <?xml version="1.0" encoding="utf-8"?>
 
 <!--
-  Copyright © 2021 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021, 2025 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/>.
 
-  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
+<!-- API 35 (Android 15) requires setting `android:fitsSystemWindows="true"`. -->
 <androidx.coordinatorlayout.widget.CoordinatorLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
     android:layout_height="match_parent"
-    android:layout_width="match_parent" >
+    android:layout_width="match_parent"
+    android:fitsSystemWindows="true" >
 
     <!-- The linear layout with `orientation="vertical"` moves the content below the app bar layout. -->
     <LinearLayout
                 android:id="@+id/toolbar"
                 android:layout_height="wrap_content"
                 android:layout_width="match_parent" />
+
+            <!-- The search linear layout.  It is initially `visibility="gone"` and is only displayed when requested. -->
+            <LinearLayout
+                android:id="@+id/search_linearlayout"
+                android:layout_height="wrap_content"
+                android:layout_width="match_parent"
+                android:orientation="horizontal"
+                android:visibility="gone" >
+
+                <!-- `android:imeOptions="actionDone"` sets the keyboard to have a `check mark` key instead of a `new line` key. -->
+                <EditText
+                    android:id="@+id/search_edittext"
+                    android:layout_height="wrap_content"
+                    android:layout_width="0dp"
+                    android:layout_weight="1"
+                    android:layout_marginStart="8dp"
+                    android:layout_marginEnd="4dp"
+                    android:hint="@string/search"
+                    android:lines="1"
+                    android:imeOptions="actionDone"
+                    android:inputType="text"
+                    tools:ignore="Autofill" />
+
+                <TextView
+                    android:id="@+id/search_count_textview"
+                    android:layout_height="wrap_content"
+                    android:layout_width="wrap_content"
+                    android:layout_marginStart="4dp"
+                    android:layout_marginEnd="4dp"
+                    android:text="@string/zero_of_zero" />
+
+                <!-- `android:background="?attr/selectableItemBackground"` adds a ripple animation on touch. -->
+                <ImageView
+                    android:id="@+id/search_previous"
+                    android:layout_height="35dp"
+                    android:layout_width="35dp"
+                    android:layout_marginStart="4dp"
+                    android:layout_marginEnd="4dp"
+                    android:layout_gravity="center_vertical"
+                    android:src="@drawable/previous"
+                    android:background="?attr/selectableItemBackground"
+                    android:contentDescription="@string/previous"
+                    android:onClick="searchPrevious"
+                    app:tint="@color/blue_icon" />
+
+                <!-- `android:background="?attr/selectableItemBackground"` adds a ripple animation on touch. -->
+                <ImageView
+                    android:id="@+id/search_next"
+                    android:layout_height="35dp"
+                    android:layout_width="35dp"
+                    android:layout_marginStart="4dp"
+                    android:layout_marginEnd="4dp"
+                    android:layout_gravity="center_vertical"
+                    android:src="@drawable/next"
+                    android:background="?attr/selectableItemBackground"
+                    android:contentDescription="@string/next"
+                    android:onClick="searchNext"
+                    app:tint="@color/blue_icon" />
+
+                <!-- `android:background="?attr/selectableItemBackground"` adds a ripple animation on touch. -->
+                <ImageView
+                    android:id="@+id/close_search"
+                    android:layout_height="35dp"
+                    android:layout_width="35dp"
+                    android:layout_marginStart="4dp"
+                    android:layout_marginEnd="8dp"
+                    android:layout_gravity="center_vertical"
+                    android:src="@drawable/close"
+                    android:background="?attr/selectableItemBackground"
+                    android:contentDescription="@string/close"
+                    android:onClick="closeSearch"
+                    app:tint="@color/blue_icon" />
+            </LinearLayout>
         </com.google.android.material.appbar.AppBarLayout>
 
         <androidx.swiperefreshlayout.widget.SwipeRefreshLayout
             android:layout_height="match_parent"
             android:layout_width="match_parent" >
 
-            <ScrollView
-                android:id="@+id/scrollview"
+            <WebView
+                android:id="@+id/logcat_webview"
                 android:layout_height="wrap_content"
-                android:layout_width="match_parent" >
-
-                <TextView
-                    android:id="@+id/logcat_textview"
-                    android:layout_height="wrap_content"
-                    android:layout_width="match_parent"
-                    android:layout_margin="10dp"
-                    android:textIsSelectable="true" />
-            </ScrollView>
+                android:layout_width="match_parent" />
         </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
     </LinearLayout>
 </androidx.coordinatorlayout.widget.CoordinatorLayout>
\ No newline at end of file
index abef8f82d1142c48fdc1fe1f0696758bc1ecb87b..9f0f0332162296c87ec3f1a61a87f1c1e410f39e 100644 (file)
 <?xml version="1.0" encoding="utf-8"?>
 
 <!--
-  Copyright © 2021-2022 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021-2022, 2025 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/>.
 
-  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
-<androidx.drawerlayout.widget.DrawerLayout
+<!-- API 35 (Android 15) requires setting `android:fitsSystemWindows="true"`. -->
+<FrameLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
     xmlns:app="http://schemas.android.com/apk/res-auto"
-    android:id="@+id/drawerlayout"
     android:layout_height="match_parent"
-    android:layout_width="match_parent">
+    android:layout_width="match_parent"
+    android:fitsSystemWindows="true" >
 
-    <androidx.coordinatorlayout.widget.CoordinatorLayout
+    <androidx.drawerlayout.widget.DrawerLayout
+        android:id="@+id/drawerlayout"
         android:layout_height="match_parent"
-        android:layout_width="match_parent" >
+        android:layout_width="match_parent">
 
-        <!-- The linear layout with `orientation="vertical"` moves the app bar below the main content below the main content. -->
-        <LinearLayout
+        <androidx.coordinatorlayout.widget.CoordinatorLayout
             android:layout_height="match_parent"
-            android:layout_width="match_parent"
-            android:orientation="vertical" >
+            android:layout_width="match_parent" >
 
-            <!-- The main content is wrapped in a scroll view. -->
-            <ScrollView
-                android:layout_height="0dp"
+            <!-- The linear layout with `orientation="vertical"` moves the app bar below the main content. -->
+            <LinearLayout
+                android:layout_height="match_parent"
                 android:layout_width="match_parent"
-                android:layout_weight="1" >
+                android:orientation="vertical" >
 
-                <LinearLayout
-                    android:layout_height="wrap_content"
+                <!-- The main content is wrapped in a scroll view. -->
+                <ScrollView
+                    android:layout_height="0dp"
                     android:layout_width="match_parent"
-                    android:orientation="vertical"
-                    android:padding="15dp" >
-
-                    <!-- Overall status. -->
-                    <LinearLayout
-                        android:id="@+id/overall_status_linearlayout"
-                        android:layout_height="wrap_content"
-                        android:layout_width="wrap_content"
-                        android:layout_gravity="center_horizontal"
-                        android:orientation="vertical"
-                        tools:ignore="UseCompoundDrawables" >
-
-                        <ImageView
-                            android:id="@+id/overall_status_imageview"
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:layout_gravity="center_horizontal"
-                            tools:ignore="ContentDescription" />
-
-                        <!-- 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/overall_status_textview"
-                            android:layout_height="wrap_content"
-                            android:layout_width="wrap_content"
-                            android:layout_gravity="center_horizontal"
-                            android:textAlignment="center"
-                            android:layout_marginTop="10dp"
-                            android:textColor="?android:textColorPrimary"
-                            android:textSize="20sp"
-                            android:textStyle="bold"
-                            android:text="@string/not_connected" />
-                    </LinearLayout>
-
-                    <!-- Voice network. -->
-                    <LinearLayout
-                        android:id="@+id/voice_network_linearlayout"
-                        android:layout_height="wrap_content"
-                        android:layout_width="wrap_content"
-                        android:layout_gravity="center_horizontal"
-                        android:orientation="vertical" >
-
-                        <TextView
-                            android:id="@+id/voice_network"
-                            android:layout_height="wrap_content"
-                            android:layout_width="wrap_content"
-                            android:layout_gravity="center_horizontal"
-                            android:textAlignment="center"
-                            android:layout_marginTop="30dp"
-                            android:textSize="18sp"
-                            android:textStyle="bold" />
-
-                        <TextView
-                            android:id="@+id/voice_network_details"
-                            android:layout_height="wrap_content"
-                            android:layout_width="wrap_content"
-                            android:layout_gravity="center_horizontal"
-                            android:textAlignment="center"
-                            android:layout_marginBottom="10dp" />
-                    </LinearLayout>
+                    android:layout_weight="1" >
 
-                    <!-- Data network. -->
                     <LinearLayout
-                        android:id="@+id/data_network_linearlayout"
                         android:layout_height="wrap_content"
-                        android:layout_width="wrap_content"
-                        android:layout_gravity="center_horizontal"
+                        android:layout_width="match_parent"
                         android:orientation="vertical" >
 
-                        <TextView
-                            android:id="@+id/data_network"
+                        <!-- Overall status. -->
+                        <androidx.cardview.widget.CardView
+                            android:id="@+id/overall_status_cardview"
                             android:layout_height="wrap_content"
-                            android:layout_width="wrap_content"
-                            android:layout_gravity="center_horizontal"
-                            android:textAlignment="center"
-                            android:textSize="18sp"
-                            android:textStyle="bold" />
-
-                        <TextView
-                            android:id="@+id/data_network_details"
+                            android:layout_width="match_parent"
+                            android:layout_marginTop="20dp"
+                            android:layout_marginStart="20dp"
+                            android:layout_marginEnd="20dp"
+                            android:layout_marginBottom="10dp" >
+
+                            <LinearLayout
+                                android:id="@+id/overall_status_linearlayout"
+                                android:layout_height="wrap_content"
+                                android:layout_width="wrap_content"
+                                android:layout_gravity="center_horizontal"
+                                android:orientation="vertical"
+                                android:layout_margin="20dp"
+                                tools:ignore="UseCompoundDrawables" >
+
+                                <ImageView
+                                    android:id="@+id/overall_status_imageview"
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:layout_gravity="center_horizontal"
+                                    tools:ignore="ContentDescription" />
+
+                                <!-- 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/overall_status_textview"
+                                    android:layout_height="wrap_content"
+                                    android:layout_width="wrap_content"
+                                    android:layout_gravity="center_horizontal"
+                                    android:textAlignment="center"
+                                    android:layout_marginTop="10dp"
+                                    android:textColor="?android:textColorPrimary"
+                                    android:textSize="20sp"
+                                    android:textStyle="bold"
+                                    android:text="@string/not_connected" />
+                            </LinearLayout>
+                        </androidx.cardview.widget.CardView>
+
+                        <!-- Voice network. -->
+                        <androidx.cardview.widget.CardView
+                            android:id="@+id/voice_network_cardview"
                             android:layout_height="wrap_content"
-                            android:layout_width="wrap_content"
-                            android:layout_gravity="center_horizontal"
-                            android:textAlignment="center"
-                            android:layout_marginBottom="10dp" />
-                    </LinearLayout>
-
-                    <!-- Additional network info. -->
-                    <LinearLayout
-                        android:id="@+id/additional_network_info_linearlayout"
-                        android:layout_height="wrap_content"
-                        android:layout_width="wrap_content"
-                        android:layout_gravity="center_horizontal"
-                        android:orientation="vertical" >
-
-                        <TextView
-                            android:id="@+id/additional_network_info"
-                            android:layout_height="wrap_content"
-                            android:layout_width="wrap_content"
-                            android:layout_gravity="center_horizontal"
-                            android:textAlignment="center"
-                            android:textSize="18sp"
-                            android:textStyle="bold" />
-
-                        <TextView
-                            android:id="@+id/additional_network_info_details"
+                            android:layout_width="match_parent"
+                            android:layout_marginTop="10dp"
+                            android:layout_marginStart="20dp"
+                            android:layout_marginEnd="20dp"
+                            android:layout_marginBottom="10dp" >
+
+                            <LinearLayout
+                                android:layout_height="wrap_content"
+                                android:layout_width="wrap_content"
+                                android:layout_gravity="center_horizontal"
+                                android:orientation="vertical"
+                                android:layout_margin="15dp" >
+
+                                <TextView
+                                    android:id="@+id/voice_network"
+                                    android:layout_height="wrap_content"
+                                    android:layout_width="wrap_content"
+                                    android:layout_gravity="center_horizontal"
+                                    android:textAlignment="center"
+                                    android:textSize="18sp"
+                                    android:textStyle="bold" />
+
+                                <TextView
+                                    android:id="@+id/voice_network_details"
+                                    android:layout_height="wrap_content"
+                                    android:layout_width="wrap_content"
+                                    android:layout_gravity="center_horizontal"
+                                    android:textAlignment="center"
+                                    android:textColor="?android:textColorPrimary" />
+
+                                <TextView
+                                    android:id="@+id/voice_network_subscription_info"
+                                    android:layout_height="wrap_content"
+                                    android:layout_width="wrap_content"
+                                    android:layout_gravity="center_horizontal"
+                                    android:textAlignment="center"
+                                    android:textSize="12sp" />
+                            </LinearLayout>
+                        </androidx.cardview.widget.CardView>
+
+                        <!-- Data network. -->
+                        <androidx.cardview.widget.CardView
                             android:layout_height="wrap_content"
-                            android:layout_width="wrap_content"
-                            android:layout_gravity="center_horizontal"
-                            android:textAlignment="center" />
+                            android:layout_width="match_parent"
+                            android:layout_marginTop="10dp"
+                            android:layout_marginStart="20dp"
+                            android:layout_marginEnd="20dp"
+                            android:layout_marginBottom="10dp" >
+
+                            <LinearLayout
+                                android:layout_height="wrap_content"
+                                android:layout_width="wrap_content"
+                                android:layout_gravity="center_horizontal"
+                                android:orientation="vertical"
+                                android:layout_margin="15dp" >
+
+                                <LinearLayout
+                                    android:id="@+id/data_network_linearlayout"
+                                    android:layout_height="wrap_content"
+                                    android:layout_width="wrap_content"
+                                    android:layout_gravity="center_horizontal"
+                                    android:orientation="vertical" >
+
+                                    <TextView
+                                        android:id="@+id/data_network"
+                                        android:layout_height="wrap_content"
+                                        android:layout_width="wrap_content"
+                                        android:layout_gravity="center_horizontal"
+                                        android:textAlignment="center"
+                                        android:textSize="18sp"
+                                        android:textStyle="bold"
+                                        tools:ignore="TooDeepLayout" />
+
+                                    <TextView
+                                        android:id="@+id/data_network_details"
+                                        android:layout_height="wrap_content"
+                                        android:layout_width="wrap_content"
+                                        android:layout_gravity="center_horizontal"
+                                        android:textAlignment="center"
+                                        android:textColor="?android:textColorPrimary" />
+
+                                    <TextView
+                                        android:id="@+id/data_network_subscription_info"
+                                        android:layout_height="wrap_content"
+                                        android:layout_width="wrap_content"
+                                        android:layout_gravity="center_horizontal"
+                                        android:textAlignment="center"
+                                        android:textSize="12sp" />
+                                </LinearLayout>
+
+                                <!-- Additional network info. -->
+                                <LinearLayout
+                                    android:id="@+id/additional_network_info_linearlayout"
+                                    android:layout_height="wrap_content"
+                                    android:layout_width="wrap_content"
+                                    android:layout_gravity="center_horizontal"
+                                    android:orientation="vertical" >
+
+                                    <TextView
+                                        android:id="@+id/additional_network_info"
+                                        android:layout_height="wrap_content"
+                                        android:layout_width="wrap_content"
+                                        android:layout_gravity="center_horizontal"
+                                        android:textAlignment="center"
+                                        android:textSize="18sp"
+                                        android:textStyle="bold" />
+
+                                    <TextView
+                                        android:id="@+id/additional_network_info_details"
+                                        android:layout_height="wrap_content"
+                                        android:layout_width="wrap_content"
+                                        android:layout_gravity="center_horizontal"
+                                        android:textAlignment="center"
+                                        android:textColor="?android:textColorPrimary" />
+                                </LinearLayout>
+                            </LinearLayout>
+                        </androidx.cardview.widget.CardView>
                     </LinearLayout>
-                </LinearLayout>
-            </ScrollView>
-
-            <!-- The app bar theme must be specified here because the activity uses a `NoActionBar` theme. -->
-            <com.google.android.material.appbar.AppBarLayout
-                android:layout_height="wrap_content"
-                android:layout_width="match_parent"
-                android:background="?android:attr/colorBackground"
-                android:theme="@style/ThemeOverlay.AppCompat.DayNight.ActionBar" >
+                </ScrollView>
 
-                <androidx.appcompat.widget.Toolbar
-                    android:id="@+id/toolbar"
+                <!-- The app bar theme must be specified here because the activity uses a `NoActionBar` theme. -->
+                <com.google.android.material.appbar.AppBarLayout
                     android:layout_height="wrap_content"
-                    android:layout_width="match_parent" />
-            </com.google.android.material.appbar.AppBarLayout>
-        </LinearLayout>
-    </androidx.coordinatorlayout.widget.CoordinatorLayout>
-
-    <!-- The navigation drawer. -->
-    <com.google.android.material.navigation.NavigationView
-        android:id="@+id/navigationview"
-        android:layout_height="match_parent"
-        android:layout_width="wrap_content"
-        android:layout_gravity="start"
-        app:menu="@menu/navigation_menu_bottom_appbar"
-        app:itemIconTint="@color/blue_icon" />
-</androidx.drawerlayout.widget.DrawerLayout>
\ No newline at end of file
+                    android:layout_width="match_parent"
+                    android:background="?android:attr/colorBackground"
+                    android:theme="@style/ThemeOverlay.AppCompat.DayNight.ActionBar" >
+
+                    <androidx.appcompat.widget.Toolbar
+                        android:id="@+id/toolbar"
+                        android:layout_height="wrap_content"
+                        android:layout_width="match_parent" />
+                </com.google.android.material.appbar.AppBarLayout>
+            </LinearLayout>
+        </androidx.coordinatorlayout.widget.CoordinatorLayout>
+
+        <!-- The navigation drawer. -->
+        <com.google.android.material.navigation.NavigationView
+            android:id="@+id/navigationview"
+            android:layout_height="match_parent"
+            android:layout_width="wrap_content"
+            android:layout_gravity="start"
+            app:menu="@menu/navigation_menu_bottom_appbar"
+            app:itemIconTint="@color/blue_icon" />
+    </androidx.drawerlayout.widget.DrawerLayout>
+</FrameLayout>
index 0fab973e7216019630f3e5c4cdcec77254c007c2..1f22959a70418b31c064237c2cb353dbc0354bdf 100644 (file)
 <?xml version="1.0" encoding="utf-8"?>
 
 <!--
-  Copyright © 2021-2022 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021-2022, 2025 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/>.
 
-  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
-<androidx.drawerlayout.widget.DrawerLayout
+<!-- API 35 (Android 15) requires setting `android:fitsSystemWindows="true"`. -->
+<FrameLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
     xmlns:app="http://schemas.android.com/apk/res-auto"
-    android:id="@+id/drawerlayout"
     android:layout_height="match_parent"
-    android:layout_width="match_parent">
+    android:layout_width="match_parent"
+    android:fitsSystemWindows="true" >
 
-    <androidx.coordinatorlayout.widget.CoordinatorLayout
+    <androidx.drawerlayout.widget.DrawerLayout
+        android:id="@+id/drawerlayout"
         android:layout_height="match_parent"
         android:layout_width="match_parent" >
 
-        <!-- The linear layout with `orientation="vertical"` moves the main content below the app bar layout. -->
-        <LinearLayout
+        <androidx.coordinatorlayout.widget.CoordinatorLayout
             android:layout_height="match_parent"
-            android:layout_width="match_parent"
-            android:orientation="vertical" >
+            android:layout_width="match_parent" >
 
-            <!-- The app bar theme must be specified here because the activity uses a `NoActionBar` theme. -->
-            <com.google.android.material.appbar.AppBarLayout
-                android:layout_height="wrap_content"
-                android:layout_width="match_parent"
-                android:background="?android:attr/colorBackground"
-                android:theme="@style/ThemeOverlay.AppCompat.DayNight.ActionBar" >
-
-                <androidx.appcompat.widget.Toolbar
-                    android:id="@+id/toolbar"
-                    android:layout_height="wrap_content"
-                    android:layout_width="match_parent" />
-            </com.google.android.material.appbar.AppBarLayout>
-
-            <!-- The main content is wrapped in a scroll view. -->
-            <ScrollView
+            <!-- The linear layout with `orientation="vertical"` moves the main content below the app bar layout. -->
+            <LinearLayout
                 android:layout_height="match_parent"
-                android:layout_width="match_parent" >
+                android:layout_width="match_parent"
+                android:orientation="vertical" >
 
-                <LinearLayout
+                <!-- The app bar theme must be specified here because the activity uses a `NoActionBar` theme. -->
+                <com.google.android.material.appbar.AppBarLayout
                     android:layout_height="wrap_content"
                     android:layout_width="match_parent"
-                    android:orientation="vertical"
-                    android:padding="15dp" >
+                    android:background="?android:attr/colorBackground"
+                    android:theme="@style/ThemeOverlay.AppCompat.DayNight.ActionBar" >
 
-                    <!-- Overall status. -->
-                    <LinearLayout
-                        android:id="@+id/overall_status_linearlayout"
+                    <androidx.appcompat.widget.Toolbar
+                        android:id="@+id/toolbar"
                         android:layout_height="wrap_content"
-                        android:layout_width="wrap_content"
-                        android:layout_gravity="center_horizontal"
-                        android:orientation="vertical"
-                        tools:ignore="UseCompoundDrawables" >
-
-                        <ImageView
-                            android:id="@+id/overall_status_imageview"
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:layout_gravity="center_horizontal"
-                            tools:ignore="ContentDescription" />
+                        android:layout_width="match_parent" />
+                </com.google.android.material.appbar.AppBarLayout>
 
-                        <!-- 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/overall_status_textview"
-                            android:layout_height="wrap_content"
-                            android:layout_width="wrap_content"
-                            android:layout_gravity="center_horizontal"
-                            android:textAlignment="center"
-                            android:layout_marginTop="10dp"
-                            android:textColor="?android:textColorPrimary"
-                            android:textSize="20sp"
-                            android:textStyle="bold"
-                            android:text="@string/not_connected" />
-                    </LinearLayout>
+                <!-- The main content is wrapped in a scroll view. -->
+                <ScrollView
+                    android:layout_height="match_parent"
+                    android:layout_width="match_parent" >
 
-                    <!-- Voice network. -->
                     <LinearLayout
-                        android:id="@+id/voice_network_linearlayout"
                         android:layout_height="wrap_content"
-                        android:layout_width="wrap_content"
-                        android:layout_gravity="center_horizontal"
+                        android:layout_width="match_parent"
                         android:orientation="vertical" >
 
-                        <TextView
-                            android:id="@+id/voice_network"
-                            android:layout_height="wrap_content"
-                            android:layout_width="wrap_content"
-                            android:layout_gravity="center_horizontal"
-                            android:textAlignment="center"
-                            android:layout_marginTop="30dp"
-                            android:textSize="18sp"
-                            android:textStyle="bold" />
-
-                        <TextView
-                            android:id="@+id/voice_network_details"
+                        <!-- Overall status. -->
+                        <androidx.cardview.widget.CardView
+                            android:id="@+id/overall_status_cardview"
                             android:layout_height="wrap_content"
-                            android:layout_width="wrap_content"
-                            android:layout_gravity="center_horizontal"
-                            android:textAlignment="center"
-                            android:layout_marginBottom="10dp" />
-                    </LinearLayout>
-
-                    <!-- Data network. -->
-                    <LinearLayout
-                        android:id="@+id/data_network_linearlayout"
-                        android:layout_height="wrap_content"
-                        android:layout_width="wrap_content"
-                        android:layout_gravity="center_horizontal"
-                        android:orientation="vertical" >
-
-                        <TextView
-                            android:id="@+id/data_network"
+                            android:layout_width="match_parent"
+                            android:layout_marginTop="20dp"
+                            android:layout_marginStart="20dp"
+                            android:layout_marginEnd="20dp"
+                            android:layout_marginBottom="10dp" >
+
+                            <LinearLayout
+                                android:id="@+id/overall_status_linearlayout"
+                                android:layout_height="wrap_content"
+                                android:layout_width="wrap_content"
+                                android:layout_gravity="center_horizontal"
+                                android:orientation="vertical"
+                                android:layout_margin="20dp"
+                                tools:ignore="UseCompoundDrawables" >
+
+                                <ImageView
+                                    android:id="@+id/overall_status_imageview"
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:layout_gravity="center_horizontal"
+                                    tools:ignore="ContentDescription" />
+
+                                <!-- 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/overall_status_textview"
+                                    android:layout_height="wrap_content"
+                                    android:layout_width="wrap_content"
+                                    android:layout_gravity="center_horizontal"
+                                    android:textAlignment="center"
+                                    android:layout_marginTop="10dp"
+                                    android:textColor="?android:textColorPrimary"
+                                    android:textSize="20sp"
+                                    android:textStyle="bold"
+                                    android:text="@string/not_connected" />
+                            </LinearLayout>
+                        </androidx.cardview.widget.CardView>
+
+                        <!-- Voice network. -->
+                        <androidx.cardview.widget.CardView
+                            android:id="@+id/voice_network_cardview"
                             android:layout_height="wrap_content"
-                            android:layout_width="wrap_content"
-                            android:layout_gravity="center_horizontal"
-                            android:textAlignment="center"
-                            android:textSize="18sp"
-                            android:textStyle="bold" />
-
-                        <TextView
-                            android:id="@+id/data_network_details"
+                            android:layout_width="match_parent"
+                            android:layout_marginTop="10dp"
+                            android:layout_marginStart="20dp"
+                            android:layout_marginEnd="20dp"
+                            android:layout_marginBottom="10dp" >
+
+                            <LinearLayout
+                                android:layout_height="wrap_content"
+                                android:layout_width="wrap_content"
+                                android:layout_gravity="center_horizontal"
+                                android:orientation="vertical"
+                                android:layout_margin="15dp" >
+
+                                <TextView
+                                    android:id="@+id/voice_network"
+                                    android:layout_height="wrap_content"
+                                    android:layout_width="wrap_content"
+                                    android:layout_gravity="center_horizontal"
+                                    android:textAlignment="center"
+                                    android:textSize="18sp"
+                                    android:textStyle="bold" />
+
+                                <TextView
+                                    android:id="@+id/voice_network_details"
+                                    android:layout_height="wrap_content"
+                                    android:layout_width="wrap_content"
+                                    android:layout_gravity="center_horizontal"
+                                    android:textAlignment="center"
+                                    android:textColor="?android:textColorPrimary" />
+
+                                <TextView
+                                    android:id="@+id/voice_network_subscription_info"
+                                    android:layout_height="wrap_content"
+                                    android:layout_width="wrap_content"
+                                    android:layout_gravity="center_horizontal"
+                                    android:textAlignment="center"
+                                    android:textSize="12sp" />
+                            </LinearLayout>
+                        </androidx.cardview.widget.CardView>
+
+                        <!-- Data network. -->
+                        <androidx.cardview.widget.CardView
                             android:layout_height="wrap_content"
-                            android:layout_width="wrap_content"
-                            android:layout_gravity="center_horizontal"
-                            android:textAlignment="center"
-                            android:layout_marginBottom="10dp" />
+                            android:layout_width="match_parent"
+                            android:layout_marginTop="10dp"
+                            android:layout_marginStart="20dp"
+                            android:layout_marginEnd="20dp"
+                            android:layout_marginBottom="10dp" >
+
+                            <LinearLayout
+                                android:layout_height="wrap_content"
+                                android:layout_width="wrap_content"
+                                android:layout_gravity="center_horizontal"
+                                android:orientation="vertical"
+                                android:layout_margin="15dp" >
+
+                                <LinearLayout
+                                    android:id="@+id/data_network_linearlayout"
+                                    android:layout_height="wrap_content"
+                                    android:layout_width="wrap_content"
+                                    android:layout_gravity="center_horizontal"
+                                    android:orientation="vertical" >
+
+                                    <TextView
+                                        android:id="@+id/data_network"
+                                        android:layout_height="wrap_content"
+                                        android:layout_width="wrap_content"
+                                        android:layout_gravity="center_horizontal"
+                                        android:textAlignment="center"
+                                        android:textSize="18sp"
+                                        android:textStyle="bold"
+                                        tools:ignore="TooDeepLayout" />
+
+                                    <TextView
+                                        android:id="@+id/data_network_details"
+                                        android:layout_height="wrap_content"
+                                        android:layout_width="wrap_content"
+                                        android:layout_gravity="center_horizontal"
+                                        android:textAlignment="center"
+                                        android:textColor="?android:textColorPrimary" />
+
+                                    <TextView
+                                        android:id="@+id/data_network_subscription_info"
+                                        android:layout_height="wrap_content"
+                                        android:layout_width="wrap_content"
+                                        android:layout_gravity="center_horizontal"
+                                        android:textAlignment="center"
+                                        android:textSize="12sp"
+                                        android:layout_marginBottom="20dp" />
+                                </LinearLayout>
+
+                                <!-- Additional network info. -->
+                                <LinearLayout
+                                    android:id="@+id/additional_network_info_linearlayout"
+                                    android:layout_height="wrap_content"
+                                    android:layout_width="wrap_content"
+                                    android:layout_gravity="center_horizontal"
+                                    android:orientation="vertical" >
+
+                                    <TextView
+                                        android:id="@+id/additional_network_info"
+                                        android:layout_height="wrap_content"
+                                        android:layout_width="wrap_content"
+                                        android:layout_gravity="center_horizontal"
+                                        android:textAlignment="center"
+                                        android:textSize="18sp"
+                                        android:textStyle="bold" />
+
+                                    <TextView
+                                        android:id="@+id/additional_network_info_details"
+                                        android:layout_height="wrap_content"
+                                        android:layout_width="wrap_content"
+                                        android:layout_gravity="center_horizontal"
+                                        android:textAlignment="center"
+                                        android:textColor="?android:textColorPrimary" />
+                                </LinearLayout>
+                            </LinearLayout>
+                        </androidx.cardview.widget.CardView>
                     </LinearLayout>
+                </ScrollView>
+            </LinearLayout>
+        </androidx.coordinatorlayout.widget.CoordinatorLayout>
 
-                    <!-- Additional network info. -->
-                    <LinearLayout
-                        android:id="@+id/additional_network_info_linearlayout"
-                        android:layout_height="wrap_content"
-                        android:layout_width="wrap_content"
-                        android:layout_gravity="center_horizontal"
-                        android:orientation="vertical" >
-
-                        <TextView
-                            android:id="@+id/additional_network_info"
-                            android:layout_height="wrap_content"
-                            android:layout_width="wrap_content"
-                            android:layout_gravity="center_horizontal"
-                            android:textAlignment="center"
-                            android:textSize="18sp"
-                            android:textStyle="bold" />
-
-                        <TextView
-                            android:id="@+id/additional_network_info_details"
-                            android:layout_height="wrap_content"
-                            android:layout_width="wrap_content"
-                            android:layout_gravity="center_horizontal"
-                            android:textAlignment="center" />
-                    </LinearLayout>
-                </LinearLayout>
-            </ScrollView>
-        </LinearLayout>
-    </androidx.coordinatorlayout.widget.CoordinatorLayout>
-
-    <!-- The navigation drawer. -->
-    <com.google.android.material.navigation.NavigationView
-        android:id="@+id/navigationview"
-        android:layout_height="match_parent"
-        android:layout_width="wrap_content"
-        android:layout_gravity="start"
-        app:menu="@menu/navigation_menu_top_appbar"
-        app:itemIconTint="@color/blue_icon" />
-</androidx.drawerlayout.widget.DrawerLayout>
\ No newline at end of file
+        <!-- The navigation drawer. -->
+        <com.google.android.material.navigation.NavigationView
+            android:id="@+id/navigationview"
+            android:layout_height="match_parent"
+            android:layout_width="wrap_content"
+            android:layout_gravity="start"
+            app:menu="@menu/navigation_menu_top_appbar"
+            app:itemIconTint="@color/blue_icon" />
+    </androidx.drawerlayout.widget.DrawerLayout>
+</FrameLayout>
index c86d07ad7a092f1fcafba9ffe354cf865c019362..08b75ef8c4b8a979b292fca257738ac9ef65e947 100644 (file)
@@ -1,22 +1,23 @@
 <?xml version="1.0" encoding="utf-8"?>
 
 <!--
-  Copyright © 2022 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 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/>.
 
-  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
 <TextView
     xmlns:android="http://schemas.android.com/apk/res/android"
index 897b8f56cfa8f89a39b27447e97961c129511f12..69b898417cba34ef98f6905b1882795a579f76bf 100644 (file)
@@ -1,22 +1,23 @@
 <?xml version="1.0" encoding="utf-8"?>
 
 <!--
-  Copyright © 2022 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 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/>.
 
-  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
 <TextView
     xmlns:android="http://schemas.android.com/apk/res/android"
index e2736747947786c641fc0b0a6e840be8b18593ee..5bd3b31038ddc9f78552713c5d1b3247490cf343 100644 (file)
@@ -1,28 +1,31 @@
 <?xml version="1.0" encoding="utf-8"?>
 
 <!--
-  Copyright © 2022 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2022, 2025 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/>.
 
-  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
+<!-- API 35 (Android 15) requires setting `android:fitsSystemWindows="true"`. -->
 <androidx.coordinatorlayout.widget.CoordinatorLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_height="match_parent"
-    android:layout_width="match_parent" >
+    android:layout_width="match_parent"
+    android:fitsSystemWindows="true" >
 
     <!-- The linear layout with `orientation="vertical"` keeps the content above the app bar layout.  `app:layout_dodgeInsetEdges="bottom"` as a child of a coordinator layout moves the view above snackbars. -->
     <LinearLayout
index c374a89d4f8865810c4a98aceb5d977c8dab3b40..6d1cda52f34e396c5fbcff1f41250e4d92130922 100644 (file)
@@ -1,27 +1,30 @@
 <?xml version="1.0" encoding="utf-8"?>
 
 <!--
-  Copyright © 2022 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2022, 2025 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/>.
 
-  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
+<!-- API 35 (Android 15) requires setting `android:fitsSystemWindows="true"`. -->
 <androidx.coordinatorlayout.widget.CoordinatorLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_height="match_parent"
-    android:layout_width="match_parent" >
+    android:layout_width="match_parent"
+    android:fitsSystemWindows="true" >
 
     <!-- The linear layout with `orientation="vertical"` moves the content below the app bar layout. -->
     <LinearLayout
index 0135d29a8406197edf401a4dd1c216bb62600f31..7e1b8387cdda1da7d57a3495825bde4d08b8af4d 100644 (file)
@@ -1,27 +1,30 @@
 <?xml version="1.0" encoding="utf-8"?>
 
 <!--
-  Copyright 2021-2022 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021-2022, 2025 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/>.
 
-  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
+<!-- API 35 (Android 15) requires setting `android:fitsSystemWindows="true"`. -->
 <androidx.coordinatorlayout.widget.CoordinatorLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_height="match_parent"
-    android:layout_width="match_parent" >
+    android:layout_width="match_parent"
+    android:fitsSystemWindows="true" >
 
     <!-- The linear layout with `orientation="vertical"` moves the app bar layout below the main content. -->
     <LinearLayout
index 380c124b56d3d0133f677e68c6ecbcde362e1ee9..876fdd6c9cfee182272ade335857fedfd4667f5c 100644 (file)
@@ -1,27 +1,30 @@
 <?xml version="1.0" encoding="utf-8"?>
 
 <!--
-  Copyright 2021-2022 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021-2022, 2025 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/>.
 
-  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
+<!-- API 35 (Android 15) requires setting `android:fitsSystemWindows="true"`. -->
 <androidx.coordinatorlayout.widget.CoordinatorLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_height="match_parent"
-    android:layout_width="match_parent" >
+    android:layout_width="match_parent"
+    android:fitsSystemWindows="true" >
 
     <!-- The linear layout with `orientation="vertical"` moves the main content below the app bar layout. -->
     <LinearLayout
index aeb1f4f070211b40f7b15cf1aa2d8fd00786d532..a7775959ca009c6a0a6201776d99e255dd1e3481 100644 (file)
@@ -1,22 +1,23 @@
 <?xml version="1.0" encoding="utf-8"?>
 
 <!--
-  Copyright © 2021-2022 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 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/>.
 
-  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
 <LinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
@@ -31,4 +32,4 @@
         android:id="@+id/webview"
         android:layout_height="match_parent"
         android:layout_width="match_parent" />
-</LinearLayout>
\ No newline at end of file
+</LinearLayout>
index 150ced2420bd18717d9955bc31c808d5c693a71c..5dd3a9de9a532b7fce89797af5383f4c10fa6b80 100644 (file)
@@ -1,27 +1,35 @@
 <?xml version="1.0" encoding="utf-8"?>
 
 <!--
-  Copyright © 2021-2022 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021-2022, 2025 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/>.
 
-  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
 <menu
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto" >
 
+    <item
+        android:id="@+id/search"
+        android:title="@string/search"
+        android:orderInCategory="10"
+        android:icon="@drawable/search"
+        app:showAsAction="ifRoom" />
+
     <item
         android:id="@+id/copy"
         android:title="@string/copy_string"
@@ -40,6 +48,6 @@
         android:id="@+id/clear"
         android:title="@string/clear"
         android:orderInCategory="30"
-        android:icon="@drawable/clear"
+        android:icon="@drawable/close"
         app:showAsAction="ifRoom" />
 </menu>
\ No newline at end of file
index a319bf1f2b3cd48a6a95eb62c6bd640d77072e00..cd09c58fa793341e0c0009384d6f0714d45b9f9f 100644 (file)
@@ -1,22 +1,23 @@
 <?xml version="1.0" encoding="utf-8"?>
 
 <!--
-  Copyright © 2021-2022 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 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/>.
 
-  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
 <menu xmlns:android="http://schemas.android.com/apk/res/android">
     <item
index 8900ab2bd7791eb985da70984aa3a70a78c97494..9ae96e1e6c0d8a20c3320e6161fa633b5bcd7e74 100644 (file)
@@ -1,22 +1,23 @@
 <?xml version="1.0" encoding="utf-8"?>
 
 <!--
-  Copyright © 2021-2022 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 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/>.
 
-  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
 <menu xmlns:android="http://schemas.android.com/apk/res/android">
     <item
diff --git a/app/src/main/res/mipmap-anydpi-v26/privacy_cell.xml b/app/src/main/res/mipmap-anydpi-v26/privacy_cell.xml
deleted file mode 100644 (file)
index 1a8afaf..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-  Copyright © 2016,2021-2022 Soren Stoutner <soren@stoutner.com>.  The resulting image is released under the GPLv3+ license.
-
-  This file is derived from `security` and `5g`, which are part of the Android Material icon set.  They are released under the Apache License 2.0.
-
-  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
-
-  Privacy Cell is free software: you can redistribute it and/or modify
-  it under the terms of the GNU General Public License as published by
-  the Free Software Foundation, either version 3 of the License, or
-  (at your option) any later version.
-
-  Privacy Cell is distributed in the hope that it will be useful,
-  but WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  GNU General Public License for more details.
-
-  You should have received a copy of the GNU General Public License
-  along with Privacy Cell.  If not, see <http://www.gnu.org/licenses/>. -->
-
-<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
-    <background android:drawable="@color/white"/>
-    <foreground android:drawable="@drawable/privacy_cell_foreground"/>
-</adaptive-icon>
\ No newline at end of file
diff --git a/app/src/main/res/mipmap/privacy_cell.xml b/app/src/main/res/mipmap/privacy_cell.xml
new file mode 100644 (file)
index 0000000..20a0f54
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+  Copyright © 2016,2021-2023 Soren Stoutner <soren@stoutner.com>.  The resulting image is released under the GPLv3+ license.
+
+  This file is derived from `security` and `5g`, which are part of the Android Material icon set.  They are released under the Apache License 2.0.
+
+  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
+
+  Privacy Cell is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+
+  Privacy Cell is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with Privacy Cell.  If not, see <http://www.gnu.org/licenses/>. -->
+
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
+    <background android:drawable="@color/white" />
+    <foreground android:drawable="@drawable/privacy_cell_foreground" />
+    <monochrome android:drawable="@drawable/privacy_cell_monochrome" />
+</adaptive-icon>
index 9fb8c9a3c9b6988d771fdade409b0e398cb13b3d..a1e31f1d503ba1690fd97aee016d4bc2e22cf02e 100644 (file)
@@ -1,24 +1,25 @@
 <?xml version="1.0" encoding="utf-8"?>
 
 <!--
-  Copyright 2021-2022 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021-2022, 2025 Soren Stoutner <soren@stoutner.com>
 
-  Translation 2021-2022 Bernhard G. Keller.  Copyright assigned to Soren Stoutner <soren@stoutner.com>.
+  Translation 2021-2022, 2025 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/>.
 
-  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
 <resources xmlns:tools="http://schemas.android.com/tools">
     <!-- General. -->
 
     <!-- Permission dialogs. -->
     <string name="phone_permission">Telefon-Berechtigung</string>
-    <string name="phone_permission_text">Privacy Cell benötigt lesenden Zugriff auf den Status Ihres Telefons, um das Sicherheits-Niveau Ihrer Mobilfunk-Verbindung zu ermitteln.</string>
+    <string name="phone_permission_text">Privacy Cell benötigt die Berechtigungen zum Auslesen des Telefon-Status und der Telefonnummern, um den Sicherheits-Level der Mobilfunk-Verbindung und die Telefonnummer
+        der aktiven SIM-Karte anzeigen zu können.</string>
     <string name="notification_permission">Benachrichtigungs-Berechtigung</string>
     <string name="notification_permission_text">Privacy Cell benötigt die Benachrichtigungs-Berechtigung, um Benachrichtigungen des Echtzeit-Monitorings anzeigen zu können.</string>
     <string name="ok">OK</string>
 
     <!-- Logcat.  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="search">Suche</string>
+    <string name="previous">Vorheriges</string>
+    <string name="next">Nächstes</string>
     <string name="copy_string">Kopieren</string>
     <string name="save">Speichern</string>
     <string name="clear">Löschen</string>
index a839c1c105bcb1c459bd3c609daaf70b2b97b34a..e99105c14a56d7f468250fac49f21cb5842310fb 100644 (file)
@@ -1,24 +1,25 @@
 <?xml version="1.0" encoding="utf-8"?>
 
 <!--
-  Copyright 2021-2022 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021-2022, 2025 Soren Stoutner <soren@stoutner.com>
 
-  Translation 2021-2022 Jose A. León.  Copyright assigned to Soren Stoutner <soren@stoutner.com>.
+  Translation 2021-2022, 2025 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/>.
 
-  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
 <resources >
     <!-- General. -->
 
     <!-- Permission dialogs. -->
     <string name="phone_permission">Permiso telefónico</string>
-    <string name="phone_permission_text">Privacy Cell necesita el permiso del teléfono "Leer estado del teléfono" para determinar el nivel de seguridad de su conexión celular.</string>
+    <string name="phone_permission_text">Privacy Cell necesita los permisos Read Phone State y Read Phone Numbers para determinar el nivel de seguridad de su conexión celular y mostrar el número de teléfono de
+        la tarjeta SIM activa.</string>
     <string name="notification_permission">Permiso de notificación</string>
     <string name="notification_permission_text">Privacy Cell necesita el permiso Post Notification para mostrar las notificaciones de monitoreo en tiempo real.</string>
     <string name="ok">OK</string>
 
     <!-- Logcat.  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="search">Buscar</string>
+    <string name="previous">Anterior</string>
+    <string name="next">Siguiente</string>
     <string name="copy_string">Copiar</string>
     <string name="save">Guardar</string>
     <string name="clear">Limpiar</string>
index 1773a36aa0b0647c16e57204451e136f69318c8d..2b9e869b5eff13a113b2ad5c37998efa35b3430c 100644 (file)
@@ -1,24 +1,25 @@
 <?xml version="1.0" encoding="utf-8"?>
 
 <!--
-  Copyright 2021-2022 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021-2022, 2025 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/>.
 
-  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
 <resources>
     <!-- General. -->
 
     <!-- Permission dialogs. -->
     <string name="phone_permission">Autorisations</string>
-    <string name="phone_permission_text">Privacy Cell a besoin de l\'autorisation READ PHONE STATE pour déterminer le niveau de sécurité de votre connexion cellulaire.</string>
     <string name="notification_permission">Autorisation de notification</string>
     <string name="notification_permission_text">Privacy Cell a besoin de l\'autorisation Post Notification pour afficher les notifications de surveillance en temps réel.</string>
     <string name="ok">OK</string>
 
     <!-- Logcat.  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="search">Rechercher</string>
+    <string name="previous">Précédent</string>
+    <string name="next">Suivant</string>
     <string name="copy_string">Copier</string>
     <string name="save">Sauvegarder</string>
     <string name="clear">Nettoyer</string>
index dc1dc296d4d439986014ee9d3fd5656df5f422e3..76f0af4908729bf709f9ad5c6ba91459ada7439c 100644 (file)
@@ -1,24 +1,25 @@
 <?xml version="1.0" encoding="utf-8"?>
 
 <!--
-  Copyright 2021-2022 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021-2022, 2025 Soren Stoutner <soren@stoutner.com>
 
-  Translation 2021-2022 Francesco Buratti.  Copyright assigned to Soren Stoutner <soren@stoutner.com>.
+  Translation 2021-2022, 2025 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/>.
 
-  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
 <resources>
     <!-- General. -->
 
     <!-- Permission dialogs. -->
     <string name="phone_permission">Autorizzazioni sul dispositivo</string>
-    <string name="phone_permission_text">Privacy Cell ha bisogno dell\'autorizzazione di lettura dello stato del telefono per poter determinare il livello si sicurezza della connessione.</string>
+    <string name="phone_permission_text">Privacy Cell necessita delle autorizzazioni di lettura dello stato del sispositivo e di lettura dei numeri di telefono per deerminare il livello di sicurezza della
+        connessione del dispositivo e per mostrare il numero di telefono della SIM card attiva.</string>
     <string name="notification_permission">Autorizzazione per le notifiche</string>
     <string name="notification_permission_text">Privacy Cell ha bisogno dell\'autorizzazione "Post Notification" per mostrare le notifiche del monitoraggio in tempo reale.</string>
     <string name="ok">OK</string>
 
     <!-- Logcat.  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="search">Ricerca</string>
+    <string name="previous">Precedente</string>
+    <string name="next">Successivo</string>
     <string name="copy_string">Copia</string>
     <string name="save">Salva</string>
     <string name="clear">Cancella</string>
index 97855a8e9aa0cda25c9be702bcb3aa96389b4031..373734b67ac45a46dbf74b3a74729997736a21ef 100644 (file)
@@ -1,22 +1,23 @@
 <?xml version="1.0" encoding="utf-8"?>
 
 <!--
-  Copyright 2021-2022 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021-2022, 2025 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/>.
 
-  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
 <resources>
     <!-- General. -->
 
     <!-- Permission dialogs. -->
     <string name="phone_permission">Разрешение телефона</string>
-    <string name="phone_permission_text">Privacy Cell необходимо разрешение на чтение состояния телефона для определения степени безопасности вашего мобильного подключения.</string>
+    <string name="phone_permission_text">Для определения уровня защищенности вашего подключения к мобильной сети и отображения номера телефона активной SIM-карты Privacy Cell необходимы разрешения на чтение
+        состояния телефона и чтение номеров телефонов.</string>
     <string name="notification_permission">Разрешение на уведомления</string>
     <string name="notification_permission_text">Privacy Cell требуется разрешение на отправку уведомлений для отображения уведомлений мониторинга в реальном времени.</string>
     <string name="ok">OK</string>
     <string name="monitoring">Мониторинг</string>
     <string name="realtime_monitoring">Мониторинг в реальном времени</string>
     <string name="realtime_monitoring_summary">Поместить в строку состояния значок для отслеживания сотовой сети.</string>
+        <string name="notification_permission_denied">Разрешение на отправку уведомлений в настоящее время запрещено, поэтому уведомления отображаться не будут.</string>
     <string name="secure_network_notification">Уведомление о безопасной сети</string>
     <string name="insecure_network_notification">Уведомление о небезопасной сети</string>
     <string name="antiquated_network_notification">Оповещение об устаревшей сети</string>
 
     <!-- Logcat.  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="search">Поиск</string>
+    <string name="previous">Предыдущий</string>
+    <string name="next">Следующий</string>
     <string name="copy_string">Скопировать</string>
     <string name="save">Сохранить</string>
     <string name="clear">Очистить</string>
index 609cde0760e3189b1a1f5853362ea576bf02ea71..28bf741f713ce2e8ffc8b330d66859339f946fb5 100644 (file)
@@ -1,22 +1,23 @@
 <?xml version="1.0" encoding="utf-8"?>
 
 <!--
-  Copyright 2021-2022 Soren Stoutner <soren@stoutner.com>.
+  SPDX-License-Identifier: GPL-3.0-or-later
+  SPDX-FileCopyrightText: 2021-2022, 2025 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/>.
 
-  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.
+  This program 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.
+  This program 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/>. -->
+  You should have received a copy of the GNU General Public License along with
+  this program.  If not, see <https://www.gnu.org/licenses/>. -->
 
 <!-- `tools:ignore="MissingTranslation"` allows release APKs to be built if translation strings are missing.  The missing strings will fall back to English. -->
 <resources
 
     <!-- Permission dialogs. -->
     <string name="phone_permission">Phone Permission</string>
-    <string name="phone_permission_text">Privacy Cell needs the Read Phone State permission to determine the safety level of your cell connection.</string>
+    <string name="phone_permission_text">Privacy Cell needs the Read Phone State and Read Phone Numbers permissions to determine the safety level of your cell connection and display the phone number of the
+        active SIM card.</string>
     <string name="notification_permission">Notification Permission</string>
     <string name="notification_permission_text">Privacy Cell needs the Post Notification permission to display realtime monitoring notifications.</string>
     <string name="ok">OK</string>
 
     <!-- Logcat.  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="search">Search</string>
+    <string name="zero_of_zero" translatable="false">0/0</string>
+    <string name="previous">Previous</string>
+    <string name="next">Next</string>
     <string name="copy_string">Copy</string>
     <string name="save">Save</string>
     <string name="clear">Clear</string>
diff --git a/app/src/main/res/xml/locales_config.xml b/app/src/main/res/xml/locales_config.xml
new file mode 100644 (file)
index 0000000..8635f4b
--- /dev/null
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+  Copyright 2022 Soren Stoutner <soren@stoutner.com>.
+
+  This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
+
+  Privacy Cell is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+
+  Privacy Cell is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with Privacy Cell.  If not, see <http://www.gnu.org/licenses/>. -->
+
+<!-- https://developer.android.com/guide/topics/resources/app-languages#app-language-settings -->
+<locale-config xmlns:android="http://schemas.android.com/apk/res/android">
+    <locale android:name="en"/>  <!-- English. -->
+    <locale android:name="de"/>  <!-- German. -->
+    <locale android:name="es"/>  <!-- Spanish. -->
+    <locale android:name="fr"/>  <!-- French. -->
+    <locale android:name="it"/>  <!-- Italian. -->
+    <locale android:name="ru"/>  <!-- Russian. -->
+</locale-config>
index 5f4a00532056415c4deb0ac85df682c3e826baed..7bad56669298a06f19bcb907e41879f29efa780c 100644 (file)
@@ -1,20 +1,20 @@
-/*
- * Copyright 2021-2022 Soren Stoutner <soren@stoutner.com>.
+/* SPDX-License-Identifier: GPL-3.0-or-later
+ * SPDX-FileCopyrightText: 2021-2025 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/>.
  *
- * 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.
+ * This program 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.
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+ * details.
  *
- * You should have received a copy of the GNU General Public License
- * along with Privacy Browser.  If not, see <http://www.gnu.org/licenses/>.
+ * You should have received a copy of the GNU General Public License along with
+ * this program.  If not, see <https://www.gnu.org/licenses/>.
  */
 
 // Top-level build file where you can add configuration options common to all sub-projects/modules.
@@ -25,14 +25,14 @@ buildscript {
     }
 
     dependencies {
-        classpath 'com.android.tools.build:gradle:7.3.1'
-        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.20"
+        classpath 'com.android.tools.build:gradle:8.9.2'
+        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:2.1.0"
 
         // NOTE: Do not place your application dependencies here; they belong
         // in the individual module build.gradle files
     }
 }
 
-task clean(type: Delete) {
-    delete rootProject.buildDir
+tasks.register('clean', Delete) {
+    delete rootProject.layout.buildDirectory
 }
diff --git a/fastlane/metadata/android/de-DE/changelogs/11.txt b/fastlane/metadata/android/de-DE/changelogs/11.txt
new file mode 100644 (file)
index 0000000..765e279
--- /dev/null
@@ -0,0 +1,5 @@
+• Ziel-API auf 33 (Android 13) angehoben.
+• Wischgeste zum zum Ablehnen der Benachrichtigungen des Echtzeit-Monitorings unter Android 13 deaktiviert.
+• App-Sprachauswahl zur Auswahl der Sprache von Privacy Cell unter Android 13 hinzugefügt.
+• Scroll-Position im Einstellungs-Dialog wird nun bei Neustarts beibehalten.
+• Erste komplette deutsche Übersetzung von Bernhard G. Keller.
\ No newline at end of file
diff --git a/fastlane/metadata/android/de-DE/changelogs/12.txt b/fastlane/metadata/android/de-DE/changelogs/12.txt
new file mode 100644 (file)
index 0000000..4006ddf
--- /dev/null
@@ -0,0 +1,6 @@
+• Optionales einfarbiges Icon hinzugefügt (kann in Android >= 13 genutzt werden).
+• Privacy Cell kann in System-Backups integriert werden.
+• Ziel-API auf 34 (Android 14) angehoben.
+• Für neuere Android-Versionen benötigte Berechtigungen dokumentiert.
+• Benachrichtigungen der Echtzeit-Überwachung werden alle 15 Minuten automatisch wiederholt.
+• Erste komplette deutsche Übersetzung von Bernhard G. Keller.
\ No newline at end of file
diff --git a/fastlane/metadata/android/de-DE/changelogs/13.txt b/fastlane/metadata/android/de-DE/changelogs/13.txt
new file mode 100644 (file)
index 0000000..c63a84a
--- /dev/null
@@ -0,0 +1,4 @@
+• Anzeige der für jede Verbindung genutzen SIM-Karte.
+• Suche in logcat nun möglich.
+• Ziel-API auf 35 (Android 15) geändert.
+• Erste komplette deutsche Übersetzung von Bernhard G. Keller.
\ No newline at end of file
diff --git a/fastlane/metadata/android/de-DE/images/phoneScreenshots/01 - Secure Network - de.png b/fastlane/metadata/android/de-DE/images/phoneScreenshots/01 - Secure Network - de.png
new file mode 100644 (file)
index 0000000..9e0c8e5
Binary files /dev/null and b/fastlane/metadata/android/de-DE/images/phoneScreenshots/01 - Secure Network - de.png differ
diff --git a/fastlane/metadata/android/de-DE/images/phoneScreenshots/01-SecureNetwork-de.png b/fastlane/metadata/android/de-DE/images/phoneScreenshots/01-SecureNetwork-de.png
deleted file mode 100644 (file)
index 6f37f88..0000000
Binary files a/fastlane/metadata/android/de-DE/images/phoneScreenshots/01-SecureNetwork-de.png and /dev/null differ
diff --git a/fastlane/metadata/android/de-DE/images/phoneScreenshots/02 - Insecure Network - de.png b/fastlane/metadata/android/de-DE/images/phoneScreenshots/02 - Insecure Network - de.png
new file mode 100644 (file)
index 0000000..5352406
Binary files /dev/null and b/fastlane/metadata/android/de-DE/images/phoneScreenshots/02 - Insecure Network - de.png differ
diff --git a/fastlane/metadata/android/de-DE/images/phoneScreenshots/02-InsecureNetwork-de.png b/fastlane/metadata/android/de-DE/images/phoneScreenshots/02-InsecureNetwork-de.png
deleted file mode 100644 (file)
index 4dbadf1..0000000
Binary files a/fastlane/metadata/android/de-DE/images/phoneScreenshots/02-InsecureNetwork-de.png and /dev/null differ
diff --git a/fastlane/metadata/android/de-DE/images/phoneScreenshots/03 - Antiquated Network - de.png b/fastlane/metadata/android/de-DE/images/phoneScreenshots/03 - Antiquated Network - de.png
new file mode 100644 (file)
index 0000000..6e8ef12
Binary files /dev/null and b/fastlane/metadata/android/de-DE/images/phoneScreenshots/03 - Antiquated Network - de.png differ
diff --git a/fastlane/metadata/android/de-DE/images/phoneScreenshots/03-AntiquatedNetwork-de.png b/fastlane/metadata/android/de-DE/images/phoneScreenshots/03-AntiquatedNetwork-de.png
deleted file mode 100644 (file)
index 479dec6..0000000
Binary files a/fastlane/metadata/android/de-DE/images/phoneScreenshots/03-AntiquatedNetwork-de.png and /dev/null differ
diff --git a/fastlane/metadata/android/de-DE/images/phoneScreenshots/04 - Navigation Menu - de.png b/fastlane/metadata/android/de-DE/images/phoneScreenshots/04 - Navigation Menu - de.png
new file mode 100644 (file)
index 0000000..965001b
Binary files /dev/null and b/fastlane/metadata/android/de-DE/images/phoneScreenshots/04 - Navigation Menu - de.png differ
diff --git a/fastlane/metadata/android/de-DE/images/phoneScreenshots/04-NavigationMenu-de.png b/fastlane/metadata/android/de-DE/images/phoneScreenshots/04-NavigationMenu-de.png
deleted file mode 100644 (file)
index 051ab20..0000000
Binary files a/fastlane/metadata/android/de-DE/images/phoneScreenshots/04-NavigationMenu-de.png and /dev/null differ
diff --git a/fastlane/metadata/android/de-DE/images/phoneScreenshots/05 - Dark Theme - de.png b/fastlane/metadata/android/de-DE/images/phoneScreenshots/05 - Dark Theme - de.png
new file mode 100644 (file)
index 0000000..b897add
Binary files /dev/null and b/fastlane/metadata/android/de-DE/images/phoneScreenshots/05 - Dark Theme - de.png differ
diff --git a/fastlane/metadata/android/de-DE/images/phoneScreenshots/05-DarkTheme-de.png b/fastlane/metadata/android/de-DE/images/phoneScreenshots/05-DarkTheme-de.png
deleted file mode 100644 (file)
index d1794d9..0000000
Binary files a/fastlane/metadata/android/de-DE/images/phoneScreenshots/05-DarkTheme-de.png and /dev/null differ
diff --git a/fastlane/metadata/android/en-US/changelogs/11.txt b/fastlane/metadata/android/en-US/changelogs/11.txt
new file mode 100644 (file)
index 0000000..b4c7df8
--- /dev/null
@@ -0,0 +1,4 @@
+• Bump the target API to 33 (Android 13).
+• Disable swiping to dismiss the realtime monitoring notification on Android 13.
+• Enable per-app language support on Android 13.
+• Preserve the Settings scroll location on restart.
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/changelogs/12.txt b/fastlane/metadata/android/en-US/changelogs/12.txt
new file mode 100644 (file)
index 0000000..17eee61
--- /dev/null
@@ -0,0 +1,5 @@
+• Create an optional monochrome icon (can be used in Android >= 13).
+• Allow Privacy Cell to be included in system backups.
+• Bump the target API to 34 (Android 14).
+• Document permissions needed for newer versions of Android.
+• Repopulate the realtime monitoring notification every 15 minutes.
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/changelogs/13.txt b/fastlane/metadata/android/en-US/changelogs/13.txt
new file mode 100644 (file)
index 0000000..c8e91ba
--- /dev/null
@@ -0,0 +1,3 @@
+• Indicate which SIM card is used for each connection.
+• Add support for searching the logcat.
+• Bump the target API to 35 (Android 15).
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/01 - Secure Network - en.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/01 - Secure Network - en.png
new file mode 100644 (file)
index 0000000..7be1220
Binary files /dev/null and b/fastlane/metadata/android/en-US/images/phoneScreenshots/01 - Secure Network - en.png differ
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
deleted file mode 100644 (file)
index ed30194..0000000
Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/01-SecureNetwork-en.png and /dev/null differ
diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/02 - Insecure Network - en.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/02 - Insecure Network - en.png
new file mode 100644 (file)
index 0000000..261d5ed
Binary files /dev/null and b/fastlane/metadata/android/en-US/images/phoneScreenshots/02 - Insecure Network - en.png 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
deleted file mode 100644 (file)
index c0a77a5..0000000
Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/02-InsecureNetwork-en.png and /dev/null differ
diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/03 - Antiquated Network - en.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/03 - Antiquated Network - en.png
new file mode 100644 (file)
index 0000000..eedb311
Binary files /dev/null and b/fastlane/metadata/android/en-US/images/phoneScreenshots/03 - Antiquated Network - 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
deleted file mode 100644 (file)
index 1c16b80..0000000
Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/03-AntiquatedNetwork-en.png and /dev/null differ
diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/04 - Navigation Menu - en.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/04 - Navigation Menu - en.png
new file mode 100644 (file)
index 0000000..70afdd5
Binary files /dev/null and b/fastlane/metadata/android/en-US/images/phoneScreenshots/04 - Navigation Menu - en.png differ
diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/04-NavigationMenu-en.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/04-NavigationMenu-en.png
deleted file mode 100644 (file)
index 315d6f1..0000000
Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/04-NavigationMenu-en.png and /dev/null differ
diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/05 - Dark Theme - en.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/05 - Dark Theme - en.png
new file mode 100644 (file)
index 0000000..079eda2
Binary files /dev/null and b/fastlane/metadata/android/en-US/images/phoneScreenshots/05 - Dark Theme - en.png differ
diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/05-DarkTheme-en.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/05-DarkTheme-en.png
deleted file mode 100644 (file)
index 52399c6..0000000
Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/05-DarkTheme-en.png and /dev/null differ
diff --git a/fastlane/metadata/android/es-ES/changelogs/11.txt b/fastlane/metadata/android/es-ES/changelogs/11.txt
new file mode 100644 (file)
index 0000000..17ebc3a
--- /dev/null
@@ -0,0 +1,5 @@
+• Subir la API de destino a 33 (Android 13).
+• Desactivar el deslizamiento para descartar la notificación de seguimiento en tiempo real en Android 13.
+• Habilitar el soporte de idiomas por aplicación en Android 13.
+• Preservar la localización de desplazamiento de los Ajustes al reiniciar.
+• Traducción actualizada al español aportada por Jose A. León.
\ No newline at end of file
diff --git a/fastlane/metadata/android/es-ES/changelogs/12.txt b/fastlane/metadata/android/es-ES/changelogs/12.txt
new file mode 100644 (file)
index 0000000..0782007
--- /dev/null
@@ -0,0 +1,6 @@
+• Crear un icono monocromo opcional (puede usarse en Android >= 13).
+• Permitir que Privacy Cell se incluya en las copias de seguridad del sistema.
+• Subir la API objetivo a 34 (Android 14).
+• Documentar los permisos necesarios para las nuevas versiones de Android.
+• Repoblar la notificación de seguimiento en tiempo real cada 15 minutos.
+• Traducción actualizada al español aportada por Jose A. León.
\ No newline at end of file
diff --git a/fastlane/metadata/android/es-ES/changelogs/13.txt b/fastlane/metadata/android/es-ES/changelogs/13.txt
new file mode 100644 (file)
index 0000000..f3625af
--- /dev/null
@@ -0,0 +1,4 @@
+• Indicar qué tarjeta SIM es usada por cada conexión.
+• Añadir soporte para buscar el logcat.
+• Aumentar la API de destino a 35 (Android 15).
+• Traducción actualizada al español aportada por Jose A. León.
\ No newline at end of file
diff --git a/fastlane/metadata/android/es-ES/images/phoneScreenshots/01 - Secure Network - es.png b/fastlane/metadata/android/es-ES/images/phoneScreenshots/01 - Secure Network - es.png
new file mode 100644 (file)
index 0000000..6f77e23
Binary files /dev/null and b/fastlane/metadata/android/es-ES/images/phoneScreenshots/01 - Secure Network - es.png differ
diff --git a/fastlane/metadata/android/es-ES/images/phoneScreenshots/01-SecureNetwork-es.png b/fastlane/metadata/android/es-ES/images/phoneScreenshots/01-SecureNetwork-es.png
deleted file mode 100644 (file)
index a0a8a91..0000000
Binary files a/fastlane/metadata/android/es-ES/images/phoneScreenshots/01-SecureNetwork-es.png and /dev/null differ
diff --git a/fastlane/metadata/android/es-ES/images/phoneScreenshots/02 - Insecure Network - es.png b/fastlane/metadata/android/es-ES/images/phoneScreenshots/02 - Insecure Network - es.png
new file mode 100644 (file)
index 0000000..bb04832
Binary files /dev/null and b/fastlane/metadata/android/es-ES/images/phoneScreenshots/02 - Insecure Network - es.png differ
diff --git a/fastlane/metadata/android/es-ES/images/phoneScreenshots/02-InsecureNetwork-es.png b/fastlane/metadata/android/es-ES/images/phoneScreenshots/02-InsecureNetwork-es.png
deleted file mode 100644 (file)
index 873768e..0000000
Binary files a/fastlane/metadata/android/es-ES/images/phoneScreenshots/02-InsecureNetwork-es.png and /dev/null differ
diff --git a/fastlane/metadata/android/es-ES/images/phoneScreenshots/03 - Antiquated Network - es.png b/fastlane/metadata/android/es-ES/images/phoneScreenshots/03 - Antiquated Network - es.png
new file mode 100644 (file)
index 0000000..c0c980c
Binary files /dev/null and b/fastlane/metadata/android/es-ES/images/phoneScreenshots/03 - Antiquated Network - es.png differ
diff --git a/fastlane/metadata/android/es-ES/images/phoneScreenshots/03-AntiquatedNetwork-es.png b/fastlane/metadata/android/es-ES/images/phoneScreenshots/03-AntiquatedNetwork-es.png
deleted file mode 100644 (file)
index b625d03..0000000
Binary files a/fastlane/metadata/android/es-ES/images/phoneScreenshots/03-AntiquatedNetwork-es.png and /dev/null differ
diff --git a/fastlane/metadata/android/es-ES/images/phoneScreenshots/04 - Navigation Menu - es.png b/fastlane/metadata/android/es-ES/images/phoneScreenshots/04 - Navigation Menu - es.png
new file mode 100644 (file)
index 0000000..bcff8cc
Binary files /dev/null and b/fastlane/metadata/android/es-ES/images/phoneScreenshots/04 - Navigation Menu - es.png differ
diff --git a/fastlane/metadata/android/es-ES/images/phoneScreenshots/04-NavigationMenu-es.png b/fastlane/metadata/android/es-ES/images/phoneScreenshots/04-NavigationMenu-es.png
deleted file mode 100644 (file)
index 08a2709..0000000
Binary files a/fastlane/metadata/android/es-ES/images/phoneScreenshots/04-NavigationMenu-es.png and /dev/null differ
diff --git a/fastlane/metadata/android/es-ES/images/phoneScreenshots/05 - Dark Theme - es.png b/fastlane/metadata/android/es-ES/images/phoneScreenshots/05 - Dark Theme - es.png
new file mode 100644 (file)
index 0000000..25fe72e
Binary files /dev/null and b/fastlane/metadata/android/es-ES/images/phoneScreenshots/05 - Dark Theme - es.png differ
diff --git a/fastlane/metadata/android/es-ES/images/phoneScreenshots/05-DarkTheme-es.png b/fastlane/metadata/android/es-ES/images/phoneScreenshots/05-DarkTheme-es.png
deleted file mode 100644 (file)
index b6caebf..0000000
Binary files a/fastlane/metadata/android/es-ES/images/phoneScreenshots/05-DarkTheme-es.png and /dev/null differ
diff --git a/fastlane/metadata/android/fr-FR/changelogs/11.txt b/fastlane/metadata/android/fr-FR/changelogs/11.txt
new file mode 100644 (file)
index 0000000..9bed719
--- /dev/null
@@ -0,0 +1,5 @@
+• Passage de l'API cible à 33 (Android 13).
+• Désactivation du glissement pour rejeter la notification de surveillance en temps réel sur Android 13.
+• Activation du support de la langue par application sur Android 13.
+• Conservation de l'emplacement du défilement des paramètres au redémarrage.
+• Mise à jour de la traduction française par Kévin L.
\ No newline at end of file
diff --git a/fastlane/metadata/android/fr-FR/changelogs/12.txt b/fastlane/metadata/android/fr-FR/changelogs/12.txt
new file mode 100644 (file)
index 0000000..ddb29e1
--- /dev/null
@@ -0,0 +1,6 @@
+• Création d'une icône monochrome optionnelle (utilisable sous Android >= 13).
+• Permettre l'inclusion de "Privacy Cell" dans les sauvegardes du système.
+• Passage de l'API cible à 34 (Android 14).
+• Documentation sur les autorisation nécessaires pour les nouvelles version d'Android.
+• Renouveler la notification de surveillance en temps réel tous les 15 minutes.
+• Mise à jour de la traduction française par Kévin L.
\ No newline at end of file
diff --git a/fastlane/metadata/android/fr-FR/images/phoneScreenshots/01 - Amazon Secure Network - fr.png b/fastlane/metadata/android/fr-FR/images/phoneScreenshots/01 - Amazon Secure Network - fr.png
new file mode 100644 (file)
index 0000000..da056ce
Binary files /dev/null and b/fastlane/metadata/android/fr-FR/images/phoneScreenshots/01 - Amazon Secure Network - fr.png differ
diff --git a/fastlane/metadata/android/fr-FR/images/phoneScreenshots/01-SecureNetwork-fr.png b/fastlane/metadata/android/fr-FR/images/phoneScreenshots/01-SecureNetwork-fr.png
deleted file mode 100644 (file)
index c1bf549..0000000
Binary files a/fastlane/metadata/android/fr-FR/images/phoneScreenshots/01-SecureNetwork-fr.png and /dev/null differ
diff --git a/fastlane/metadata/android/fr-FR/images/phoneScreenshots/02 - Amazon Insecure Network - fr.png b/fastlane/metadata/android/fr-FR/images/phoneScreenshots/02 - Amazon Insecure Network - fr.png
new file mode 100644 (file)
index 0000000..fa6b104
Binary files /dev/null and b/fastlane/metadata/android/fr-FR/images/phoneScreenshots/02 - Amazon Insecure Network - fr.png differ
diff --git a/fastlane/metadata/android/fr-FR/images/phoneScreenshots/02-InsecureNetwork-fr.png b/fastlane/metadata/android/fr-FR/images/phoneScreenshots/02-InsecureNetwork-fr.png
deleted file mode 100644 (file)
index 88de5fd..0000000
Binary files a/fastlane/metadata/android/fr-FR/images/phoneScreenshots/02-InsecureNetwork-fr.png and /dev/null differ
diff --git a/fastlane/metadata/android/fr-FR/images/phoneScreenshots/03 - Amazon Antiquated Network - fr.png b/fastlane/metadata/android/fr-FR/images/phoneScreenshots/03 - Amazon Antiquated Network - fr.png
new file mode 100644 (file)
index 0000000..3643b5d
Binary files /dev/null and b/fastlane/metadata/android/fr-FR/images/phoneScreenshots/03 - Amazon Antiquated Network - fr.png differ
diff --git a/fastlane/metadata/android/fr-FR/images/phoneScreenshots/03-AntiquatedNetwork-fr.png b/fastlane/metadata/android/fr-FR/images/phoneScreenshots/03-AntiquatedNetwork-fr.png
deleted file mode 100644 (file)
index d689f0b..0000000
Binary files a/fastlane/metadata/android/fr-FR/images/phoneScreenshots/03-AntiquatedNetwork-fr.png and /dev/null differ
diff --git a/fastlane/metadata/android/fr-FR/images/phoneScreenshots/04 - Amazon Navigation Menu - fr.png b/fastlane/metadata/android/fr-FR/images/phoneScreenshots/04 - Amazon Navigation Menu - fr.png
new file mode 100644 (file)
index 0000000..04b5d34
Binary files /dev/null and b/fastlane/metadata/android/fr-FR/images/phoneScreenshots/04 - Amazon Navigation Menu - fr.png differ
diff --git a/fastlane/metadata/android/fr-FR/images/phoneScreenshots/04-NavigationMenu-fr.png b/fastlane/metadata/android/fr-FR/images/phoneScreenshots/04-NavigationMenu-fr.png
deleted file mode 100644 (file)
index ccddd09..0000000
Binary files a/fastlane/metadata/android/fr-FR/images/phoneScreenshots/04-NavigationMenu-fr.png and /dev/null differ
diff --git a/fastlane/metadata/android/fr-FR/images/phoneScreenshots/05 - Amazon Dark Theme - fr.png b/fastlane/metadata/android/fr-FR/images/phoneScreenshots/05 - Amazon Dark Theme - fr.png
new file mode 100644 (file)
index 0000000..180f7f5
Binary files /dev/null and b/fastlane/metadata/android/fr-FR/images/phoneScreenshots/05 - Amazon Dark Theme - fr.png differ
diff --git a/fastlane/metadata/android/fr-FR/images/phoneScreenshots/05-DarkTheme-fr.png b/fastlane/metadata/android/fr-FR/images/phoneScreenshots/05-DarkTheme-fr.png
deleted file mode 100644 (file)
index 1fba4a0..0000000
Binary files a/fastlane/metadata/android/fr-FR/images/phoneScreenshots/05-DarkTheme-fr.png and /dev/null differ
diff --git a/fastlane/metadata/android/it-IT/changelogs/11.txt b/fastlane/metadata/android/it-IT/changelogs/11.txt
new file mode 100644 (file)
index 0000000..436490c
--- /dev/null
@@ -0,0 +1,5 @@
+• Modifica della target API a 33 (Android 13).
+• Disabilitata la possibilità di effettuare lo swipe per eliminare la notifica di monitoraggio in tempo reale su Android 13.
+• Abilitato il supporto della lingua per-app su Android 13.
+• Mantenimento della posizione dello scorrimento delle impostazioni al riavvio.
+• Aggiornamento della traduzione in lingua Italiana fornito da Francesco Buratti.
\ No newline at end of file
diff --git a/fastlane/metadata/android/it-IT/changelogs/12.txt b/fastlane/metadata/android/it-IT/changelogs/12.txt
new file mode 100644 (file)
index 0000000..95440d6
--- /dev/null
@@ -0,0 +1,6 @@
+• Creata una icona monocromatica opzionale (utilizzabile in Android >= 13).
+• Aggiunta la possibilità di includere Privacy Cell nei backup di sistema.
+• Spostamento della target API a 34 (Android 14).
+• Aggiunta l'indicazione delle autorizzazioni necessarie per più recenti versioni di Android.
+• Aggiornamento della notifica di monitoraggio in tempo reale ogni 15 minuti.
+• Aggiornamento della traduzione in lingua Italiana fornito da Francesco Buratti.
\ No newline at end of file
diff --git a/fastlane/metadata/android/it-IT/changelogs/13.txt b/fastlane/metadata/android/it-IT/changelogs/13.txt
new file mode 100644 (file)
index 0000000..0b08003
--- /dev/null
@@ -0,0 +1,4 @@
+• Indicazione di quale SIM card è utilizzata per ogni connessione.
+• Aggiunto il supporto per la ricerca nel logcat.
+• Spostamento della target API a 35 (Android 15).
+• Aggiornamento della traduzione in lingua Italiana fornito da Francesco Buratti.
\ No newline at end of file
diff --git a/fastlane/metadata/android/it-IT/images/phoneScreenshots/01 - Secure Network - it.png b/fastlane/metadata/android/it-IT/images/phoneScreenshots/01 - Secure Network - it.png
new file mode 100644 (file)
index 0000000..99662d2
Binary files /dev/null and b/fastlane/metadata/android/it-IT/images/phoneScreenshots/01 - Secure Network - it.png differ
diff --git a/fastlane/metadata/android/it-IT/images/phoneScreenshots/01-SecureNetwork-it.png b/fastlane/metadata/android/it-IT/images/phoneScreenshots/01-SecureNetwork-it.png
deleted file mode 100644 (file)
index f8ba9b1..0000000
Binary files a/fastlane/metadata/android/it-IT/images/phoneScreenshots/01-SecureNetwork-it.png and /dev/null differ
diff --git a/fastlane/metadata/android/it-IT/images/phoneScreenshots/02 - Insecure Network - it.png b/fastlane/metadata/android/it-IT/images/phoneScreenshots/02 - Insecure Network - it.png
new file mode 100644 (file)
index 0000000..642ca39
Binary files /dev/null and b/fastlane/metadata/android/it-IT/images/phoneScreenshots/02 - Insecure Network - it.png differ
diff --git a/fastlane/metadata/android/it-IT/images/phoneScreenshots/02-InsecureNetwork-it.png b/fastlane/metadata/android/it-IT/images/phoneScreenshots/02-InsecureNetwork-it.png
deleted file mode 100644 (file)
index 3369fb4..0000000
Binary files a/fastlane/metadata/android/it-IT/images/phoneScreenshots/02-InsecureNetwork-it.png and /dev/null differ
diff --git a/fastlane/metadata/android/it-IT/images/phoneScreenshots/03 - Antiquated Network - it.png b/fastlane/metadata/android/it-IT/images/phoneScreenshots/03 - Antiquated Network - it.png
new file mode 100644 (file)
index 0000000..e3c6c96
Binary files /dev/null and b/fastlane/metadata/android/it-IT/images/phoneScreenshots/03 - Antiquated Network - it.png differ
diff --git a/fastlane/metadata/android/it-IT/images/phoneScreenshots/03-AntiquatedNetwork-it.png b/fastlane/metadata/android/it-IT/images/phoneScreenshots/03-AntiquatedNetwork-it.png
deleted file mode 100644 (file)
index eb20508..0000000
Binary files a/fastlane/metadata/android/it-IT/images/phoneScreenshots/03-AntiquatedNetwork-it.png and /dev/null differ
diff --git a/fastlane/metadata/android/it-IT/images/phoneScreenshots/04 - Navigation Menu - it.png b/fastlane/metadata/android/it-IT/images/phoneScreenshots/04 - Navigation Menu - it.png
new file mode 100644 (file)
index 0000000..da65570
Binary files /dev/null and b/fastlane/metadata/android/it-IT/images/phoneScreenshots/04 - Navigation Menu - it.png differ
diff --git a/fastlane/metadata/android/it-IT/images/phoneScreenshots/04-NavigationMenu-it.png b/fastlane/metadata/android/it-IT/images/phoneScreenshots/04-NavigationMenu-it.png
deleted file mode 100644 (file)
index 223d1e4..0000000
Binary files a/fastlane/metadata/android/it-IT/images/phoneScreenshots/04-NavigationMenu-it.png and /dev/null differ
diff --git a/fastlane/metadata/android/it-IT/images/phoneScreenshots/05 - Dark Theme - it.png b/fastlane/metadata/android/it-IT/images/phoneScreenshots/05 - Dark Theme - it.png
new file mode 100644 (file)
index 0000000..a3aed8a
Binary files /dev/null and b/fastlane/metadata/android/it-IT/images/phoneScreenshots/05 - Dark Theme - it.png differ
diff --git a/fastlane/metadata/android/it-IT/images/phoneScreenshots/05-DarkTheme-it.png b/fastlane/metadata/android/it-IT/images/phoneScreenshots/05-DarkTheme-it.png
deleted file mode 100644 (file)
index 3687ee3..0000000
Binary files a/fastlane/metadata/android/it-IT/images/phoneScreenshots/05-DarkTheme-it.png and /dev/null differ
diff --git a/fastlane/metadata/android/ru-RU/changelogs/11.txt b/fastlane/metadata/android/ru-RU/changelogs/11.txt
new file mode 100644 (file)
index 0000000..e47c297
--- /dev/null
@@ -0,0 +1,5 @@
+• Целевой API повышен до 33 (Android 13).
+• Отключен свайп уведомления о мониторинге в реальном времени на Android 13.
+• Включена поддержка языков для каждого приложения на Android 13.
+• При перезапуске сохраняется положение прокрутки настроек.
+• Первый полный перевод на русский язык.
\ No newline at end of file
diff --git a/fastlane/metadata/android/ru-RU/changelogs/12.txt b/fastlane/metadata/android/ru-RU/changelogs/12.txt
new file mode 100644 (file)
index 0000000..eb9865b
--- /dev/null
@@ -0,0 +1,5 @@
+• Создан дополнительный монохромный значок (может использоваться в Android >= 13).
+• Разрешено включать Privacy Cell в системные резервные копии.
+• Целевой API повышен до 34 (Android 14).
+• Документированы необходимые разрешения для новых версий Android.
+• Повторное формирование уведомления о мониторинге в реальном времени каждые 15 минут.
\ No newline at end of file
diff --git a/fastlane/metadata/android/ru-RU/changelogs/13.txt b/fastlane/metadata/android/ru-RU/changelogs/13.txt
new file mode 100644 (file)
index 0000000..dd8cae0
--- /dev/null
@@ -0,0 +1,3 @@
+• Теперь для каждого соединения можно указывать какая используется SIM-карта.
+• Добавлена поддержка поиска в logcat.
+• Повышен целевой API до 35 (Android 15).
\ No newline at end of file
diff --git a/fastlane/metadata/android/ru-RU/images/phoneScreenshots/01 - Secure Network - ru.png b/fastlane/metadata/android/ru-RU/images/phoneScreenshots/01 - Secure Network - ru.png
new file mode 100644 (file)
index 0000000..fdf3022
Binary files /dev/null and b/fastlane/metadata/android/ru-RU/images/phoneScreenshots/01 - Secure Network - ru.png differ
diff --git a/fastlane/metadata/android/ru-RU/images/phoneScreenshots/01-SecureNetwork-ru.png b/fastlane/metadata/android/ru-RU/images/phoneScreenshots/01-SecureNetwork-ru.png
deleted file mode 100644 (file)
index 6bdd0de..0000000
Binary files a/fastlane/metadata/android/ru-RU/images/phoneScreenshots/01-SecureNetwork-ru.png and /dev/null differ
diff --git a/fastlane/metadata/android/ru-RU/images/phoneScreenshots/02 - Insecure Network - ru.png b/fastlane/metadata/android/ru-RU/images/phoneScreenshots/02 - Insecure Network - ru.png
new file mode 100644 (file)
index 0000000..826d3ae
Binary files /dev/null and b/fastlane/metadata/android/ru-RU/images/phoneScreenshots/02 - Insecure Network - ru.png differ
diff --git a/fastlane/metadata/android/ru-RU/images/phoneScreenshots/02-InsecureNetwork-ru.png b/fastlane/metadata/android/ru-RU/images/phoneScreenshots/02-InsecureNetwork-ru.png
deleted file mode 100644 (file)
index 492f7f1..0000000
Binary files a/fastlane/metadata/android/ru-RU/images/phoneScreenshots/02-InsecureNetwork-ru.png and /dev/null differ
diff --git a/fastlane/metadata/android/ru-RU/images/phoneScreenshots/03 - Antiquated Network - ru.png b/fastlane/metadata/android/ru-RU/images/phoneScreenshots/03 - Antiquated Network - ru.png
new file mode 100644 (file)
index 0000000..bc7d2c3
Binary files /dev/null and b/fastlane/metadata/android/ru-RU/images/phoneScreenshots/03 - Antiquated Network - ru.png differ
diff --git a/fastlane/metadata/android/ru-RU/images/phoneScreenshots/03-AntiquatedNetwork-ru.png b/fastlane/metadata/android/ru-RU/images/phoneScreenshots/03-AntiquatedNetwork-ru.png
deleted file mode 100644 (file)
index 02739c2..0000000
Binary files a/fastlane/metadata/android/ru-RU/images/phoneScreenshots/03-AntiquatedNetwork-ru.png and /dev/null differ
diff --git a/fastlane/metadata/android/ru-RU/images/phoneScreenshots/04 - Navigation Menu - ru.png b/fastlane/metadata/android/ru-RU/images/phoneScreenshots/04 - Navigation Menu - ru.png
new file mode 100644 (file)
index 0000000..6ed1041
Binary files /dev/null and b/fastlane/metadata/android/ru-RU/images/phoneScreenshots/04 - Navigation Menu - ru.png differ
diff --git a/fastlane/metadata/android/ru-RU/images/phoneScreenshots/04-NavigationMenu-ru.png b/fastlane/metadata/android/ru-RU/images/phoneScreenshots/04-NavigationMenu-ru.png
deleted file mode 100644 (file)
index 1582fb6..0000000
Binary files a/fastlane/metadata/android/ru-RU/images/phoneScreenshots/04-NavigationMenu-ru.png and /dev/null differ
diff --git a/fastlane/metadata/android/ru-RU/images/phoneScreenshots/05 - Dark Theme - ru.png b/fastlane/metadata/android/ru-RU/images/phoneScreenshots/05 - Dark Theme - ru.png
new file mode 100644 (file)
index 0000000..3e4f559
Binary files /dev/null and b/fastlane/metadata/android/ru-RU/images/phoneScreenshots/05 - Dark Theme - ru.png differ
diff --git a/fastlane/metadata/android/ru-RU/images/phoneScreenshots/05-DarkTheme-ru.png b/fastlane/metadata/android/ru-RU/images/phoneScreenshots/05-DarkTheme-ru.png
deleted file mode 100644 (file)
index 7eaa38d..0000000
Binary files a/fastlane/metadata/android/ru-RU/images/phoneScreenshots/05-DarkTheme-ru.png and /dev/null differ
index 98bed167dc90ffee72b7affb37a659966b1bd114..6983486bcaa662b9cc69a587900bbb2ad77aa2d5 100644 (file)
@@ -1,3 +1,22 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+# SPDX-FileCopyrightText: 2023-2025 Soren Stoutner <soren@stoutner.com>
+#
+# This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell/>.
+#
+# This program 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.
+#
+# This program 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
+# this program.  If not, see <https://www.gnu.org/licenses/>.
+
+
 # Project-wide Gradle settings.
 # IDE (e.g. Android Studio) users:
 # Gradle settings configured through the IDE *will override*
 # Specifies the JVM arguments used for the daemon process.
 # The setting is particularly useful for tweaking memory settings.
 org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
+
 # When configured, Gradle will run in incubating parallel mode.
 # This option should only be used with decoupled projects. More details, visit
 # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
 # org.gradle.parallel=true
+
 # AndroidX package structure to make it clearer which packages are bundled with the
 # Android operating system, and which are packaged with your app"s APK
 # https://developer.android.com/topic/libraries/support-library/androidx-rn
 android.useAndroidX=true
-# Automatically convert third-party libraries to use AndroidX
-android.enableJetifier=true
+
 # Kotlin code style for this project: "official" or "obsolete":
-kotlin.code.style=official
\ No newline at end of file
+kotlin.code.style=official
+
+# Enable the configuration cache, which improves build speed.
+org.gradle.unsafe.configuration-cache=true
+
+# Use non-transitive R classes, which speed up the build process when the configuration has not changed.
+android.nonTransitiveRClass=true
+
+# Use non-final resource IDs for faster incremental compilation.
+android.nonFinalResIds=true
index 177ccd7c04cebf67a7e3936cce5d8b4d5928d54f..c2db36c64477f9231eb3c4be942bfef2873e32bb 100644 (file)
@@ -1,6 +1,23 @@
-#Thu Aug 12 09:15:13 MST 2021
+# SPDX-License-Identifier: GPL-3.0-or-later
+# SPDX-FileCopyrightText: 2023, 2025 Soren Stoutner <soren@stoutner.com>
+#
+# This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell/>.
+#
+# This program 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.
+#
+# This program 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
+# this program.  If not, see <https://www.gnu.org/licenses/>.
+
 distributionBase=GRADLE_USER_HOME
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip
 distributionPath=wrapper/dists
 zipStorePath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME