<?xml version="1.0" encoding="utf-8"?>
<!--
- Copyright © 2015-2019 Soren Stoutner <soren@stoutner.com>.
+ Copyright © 2015-2021 Soren Stoutner <soren@stoutner.com>.
This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
You should have received a copy of the GNU General Public License
along with Privacy Browser. If not, see <http://www.gnu.org/licenses/>. -->
-<!-- Install location auto allows users to move Privacy Browser to an SD card if desired. -->
+<!-- Install location `auto` allows users to move Privacy Browser to an SD card if desired. -->
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
<!-- Required to create home screen shortcuts. -->
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
- <!-- Required to import settings from external storage. -->
- <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
-
- <!-- Required to export settings and save files to public storage. -->
- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
-
<!-- Support Chromebooks that don't have a touch screen. -->
<uses-feature android:name="android.hardware.touchscreen" android:required="false" />
+ <!-- List the apps that Privacy Browser needs to query to see if they are installed. -->
+ <queries>
+ <!-- I2P. -->
+ <package android:name="net.i2p.android.router" />
+
+ <!-- Orbot. -->
+ <package android:name="org.torproject.android" />
+
+ <!-- OpenKeyChain. -->
+ <package android:name="org.sufficientlysecure.keychain" />
+ </queries>
<!-- For API >= 23, app data is automatically backed up to Google cloud servers unless `android:allowBackup="false"` and `android:fullBackupContent="false"` is set. -->
<application
android:resource="@xml/file_provider_paths" />
</provider>
- <!-- The theme has to be defined here or an ugly title bar is displayed when the app launches.
- `android:configChanges="orientation|screenSize"` makes the activity not restart when the orientation changes, which preserves scroll location in the WebView.
- `android:configChanges="screenLayout"` makes the activity not restart when entering or exiting split screen mode.
- `android:configChanges="keyboard|keyboardHidden"` makes the activity not restart when a bluetooth keyboard is activated/goes to sleep.
- `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.
- `android:persistableMode="persistNever"` removes Privacy Browser from the recent apps list on a device reboot.
- `tools:ignore="unusedAttribute"` removes the lint warning that `persistableMode` does not apply to API < 21. -->
+ <!-- MainWebViewActivity. The label uses the short name so that it isn't truncated under the icon in the launcher on most phones.
+ The theme has to be defined here or an ugly title bar is displayed when the app launches.
+ `android:configChanges="orientation|screenSize"` makes the activity not restart when the orientation changes, which preserves scroll location in the WebView.
+ `android:configChanges="screenLayout"` makes the activity not restart when entering or exiting split screen mode.
+ `android:configChanges="keyboard|keyboardHidden"` makes the activity not restart when a bluetooth keyboard is activated/goes to sleep.
+ `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.
+ `android:persistableMode="persistNever"` removes Privacy Browser from the recent apps list on a device reboot.
+ `tools:ignore="unusedAttribute"` removes the lint warning that `persistableMode` does not apply to API < 21. -->
<activity
android:name=".activities.MainWebViewActivity"
- android:label="@string/privacy_browser"
- android:theme="@style/PrivacyBrowserLight"
+ android:label="@string/short_name"
+ android:theme="@style/PrivacyBrowser"
android:configChanges="orientation|screenSize|screenLayout|keyboard|keyboardHidden"
android:launchMode="singleTask"
android:screenOrientation="fullUser"
android:persistableMode="persistNever"
+ android:exported="true"
tools:ignore="UnusedAttribute" >
<intent-filter>
<data android:scheme="https" />
</intent-filter>
- <!-- Process content intents for text files. -->
+ <!-- Process all content intents. -->
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="content" />
+
+ <!-- Process text and images. -->
<data android:mimeType="text/*" />
+ <data android:mimeType="image/*" />
+
+ <!-- Process MHT web archives. -->
+ <data android:mimeType="multipart/related" />
+ <data android:mimeType="message/rfc822" />
+ </intent-filter>
+
+ <!-- Process intents for text strings. Sometimes URLs are presented this way. -->
+ <intent-filter>
+ <action android:name="android.intent.action.SEND" />
+
+ <category android:name="android.intent.category.DEFAULT" />
+
+ <data android:mimeType="text/plain" />
</intent-filter>
<!-- Process web search intents. -->
</activity>
- <!-- `android:configChanges="orientation|screenSize"` makes the activity not restart when the orientation changes, which preserves scroll location in the WebView.
+ <!-- BookmarksActivity. `android:configChanges="orientation|screenSize"` makes the activity not restart when the orientation changes, which preserves scroll location in the WebView.
`android:configChanges="screenLayout"` makes the activity not restart when entering or exiting split screen mode.
`android:configChanges="keyboard|keyboardHidden"` makes the activity not restart when a bluetooth keyboard is activated/goes to sleep.
`android:persistableMode="persistNever"` removes Privacy Browser from the recent apps list on a device reboot.
android:persistableMode="persistNever"
tools:ignore="UnusedAttribute" />
- <!-- `android:configChanges="orientation|screenSize"` makes the activity not restart when the orientation changes, which preserves scroll location in the WebView.
+ <!-- BookmarksDatabaseViewActivity. `android:configChanges="orientation|screenSize"` makes the activity not restart when the orientation changes, which preserves scroll location in the WebView.
`android:configChanges="screenLayout"` makes the activity not restart when entering or exiting split screen mode.
`android:configChanges="keyboard|keyboardHidden"` makes the activity not restart when a bluetooth keyboard is activated/goes to sleep.
`android:persistableMode="persistNever"` removes Privacy Browser from the recent apps list on a device reboot.
android:persistableMode="persistNever"
tools:ignore="UnusedAttribute" />
- <!-- `android:configChanges="orientation|screenSize"` makes the activity not restart when the orientation changes, which preserves scroll location in the WebView.
+ <!-- RequestsActivity. `android:configChanges="orientation|screenSize"` makes the activity not restart when the orientation changes, which preserves scroll location in the WebView.
`android:configChanges="screenLayout"` makes the activity not restart when entering or exiting split screen mode.
`android:configChanges="keyboard|keyboardHidden"` makes the activity not restart when a bluetooth keyboard is activated/goes to sleep.
`android:persistableMode="persistNever"` removes Privacy Browser from the recent apps list on a device reboot.
android:persistableMode="persistNever"
tools:ignore="UnusedAttribute" />
- <!-- `android:configChanges="screenLayout"` makes the activity not restart when entering or exiting split screen mode.
+ <!-- DomainsActivity. `android:configChanges="screenLayout"` makes the activity not restart when entering or exiting split screen mode.
`android:configChanges="keyboard|keyboardHidden"` makes the activity not reload when a bluetooth keyboard is activated/goes to sleep.
`android:windowSoftInputMode="stateAlwaysHidden"` keeps the keyboard from displaying when the screen is rotated and after the `AddDomainDialog` is dismissed.
`android:persistableMode="persistNever"` removes Privacy Browser from the recent apps list on a device reboot.
android:persistableMode="persistNever"
tools:ignore="UnusedAttribute" />
- <!-- `android:configChanges="orientation|screenSize"` makes the activity not restart when the orientation changes, which preserves scroll location in the WebView.
+ <!-- SettingsActivity. `android:configChanges="orientation|screenSize"` makes the activity not restart when the orientation changes, which preserves scroll location in the WebView.
`android:configChanges="screenLayout"` makes the activity not restart when entering or exiting split screen mode.
`android:configChanges="keyboard|keyboardHidden"` makes the activity not restart when a bluetooth keyboard is activated/goes to sleep.
`android:persistableMode="persistNever"` removes Privacy Browser from the recent apps list on a device reboot.
android:persistableMode="persistNever"
tools:ignore="UnusedAttribute" />
- <!-- `android:configChanges="orientation|screenSize"` makes the activity not restart when the orientation changes, which preserves scroll location in the WebView.
+ <!-- ImportExportActivity. `android:configChanges="orientation|screenSize"` makes the activity not restart when the orientation changes, which preserves scroll location in the WebView.
`android:configChanges="screenLayout"` makes the activity not restart when entering or exiting split screen mode.
`android:configChanges="keyboard|keyboardHidden"` makes the activity not restart when a bluetooth keyboard is activated/goes to sleep.
`android:persistableMode="persistNever"` removes Privacy Browser from the recent apps list on a device reboot.
android:persistableMode="persistNever"
tools:ignore="UnusedAttribute" />
- <!-- `android:configChanges="orientation|screenSize"` makes the activity not restart when the orientation changes, which preserves scroll location in the WebView.
+ <!-- LogcatActivity. `android:configChanges="orientation|screenSize"` makes the activity not restart when the orientation changes, which preserves scroll location in the WebView.
`android:configChanges="screenLayout"` makes the activity not restart when entering or exiting split screen mode.
`android:configChanges="keyboard|keyboardHidden"` makes the activity not restart when a bluetooth keyboard is activated/goes to sleep.
`android:persistableMode="persistNever"` removes Privacy Browser from the recent apps list on a device reboot.
android:persistableMode="persistNever"
tools:ignore="UnusedAttribute" />
- <!-- `android:configChanges="orientation|screenSize"` makes the activity not restart when the orientation changes, which preserves scroll location in the WebView.
+ <!-- GuideActivity. `android:configChanges="orientation|screenSize"` makes the activity not restart when the orientation changes, which preserves scroll location in the WebView.
`android:configChanges="screenLayout"` makes the activity not restart when entering or exiting split screen mode.
`android:configChanges="keyboard|keyboardHidden"` makes the activity not restart when a bluetooth keyboard is activated/goes to sleep.
`android:persistableMode="persistNever"` removes Privacy Browser from the recent apps list on a device reboot.
android:persistableMode="persistNever"
tools:ignore="UnusedAttribute" />
- <!-- `android:configChanges="orientation|screenSize"` makes the activity not restart when the orientation changes, which preserves scroll location in the WebView.
+ <!-- AboutActivity. `android:configChanges="orientation|screenSize"` makes the activity not restart when the orientation changes, which preserves scroll location in the WebView.
`android:configChanges="screenLayout"` makes the activity not restart when entering or exiting split screen mode.
`android:configChanges="keyboard|keyboardHidden"` makes the activity not restart when a bluetooth keyboard is activated/goes to sleep.
`android:persistableMode="persistNever"` removes Privacy Browser from the recent apps list on a device reboot.
android:persistableMode="persistNever"
tools:ignore="UnusedAttribute" />
- <!-- `android:configChanges="orientation|screenSize"` makes the activity not restart when the orientation changes, which preserves scroll location in the WebView.
+ <!-- ViewSourceActivity. `android:configChanges="orientation|screenSize"` makes the activity not restart when the orientation changes, which preserves scroll location in the WebView.
`android:configChanges="screenLayout"` makes the activity not restart when entering or exiting split screen mode.
`android:configChanges="keyboard|keyboardHidden"` makes the activity not restart when a bluetooth keyboard is activated/goes to sleep.
`android:persistableMode="persistNever"` removes Privacy Browser from the recent apps list on a device reboot.
android:persistableMode="persistNever"
tools:ignore="UnusedAttribute" />
</application>
-</manifest>
\ No newline at end of file
+</manifest>