/captures
/projectFilesBackup
+# Kotlin session files.
+.kotlin
+
# Built APK files.
*.apk
-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>.
-/*
- * 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 {
}
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 {
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'
}
<?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.
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
<!--
- 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>
<!--
- 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">
<!-- 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>
<!--
- 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><one line to give the program’s
-name and a brief idea of what
-it does.>
+<pre><one line to give the
+program’s name and a brief
+idea of what it does.>
Copyright (C) <year>
<name of author>
copy of the GNU General Public
License along with this
program. If not, see
-<http://www.gnu.org/licenses/>.</pre>
+<http://www.gnu.org/
+licenses/>.</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><program> Copyright (C) <year>
+<pre><program> Copyright (C) <year>
<name of author>
This program comes with
ABSOLUTELY NO WARRANTY; for
“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,
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>
<!--
- 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
<!--
- 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">
<!-- 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>
<!--
- 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>
<!--
- 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">
<!-- 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>
<!--
- 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><one line to give the program’s
-name and a brief idea of what
-it does.>
+<pre><one line to give the
+program’s name and a brief
+idea of what it does.>
Copyright (C) <year>
<name of author>
copy of the GNU General Public
License along with this
program. If not, see
-<http://www.gnu.org/licenses/>.</pre>
+<http://www.gnu.org/
+licenses/>.</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><program> Copyright (C) <year>
+<pre><program> Copyright (C) <year>
<name of author>
This program comes with
ABSOLUTELY NO WARRANTY; for
“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,
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>
<!--
- 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>
<!--
- 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">
<!-- 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>
<!--
- 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>
<!--
- 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">
<!-- 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>
<!--
- 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><one line to give the program’s
-name and a brief idea of what
-it does.>
+<pre><one line to give the
+program’s name and a brief
+idea of what it does.>
Copyright (C) <year>
<name of author>
copy of the GNU General Public
License along with this
program. If not, see
-<http://www.gnu.org/licenses/>.</pre>
+<http://www.gnu.org/
+licenses/>.</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><program> Copyright (C) <year>
+<pre><program> Copyright (C) <year>
<name of author>
This program comes with
ABSOLUTELY NO WARRANTY; for
“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,
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>
<!--
- 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>
<!--
- 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">
<!-- 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>
<!--
- 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>
<!--
- 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">
<!-- 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>
<!--
- 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><one line to give the program’s
-name and a brief idea of what
-it does.>
+<pre><one line to give the
+program’s name and a brief
+idea of what it does.>
Copyright (C) <year>
<name of author>
copy of the GNU General Public
License along with this
program. If not, see
-<http://www.gnu.org/licenses/>.</pre>
+<http://www.gnu.org/
+licenses/>.</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><program> Copyright (C) <year>
+<pre><program> Copyright (C) <year>
<name of author>
This program comes with
ABSOLUTELY NO WARRANTY; for
“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,
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>
<!--
- 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>
<!--
- 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">
<!-- 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>
<?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"
<?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"
<?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"
<?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"
<?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"
<?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"
+++ /dev/null
-<?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>
--- /dev/null
+<?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>
<?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"
<?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"
<?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"
<?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"
<?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"
<?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"
<?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"
--- /dev/null
+<?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>
--- /dev/null
+<?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>
+++ /dev/null
-<?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>
--- /dev/null
+<?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>
<?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"
<?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"
<?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"
<?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"
<?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"
<?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"
--- /dev/null
+<?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>
<?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"
<?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"
<?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"
<?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"
<?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"
<!--
- 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>
<!--
- 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">
<!-- 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>
<!--
- 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><one line to give the program’s
-name and a brief idea of what
-it does.>
+<pre><one line to give the
+program’s name and a brief
+idea of what it does.>
Copyright (C) <year>
<name of author>
copy of the GNU General Public
License along with this
program. If not, see
-<http://www.gnu.org/licenses/>.</pre>
+<http://www.gnu.org/
+licenses/>.</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><program> Copyright (C) <year>
+<pre><program> Copyright (C) <year>
<name of author>
This program comes with
ABSOLUTELY NO WARRANTY; for
“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,
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>
<!--
- 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>
<!--
- 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">
<!-- 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>
<!--
- 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>
<!--
- 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">
<!-- 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>
<!--
- 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><one line to give the program’s
-name and a brief idea of what
-it does.>
+<pre><one line to give the
+program’s name and a brief
+idea of what it does.>
Copyright (C) <year>
<name of author>
copy of the GNU General Public
License along with this
program. If not, see
-<http://www.gnu.org/licenses/>.</pre>
+<http://www.gnu.org/
+licenses/>.</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><program> Copyright (C) <year>
+<pre><program> Copyright (C) <year>
<name of author>
This program comes with
ABSOLUTELY NO WARRANTY; for
“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,
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>
<!--
- 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>
<!--
- 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">
<!-- 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>
-/*
- * 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
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
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)!!
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()
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()
}
}
}
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)
// 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.
// 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 {
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
// 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.
}
}
}
- 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")
// 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()
// 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)
+ }
}
-/*
- * 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.
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
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
// 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
// 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)
// 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")
// 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) {
}
// 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)
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)
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]
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)
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.
}
} 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)
}
}
}
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)
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)
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)
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)
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)
}
// Set the overall status click listener.
- overallStatusLinearLayout.setOnClickListener {
+ overallStatusCardView.setOnClickListener {
// Instantiate the stingray dialog fragment.
val stingrayDialogFragment = WebViewDialog().type(overallStatusDialogTypeInt)
-/*
- * 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
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)
-/*
- * 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
-/*
- * 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
// Return the populated view.
return populatedView
}
-}
\ No newline at end of file
+}
-/*
- * 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
-/*
- * 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
-/*
- * 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
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
dialogBuilder.setTitle(R.string.evdo_a)
}
- NETWORK_1xRTT -> {
+ NETWORK_1XRTT -> {
// Set the icon.
dialogBuilder.setIcon(R.drawable.protocols)
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")
/*
- * 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>.
*
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
}
// 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.
/*
- * 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>.
*
}
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))
/*
- * 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>.
*
}
}
}
-}
\ No newline at end of file
+}
/*
- * 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>.
*
// 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.
// 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)
}
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)
// 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.
}
} 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)
// 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.
}
} 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)
// 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.
/*
- * 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>.
*
// 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)
}
// Return a success.
return Result.success()
}
-}
\ No newline at end of file
+}
/*
- * 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>.
*
// Return a success.
return Result.success()
}
-}
\ No newline at end of file
+}
<!--
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
<!--
- 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
<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"
<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
<!--
- 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
<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"
<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
<!--
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
<!--
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
<!--
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
-<!-- 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"
-<!-- 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"
-<!-- 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"
<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
-<!-- 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"
+++ /dev/null
-<!-- 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
--- /dev/null
+<!-- 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>
--- /dev/null
+<!-- 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>
-<!-- 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"
-<!-- 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"
-<!-- 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"
-<!-- 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"
<!--
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
<!--
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
<!--
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
<!--
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
-<!-- 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"
-<!-- 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"
<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>
-<!-- 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"
--- /dev/null
+<!-- 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>
-<!-- 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"
-<!-- 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"
-<!-- 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"
--- /dev/null
+<!-- 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>
<!--
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
--- /dev/null
+<!--
+ 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>
-<!-- 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"
-<!-- 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"
-<!-- 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"
-<!-- 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"
--- /dev/null
+<!-- 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>
<!--
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
<!--
- 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
<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"
<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
<!--
- 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
<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"
<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
<!--
- 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
<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"
<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
-<!-- 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"
<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
<?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"
<?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
<?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
<?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>
<?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>
<?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"
<?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"
<?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
<?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
<?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
<?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
<?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"
android:id="@+id/webview"
android:layout_height="match_parent"
android:layout_width="match_parent" />
-</LinearLayout>
\ No newline at end of file
+</LinearLayout>
<?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"
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
<?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
<?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
+++ /dev/null
-<?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
--- /dev/null
+<?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>
<?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>
<?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>
<?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>
<?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>
<?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>
<?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>
--- /dev/null
+<?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>
-/*
- * 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.
}
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
}
--- /dev/null
+• 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
--- /dev/null
+• 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
--- /dev/null
+• 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
--- /dev/null
+• 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
--- /dev/null
+• 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
--- /dev/null
+• 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
--- /dev/null
+• 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
--- /dev/null
+• 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
--- /dev/null
+• 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
--- /dev/null
+• 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
--- /dev/null
+• 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
--- /dev/null
+• 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
--- /dev/null
+• 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
--- /dev/null
+• 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
--- /dev/null
+• Целевой API повышен до 33 (Android 13).
+• Отключен свайп уведомления о мониторинге в реальном времени на Android 13.
+• Включена поддержка языков для каждого приложения на Android 13.
+• При перезапуске сохраняется положение прокрутки настроек.
+• Первый полный перевод на русский язык.
\ No newline at end of file
--- /dev/null
+• Создан дополнительный монохромный значок (может использоваться в Android >= 13).
+• Разрешено включать Privacy Cell в системные резервные копии.
+• Целевой API повышен до 34 (Android 14).
+• Документированы необходимые разрешения для новых версий Android.
+• Повторное формирование уведомления о мониторинге в реальном времени каждые 15 минут.
\ No newline at end of file
--- /dev/null
+• Теперь для каждого соединения можно указывать какая используется SIM-карта.
+• Добавлена поддержка поиска в logcat.
+• Повышен целевой API до 35 (Android 15).
\ No newline at end of file
+# 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
-#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