From 44b5908a48464293cb13c6fbd37dde6d837e13a9 Mon Sep 17 00:00:00 2001 From: Soren Stoutner Date: Thu, 4 Aug 2022 15:45:38 -0700 Subject: [PATCH 01/16] Create two-toned Night Theme blue text. https://redmine.stoutner.com/issues/884 --- app/build.gradle | 2 +- app/src/main/AndroidManifest.xml | 8 ++++---- app/src/main/assets/css/theme.css | 2 +- app/src/main/assets/en/changelog.html | 6 ++++++ app/src/main/assets/fr/changelog.html | 10 +++++----- app/src/main/res/drawable/antiquated_3g_disabled.xml | 2 +- .../res/drawable/antiquated_notification_disabled.xml | 2 +- .../res/drawable/antiquated_notification_ghosted.xml | 2 +- app/src/main/res/drawable/bottom_app_bar_disabled.xml | 2 +- app/src/main/res/drawable/bottom_app_bar_enabled.xml | 2 +- app/src/main/res/drawable/bug_tracker.xml | 2 +- app/src/main/res/drawable/changelog.xml | 2 +- app/src/main/res/drawable/clear.xml | 2 +- app/src/main/res/drawable/contributors.xml | 6 +++--- app/src/main/res/drawable/copy.xml | 2 +- app/src/main/res/drawable/donations.xml | 2 +- app/src/main/res/drawable/forum.xml | 2 +- .../res/drawable/insecure_notification_disabled.xml | 2 +- .../res/drawable/insecure_notification_ghosted.xml | 2 +- app/src/main/res/drawable/licenses.xml | 2 +- app/src/main/res/drawable/logcat.xml | 2 +- app/src/main/res/drawable/news.xml | 2 +- app/src/main/res/drawable/permissions.xml | 10 +++++----- app/src/main/res/drawable/phone_permission.xml | 2 +- app/src/main/res/drawable/privacy_policy.xml | 4 ++-- app/src/main/res/drawable/protocols.xml | 2 +- app/src/main/res/drawable/roadmap.xml | 2 +- app/src/main/res/drawable/save.xml | 2 +- .../main/res/drawable/secure_notification_disabled.xml | 2 +- .../main/res/drawable/secure_notification_ghosted.xml | 2 +- app/src/main/res/drawable/settings.xml | 2 +- app/src/main/res/layout/privacy_cell_bottom_appbar.xml | 2 +- app/src/main/res/layout/privacy_cell_top_appbar.xml | 2 +- app/src/main/res/values-night/colors.xml | 7 +++---- app/src/main/res/values/colors.xml | 7 +++---- app/src/main/res/xml/preferences.xml | 2 +- build.gradle | 2 +- fastlane/metadata/android/fr-FR/changelogs/9.txt | 5 +++++ 38 files changed, 65 insertions(+), 56 deletions(-) create mode 100644 fastlane/metadata/android/fr-FR/changelogs/9.txt diff --git a/app/build.gradle b/app/build.gradle index e9ea6d2..cb978b9 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -59,7 +59,7 @@ dependencies { implementation 'androidx.work:work-runtime-ktx:2.7.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.0' + implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10' // Include the Google material library. implementation 'com.google.android.material:material:1.6.1' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 408848d..3df75fd 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -71,15 +71,15 @@ + android:parentActivityName=".activities.PrivacyCellActivity" + android:screenOrientation="fullUser" /> + android:parentActivityName=".activities.PrivacyCellActivity" + android:screenOrientation="fullUser" /> +

1.8.1 (version code 10)

+

8 July 2022 - minimum API 30, target API 32

+ +

1.8 (version code 9)

