1 <?xml version="1.0" encoding="utf-8"?>
4 Copyright © 2015-2017 Soren Stoutner <soren@stoutner.com>.
6 This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
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.
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.
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/>. -->
21 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
22 xmlns:tools="http://schemas.android.com/tools"
23 package="com.stoutner.privacybrowser" >
25 <!-- Required to load websites. -->
26 <uses-permission android:name="android.permission.INTERNET" />
28 <!-- Required to create homescreen shortcuts. -->
29 <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
32 <!-- Support Chromebooks that don't have a touch screen. -->
33 <uses-feature android:name="android.hardware.touchscreen" android:required="false" />
36 <!-- For API >= 23, app data is automatically backed up to Google cloud servers unless `android:allowBackup="false"` and `android:fullBackupContent="false"` is set. -->
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" >
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> -->
47 android:name="android.webkit.WebView.MetricsOptOut"
48 android:value="true" />
50 <!-- Explicitly disable "Safe Browsing". -->
52 android:name="android.webkit.WebView.EnableSafeBrowsing"
53 android:value="false" />
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. -->
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" >
71 <action android:name="android.intent.action.MAIN" />
72 <category android:name="android.intent.category.LAUNCHER" />
75 <!-- `android.intent.action.VIEW` with the two data schemes enables processing of web intents. -->
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" />
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. -->
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" />
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. -->
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" />
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. -->
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" />
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. -->
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" />
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. -->
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" />
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. -->
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" />
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. -->
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" />