<?xml version="1.0" encoding="utf-8"?>
<!--
- Copyright © 2015-2022 Soren Stoutner <soren@stoutner.com>.
+ Copyright 2015-2022 Soren Stoutner <soren@stoutner.com>.
This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
- package="com.stoutner.privacybrowser"
android:installLocation="auto" >
<!-- Required to load websites. -->
<!-- Required to create home screen shortcuts. -->
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
-
<!-- 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" />
+ <package android:name="net.i2p.android" /> <!-- Google Play flavor. -->
+ <package android:name="net.i2p.android.router" /> <!-- F-Droid flavor. -->
<!-- Orbot. -->
<package android:name="org.torproject.android" />
android:allowBackup="false"
android:fullBackupContent="false"
android:supportsRtl="true"
+ android:theme="@style/PrivacyBrowser"
android:networkSecurityConfig="@xml/network_security_config"
+ android:enableOnBackInvokedCallback="true"
+ android:localeConfig="@xml/locales_config"
tools:ignore="DataExtractionRules,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:name="android.webkit.WebView.EnableSafeBrowsing"
android:value="false" />
- <!-- Specify the Application ID used by the ads in the free flavor. -->
- <meta-data
- android:name="com.google.android.gms.ads.APPLICATION_ID"
- android:value="@string/google_app_id" />
-
<!-- The file provider is required to encrypt files with OpenKeychain. -->
<provider
android:name="androidx.core.content.FileProvider"
`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. -->
+ `android:persistableMode="persistNever"` removes Privacy Browser from the recent apps list on a device reboot. -->
<activity
android:name=".activities.MainWebViewActivity"
android:label="@string/short_name"
android:launchMode="singleTask"
android:screenOrientation="fullUser"
android:persistableMode="persistNever"
- android:exported="true"
- tools:ignore="UnusedAttribute" >
+ android:exported="true" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<!-- 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.
- `tools:ignore="unusedAttribute"` removes the lint warning that `persistableMode` does not apply to API < 21. -->
+ `android:persistableMode="persistNever"` removes Privacy Browser from the recent apps list on a device reboot. -->
<activity
android:name=".activities.BookmarksActivity"
android:label="@string/bookmarks"
android:parentActivityName=".activities.MainWebViewActivity"
android:configChanges="orientation|screenSize|screenLayout|keyboard|keyboardHidden"
android:screenOrientation="fullUser"
- android:persistableMode="persistNever"
- tools:ignore="UnusedAttribute" />
+ android:persistableMode="persistNever" />
<!-- 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.
- `tools:ignore="unusedAttribute"` removes the lint warning that `persistableMode` does not apply to API < 21. -->
+ `android:persistableMode="persistNever"` removes Privacy Browser from the recent apps list on a device reboot. -->
<activity
android:name=".activities.BookmarksDatabaseViewActivity"
android:label="@string/bookmarks_database_view"
android:parentActivityName=".activities.BookmarksActivity"
android:configChanges="orientation|screenSize|screenLayout|keyboard|keyboardHidden"
android:screenOrientation="fullUser"
- android:persistableMode="persistNever"
- tools:ignore="UnusedAttribute" />
+ android:persistableMode="persistNever" />
<!-- 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.
- `tools:ignore="unusedAttribute"` removes the lint warning that `persistableMode` does not apply to API < 21. -->
+ `android:persistableMode="persistNever"` removes Privacy Browser from the recent apps list on a device reboot. -->
<activity
android:name=".activities.RequestsActivity"
android:label="@string/requests"
android:parentActivityName=".activities.MainWebViewActivity"
android:configChanges="orientation|screenSize|screenLayout|keyboard|keyboardHidden"
android:screenOrientation="fullUser"
- android:persistableMode="persistNever"
- tools:ignore="UnusedAttribute" />
+ android:persistableMode="persistNever" />
<!-- 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.
- `tools:ignore="unusedAttribute"` removes the lint warning that `persistableMode` does not apply to API < 21. -->
+ `android:persistableMode="persistNever"` removes Privacy Browser from the recent apps list on a device reboot. -->
<activity
android:name=".activities.DomainsActivity"
android:label="@string/domains"
android:configChanges="screenLayout|keyboard|keyboardHidden"
android:screenOrientation="fullUser"
android:windowSoftInputMode="stateAlwaysHidden"
- android:persistableMode="persistNever"
- tools:ignore="UnusedAttribute" />
+ android:persistableMode="persistNever" />
<!-- 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.
- `tools:ignore="unusedAttribute"` removes the lint warning that `persistableMode` does not apply to API < 21. -->
+ `android:persistableMode="persistNever"` removes Privacy Browser from the recent apps list on a device reboot. -->
<activity
android:name=".activities.SettingsActivity"
android:label="@string/settings"
android:parentActivityName=".activities.MainWebViewActivity"
android:configChanges="orientation|screenSize|screenLayout|keyboard|keyboardHidden"
android:screenOrientation="fullUser"
- android:persistableMode="persistNever"
- tools:ignore="UnusedAttribute" />
+ android:persistableMode="persistNever" />
<!-- 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.
- `tools:ignore="unusedAttribute"` removes the lint warning that `persistableMode` does not apply to API < 21. -->
+ `android:persistableMode="persistNever"` removes Privacy Browser from the recent apps list on a device reboot. -->
<activity
android:name=".activities.ImportExportActivity"
android:label="@string/import_export"
android:parentActivityName=".activities.MainWebViewActivity"
android:configChanges="orientation|screenSize|screenLayout|keyboard|keyboardHidden"
android:screenOrientation="fullUser"
- android:persistableMode="persistNever"
- tools:ignore="UnusedAttribute" />
+ android:persistableMode="persistNever" />
<!-- 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.
- `tools:ignore="unusedAttribute"` removes the lint warning that `persistableMode` does not apply to API < 21. -->
+ `android:persistableMode="persistNever"` removes Privacy Browser from the recent apps list on a device reboot. -->
<activity
android:name=".activities.LogcatActivity"
android:label="@string/logcat"
android:parentActivityName=".activities.MainWebViewActivity"
android:configChanges="orientation|screenSize|screenLayout|keyboard|keyboardHidden"
android:screenOrientation="fullUser"
- android:persistableMode="persistNever"
- tools:ignore="UnusedAttribute" />
+ android:persistableMode="persistNever" />
<!-- 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.
- `tools:ignore="unusedAttribute"` removes the lint warning that `persistableMode` does not apply to API < 21. -->
+ `android:persistableMode="persistNever"` removes Privacy Browser from the recent apps list on a device reboot. -->
<activity
android:name=".activities.GuideActivity"
android:label="@string/guide"
android:parentActivityName=".activities.MainWebViewActivity"
android:configChanges="orientation|screenSize|screenLayout|keyboard|keyboardHidden"
android:screenOrientation="fullUser"
- android:persistableMode="persistNever"
- tools:ignore="UnusedAttribute" />
+ android:persistableMode="persistNever" />
<!-- 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.
- `tools:ignore="unusedAttribute"` removes the lint warning that `persistableMode` does not apply to API < 21. -->
+ `android:persistableMode="persistNever"` removes Privacy Browser from the recent apps list on a device reboot. -->
<activity
android:name=".activities.AboutActivity"
android:label="@string/about_privacy_browser"
android:parentActivityName=".activities.MainWebViewActivity"
android:configChanges="orientation|screenSize|screenLayout|keyboard|keyboardHidden"
android:screenOrientation="fullUser"
- android:persistableMode="persistNever"
- tools:ignore="UnusedAttribute" />
+ android:persistableMode="persistNever" />
<!-- 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.
- `tools:ignore="unusedAttribute"` removes the lint warning that `persistableMode` does not apply to API < 21. -->
+ `android:persistableMode="persistNever"` removes Privacy Browser from the recent apps list on a device reboot. -->
<activity
android:name=".activities.ViewSourceActivity"
android:label="@string/view_source"
android:parentActivityName=".activities.MainWebViewActivity"
android:configChanges="orientation|screenSize|screenLayout|keyboard|keyboardHidden"
android:screenOrientation="fullUser"
- android:persistableMode="persistNever"
- tools:ignore="UnusedAttribute" />
+ android:persistableMode="persistNever" />
</application>
</manifest>