Refactor Domains with one activity and two fragments. https://redmine.stoutner.com...
[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:allowBackup="false"
41         android:fullBackupContent="false"
42         android:supportsRtl="true" >
43
44         <!-- 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> -->
45         <meta-data
46             android:name="android.webkit.WebView.MetricsOptOut"
47             android:value="true" />
48
49         <!-- The theme has to be defined here or an ugly title bar is displayed when the app launches.
50              `android:configChanges="orientation|screenSize"` makes the activity not reload when the orientation changes, which preserves scroll location in the WebView.
51              `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.
52              `android:persistableMode="persistNever"` removes Privacy Browser from the recents screen on a device reboot.
53              `tools:ignore="unusedAttribute"` removes the lint warning that `persistableMode` does not apply to API < 21. -->
54         <activity
55             android:name=".activities.MainWebViewActivity"
56             android:label="@string/privacy_browser"
57             android:theme="@style/PrivacyBrowserLight"
58             android:configChanges="orientation|screenSize"
59             android:launchMode="singleTask"
60             android:screenOrientation="fullUser"
61             android:persistableMode="persistNever"
62             tools:ignore="UnusedAttribute" >
63
64             <intent-filter>
65                 <action android:name="android.intent.action.MAIN" />
66                 <category android:name="android.intent.category.LAUNCHER" />
67             </intent-filter>
68
69             <!-- `android.intent.action.VIEW` with the two data schemes enables processing of web intents. -->
70             <intent-filter>
71                 <action android:name="android.intent.action.VIEW" />
72                 <category android:name="android.intent.category.BROWSABLE" />
73                 <category android:name="android.intent.category.DEFAULT" />
74                 <data android:scheme="http" />
75                 <data android:scheme="https" />
76             </intent-filter>
77         </activity>
78
79
80         <!-- `android:configChanges="orientation|screenSize"` makes the activity not reload when the orientation changes.
81              `android:persistableMode="persistNever"` removes Privacy Browser from the recents screen on a device reboot.
82              `tools:ignore="unusedAttribute"` removes the lint warning that `persistableMode` does not apply to API < 21. -->
83         <activity
84             android:name=".activities.BookmarksActivity"
85             android:label="@string/bookmarks"
86             android:parentActivityName=".activities.MainWebViewActivity"
87             android:configChanges="orientation|screenSize"
88             android:screenOrientation="fullUser"
89             android:persistableMode="persistNever"
90             tools:ignore="UnusedAttribute" />
91
92         <!-- `android:configChanges="orientation|screenSize"` makes the activity not reload when the orientation changes.
93              `android:persistableMode="persistNever"` removes Privacy Browser from the recents screen on a device reboot.
94              `tools:ignore="unusedAttribute"` removes the lint warning that `persistableMode` does not apply to API < 21. -->
95         <activity
96             android:name=".activities.BookmarksDatabaseViewActivity"
97             android:label="@string/bookmarks_database_view"
98             android:parentActivityName=".activities.BookmarksActivity"
99             android:configChanges="orientation|screenSize"
100             android:screenOrientation="fullUser"
101             android:persistableMode="persistNever"
102             tools:ignore="UnusedAttribute" />
103
104         <!-- `android:configChanges="orientation|screenSize"` makes the activity not reload when the orientation changes.
105              `android:persistableMode="persistNever"` removes Privacy Browser from the recents screen on a device reboot.
106              `tools:ignore="unusedAttribute"` removes the lint warning that `persistableMode` does not apply to API < 21. -->
107         <activity
108             android:name=".activities.SettingsActivity"
109             android:label="@string/privacy_browser_settings"
110             android:parentActivityName=".activities.MainWebViewActivity"
111             android:configChanges="orientation|screenSize"
112             android:screenOrientation="fullUser"
113             android:persistableMode="persistNever"
114             tools:ignore="UnusedAttribute" />
115
116         <!-- `android:windowSoftInputMode="stateAlwaysHidden"` keeps the keyboard from displaying when the screen is rotated and after the `AddDomainDialog` is dismissed.
117              `android:persistableMode="persistNever"` removes Privacy Browser from the recents screen on a device reboot.
118              `tools:ignore="unusedAttribute"` removes the lint warning that `persistableMode` does not apply to API < 21. -->
119         <activity
120             android:name=".activities.DomainsActivity"
121             android:label="@string/domains"
122             android:parentActivityName=".activities.MainWebViewActivity"
123             android:screenOrientation="fullUser"
124             android:windowSoftInputMode="stateAlwaysHidden"
125             android:persistableMode="persistNever"
126             tools:ignore="UnusedAttribute" />
127
128         <!-- `android:configChanges="orientation|screenSize"` makes the activity not reload when the orientation changes.
129              `android:persistableMode="persistNever"` removes Privacy Browser from the recents screen on a device reboot.
130              `tools:ignore="unusedAttribute"` removes the lint warning that `persistableMode` does not apply to API < 21. -->
131         <activity
132             android:name=".activities.GuideActivity"
133             android:label="@string/privacy_browser_guide"
134             android:parentActivityName=".activities.MainWebViewActivity"
135             android:configChanges="orientation|screenSize"
136             android:screenOrientation="fullUser"
137             android:persistableMode="persistNever"
138             tools:ignore="UnusedAttribute" />
139
140         <!-- `android:configChanges="orientation|screenSize"` makes the activity not reload when the orientation changes.
141              `android:persistableMode="persistNever"` removes Privacy Browser from the recents screen on a device reboot.
142              `tools:ignore="unusedAttribute"` removes the lint warning that `persistableMode` does not apply to API < 21. -->
143         <activity
144             android:name=".activities.AboutActivity"
145             android:label="@string/about_privacy_browser"
146             android:parentActivityName=".activities.MainWebViewActivity"
147             android:configChanges="orientation|screenSize"
148             android:screenOrientation="fullUser"
149             android:persistableMode="persistNever"
150             tools:ignore="UnusedAttribute" />
151     </application>
152 </manifest>