Create an adaptive icon. https://redmine.stoutner.com/issues/265
[PrivacyBrowser.git] / app / src / main / AndroidManifest.xml
1 <?xml version="1.0" encoding="utf-8"?>
2
3 <!--
4   Copyright © 2015-2017 Soren Stoutner <soren@stoutner.com>.
5
6   This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
7
8   Privacy Browser 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 Browser 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 Browser.  If not, see <http://www.gnu.org/licenses/>. -->
20
21 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
22           xmlns:tools="http://schemas.android.com/tools"
23           package="com.stoutner.privacybrowser" >
24
25     <!-- Required to load websites. -->
26     <uses-permission android:name="android.permission.INTERNET" />
27
28     <!-- Required to create homescreen shortcuts. -->
29     <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
30
31
32     <!-- Support Chromebooks that don't have a touch screen. -->
33     <uses-feature android:name="android.hardware.touchscreen" android:required="false" />
34
35
36     <!-- For API >= 23, app data is automatically backed up to Google cloud servers unless `android:allowBackup="false"` and `android:fullBackupContent="false"` is set. -->
37     <application
38         android:label="@string/privacy_browser"
39         android:icon="@mipmap/privacy_browser"
40         android:roundIcon="@mipmap/privacy_browser_round"
41         android:allowBackup="false"
42         android:fullBackupContent="false"
43         android:supportsRtl="true" >
44
45         <!-- If `android:name="android.webkit.WebView.MetricsOptOut"` is not `true` then `WebViews` will upload metrics to Google.  <https://developer.android.com/reference/android/webkit/WebView.html> -->
46         <meta-data
47             android:name="android.webkit.WebView.MetricsOptOut"
48             android:value="true" />
49
50         <!-- Explicitly disable "Safe Browsing". -->
51         <meta-data
52             android:name="android.webkit.WebView.EnableSafeBrowsing"
53             android:value="false" />
54
55         <!-- The theme has to be defined here or an ugly title bar is displayed when the app launches.
56              `android:configChanges="orientation|screenSize"` makes the activity not reload when the orientation changes, which preserves scroll location in the WebView.
57              `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 Browser activity if available instead of launching a new one.
58              `android:persistableMode="persistNever"` removes Privacy Browser from the recents screen on a device reboot.
59              `tools:ignore="unusedAttribute"` removes the lint warning that `persistableMode` does not apply to API < 21. -->
60         <activity
61             android:name=".activities.MainWebViewActivity"
62             android:label="@string/privacy_browser"
63             android:theme="@style/PrivacyBrowserLight"
64             android:configChanges="orientation|screenSize"
65             android:launchMode="singleTask"
66             android:screenOrientation="fullUser"
67             android:persistableMode="persistNever"
68             tools:ignore="UnusedAttribute" >
69
70             <intent-filter>
71                 <action android:name="android.intent.action.MAIN" />
72                 <category android:name="android.intent.category.LAUNCHER" />
73             </intent-filter>
74
75             <!-- `android.intent.action.VIEW` with the two data schemes enables processing of web intents. -->
76             <intent-filter>
77                 <action android:name="android.intent.action.VIEW" />
78                 <category android:name="android.intent.category.BROWSABLE" />
79                 <category android:name="android.intent.category.DEFAULT" />
80                 <data android:scheme="http" />
81                 <data android:scheme="https" />
82             </intent-filter>
83         </activity>
84
85
86         <!-- `android:configChanges="orientation|screenSize"` makes the activity not reload when the orientation changes.
87              `android:persistableMode="persistNever"` removes Privacy Browser from the recents screen on a device reboot.
88              `tools:ignore="unusedAttribute"` removes the lint warning that `persistableMode` does not apply to API < 21. -->
89         <activity
90             android:name=".activities.BookmarksActivity"
91             android:label="@string/bookmarks"
92             android:parentActivityName=".activities.MainWebViewActivity"
93             android:configChanges="orientation|screenSize"
94             android:screenOrientation="fullUser"
95             android:persistableMode="persistNever"
96             tools:ignore="UnusedAttribute" />
97
98         <!-- `android:configChanges="orientation|screenSize"` makes the activity not reload when the orientation changes.
99              `android:persistableMode="persistNever"` removes Privacy Browser from the recents screen on a device reboot.
100              `tools:ignore="unusedAttribute"` removes the lint warning that `persistableMode` does not apply to API < 21. -->
101         <activity
102             android:name=".activities.BookmarksDatabaseViewActivity"
103             android:label="@string/bookmarks_database_view"
104             android:parentActivityName=".activities.BookmarksActivity"
105             android:configChanges="orientation|screenSize"
106             android:screenOrientation="fullUser"
107             android:persistableMode="persistNever"
108             tools:ignore="UnusedAttribute" />
109
110         <!-- `android:configChanges="orientation|screenSize"` makes the activity not reload when the orientation changes.
111              `android:persistableMode="persistNever"` removes Privacy Browser from the recents screen on a device reboot.
112              `tools:ignore="unusedAttribute"` removes the lint warning that `persistableMode` does not apply to API < 21. -->
113         <activity
114             android:name=".activities.SettingsActivity"
115             android:label="@string/privacy_browser_settings"
116             android:parentActivityName=".activities.MainWebViewActivity"
117             android:configChanges="orientation|screenSize"
118             android:screenOrientation="fullUser"
119             android:persistableMode="persistNever"
120             tools:ignore="UnusedAttribute" />
121
122         <!-- `android:windowSoftInputMode="stateAlwaysHidden"` keeps the keyboard from displaying when the screen is rotated and after the `AddDomainDialog` is dismissed.
123              `android:persistableMode="persistNever"` removes Privacy Browser from the recents screen on a device reboot.
124              `tools:ignore="unusedAttribute"` removes the lint warning that `persistableMode` does not apply to API < 21. -->
125         <activity
126             android:name=".activities.DomainsActivity"
127             android:label="@string/domains"
128             android:parentActivityName=".activities.MainWebViewActivity"
129             android:screenOrientation="fullUser"
130             android:windowSoftInputMode="stateAlwaysHidden"
131             android:persistableMode="persistNever"
132             tools:ignore="UnusedAttribute" />
133
134         <!-- `android:configChanges="orientation|screenSize"` makes the activity not reload when the orientation changes.
135              `android:persistableMode="persistNever"` removes Privacy Browser from the recents screen on a device reboot.
136              `tools:ignore="unusedAttribute"` removes the lint warning that `persistableMode` does not apply to API < 21. -->
137         <activity
138             android:name=".activities.GuideActivity"
139             android:label="@string/privacy_browser_guide"
140             android:parentActivityName=".activities.MainWebViewActivity"
141             android:configChanges="orientation|screenSize"
142             android:screenOrientation="fullUser"
143             android:persistableMode="persistNever"
144             tools:ignore="UnusedAttribute" />
145
146         <!-- `android:configChanges="orientation|screenSize"` makes the activity not reload when the orientation changes.
147              `android:persistableMode="persistNever"` removes Privacy Browser from the recents screen on a device reboot.
148              `tools:ignore="unusedAttribute"` removes the lint warning that `persistableMode` does not apply to API < 21. -->
149         <activity
150             android:name=".activities.AboutActivity"
151             android:label="@string/about_privacy_browser"
152             android:parentActivityName=".activities.MainWebViewActivity"
153             android:configChanges="orientation|screenSize"
154             android:screenOrientation="fullUser"
155             android:persistableMode="persistNever"
156             tools:ignore="UnusedAttribute" />
157
158         <!-- `android:configChanges="orientation|screenSize"` makes the activity not reload when the orientation changes.
159              `android:persistableMode="persistNever"` removes Privacy Browser from the recents screen on a device reboot.
160              `tools:ignore="unusedAttribute"` removes the lint warning that `persistableMode` does not apply to API < 21. -->
161         <activity
162             android:name=".activities.ViewSourceActivity"
163             android:label="@string/view_source"
164             android:parentActivityName=".activities.MainWebViewActivity"
165             android:configChanges="orientation|screenSize"
166             android:screenOrientation="fullUser"
167             android:persistableMode="persistNever"
168             tools:ignore="UnusedAttribute" />
169     </application>
170 </manifest>