]> gitweb.stoutner.com Git - PrivacyCell.git/blobdiff - app/src/main/AndroidManifest.xml
Release 1.10.
[PrivacyCell.git] / app / src / main / AndroidManifest.xml
index 8922ae35c7ae26e245f6a3a8cd2287b789874d18..7a0c5ca1a2d4b6b981468101c3e1bcda604786fe 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 
 <!--
-  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>.
 
   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/>. -->
+  along with Privacy Cell.  If not, see <http://www.gnu.org/licenses/>. -->
 
-<!-- Install location `auto` allows users to move Privacy Browser to an SD card if desired. -->
+<!-- Install location `auto` allows users to move Privacy Cell to an SD card if desired. -->
 <manifest
     xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.stoutner.privacycell"
+    xmlns:tools="http://schemas.android.com/tools"
     android:installLocation="auto" >
 
-    <!-- Required to read cell network information. -->
+    <!-- Required to read cell network information.  <Dangerous permission> -->
     <uses-permission android:name="android.permission.READ_PHONE_STATE" />
 
+    <!-- Required to display a notification.  <Dangerous permission> -->
+    <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
+
+    <!-- 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="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" >
+        android:theme="@style/Theme.PrivacyCell"
+        android:localeConfig="@xml/locales_config"
+        tools:ignore="UnusedAttribute" >
 
-        <!-- The label uses the short name so that it isn't truncated under the icon in the launcher on most phones.
+        <!-- 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.
             It also makes it reuse an existing Privacy Cell activity if available instead of launching a new one. -->
         <activity
-            android:name=".activities.PrivacyCell"
+            android:name=".activities.PrivacyCellActivity"
             android:label="@string/cell"
             android:launchMode="singleTask"
             android:screenOrientation="fullUser"
                 <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
         </activity>
+
+        <!-- Settings Activity.  The `parentActivityName` is used when restarting Privacy Cell and when navigating back. -->
+        <activity
+            android:name=".activities.SettingsActivity"
+            android:label="@string/settings"
+            android:parentActivityName=".activities.PrivacyCellActivity"
+            android:screenOrientation="fullUser" />
+
+        <!-- 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" />
+
+        <!-- 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" />
+
+        <!-- Realtime Monitoring Service. -->
+        <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
+            android:name=".receivers.OnBootCompletedReceiver"
+            android:exported="true" >
+
+            <intent-filter>
+                <action android:name="android.intent.action.BOOT_COMPLETED" />
+            </intent-filter>
+        </receiver>
     </application>
-</manifest>
\ No newline at end of file
+</manifest>