]> gitweb.stoutner.com Git - PrivacyCell.git/commitdiff
Fix a crash when there is no default Voice SIM. https://redmine.stoutner.com/issues... master
authorSoren Stoutner <soren@stoutner.com>
Sat, 14 Mar 2026 21:18:43 +0000 (14:18 -0700)
committerSoren Stoutner <soren@stoutner.com>
Sat, 14 Mar 2026 21:18:43 +0000 (14:18 -0700)
17 files changed:
app/build.gradle
app/src/main/assets/de/changelog.html
app/src/main/assets/en/changelog.html
app/src/main/assets/es/changelog.html
app/src/main/assets/fr/changelog.html
app/src/main/assets/it/changelog.html
app/src/main/assets/ru/changelog.html
app/src/main/java/com/stoutner/privacycell/activities/PrivacyCellActivity.kt
app/src/main/java/com/stoutner/privacycell/services/RealtimeMonitoringService.kt
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
build.gradle
gradle/wrapper/gradle-wrapper.properties

index 20acc32b87b06abbd0fb992ba458548d517b35e5..010af9f5add954f43296a7cbcdfba53beb3295cf 100644 (file)
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: GPL-3.0-or-later
- * SPDX-FileCopyrightText: 2021-2025 Soren Stoutner <soren@stoutner.com>
+ * SPDX-FileCopyrightText: 2021-2026 Soren Stoutner <soren@stoutner.com>
  *
  * This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell/>.
  *
