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