<?xml version="1.0" encoding="utf-8"?>
<!--
- Copyright © 2015-2020 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>.
<!-- 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" />
- <!-- For API >= 23, app data is automatically backed up to Google cloud servers unless `android:allowBackup="false"` and `android:fullBackupContent="false"` is set.
- `android:requestLegacyExternalStorage="true"` makes Android 10 storage permissions work like previous versions of Android. It is a temporary workaround. <https://redmine.stoutner.com/issues/546> -->
+ <!-- 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:label="@string/privacy_browser"
android:icon="@mipmap/privacy_browser"
android:fullBackupContent="false"
android:supportsRtl="true"
android:networkSecurityConfig="@xml/network_security_config"
- android:requestLegacyExternalStorage="true"
tools:ignore="UnusedAttribute" >
<!-- 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> -->
<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 MHT archives. -->
+ <!-- Process intents for text strings. Sometimes URLs are presented this way. -->
<intent-filter>
- <action android:name="android.intent.action.VIEW" />
+ <action android:name="android.intent.action.SEND" />
- <category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
- <data android:scheme="file" />
- <data android:scheme="content" />
-
- <data android:host="*" />
-
- <!-- This pattern matches any file that starts with a `/`, has at least one character, followed by any number of other characters, terminating with `.mht`. -->
- <data android:pathPattern="/.*\.mht" />
- <data android:mimeType="*/*" />
+ <data android:mimeType="text/plain" />
</intent-filter>
<!-- Process web search intents. -->