@@ -19,7 +19,6 @@
 
 plugins {
     id 'com.android.application'
-    id 'kotlin-android'
 }
 
 android {
@@ -64,15 +63,15 @@ android {
 dependencies {
     // Include the following AndroidX libraries.
     implementation 'androidx.appcompat:appcompat:1.7.1'
-    implementation 'androidx.core:core-ktx:1.17.0'
+    implementation 'androidx.core:core-ktx:1.18.0'
     implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.10.0'
     implementation 'androidx.preference:preference-ktx:1.2.1'
     implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.2.0'
     implementation 'androidx.webkit:webkit:1.15.0'
-    implementation 'androidx.work:work-runtime-ktx:2.11.0'
+    implementation 'androidx.work:work-runtime-ktx:2.11.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:2.2.0'
+    implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.10'
 
     // Include the Google material library.
     implementation 'com.google.android.material:material:1.13.0'
index 0a5cfa7686d08ea9c907cbdf9fe7ec8c81813250..0ef18c5e5f323e2d0e491f59580717f9835517f0 100644 (file)
@@ -33,7 +33,7 @@
 
     <body>
         <h3><a href="https://www.stoutner.com/privacy-cell-1-12">1.12</a> (Code-Version 14)</h3>
-        <p>22. Dezember 2025 - Mindest-API 30, Ziel-API 36</p>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyCell.git;a=commitdiff;h=0fa07d5a7cd9364358e7afc8c075ea526c71ee29;ds=sidebyside">22. Dezember 2025</a> - Mindest-API 30, Ziel-API 36</p>
         <ul>
             <li><a href="https://redmine.stoutner.com/issues/1284">Ziel-API auf 36</a> (Android 16) angehoben. Dies bringt u.A. ein großes Icon für erweiterte Benachrichtigungen mit sich.</li>
             <li>Farbe des zusätzlichen Netzwerk-Info-Texts <a href="https://redmine.stoutner.com/issues/1282">entspricht jetzt immer</a> jener des Netzwerk-Info-Texts.</li>
index 8aa72686811325d5472cf283ba25af29b7cbcb72..5a50e3784e9ef85fae6538a7f3eb43cc1e07cfe4 100644 (file)
@@ -31,7 +31,7 @@
 
     <body>
         <h3><a href="https://www.stoutner.com/privacy-cell-1-12">1.12</a> (version code 14)</h3>
-        <p>22 December 2025 - minimum API 30, target API 36</p>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyCell.git;a=commitdiff;h=0fa07d5a7cd9364358e7afc8c075ea526c71ee29;ds=sidebyside">22 December 2025</a> - minimum API 30, target API 36</p>
         <ul>
             <li>Bump the <a href="https://redmine.stoutner.com/issues/1284">target API to 36</a> (Android 16), adding a large icon to the expanded notifications.</li>
             <li>Make the additional network info text color <a href="https://redmine.stoutner.com/issues/1282">always match</a> the data network text color.</li>
index d3f4aa2cdd9dd35313088c6a8032f70ea271e4a6..dd059c92e7bd49e0d21546fa65707524546a9ede 100644 (file)
@@ -33,7 +33,7 @@
 
     <body>
         <h3><a href="https://www.stoutner.com/privacy-cell-1-12">1.12</a> (versión del código 14)</h3>
-        <p>22 de diciembre de 2025 - API mínimo 30, API objetivo 36</p>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyCell.git;a=commitdiff;h=0fa07d5a7cd9364358e7afc8c075ea526c71ee29;ds=sidebyside">22 de diciembre de 2025</a> - API mínimo 30, API objetivo 36</p>
         <ul>
             <li>Aumentar la <a href="https://redmine.stoutner.com/issues/1284">API objetivo a 36</a> (Android 16), y añadir un icono grande a las notificaciones expandidas.</li>
             <li>Hacer que el color del texto de la información adicional de la red <a href="https://redmine.stoutner.com/issues/1282">coincida siempre</a> con el color del texto de la red de datos.</li>
index 9ca1d69fb9b346c1d9ff0502a20cf93819e04748..88c24a23115c902e5c20ca6775589be9835abbcc 100644 (file)
@@ -33,7 +33,7 @@
 
     <body>
         <h3><a href="https://www.stoutner.com/privacy-cell-1-12">1.12</a> (version du code 14)</h3>
-        <p>22 Décembre 2025 - API minimale : 30, API optimale : 36</p>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyCell.git;a=commitdiff;h=0fa07d5a7cd9364358e7afc8c075ea526c71ee29;ds=sidebyside">22 Décembre 2025</a> - API minimale : 30, API optimale : 36</p>
         <ul>
             <li>Bump the <a href="https://redmine.stoutner.com/issues/1284">target API to 36</a> (Android 16), adding a large icon to the expanded notifications.</li>
             <li>Make the additional network info text color <a href="https://redmine.stoutner.com/issues/1282">always match</a> the data network text color.</li>
index eacd2a65e7b8d6fb53597bb07affd75361e9f366..c5cefa2fb99e0f64f7ff0996fabfed5ce6a74801 100644 (file)
@@ -33,7 +33,7 @@
 
     <body>
         <h3><a href="https://www.stoutner.com/privacy-cell-1-12">1.12</a> (versione codice 14)</h3>
-        <p>22 Dicembre 2025 - minima API 30, target API 36</p>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyCell.git;a=commitdiff;h=0fa07d5a7cd9364358e7afc8c075ea526c71ee29;ds=sidebyside">22 Dicembre 2025</a> - minima API 30, target API 36</p>
         <ul>
             <li>Spostamento della <a href="https://redmine.stoutner.com/issues/1284">target API a 36</a> (Android 16), aggiungendo una icona grande nelle notifiche espanse.</li>
             <li>Modifica per far sì che il colore del testo delle info aggiuntive sulla rete <a href="https://redmine.stoutner.com/issues/1282">sia sempre uguale</a> al colore del testo della rete dati.</li>
index 68c401b9c2898a315447ed579122bcd083725378..53d089ef3b6a815d391b68bd53a8e4c94b5269a8 100644 (file)
@@ -31,7 +31,7 @@
 
     <body>
         <h3><a href="https://www.stoutner.com/privacy-cell-1-12">1.12</a> (код версии 14)</h3>
-        <p>22 декабря 2025 года - минимальный API 30, целевой API 36</p>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyCell.git;a=commitdiff;h=0fa07d5a7cd9364358e7afc8c075ea526c71ee29;ds=sidebyside">22 декабря 2025 года</a> - минимальный API 30, целевой API 36</p>
         <ul>
             <li>Целевой <a href="https://redmine.stoutner.com/issues/1284">API повышен до 36</a> (Android 16), в расширенные уведомления добавлена большая иконка.</li>
             <li>Предусмотрена возможность настройки цвета текста дополнительной информации о сети <a href="https://redmine.stoutner.com/issues/1282">в советском</a> с цветом текста о сети передачи данных.</li>
index 634e57cf5732bd483e6c5856f82646e82e0d5d6b..bdaec24afdde33d51fbad637fb71f7ce13753237 100644 (file)
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: GPL-3.0-or-later
- * SPDX-FileCopyrightText: 2021-2022, 2025 Soren Stoutner <soren@stoutner.com>
+ * SPDX-FileCopyrightText: 2021-2022, 2025-2026 Soren Stoutner <soren@stoutner.com>
  *
  * This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell/>.
  *
@@ -186,8 +186,9 @@ class PrivacyCellActivity : AppCompatActivity(), NavigationView.OnNavigationItem
                 // 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 if the subscription ID is valid and the appropriate permission has been granted.
+                if ((voiceSubscriptionId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) &&
+                    (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}"
@@ -269,7 +270,8 @@ class PrivacyCellActivity : AppCompatActivity(), NavigationView.OnNavigationItem
                 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) {
+                if ((dataSubscriptionId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) &&
+                    (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}"
index c989e3c14279ffae5bec42ce42a3157c7e2fb1bd..f945b0fde9318e74db90170f4a6b1df62a99948f 100644 (file)
@@ -145,6 +145,9 @@ class RealtimeMonitoringService : Service() {
             // Set the notification icon.
             notificationBuilder.setSmallIcon(R.drawable.antiquated_notification_enabled)
 
+            // Set the large icon.
+            notificationBuilder.setLargeIcon(Icon.createWithResource(this, R.drawable.antiquated))
+
             // Set the color.
             notificationBuilder.setColor(getColor(R.color.red_notification_icon))
 
index a1e31f1d503ba1690fd97aee016d4bc2e22cf02e..30c3091e3cb43092f677738e36fe6f06faee721f 100644 (file)
     <string name="insecure_network_notification">Benachrichtigung über unsicheres Netzwerk</string>
     <string name="antiquated_network_notification">Benachrichtigung über veraltetes Netzwerk</string>
     <string name="consider_3g_antiquated">3G als veraltet ansehen</string>
-    <string name="consider_3g_antiquated_summary">3G-Protokolle als veraltet ansehen. Zu einem späteren Zeitpunkt wird dies zur Standard-Einstellung werden.
-        Das Ändern dieser Einstellung startet Privacy Cell neu.</string>
+    <string name="consider_3g_antiquated_summary">3G-Protokolle als veraltet ansehen. Das Ändern dieser Einstellung startet Privacy Cell neu.</string>
     <string name="interface_title">Anschluss</string>
     <string name="bottom_app_bar">Anwendungs-Leiste unten</string>
     <string name="bottom_app_bar_summary">Zeigt die Anwendungs-Leiste am unteren Bildschirmrand an. Nach Ändern dieser Einstellung  wird Privacy Cell neu gestartet.</string>
index e99105c14a56d7f468250fac49f21cb5842310fb..9aa17645da4044c666c57764b90da54637995687 100644 (file)
     <string name="insecure_network_notification">Notificación de red insegura</string>
     <string name="antiquated_network_notification">Notificación de red obsoleta</string>
     <string name="consider_3g_antiquated">Considera obsoleto 3G</string>
-    <string name="consider_3g_antiquated_summary">Considera los protocolos 3G como obsoletos. En un futuro esto se convertirá en el valor por defecto.
-        Al cambiar esta configuración se reiniciará Privacy Cell.</string>
+    <string name="consider_3g_antiquated_summary">Considera los protocolos 3G como obsoletos. Al cambiar esta configuración se reiniciará Privacy Cell.</string>
     <string name="interface_title">Interfaz</string>
     <string name="bottom_app_bar">Barra inferior de app</string>
     <string name="bottom_app_bar_summary">Mueve la barra de aplicaciones a la parte inferior de la pantalla.  Al cambiar esta configuración se reiniciará Privacy Cell.</string>
index 0bf82cccbfb326c2b84f19a40d89b050721ec67c..6751fc5c3d7337a88afaf2b45e7ec4d309873ddf 100644 (file)
     <string name="insecure_network_notification">Notification de réseau non sécurisé</string>
     <string name="antiquated_network_notification">Notification de réseau obsolète</string>
     <string name="consider_3g_antiquated">Considérer la 3G comme obsolète</string>
-    <string name="consider_3g_antiquated_summary">Considérez les protocoles 3G comme désuets. A l\'avenir, cela deviendra la valeur par défaut. Changer ce paramètre redémarrera Privacy Cell.</string>
+    <string name="consider_3g_antiquated_summary">Considérez les protocoles 3G comme désuets. Changer ce paramètre redémarrera Privacy Cell.</string>
     <string name="interface_title">Interface</string>
     <string name="bottom_app_bar">Barre d\'apps inférieure</string>
     <string name="bottom_app_bar_summary">Déplacer la barre d\'apps en bas de l\'écran. Changer ce paramètre redémarrera Privacy Cell.</string>
index 76f0af4908729bf709f9ad5c6ba91459ada7439c..11deb9a162f5df954a5b7ee1cfca6ac179ce6533 100644 (file)
     <string name="insecure_network_notification">Notifica di rete insicura</string>
     <string name="antiquated_network_notification">Notifiche di Rete Antiquata</string>
     <string name="consider_3g_antiquated">Considera il 3G come antiquato</string>
-    <string name="consider_3g_antiquated_summary">Considera il protocollo 3G come antiquato. Ad un certo punto in futuro questa impostazione sarà quella di default.
-        La modifica di questa impostazione provocherà il riavvio di Privacy Cell.</string>
+    <string name="consider_3g_antiquated_summary">Considera il protocollo 3G come antiquato. La modifica di questa impostazione provocherà il riavvio di Privacy Cell.</string>
     <string name="interface_title">Interfaccia</string>
     <string name="bottom_app_bar">Barra dell\'app in basso</string>
     <string name="bottom_app_bar_summary">Sposta la barra dell\'app nella parte inferiore dello schermo.  La modifica di questa impostazione provoca il riavvio di Privacy Cell.</string>
index 373734b67ac45a46dbf74b3a74729997736a21ef..ff61a41450984a36bb5c4f6b2d9c1e383a8548ac 100644 (file)
     <string name="insecure_network_notification">Уведомление о небезопасной сети</string>
     <string name="antiquated_network_notification">Оповещение об устаревшей сети</string>
     <string name="consider_3g_antiquated">Считать 3G устаревшей</string>
-    <string name="consider_3g_antiquated_summary">СÑ\87иÑ\82аÑ\82Ñ\8c Ð¿Ñ\80оÑ\82околÑ\8b 3G Ñ\83Ñ\81Ñ\82аÑ\80евÑ\88ими. Ð\92 Ð±Ñ\83дÑ\83Ñ\89ем Ñ\8dÑ\82о Ñ\81Ñ\82анеÑ\82 Ñ\83Ñ\81Ñ\82ановкой Ð¿Ð¾ Ñ\83молÑ\87аниÑ\8e. Ð\98зменение Ñ\8dÑ\82ой Ð½Ð°Ñ\81Ñ\82Ñ\80ойки Ð¿Ñ\80иведеÑ\82 Ðº Ð¿ÐµÑ\80езапÑ\83Ñ\81кÑ\83 Privacy Cell.</string>
+    <string name="consider_3g_antiquated_summary">Считать протоколы 3G устаревшими. Изменение этой настройки приведет к перезапуску Privacy Cell.</string>
     <string name="interface_title">Интерфейс</string>
     <string name="bottom_app_bar">Панель приложения внизу</string>
     <string name="bottom_app_bar_summary">Переместить панель приложения в нижнюю часть экрана. Изменение этой настройки приведет к перезапуску Privacy Cell.</string>
index 28bf741f713ce2e8ffc8b330d66859339f946fb5..bddab5fc65545bbb74d2a970193d2c52cb85a229 100644 (file)
     <string name="insecure_network_notification">Insecure network notification</string>
     <string name="antiquated_network_notification">Antiquated network notification</string>
     <string name="consider_3g_antiquated">Consider 3G antiquated</string>
-    <string name="consider_3g_antiquated_summary">Consider the 3G protocols to be antiquated. At a future point this will become the default. Changing this setting will restart Privacy Cell.</string>
+    <string name="consider_3g_antiquated_summary">Consider the 3G protocols to be antiquated. Changing this setting will restart Privacy Cell.</string>
     <string name="interface_title">Interface</string>
     <string name="bottom_app_bar">Bottom app bar</string>
     <string name="bottom_app_bar_summary">Move the app bar to the bottom of the screen. Changing this setting will restart Privacy Cell.</string>
index d5a62b2810cb8c596dd9189297a1bb833d77b748..873e2ab981d574e8153cca9989e245591aace6fb 100644 (file)
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: GPL-3.0-or-later
- * SPDX-FileCopyrightText: 2021-2025 Soren Stoutner <soren@stoutner.com>
+ * SPDX-FileCopyrightText: 2021-2026 Soren Stoutner <soren@stoutner.com>
  *
  * This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell/>.
  *
@@ -25,8 +25,8 @@ buildscript {
     }
 
     dependencies {
-        classpath 'com.android.tools.build:gradle:8.13.2'
-        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:2.2.0"
+        classpath 'com.android.tools.build:gradle:9.1.0'
+        classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:2.2.10'
 
         // NOTE: Do not place your application dependencies here; they belong
         // in the individual module build.gradle files
index 558489c5388d8fb4377c751fdb06f49849137cfe..25f05557e53cef2170a39f739a0a69fb822725b1 100644 (file)
@@ -1,5 +1,5 @@
 # SPDX-License-Identifier: GPL-3.0-or-later
-# SPDX-FileCopyrightText: 2023, 2025 Soren Stoutner <soren@stoutner.com>
+# SPDX-FileCopyrightText: 2023, 2025-2026 Soren Stoutner <soren@stoutner.com>
 #
 # This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell/>.
 #
@@ -17,7 +17,7 @@
 # this program.  If not, see <https://www.gnu.org/licenses/>.
 
 distributionBase=GRADLE_USER_HOME
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.0-bin.zip
 distributionPath=wrapper/dists
 zipStorePath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME