<?xml version="1.0" encoding="utf-8"?>
<!--
- Copyright © 2015-2019 Soren Stoutner <soren@stoutner.com>.
+ Copyright © 2015-2020 Soren Stoutner <soren@stoutner.com>.
This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
<uses-feature android:name="android.hardware.touchscreen" android:required="false" />
- <!-- For API >= 23, app data is automatically backed up to Google cloud servers unless `android:allowBackup="false"` and `android:fullBackupContent="false"` is set. -->
+ <!-- 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> -->
<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> -->
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. -->
+ <!-- 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"
- 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"
<data android:mimeType="text/*" />
</intent-filter>
+ <!-- Process intents for MHT archives. -->
+ <intent-filter>
+ <action android:name="android.intent.action.VIEW" />
+
+ <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="*/*" />
+ </intent-filter>
+
<!-- Process web search intents. -->
<intent-filter>
<action android:name="android.intent.action.WEB_SEARCH" />