14 June 2022 - minimum API 30, target API 32

    diff --git a/app/src/main/assets/fr/changelog.html b/app/src/main/assets/fr/changelog.html index 9ff5061..251b61d 100644 --- a/app/src/main/assets/fr/changelog.html +++ b/app/src/main/assets/fr/changelog.html @@ -30,12 +30,12 @@

    1.8 (version de code 9)

    -

    14 June 2022 - API minimum 30, API cible 32

    +

    14 Juin 2022 - API minimum 30, API cible 32

    diff --git a/app/src/main/res/drawable/antiquated_3g_disabled.xml b/app/src/main/res/drawable/antiquated_3g_disabled.xml index 8750d1c..a88bf32 100644 --- a/app/src/main/res/drawable/antiquated_3g_disabled.xml +++ b/app/src/main/res/drawable/antiquated_3g_disabled.xml @@ -26,6 +26,6 @@ android:viewportWidth="256" > \ No newline at end of file diff --git a/app/src/main/res/drawable/antiquated_notification_disabled.xml b/app/src/main/res/drawable/antiquated_notification_disabled.xml index 3d58136..9413e81 100644 --- a/app/src/main/res/drawable/antiquated_notification_disabled.xml +++ b/app/src/main/res/drawable/antiquated_notification_disabled.xml @@ -26,6 +26,6 @@ android:viewportWidth="256" > \ No newline at end of file diff --git a/app/src/main/res/drawable/antiquated_notification_ghosted.xml b/app/src/main/res/drawable/antiquated_notification_ghosted.xml index 5f7496a..321ab0f 100644 --- a/app/src/main/res/drawable/antiquated_notification_ghosted.xml +++ b/app/src/main/res/drawable/antiquated_notification_ghosted.xml @@ -26,6 +26,6 @@ android:viewportWidth="256" > \ No newline at end of file diff --git a/app/src/main/res/drawable/bottom_app_bar_disabled.xml b/app/src/main/res/drawable/bottom_app_bar_disabled.xml index 4aa3d7b..fe24790 100644 --- a/app/src/main/res/drawable/bottom_app_bar_disabled.xml +++ b/app/src/main/res/drawable/bottom_app_bar_disabled.xml @@ -8,6 +8,6 @@ android:viewportWidth="24" > \ No newline at end of file diff --git a/app/src/main/res/drawable/bottom_app_bar_enabled.xml b/app/src/main/res/drawable/bottom_app_bar_enabled.xml index 4ccb890..81b33f1 100644 --- a/app/src/main/res/drawable/bottom_app_bar_enabled.xml +++ b/app/src/main/res/drawable/bottom_app_bar_enabled.xml @@ -8,6 +8,6 @@ android:viewportWidth="24" > \ No newline at end of file diff --git a/app/src/main/res/drawable/bug_tracker.xml b/app/src/main/res/drawable/bug_tracker.xml index 9cb8f87..de91740 100644 --- a/app/src/main/res/drawable/bug_tracker.xml +++ b/app/src/main/res/drawable/bug_tracker.xml @@ -8,6 +8,6 @@ android:viewportWidth="24"> \ No newline at end of file diff --git a/app/src/main/res/drawable/changelog.xml b/app/src/main/res/drawable/changelog.xml index 87666df..08ce8d3 100644 --- a/app/src/main/res/drawable/changelog.xml +++ b/app/src/main/res/drawable/changelog.xml @@ -9,6 +9,6 @@ android:autoMirrored="true" > \ No newline at end of file diff --git a/app/src/main/res/drawable/clear.xml b/app/src/main/res/drawable/clear.xml index 35870ea..f73c37e 100644 --- a/app/src/main/res/drawable/clear.xml +++ b/app/src/main/res/drawable/clear.xml @@ -8,6 +8,6 @@ android:viewportWidth="24" > \ No newline at end of file diff --git a/app/src/main/res/drawable/contributors.xml b/app/src/main/res/drawable/contributors.xml index f61e91e..a193537 100644 --- a/app/src/main/res/drawable/contributors.xml +++ b/app/src/main/res/drawable/contributors.xml @@ -2,12 +2,12 @@ \ No newline at end of file diff --git a/app/src/main/res/drawable/copy.xml b/app/src/main/res/drawable/copy.xml index f51eb87..8488b34 100644 --- a/app/src/main/res/drawable/copy.xml +++ b/app/src/main/res/drawable/copy.xml @@ -9,6 +9,6 @@ android:autoMirrored="true" > \ No newline at end of file diff --git a/app/src/main/res/drawable/donations.xml b/app/src/main/res/drawable/donations.xml index 81b4ab7..61cbe43 100644 --- a/app/src/main/res/drawable/donations.xml +++ b/app/src/main/res/drawable/donations.xml @@ -9,6 +9,6 @@ android:autoMirrored="true" > \ No newline at end of file diff --git a/app/src/main/res/drawable/forum.xml b/app/src/main/res/drawable/forum.xml index bc94ff3..4d1a0b6 100644 --- a/app/src/main/res/drawable/forum.xml +++ b/app/src/main/res/drawable/forum.xml @@ -9,6 +9,6 @@ android:autoMirrored="true" > \ No newline at end of file diff --git a/app/src/main/res/drawable/insecure_notification_disabled.xml b/app/src/main/res/drawable/insecure_notification_disabled.xml index 0bd2267..2e90c58 100644 --- a/app/src/main/res/drawable/insecure_notification_disabled.xml +++ b/app/src/main/res/drawable/insecure_notification_disabled.xml @@ -26,6 +26,6 @@ android:viewportWidth="256" > \ No newline at end of file diff --git a/app/src/main/res/drawable/insecure_notification_ghosted.xml b/app/src/main/res/drawable/insecure_notification_ghosted.xml index b2c70e3..261c954 100644 --- a/app/src/main/res/drawable/insecure_notification_ghosted.xml +++ b/app/src/main/res/drawable/insecure_notification_ghosted.xml @@ -26,6 +26,6 @@ android:viewportWidth="256" > \ No newline at end of file diff --git a/app/src/main/res/drawable/licenses.xml b/app/src/main/res/drawable/licenses.xml index cd03a61..9b74891 100644 --- a/app/src/main/res/drawable/licenses.xml +++ b/app/src/main/res/drawable/licenses.xml @@ -9,6 +9,6 @@ android:autoMirrored="true" > \ No newline at end of file diff --git a/app/src/main/res/drawable/logcat.xml b/app/src/main/res/drawable/logcat.xml index 1024d6a..2bd25fe 100644 --- a/app/src/main/res/drawable/logcat.xml +++ b/app/src/main/res/drawable/logcat.xml @@ -9,6 +9,6 @@ android:autoMirrored="true" > \ No newline at end of file diff --git a/app/src/main/res/drawable/news.xml b/app/src/main/res/drawable/news.xml index cefd2fd..50ae1af 100644 --- a/app/src/main/res/drawable/news.xml +++ b/app/src/main/res/drawable/news.xml @@ -9,6 +9,6 @@ android:autoMirrored="true" > \ No newline at end of file diff --git a/app/src/main/res/drawable/permissions.xml b/app/src/main/res/drawable/permissions.xml index 3578a4d..bae4fa9 100644 --- a/app/src/main/res/drawable/permissions.xml +++ b/app/src/main/res/drawable/permissions.xml @@ -8,22 +8,22 @@ android:viewportWidth="24" > diff --git a/app/src/main/res/drawable/phone_permission.xml b/app/src/main/res/drawable/phone_permission.xml index 4a43a30..12f65df 100644 --- a/app/src/main/res/drawable/phone_permission.xml +++ b/app/src/main/res/drawable/phone_permission.xml @@ -7,6 +7,6 @@ android:viewportWidth="24"> diff --git a/app/src/main/res/drawable/privacy_policy.xml b/app/src/main/res/drawable/privacy_policy.xml index 1e0b7ad..b2ea3b5 100644 --- a/app/src/main/res/drawable/privacy_policy.xml +++ b/app/src/main/res/drawable/privacy_policy.xml @@ -8,10 +8,10 @@ android:viewportWidth="24" > \ No newline at end of file diff --git a/app/src/main/res/drawable/protocols.xml b/app/src/main/res/drawable/protocols.xml index ea5cd78..6b4efb4 100644 --- a/app/src/main/res/drawable/protocols.xml +++ b/app/src/main/res/drawable/protocols.xml @@ -8,6 +8,6 @@ android:viewportWidth="24" > \ No newline at end of file diff --git a/app/src/main/res/drawable/roadmap.xml b/app/src/main/res/drawable/roadmap.xml index e0075d5..bebdbcb 100644 --- a/app/src/main/res/drawable/roadmap.xml +++ b/app/src/main/res/drawable/roadmap.xml @@ -8,6 +8,6 @@ android:viewportWidth="24" > \ No newline at end of file diff --git a/app/src/main/res/drawable/save.xml b/app/src/main/res/drawable/save.xml index 1705dc1..3d1e203 100644 --- a/app/src/main/res/drawable/save.xml +++ b/app/src/main/res/drawable/save.xml @@ -8,6 +8,6 @@ android:viewportWidth="24" > \ No newline at end of file diff --git a/app/src/main/res/drawable/secure_notification_disabled.xml b/app/src/main/res/drawable/secure_notification_disabled.xml index fe45484..a4ed573 100644 --- a/app/src/main/res/drawable/secure_notification_disabled.xml +++ b/app/src/main/res/drawable/secure_notification_disabled.xml @@ -26,6 +26,6 @@ android:viewportWidth="256" > \ No newline at end of file diff --git a/app/src/main/res/drawable/secure_notification_ghosted.xml b/app/src/main/res/drawable/secure_notification_ghosted.xml index cf7cde8..5ddf76e 100644 --- a/app/src/main/res/drawable/secure_notification_ghosted.xml +++ b/app/src/main/res/drawable/secure_notification_ghosted.xml @@ -26,6 +26,6 @@ android:viewportWidth="256" > \ No newline at end of file diff --git a/app/src/main/res/drawable/settings.xml b/app/src/main/res/drawable/settings.xml index bd84139..9c55e11 100644 --- a/app/src/main/res/drawable/settings.xml +++ b/app/src/main/res/drawable/settings.xml @@ -8,6 +8,6 @@ android:viewportWidth="24" > \ No newline at end of file diff --git a/app/src/main/res/layout/privacy_cell_bottom_appbar.xml b/app/src/main/res/layout/privacy_cell_bottom_appbar.xml index b4720dc..abef8f8 100644 --- a/app/src/main/res/layout/privacy_cell_bottom_appbar.xml +++ b/app/src/main/res/layout/privacy_cell_bottom_appbar.xml @@ -181,5 +181,5 @@ android:layout_width="wrap_content" android:layout_gravity="start" app:menu="@menu/navigation_menu_bottom_appbar" - app:itemIconTint="@color/icon_enabled" /> + app:itemIconTint="@color/blue_icon" /> \ No newline at end of file diff --git a/app/src/main/res/layout/privacy_cell_top_appbar.xml b/app/src/main/res/layout/privacy_cell_top_appbar.xml index b9d92b7..0fab973 100644 --- a/app/src/main/res/layout/privacy_cell_top_appbar.xml +++ b/app/src/main/res/layout/privacy_cell_top_appbar.xml @@ -180,5 +180,5 @@ android:layout_width="wrap_content" android:layout_gravity="start" app:menu="@menu/navigation_menu_top_appbar" - app:itemIconTint="@color/icon_enabled" /> + app:itemIconTint="@color/blue_icon" /> \ No newline at end of file diff --git a/app/src/main/res/values-night/colors.xml b/app/src/main/res/values-night/colors.xml index ef40f91..ea6c39b 100644 --- a/app/src/main/res/values-night/colors.xml +++ b/app/src/main/res/values-night/colors.xml @@ -23,10 +23,9 @@ @color/gray_825 @color/violet_500 @color/violet_500 - @color/gray_500 - @color/violet_500 - @color/gray_700 - @color/white + @color/gray_500 + @color/gray_700 + @color/white @color/salmon @color/red_900 @color/salmon diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index b70bf7b..a45a3d7 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -23,10 +23,9 @@ @color/gray_200 @color/blue_700 @color/blue_700 - @color/gray_600 - @color/blue_700 - @color/gray_425 - @color/gray_925 + @color/gray_600 + @color/gray_425 + @color/gray_925 @color/red_700 @color/red_700 @color/red_700 diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index 20dc853..1d9d697 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -1,7 +1,7 @@ + - + + + + @@ -101,4 +104,4 @@ - \ No newline at end of file + diff --git a/app/src/main/assets/de/changelog.html b/app/src/main/assets/de/changelog.html index 2144701..611653c 100644 --- a/app/src/main/assets/de/changelog.html +++ b/app/src/main/assets/de/changelog.html @@ -29,8 +29,8 @@ -

    1.8.1 (Version Code 10)

    -

    8. August 2022 - Mindest-API 30, Ziel-API 32

    +

    1.8.1 (Version Code 10)

    +

    8. August 2022 - Mindest-API 30, Ziel-API 32

    • Fehler behoben, durch den nach Änderung der Netzwerk-Verbindung Benachrichtigungen wieder aktiviert wurden.
    • Zweifarbig violetten Text zum Nachtmodus (Theme) hinzugefügt.
    • diff --git a/app/src/main/assets/de/licenses.html b/app/src/main/assets/de/licenses.html index bbc8587..a0143c8 100644 --- a/app/src/main/assets/de/licenses.html +++ b/app/src/main/assets/de/licenses.html @@ -1,5 +1,5 @@ + + + + + diff --git a/app/src/main/assets/images/payments_rounded.svg b/app/src/main/assets/images/payments_rounded.svg index 8a9b2b6..7d707ee 100644 --- a/app/src/main/assets/images/payments_rounded.svg +++ b/app/src/main/assets/images/payments_rounded.svg @@ -3,7 +3,7 @@ + + + + + diff --git a/app/src/main/res/layout/settings_bottom_appbar.xml b/app/src/main/res/layout/settings_bottom_appbar.xml index 8b872ff..0135d29 100644 --- a/app/src/main/res/layout/settings_bottom_appbar.xml +++ b/app/src/main/res/layout/settings_bottom_appbar.xml @@ -1,7 +1,7 @@ - \ No newline at end of file + diff --git a/app/src/main/res/layout/settings_top_appbar.xml b/app/src/main/res/layout/settings_top_appbar.xml index 1ed0797..380c124 100644 --- a/app/src/main/res/layout/settings_top_appbar.xml +++ b/app/src/main/res/layout/settings_top_appbar.xml @@ -1,7 +1,7 @@ + Phone Permission Privacy Cell needs the Read Phone State permission to determine the safety level of your cell connection. + Notification Permission + Privacy Cell needs the Post Notification permission to display realtime monitoring notifications. OK @@ -176,4 +178,4 @@ consider_3g_antiquated interface bottom_app_bar - \ No newline at end of file + diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index 1d9d697..95d0515 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -1,7 +1,7 @@ + Telefon-Berechtigung Privacy Cell benötigt lesenden Zugriff auf den Status Ihres Telefons, um das Sicherheits-Niveau Ihrer Mobilfunk-Verbindung zu ermitteln. + Benachrichtigungs-Berechtigung + Privacy Cell benötigt die Benachrichtigungs-Berechtigung, um Benachrichtigungen des Echtzeit-Monitorings anzeigen zu können. OK diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 2f38a43..7ff040c 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -116,9 +116,11 @@ NR Avanzado – 5G Nueva Radio Avanzada - + Permiso telefónico Privacy Cell necesita el permiso del teléfono "Leer estado del teléfono" para determinar el nivel de seguridad de su conexión celular. + Permiso de notificación + Privacy Cell necesita el permiso Post Notification para mostrar las notificaciones de monitoreo en tiempo real. OK diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index c7b481f..c10878e 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -117,9 +117,11 @@ NR Advanced – 5G New Radio Advanced - + Autorisations Privacy Cell a besoin de l\'autorisation READ PHONE STATE pour déterminer le niveau de sécurité de votre connexion cellulaire. + Autorisation de notification + Privacy Cell a besoin de l\'autorisation Post Notification pour afficher les notifications de surveillance en temps réel. OK diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index b4e0347..cea32ce 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -116,9 +116,11 @@ NR Advanced – 5G New Radio Advanced - + Autorizzazioni sul dispositivo Privacy Cell ha bisogno dell\'autorizzazione di lettura dello stato del telefono per poter determinare il livello si sicurezza della connessione. + Autorizzazione per le notifiche + Privacy Cell ha bisogno dell\'autorizzazione "Post Notification" per mostrare le notifiche del monitoraggio in tempo reale. OK diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index b073e5e..97855a8 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -114,9 +114,11 @@ NR усовершенствованное – 5G Новое радио усовершенствованное - + Разрешение телефона Privacy Cell необходимо разрешение на чтение состояния телефона для определения степени безопасности вашего мобильного подключения. + Разрешение на уведомления + Privacy Cell требуется разрешение на отправку уведомлений для отображения уведомлений мониторинга в реальном времени. OK diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 22281a1..2b47728 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -118,7 +118,7 @@ NR Advanced – 5G New Radio Advanced - + Phone Permission Privacy Cell needs the Read Phone State permission to determine the safety level of your cell connection. Notification Permission @@ -134,6 +134,7 @@ Monitoring Realtime monitoring Place an icon in the status bar that monitors the cell network. + The Post Notification permission is currently denied, so no notifications will be displayed. Secure network notification Insecure network notification Antiquated network notification diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index 95d0515..d49d9b6 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -28,7 +28,6 @@ Date: Tue, 29 Nov 2022 15:22:59 -0700 Subject: [PATCH 05/16] Restore the scroll position when restarting the Settings activity. https://redmine.stoutner.com/issues/913 --- .../privacycell/fragments/SettingsFragment.kt | 91 +++++++++++++------ app/src/main/res/values-es/strings.xml | 1 + app/src/main/res/values/strings.xml | 2 +- 3 files changed, 65 insertions(+), 29 deletions(-) diff --git a/app/src/main/java/com/stoutner/privacycell/fragments/SettingsFragment.kt b/app/src/main/java/com/stoutner/privacycell/fragments/SettingsFragment.kt index 9adae22..dc8545f 100644 --- a/app/src/main/java/com/stoutner/privacycell/fragments/SettingsFragment.kt +++ b/app/src/main/java/com/stoutner/privacycell/fragments/SettingsFragment.kt @@ -40,6 +40,9 @@ import com.stoutner.privacycell.activities.PrivacyCellActivity import com.stoutner.privacycell.dialogs.NotificationPermissionDialog import com.stoutner.privacycell.services.RealtimeMonitoringService +// Define the class constants. +private const val SCROLL_Y = "scroll_y" + class SettingsFragment : PreferenceFragmentCompat() { // Declare the class variables. private lateinit var sharedPreferenceChangeListener: OnSharedPreferenceChangeListener @@ -52,6 +55,12 @@ class SettingsFragment : PreferenceFragmentCompat() { private lateinit var consider3gAntiquatedPreference: Preference 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. + private var fragmentRestarted: Boolean = false + private var scrollY: Int = 0 + } + override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { // Load the preferences from the XML file. setPreferencesFromResource(R.xml.preferences, rootKey) @@ -128,36 +137,15 @@ class SettingsFragment : PreferenceFragmentCompat() { } else { bottomAppBarPreference.setIcon(R.drawable.bottom_app_bar_disabled) } - } - - // The listener should be unregistered when the app is paused. - override fun onPause() { - // Run the default commands. - super.onPause() - // Get a handle for the shared preferences. - val sharedPreferences = preferenceScreen.sharedPreferences!! + // Check if the fragment has been restarted. + if (savedInstanceState != null) { + // Set the fragment restored flag. + fragmentRestarted = true - // Unregister the shared preference listener. - sharedPreferences.unregisterOnSharedPreferenceChangeListener(sharedPreferenceChangeListener) - } - - // The listener should be re-registered when the app is resumed. - override fun onResume() { - // Run the default commands. - super.onResume() - - // Get a new shared preference change listener. - sharedPreferenceChangeListener = getSharedPreferenceChangeListener() - - // Get a handle for the shared preferences. - val sharedPreferences = preferenceScreen.sharedPreferences!! - - // Re-register the shared preference listener. - sharedPreferences.registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener) - - // Update the realtime monitoring preference summary. - updateRealtimeMonitoringSummary() + // Save the scroll Y. + scrollY = savedInstanceState.getInt(SCROLL_Y) + } } private fun getSharedPreferenceChangeListener(): OnSharedPreferenceChangeListener { @@ -244,6 +232,53 @@ class SettingsFragment : PreferenceFragmentCompat() { } } + // The listener should be unregistered when the app is paused. + override fun onPause() { + // Run the default commands. + super.onPause() + + // Get a handle for the shared preferences. + val sharedPreferences = preferenceScreen.sharedPreferences!! + + // Unregister the shared preference listener. + sharedPreferences.unregisterOnSharedPreferenceChangeListener(sharedPreferenceChangeListener) + } + + // The listener should be re-registered when the app is resumed. + override fun onResume() { + // Run the default commands. + super.onResume() + + // Get a new shared preference change listener. + sharedPreferenceChangeListener = getSharedPreferenceChangeListener() + + // Get a handle for the shared preferences. + val sharedPreferences = preferenceScreen.sharedPreferences!! + + // Re-register the shared preference listener. + sharedPreferences.registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener) + + // Update the realtime monitoring preference summary. + updateRealtimeMonitoringSummary() + + // Restore the scroll position if the fragment has been restarted. + if (fragmentRestarted) { + // Reset the fragment restarted flag. + fragmentRestarted = false + + // Set the scroll position. + listView.smoothScrollBy(0, scrollY) + } + } + + override fun onSaveInstanceState(savedInstanceState: Bundle) { + // Run the default commands. + super.onSaveInstanceState(savedInstanceState) + + // Save the scroll position. + savedInstanceState.putInt(SCROLL_Y, listView.computeVerticalScrollOffset()) + } + private fun restartPrivacyCell() { // Create an intent to restart Privacy Cell. val restartIntent = requireActivity().parentActivityIntent!! diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 7ff040c..a839c1c 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -132,6 +132,7 @@ Monitorización Monitorización en tiempo real Coloca un icono en la barra de estado que monitoriza la red celular. + El permiso de publicación de notificaciones está actualmente denegado, por lo que no se mostrarán las notificaciones. Notificación de red segura Notificación de red insegura Notificación de red obsoleta diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2b47728..609cde0 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -134,7 +134,7 @@ Monitoring Realtime monitoring Place an icon in the status bar that monitors the cell network. - The Post Notification permission is currently denied, so no notifications will be displayed. + The Post Notification permission is currently denied, so notifications will not be displayed. Secure network notification Insecure network notification Antiquated network notification -- 2.43.0 From 4dae85f915eb4b32fec0988202e5d6e353de3d85 Mon Sep 17 00:00:00 2001 From: Soren Stoutner Date: Wed, 30 Nov 2022 11:06:11 -0700 Subject: [PATCH 06/16] Remove deprecated `setForceDark` on WebViews. https://redmine.stoutner.com/issues/933 --- .../privacycell/dialogs/WebViewDialog.kt | 16 ++-------------- app/src/main/res/values-de/strings.xml | 1 + app/src/main/res/values-fr/strings.xml | 1 + app/src/main/res/values-it/strings.xml | 1 + 4 files changed, 5 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/com/stoutner/privacycell/dialogs/WebViewDialog.kt b/app/src/main/java/com/stoutner/privacycell/dialogs/WebViewDialog.kt index 0a40933..aa7d296 100644 --- a/app/src/main/java/com/stoutner/privacycell/dialogs/WebViewDialog.kt +++ b/app/src/main/java/com/stoutner/privacycell/dialogs/WebViewDialog.kt @@ -1,5 +1,5 @@ /* - * Copyright © 2021-2022 Soren Stoutner . + * Copyright 2021-2022 Soren Stoutner . * * This file is part of Privacy Cell . * @@ -21,7 +21,6 @@ package com.stoutner.privacycell.dialogs import android.app.Dialog import android.content.Intent -import android.content.res.Configuration import android.os.Bundle import android.webkit.WebResourceRequest import android.webkit.WebResourceResponse @@ -30,9 +29,7 @@ import android.webkit.WebViewClient import androidx.appcompat.app.AlertDialog import androidx.fragment.app.DialogFragment -import androidx.webkit.WebSettingsCompat import androidx.webkit.WebViewAssetLoader -import androidx.webkit.WebViewFeature import com.stoutner.privacycell.R @@ -388,15 +385,6 @@ class WebViewDialog : DialogFragment() { // Get a handle for the WebView. webView = alertDialog.findViewById(R.id.webview)!! - // Get the current theme status. - val currentThemeStatus = resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK - - // Check to see if the app is in night mode. - if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES && WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK)) { // The app is in night mode. - // Apply the dark WebView theme. - WebSettingsCompat.setForceDark(webView.settings, WebSettingsCompat.FORCE_DARK_ON) - } - // Create a WebView asset loader. val webViewAssetLoader = WebViewAssetLoader.Builder().addPathHandler("/assets/", WebViewAssetLoader.AssetsPathHandler(requireContext())).build() @@ -481,4 +469,4 @@ class WebViewDialog : DialogFragment() { // Save the scroll position. savedInstanceState.putInt(SCROLL_Y, webView.scrollY) } -} \ No newline at end of file +} diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index ed21f7e..9fb8c9a 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -132,6 +132,7 @@ Überwachung Echtzeit-Überwachung Plaziert ein Icon in der Statusleiste, das die Überwachung der Mobilfunk-Verbindung anzeigt. + Die Benachrichtigungs-Berechtigung für Privacy Cell wurde abgelehnt. Daher werden derzeit keine Benachrichtigungen angezeigt. Benachrichtigung über sicheres Netzwerk Benachrichtigung über unsicheres Netzwerk Benachrichtigung über veraltetes Netzwerk diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index c10878e..1773a36 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -133,6 +133,7 @@ Supervision Supervision en temps-réel Placez une icône dans la barre d\'état qui surveille le réseau cellulaire. + L\'autorisation d\'afficher les notifications est actuellement refusée, les notifications ne seront donc pas affichées. Notification de réseau sécurisé Notification de réseau non sécurisé Notification de réseau obsolète diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index cea32ce..dc1dc29 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -132,6 +132,7 @@ Monitoraggio Monitoraggio in tempo reale Aggiunge un\'icona nella barra di stato che monitora la rete cellulare. + L\'autorizzazione "Post Notification" non è stata al momento concessa per cui le notifiche non saranno visualizzate. Notifica di rete sicura Notifica di rete insicura Notifiche di Rete Antiquata -- 2.43.0 From afa7f1956d0f93ebf10b21583a35cf1eb3422ca5 Mon Sep 17 00:00:00 2001 From: Soren Stoutner Date: Wed, 30 Nov 2022 11:11:57 -0700 Subject: [PATCH 07/16] Remove unneeded `onBackPressed`. https://redmine.stoutner.com/issues/934 --- .../stoutner/privacycell/activities/SettingsActivity.kt | 9 --------- 1 file changed, 9 deletions(-) diff --git a/app/src/main/java/com/stoutner/privacycell/activities/SettingsActivity.kt b/app/src/main/java/com/stoutner/privacycell/activities/SettingsActivity.kt index f1923b3..c9fe930 100644 --- a/app/src/main/java/com/stoutner/privacycell/activities/SettingsActivity.kt +++ b/app/src/main/java/com/stoutner/privacycell/activities/SettingsActivity.kt @@ -24,7 +24,6 @@ import android.content.Intent import android.content.pm.PackageManager import android.os.Build import android.os.Bundle -import android.view.MenuItem import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.widget.Toolbar @@ -83,14 +82,6 @@ class SettingsActivity : AppCompatActivity(), NotificationPermissionDialogListen } } - override fun onOptionsItemSelected(item: MenuItem): Boolean { - // As there is only one option, go back. - onBackPressed() - - // Consume the event. - return true - } - override fun onRequestPermissionsResult(requestCode: Int, permissions: Array, grantResults: IntArray) { // Run the default commands. super.onRequestPermissionsResult(requestCode, permissions, grantResults) -- 2.43.0 From 2abfff1b7b7cae9ec318e0c26d42f62b9cbebbee Mon Sep 17 00:00:00 2001 From: Soren Stoutner Date: Wed, 30 Nov 2022 11:29:12 -0700 Subject: [PATCH 08/16] Add per-app language support. https://redmine.stoutner.com/issues/935 --- app/build.gradle | 1 + app/src/main/AndroidManifest.xml | 3 ++- app/src/main/res/xml/locales_config.xml | 29 +++++++++++++++++++++++++ 3 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 app/src/main/res/xml/locales_config.xml diff --git a/app/build.gradle b/app/build.gradle index 160ef73..2925b17 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -31,6 +31,7 @@ android { targetSdk 33 versionCode 10 versionName "1.8.1" + resConfigs "en", "de", "es", "fr", "it", "ru" } buildTypes { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f79605c..528c4c3 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -52,7 +52,8 @@ android:fullBackupContent="false" android:supportsRtl="true" android:theme="@style/Theme.PrivacyCell" - tools:ignore="DataExtractionRules" > + android:localeConfig="@xml/locales_config" + tools:ignore="DataExtractionRules,UnusedAttribute" > + + + + + + + + + + -- 2.43.0 From 53f5dd586d2e9eb38280648b9084db15163fe682 Mon Sep 17 00:00:00 2001 From: Soren Stoutner Date: Mon, 5 Dec 2022 11:51:38 -0700 Subject: [PATCH 09/16] Release 1.9. --- app/build.gradle | 4 ++-- app/src/main/assets/de/changelog.html | 14 ++++++++++++-- app/src/main/assets/en/changelog.html | 13 +++++++++++-- app/src/main/assets/es/changelog.html | 14 ++++++++++++-- app/src/main/assets/fr/changelog.html | 14 ++++++++++++-- app/src/main/assets/it/changelog.html | 16 +++++++++++++--- app/src/main/assets/ru/changelog.html | 14 ++++++++++++-- app/src/main/res/layout/webview_dialog.xml | 4 ++-- app/src/main/res/values-ru/strings.xml | 1 + .../metadata/android/de-DE/changelogs/11.txt | 5 +++++ .../metadata/android/en-US/changelogs/11.txt | 4 ++++ .../metadata/android/es-ES/changelogs/11.txt | 5 +++++ .../metadata/android/fr-FR/changelogs/11.txt | 5 +++++ .../metadata/android/it-IT/changelogs/11.txt | 5 +++++ .../metadata/android/ru-RU/changelogs/11.txt | 5 +++++ 15 files changed, 106 insertions(+), 17 deletions(-) create mode 100644 fastlane/metadata/android/de-DE/changelogs/11.txt create mode 100644 fastlane/metadata/android/en-US/changelogs/11.txt create mode 100644 fastlane/metadata/android/es-ES/changelogs/11.txt create mode 100644 fastlane/metadata/android/fr-FR/changelogs/11.txt create mode 100644 fastlane/metadata/android/it-IT/changelogs/11.txt create mode 100644 fastlane/metadata/android/ru-RU/changelogs/11.txt diff --git a/app/build.gradle b/app/build.gradle index 2925b17..c82f041 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -29,8 +29,8 @@ android { applicationId "com.stoutner.privacycell" minSdk 30 targetSdk 33 - versionCode 10 - versionName "1.8.1" + versionCode 11 + versionName "1.9" resConfigs "en", "de", "es", "fr", "it", "ru" } diff --git a/app/src/main/assets/de/changelog.html b/app/src/main/assets/de/changelog.html index 611653c..b46b306 100644 --- a/app/src/main/assets/de/changelog.html +++ b/app/src/main/assets/de/changelog.html @@ -1,5 +1,5 @@ - - - - - diff --git a/app/src/main/assets/images/list_alt_rounded_24.svg b/app/src/main/assets/images/list_alt_rounded_24.svg new file mode 100644 index 0000000..c888193 --- /dev/null +++ b/app/src/main/assets/images/list_alt_rounded_24.svg @@ -0,0 +1,30 @@ + + + + + + + + diff --git a/app/src/main/assets/it/changelog.html b/app/src/main/assets/it/changelog.html index 1a069f2..b473d2f 100644 --- a/app/src/main/assets/it/changelog.html +++ b/app/src/main/assets/it/changelog.html @@ -29,8 +29,8 @@ -

      1.9 (versione codice 11)

      -

      5 Dicembre 2022 - minima API 30, target API 33

      +

      1.9 (versione codice 11)

      +

      5 Dicembre 2022 - minima API 30, target API 33

      • 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.
      • diff --git a/app/src/main/assets/it/licenses.html b/app/src/main/assets/it/licenses.html index 1323364..3d63167 100644 --- a/app/src/main/assets/it/licenses.html +++ b/app/src/main/assets/it/licenses.html @@ -1,5 +1,5 @@ + - \ 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" /> + 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 index 0000000..2760c7c --- /dev/null +++ b/app/src/main/res/drawable/privacy_cell_monochrome.xml @@ -0,0 +1,40 @@ + + + + + + + + + diff --git a/app/src/main/res/drawable/secure_notification_disabled.xml b/app/src/main/res/drawable/secure_notification_disabled.xml index a4ed573..c28c7f2 100644 --- a/app/src/main/res/drawable/secure_notification_disabled.xml +++ b/app/src/main/res/drawable/secure_notification_disabled.xml @@ -1,5 +1,5 @@ - - - \ No newline at end of file + + + + diff --git a/build.gradle b/build.gradle index 5f4a005..7045733 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ /* - * Copyright 2021-2022 Soren Stoutner . + * Copyright 2021-2023 Soren Stoutner . * * This file is part of Privacy Cell . * @@ -25,8 +25,8 @@ 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:7.4.2' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.0" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files diff --git a/fastlane/metadata/android/de-DE/changelogs/11.txt b/fastlane/metadata/android/de-DE/changelogs/11.txt index 373be1f..765e279 100644 --- a/fastlane/metadata/android/de-DE/changelogs/11.txt +++ b/fastlane/metadata/android/de-DE/changelogs/11.txt @@ -1,5 +1,5 @@ -• 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. +• 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/fr-FR/changelogs/11.txt b/fastlane/metadata/android/fr-FR/changelogs/11.txt index 76ebe15..9bed719 100644 --- a/fastlane/metadata/android/fr-FR/changelogs/11.txt +++ b/fastlane/metadata/android/fr-FR/changelogs/11.txt @@ -1,5 +1,5 @@ -• 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. +• 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/gradle.properties b/gradle.properties index 98bed16..02ba79e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,20 @@ +# Copyright 2023 Soren Stoutner . +# +# This file is part of Privacy Cell . +# +# Privacy Cell is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Privacy Cell is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Privacy Browser. If not, see . + # Project-wide Gradle settings. # IDE (e.g. Android Studio) users: # Gradle settings configured through the IDE *will override* @@ -18,4 +35,6 @@ 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 \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 177ccd7..1e2b5c5 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ #Thu Aug 12 09:15:13 MST 2021 distributionBase=GRADLE_USER_HOME -distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip distributionPath=wrapper/dists zipStorePath=wrapper/dists zipStoreBase=GRADLE_USER_HOME -- 2.43.0 From cabc84a43df2a418f7a9e82fd04fa2bebc7f6826 Mon Sep 17 00:00:00 2001 From: Soren Stoutner Date: Tue, 17 Oct 2023 14:44:49 -0700 Subject: [PATCH 11/16] Bump target API to 34. https://redmine.stoutner.com/issues/1104 --- app/build.gradle | 29 +++++++++++++------ app/src/main/AndroidManifest.xml | 12 ++++++-- app/src/main/assets/de/permissions.html | 6 +++- app/src/main/assets/en/permissions.html | 6 +++- app/src/main/assets/es/permissions.html | 6 +++- app/src/main/assets/fr/permissions.html | 6 +++- app/src/main/assets/it/permissions.html | 6 +++- app/src/main/assets/ru/permissions.html | 6 +++- .../privacycell/fragments/SettingsFragment.kt | 6 ++-- .../privacycell/helpers/ProtocolHelper.kt | 5 ++-- .../receivers/OnBootCompletedReceiver.kt | 4 +-- .../workers/RegisterRealtimeListenerWorker.kt | 4 +-- .../workers/RestartServiceWorker.kt | 4 +-- build.gradle | 6 ++-- gradle.properties | 15 +++++++++- gradle/wrapper/gradle-wrapper.properties | 19 +++++++++++- 16 files changed, 107 insertions(+), 33 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 39d64f4..ccdfa9a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -23,15 +23,26 @@ plugins { } android { - compileSdk 33 + compileSdk 34 defaultConfig { applicationId "com.stoutner.privacycell" minSdk 30 - targetSdk 33 + targetSdk 34 versionCode 11 versionName "1.9" - resConfigs "en", "de", "es", "fr", "it", "ru" + 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 { @@ -53,16 +64,16 @@ android { dependencies { // Include the following AndroidX libraries. implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' - implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.0' - implementation 'androidx.preference:preference-ktx:1.2.0' + implementation 'androidx.core:core-ktx:1.12.0' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2' + implementation 'androidx.preference:preference-ktx:1.2.1' implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0' - implementation 'androidx.webkit:webkit:1.6.0' + implementation 'androidx.webkit:webkit:1.8.0' implementation 'androidx.work:work-runtime-ktx:2.8.1' // Include the Kotlin standard library. This should be the same version number listed in the project build.gradle. - implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0' + implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22' // Include the Google material library. - implementation 'com.google.android.material:material:1.8.0' + implementation 'com.google.android.material:material:1.10.0' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 528c4c3..a0b6238 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,7 +1,7 @@ + @@ -93,7 +94,14 @@ android:screenOrientation="fullUser" /> - + + + + . + Copyright 2021,2023 Soren Stoutner . Translation 2021 Bernhard G. Keller. Copyright assigned to Soren Stoutner . @@ -39,6 +39,10 @@

        android.permission.FOREGROUND_SERVICE

        Erlaubt Privacy Cell, ein Benachrichtigungs-Icon für die Echtzeit-Überwachung in der Status-Zeile anzuzeigen.

        +

        android.permission.FOREGROUND_SERVICE_SPECIAL_USE

        +

        Specifies the type of foreground service. + Special Use is for services that don't fit into any of the standard categories.

        +

        Ausführung bei Systemstart

        android.permission.RECEIVE_BOOT_COMPLETED

        Erlaubt Privacy Cell die Echtzeit-Überwachung zu aktivieren, wenn das Smartphone gebootet wird.

        diff --git a/app/src/main/assets/en/permissions.html b/app/src/main/assets/en/permissions.html index be792c7..5317604 100644 --- a/app/src/main/assets/en/permissions.html +++ b/app/src/main/assets/en/permissions.html @@ -1,5 +1,5 @@ + + + - - - diff --git a/app/src/main/assets/de/permissions.html b/app/src/main/assets/de/permissions.html index 8eb987e..3e76dfc 100644 --- a/app/src/main/assets/de/permissions.html +++ b/app/src/main/assets/de/permissions.html @@ -35,9 +35,13 @@

        android.permission.READ_PHONE_STATE

        Benötigt, um die vom Mobilfunk-Netzwerk genutzten Protokolle zu ermitteln.

        +

        Show Notifications

        +

        android.permission.POST_NOTIFICATIONS

        +

        Erlaubt Privacy Cell, ein Benachrichtigungs-Icon für die Echtzeit-Überwachung in der Status-Zeile anzuzeigen.

        +

        Vordergrund-Service ausführen

        android.permission.FOREGROUND_SERVICE

        -

        Erlaubt Privacy Cell, ein Benachrichtigungs-Icon für die Echtzeit-Überwachung in der Status-Zeile anzuzeigen.

        +

        Allows Privacy Cell to update the realtime monitoring notification icon when the app is not in the foreground.

        android.permission.FOREGROUND_SERVICE_SPECIAL_USE

        Specifies the type of foreground service. diff --git a/app/src/main/assets/en/permissions.html b/app/src/main/assets/en/permissions.html index 5317604..0602bd7 100644 --- a/app/src/main/assets/en/permissions.html +++ b/app/src/main/assets/en/permissions.html @@ -33,9 +33,13 @@

        android.permission.READ_PHONE_STATE

        Required to determine which protocols are being used by the cell phone network.

        +

        Show Notifications

        +

        android.permission.POST_NOTIFICATIONS

        +

        Allows Privacy Cell to display a realtime monitoring notification icon in the status bar.

        +

        Run foreground service

        android.permission.FOREGROUND_SERVICE

        -

        Allows Privacy Cell to display a realtime monitoring notification icon in the status bar.

        +

        Allows Privacy Cell to update the realtime monitoring notification icon when the app is not in the foreground.

        android.permission.FOREGROUND_SERVICE_SPECIAL_USE

        Specifies the type of foreground service. @@ -45,4 +49,4 @@

        android.permission.RECEIVE_BOOT_COMPLETED

        Allows Privacy Cell to enable the realtime monitoring service when the phone boots.

        - \ No newline at end of file + diff --git a/app/src/main/assets/es/permissions.html b/app/src/main/assets/es/permissions.html index 2d1378c..61592c6 100644 --- a/app/src/main/assets/es/permissions.html +++ b/app/src/main/assets/es/permissions.html @@ -35,9 +35,13 @@

        android.permission.READ_PHONE_STATE

        Requerido para determinar qué protocolos se están usando por la red del teléfono celular.

        +

        Show Notifications

        +

        android.permission.POST_NOTIFICATIONS

        +

        Allows Privacy Cell to display a realtime monitoring notification icon in the status bar.

        +

        Run foreground service

        android.permission.FOREGROUND_SERVICE

        -

        Allows Privacy Cell to display a realtime monitoring notification icon in the status bar.

        +

        Allows Privacy Cell to update the realtime monitoring notification icon when the app is not in the foreground.

        android.permission.FOREGROUND_SERVICE_SPECIAL_USE

        Specifies the type of foreground service. @@ -47,4 +51,4 @@

        android.permission.RECEIVE_BOOT_COMPLETED

        Allows Privacy Cell to enable the realtime monitoring service when the phone boots.

        - \ No newline at end of file + diff --git a/app/src/main/assets/fr/permissions.html b/app/src/main/assets/fr/permissions.html index 275c3c1..04c18ab 100644 --- a/app/src/main/assets/fr/permissions.html +++ b/app/src/main/assets/fr/permissions.html @@ -35,9 +35,13 @@

        android.permission.READ_PHONE_STATE

        Nécessaire pour déterminer quels protocoles sont utilisés par le réseau de téléphonie mobile.

        +

        Show Notifications

        +

        android.permission.POST_NOTIFICATIONS

        +

        Permet à Privacy Cell d'afficher une icône de notification de surveillance en temps réel dans la barre d'état.

        +

        Exécuter un service en premier plan

        android.permission.FOREGROUND_SERVICE

        -

        Permet à Privacy Cell d'afficher une icône de notification de surveillance en temps réel dans la barre d'état.

        +

        Allows Privacy Cell to update the realtime monitoring notification icon when the app is not in the foreground.

        android.permission.FOREGROUND_SERVICE_SPECIAL_USE

        Specifies the type of foreground service. @@ -47,4 +51,4 @@

        android.permission.RECEIVE_BOOT_COMPLETED

        Permet à Privacy Cell d'activer le service de surveillance en temps réel lorsque le téléphone démarre.

        - \ No newline at end of file + diff --git a/app/src/main/assets/it/permissions.html b/app/src/main/assets/it/permissions.html index caeae35..905ea61 100644 --- a/app/src/main/assets/it/permissions.html +++ b/app/src/main/assets/it/permissions.html @@ -35,9 +35,13 @@

        android.permission.READ_PHONE_STATE

        Richiesta per determinare i protocolli utilizzati dalla rete.

        +

        Show Notifications

        +

        android.permission.POST_NOTIFICATIONS

        +

        Allows Privacy Cell to display a realtime monitoring notification icon in the status bar.

        +

        Run foreground service

        android.permission.FOREGROUND_SERVICE

        -

        Allows Privacy Cell to display a realtime monitoring notification icon in the status bar.

        +

        Allows Privacy Cell to update the realtime monitoring notification icon when the app is not in the foreground.

        android.permission.FOREGROUND_SERVICE_SPECIAL_USE

        Specifies the type of foreground service. @@ -47,4 +51,4 @@

        android.permission.RECEIVE_BOOT_COMPLETED

        Allows Privacy Cell to enable the realtime monitoring service when the phone boots.

        - \ No newline at end of file + diff --git a/app/src/main/assets/ru/permissions.html b/app/src/main/assets/ru/permissions.html index 29c24b9..587c548 100644 --- a/app/src/main/assets/ru/permissions.html +++ b/app/src/main/assets/ru/permissions.html @@ -33,9 +33,13 @@

        android.permission.READ_PHONE_STATE

        Необходим для определения используемых протоколов в сети сотовой связи.

        +

        Show Notifications

        +

        android.permission.POST_NOTIFICATIONS

        +

        Разрешает Privacy Cell отображать значок уведомления о мониторинге в реальном времени в строке состояния.

        +

        Запуск фоновой службы

        android.permission.FOREGROUND_SERVICE

        -

        Разрешает Privacy Cell отображать значок уведомления о мониторинге в реальном времени в строке состояния.

        +

        Allows Privacy Cell to update the realtime monitoring notification icon when the app is not in the foreground.

        android.permission.FOREGROUND_SERVICE_SPECIAL_USE

        Specifies the type of foreground service. @@ -45,4 +49,4 @@

        android.permission.RECEIVE_BOOT_COMPLETED

        Разрешает Privacy Cell включать службу мониторинга в реальном времени при загрузке телефона.

        - \ No newline at end of file + -- 2.43.0 From 4d5cfe9a7488fd6bcbda32aeaf159fab2fbfd36f Mon Sep 17 00:00:00 2001 From: Soren Stoutner Date: Tue, 17 Oct 2023 15:38:01 -0700 Subject: [PATCH 13/16] Document the DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION. https://redmine.stoutner.com/issues/942 --- app/src/main/assets/de/permissions.html | 17 ++++++++++------- app/src/main/assets/en/permissions.html | 15 +++++++++------ app/src/main/assets/es/permissions.html | 17 ++++++++++------- app/src/main/assets/fr/permissions.html | 17 ++++++++++------- app/src/main/assets/it/permissions.html | 17 ++++++++++------- app/src/main/assets/ru/permissions.html | 15 +++++++++------ 6 files changed, 58 insertions(+), 40 deletions(-) diff --git a/app/src/main/assets/de/permissions.html b/app/src/main/assets/de/permissions.html index 3e76dfc..ae2b5b0 100644 --- a/app/src/main/assets/de/permissions.html +++ b/app/src/main/assets/de/permissions.html @@ -1,7 +1,7 @@ - + + tools:ignore="UnusedAttribute" >