3df75fd6d3e8d2fcca70b7bf9c1380bd41ae8e0c
[PrivacyCell.git] / app / src / main / AndroidManifest.xml
1 <?xml version="1.0" encoding="utf-8"?>
2
3 <!--
4   Copyright © 2021-2022 Soren Stoutner <soren@stoutner.com>.
5
6   This file is part of Privacy Cell <https://www.stoutner.com/privacy-cell>.
7
8   Privacy Cell is free software: you can redistribute it and/or modify
9   it under the terms of the GNU General Public License as published by
10   the Free Software Foundation, either version 3 of the License, or
11   (at your option) any later version.
12
13   Privacy Cell is distributed in the hope that it will be useful,
14   but WITHOUT ANY WARRANTY; without even the implied warranty of
15   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16   GNU General Public License for more details.
17
18   You should have received a copy of the GNU General Public License
19   along with Privacy Cell.  If not, see <http://www.gnu.org/licenses/>. -->
20
21 <!-- Install location `auto` allows users to move Privacy Cell to an SD card if desired. -->
22 <manifest
23     xmlns:android="http://schemas.android.com/apk/res/android"
24     xmlns:tools="http://schemas.android.com/tools"
25     android:installLocation="auto" >
26
27     <!-- Required to read cell network information. -->
28     <uses-permission android:name="android.permission.READ_PHONE_STATE" />
29
30     <!-- Required to display a realtime notification icon. -->
31     <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
32
33     <!-- Required to start the realtime notification icon at boot. -->
34     <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
35
36     <!-- Disabled the unneeded permissions that are automatically added by `androidx.work`.  <https://developer.android.com/reference/androidx/work/package-summary> -->
37     <uses-permission android:name="android.permission.WAKE_LOCK" tools:node="remove" />
38     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" tools:node="remove" />
39
40     <!-- Support Chromebooks that don't have a touch screen. -->
41     <uses-feature android:name="android.hardware.touchscreen" android:required="false" />
42
43     <!-- App data is automatically backed up to Google cloud servers unless `android:allowBackup="false"` and `android:fullBackupContent="false"` is set.
44         `tools:ignore="DataExtractionRules` removes the warning that backups can still transfer data device to device. -->
45     <application
46         android:label="@string/privacy_cell"
47         android:icon="@mipmap/privacy_cell"
48         android:allowBackup="false"
49         android:fullBackupContent="false"
50         android:supportsRtl="true"
51         android:theme="@style/Theme.PrivacyCell"
52         tools:ignore="DataExtractionRules" >
53
54         <!-- Privacy Cell Activity.  The label uses the short name so that it isn't truncated under the icon in the launcher on most phones.
55             `android:launchMode="singleTask"` makes the app launch in a new task instead of inside the task of the program that sends it an intent.
56             It also makes it reuse an existing Privacy Cell activity if available instead of launching a new one. -->
57         <activity
58             android:name=".activities.PrivacyCellActivity"
59             android:label="@string/cell"
60             android:launchMode="singleTask"
61             android:screenOrientation="fullUser"
62             android:exported="true" >
63
64             <intent-filter>
65                 <action android:name="android.intent.action.MAIN" />
66                 <category android:name="android.intent.category.LAUNCHER" />
67             </intent-filter>
68         </activity>
69
70         <!-- Settings Activity.  The `parentActivityName` is used when restarting Privacy Cell and when navigating back. -->
71         <activity
72             android:name=".activities.SettingsActivity"
73             android:label="@string/settings"
74             android:parentActivityName=".activities.PrivacyCellActivity"
75             android:screenOrientation="fullUser" />
76
77         <!-- Protocols Activity.  The `parentActivityName` is used when navigating back. -->
78         <activity
79             android:name=".activities.ProtocolsActivity"
80             android:label="@string/protocols"
81             android:parentActivityName=".activities.PrivacyCellActivity"
82             android:screenOrientation="fullUser" />
83
84         <!-- Logcat Activity. The `parentActivityName` is used when navigating back. -->
85         <activity
86             android:name=".activities.LogcatActivity"
87             android:label="@string/logcat"
88             android:parentActivityName=".activities.PrivacyCellActivity"
89             android:screenOrientation="fullUser" />
90
91         <!-- Realtime Monitoring Service. -->
92         <service android:name=".services.RealtimeMonitoringService" />
93
94         <!-- On Boot Completed Receiver. -->
95         <receiver
96             android:name=".receivers.OnBootCompletedReceiver"
97             android:exported="true" >
98
99             <intent-filter>
100                 <action android:name="android.intent.action.BOOT_COMPLETED" />
101             </intent-filter>
102         </receiver>
103     </application>
104 </manifest>