| <?xml version="1.0" encoding="utf-8"?> |
| <!-- |
| Copyright 2015 The Chromium Authors |
| Use of this source code is governed by a BSD-style license that can be |
| found in the LICENSE file. |
| --> |
| |
| <!-- AndroidManifest.xml is generated in two mustache generation passes. |
| Pass #1 with square bracket delimiter to generate AndroidManifest.xml to |
| be uploaded to the WebAPK Minting Server. Fields which cannot be |
| customized by the WebAPK server on a per-site basis are filled in. |
| Pass #2 with curly bracket delimiter fills in the remaining fields. The |
| generated AndroidManifest.xml is for the test APK (WebApk.apk, |
| UnboundWebApk.apk ...). These APKs are for local testing and are |
| not uploaded to the WebAPK server. |
| --> |
| {{=[[ ]]=}} |
| |
| <manifest xmlns:android="http://schemas.android.com/apk/res/android" |
| xmlns:tools="http://schemas.android.com/tools" |
| package="{{{manifest_package}}}" |
| android:versionCode="{{{version_code}}}" |
| android:versionName="{{{version_name}}}" > |
| {{{raw_manifest_tags}}} |
| |
| <uses-sdk |
| android:minSdkVersion="24" |
| android:targetSdkVersion="33" /> |
| |
| <uses-permission android:name="android.permission.POST_NOTIFICATIONS" /> |
| |
| <queries> |
| <intent> |
| <action android:name="android.intent.action.VIEW" /> |
| <category android:name="android.intent.category.BROWSABLE" /> |
| <data android:scheme="https" /> |
| </intent> |
| <intent> |
| <action android:name="android.support.customtabs.action.ACTION_MANAGE_TRUSTED_WEB_ACTIVITY_DATA" /> |
| <data android:scheme="https" /> |
| </intent> |
| </queries> |
| |
| <application |
| android:icon="@mipmap/ic_launcher" |
| android:label="@string/short_name" |
| android:allowBackup="false" |
| android:supportsRtl="true"> |
| <activity android:name="org.chromium.webapk.shell_apk.h2o.H2OTransparentLauncherActivity" |
| android:theme="@android:style/Theme.Translucent.NoTitleBar" |
| android:excludeFromRecents="true" |
| android:exported="true" |
| android:relinquishTaskIdentity="true"> |
| {{#intent_filters}} |
| <intent-filter android:autoVerify="true"> |
| <action android:name="android.intent.action.VIEW"></action> |
| <category android:name="android.intent.category.DEFAULT"></category> |
| <category android:name="android.intent.category.BROWSABLE"></category> |
| <data android:scheme="{{{scope_url_scheme}}}" android:host="{{{scope_url_host}}}" {{{scope_url_path_type}}}="{{{scope_url_path}}}"></data> |
| </intent-filter> |
| <intent-filter> |
| <action android:name="android.nfc.action.NDEF_DISCOVERED"></action> |
| <category android:name="android.intent.category.DEFAULT"></category> |
| <data android:scheme="{{{scope_url_scheme}}}" android:host="{{{scope_url_host}}}" {{{scope_url_path_type}}}="{{{scope_url_path}}}"></data> |
| </intent-filter> |
| {{/intent_filters}} |
| {{{raw_intent_filters}}} |
| </activity> |
| |
| <activity android:name="org.chromium.webapk.shell_apk.ManageDataLauncherActivity" |
| android:theme="@android:style/Theme.Translucent.NoTitleBar"> |
| </activity> |
| |
| <activity android:name="org.chromium.webapk.shell_apk.h2o.H2OOpaqueMainActivity" |
| android:theme="@style/SplashTheme" |
| android:relinquishTaskIdentity="true" |
| android:screenOrientation="{{{android_orientation}}}" |
| android:exported="true" |
| android:enabled="[[#use_new_splash]]@bool/opaque_main_activity_enabled_default[[/use_new_splash]][[^use_new_splash]]false[[/use_new_splash]]"> |
| <intent-filter> |
| <action android:name="android.intent.action.MAIN" /> |
| <category android:name="android.intent.category.LAUNCHER" /> |
| </intent-filter> |
| <meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcuts" /> |
| </activity> |
| <activity android:name="org.chromium.webapk.shell_apk.h2o.SplashActivity" |
| android:theme="@style/SplashTheme" |
| android:screenOrientation="{{{android_orientation}}}" |
| android:launchMode="singleTask"> |
| </activity> |
| <provider android:name="org.chromium.webapk.shell_apk.h2o.SplashContentProvider" |
| android:authorities="{{manifest_package}}.SplashContentProvider" |
| android:exported="true" /> |
| <activity android:name="org.chromium.webapk.shell_apk.h2o.H2OMainActivity" |
| android:theme="@android:style/Theme.Translucent.NoTitleBar" |
| android:exported="true" |
| android:enabled="[[#use_new_splash]]@bool/transparent_main_activity_enabled_default[[/use_new_splash]][[^use_new_splash]]true[[/use_new_splash]]" |
| android:excludeFromRecents="true"> |
| <intent-filter> |
| <action android:name="android.intent.action.MAIN" /> |
| <category android:name="android.intent.category.LAUNCHER" /> |
| </intent-filter> |
| <meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcuts" /> |
| </activity> |
| <activity android:name="org.chromium.webapk.shell_apk.NotificationPermissionRequestActivity" |
| android:theme="@style/PermissionRequestTheme"> |
| </activity> |
| |
| {{#share_template}} |
| <activity-alias android:name="org.chromium.webapk.shell_apk.ShareActivity{{{index}}}" |
| android:label="{{{title}}}" |
| android:exported="true" |
| android:targetActivity="org.chromium.webapk.shell_apk.h2o.H2OTransparentLauncherActivity"> |
| <meta-data android:name="org.chromium.webapk.shell_apk.shareAction" android:value="{{{action}}}" /> |
| <meta-data android:name="org.chromium.webapk.shell_apk.shareMethod" android:value="{{{method}}}" /> |
| <meta-data android:name="org.chromium.webapk.shell_apk.shareParamTitle" android:value="{{{param_title}}}" /> |
| <meta-data android:name="org.chromium.webapk.shell_apk.shareParamText" android:value="{{{param_text}}}" /> |
| <meta-data android:name="org.chromium.webapk.shell_apk.shareParamUrl" android:value="{{{param_url}}}" /> |
| {{#enctype}} |
| <meta-data android:name="org.chromium.webapk.shell_apk.shareEnctype" android:value="{{{enctype}}}" /> |
| {{/enctype}} |
| {{^is_file_upload}} |
| <intent-filter> |
| <action android:name="android.intent.action.SEND" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| <data android:mimeType="text/plain" /> |
| </intent-filter> |
| {{/is_file_upload}} |
| {{#is_file_upload}} |
| {{^is_file_upload_param_empty}} |
| <meta-data android:name="org.chromium.webapk.shell_apk.shareParamNames" android:value="{{{param_names}}}" /> |
| <meta-data android:name="org.chromium.webapk.shell_apk.shareParamAccepts" android:value="{{{param_accepts}}}" /> |
| {{/is_file_upload_param_empty}} |
| <intent-filter> |
| <action android:name="android.intent.action.SEND" /> |
| {{^is_file_upload_param_empty}} |
| <action android:name="android.intent.action.SEND_MULTIPLE" /> |
| {{/is_file_upload_param_empty}} |
| <category android:name="android.intent.category.DEFAULT" /> |
| {{#mime_types}} |
| <data android:mimeType="{{{mime_type}}}" /> |
| {{/mime_types}} |
| </intent-filter> |
| {{/is_file_upload}} |
| </activity-alias> |
| {{/share_template}} |
| <meta-data android:name="org.chromium.webapk.shell_apk.shellApkVersion" android:value="[[ shell_apk_version ]]" /> |
| {{#bound_webapk}} |
| <meta-data android:name="org.chromium.webapk.shell_apk.runtimeHost" android:value="{{{runtime_host}}}" /> |
| <meta-data android:name="org.chromium.webapk.shell_apk.runtimeHostApplicationName" android:value="{{{runtime_host_application_name}}}" /> |
| {{/bound_webapk}} |
| <meta-data android:name="org.chromium.webapk.shell_apk.startUrl" android:value="{{{start_url}}}" /> |
| {{#logged_intent_url_param}} |
| <meta-data android:name="org.chromium.webapk.shell_apk.loggedIntentUrlParam" android:value="{{{logged_intent_url_param}}}" /> |
| {{/logged_intent_url_param}} |
| <meta-data android:name="org.chromium.webapk.shell_apk.scope" android:value="{{{scope_url}}}" /> |
| <meta-data android:name="org.chromium.webapk.shell_apk.displayMode" android:value="{{{display_mode}}}" /> |
| <meta-data android:name="org.chromium.webapk.shell_apk.orientation" android:value="{{{orientation}}}" /> |
| <meta-data android:name="org.chromium.webapk.shell_apk.themeColor" android:value="{{{theme_color}}}" /> |
| |
| <!-- Empty if the Web Manifest does not provide a background color. --> |
| <meta-data android:name="org.chromium.webapk.shell_apk.backgroundColor" android:value="{{{background_color}}}" /> |
| |
| <meta-data android:name="org.chromium.webapk.shell_apk.defaultBackgroundColorId" android:resource="@color/webapp_default_bg" /> |
| <meta-data android:name="org.chromium.webapk.shell_apk.iconId" android:resource="@mipmap/app_icon" /> |
| {{#has_maskable_icon}} |
| <meta-data android:name="org.chromium.webapk.shell_apk.maskableIconId" android:resource="@mipmap/maskable_app_icon"/> |
| {{/has_maskable_icon}} |
| <meta-data android:name="org.chromium.webapk.shell_apk.splashId" android:resource="@drawable/splash_icon" /> |
| <meta-data android:name="org.chromium.webapk.shell_apk.isSplashIconMaskableBooleanId" android:resource="@bool/is_splash_icon_maskable"/> |
| <meta-data android:name="org.chromium.webapk.shell_apk.distributor" android:value="{{{distributor}}}" /> |
| |
| {{! Hashes of icons should be taken of the icons as they are available on the web. The icon |
| bytes should not be transformed (e.g. decoded / encoded) prior to taking the hash. |
| }} |
| <meta-data android:name="org.chromium.webapk.shell_apk.iconUrlsAndIconMurmur2Hashes" android:value="{{{icon_urls_and_icon_murmur2_hashes}}}" /> |
| |
| <meta-data android:name="org.chromium.webapk.shell_apk.webManifestUrl" android:value="{{{web_manifest_url}}}" /> |
| <meta-data android:name="org.chromium.webapk.shell_apk.webManifestId" android:value="{{{web_manifest_id}}}" /> |
| <meta-data android:name="org.chromium.webapk.shell_apk.appKey" android:value="{{{app_key}}}" /> |
| |
| <meta-data android:name="org.chromium.webapk.shell_apk.isNewStyleWebApk" android:value="[[ use_new_splash ]]" /> |
| <meta-data android:name="org.chromium.webapk.shell_apk.enableSiteSettingsShortcut" android:value="{{{enable_site_settings_shortcut}}}" /> |
| <service |
| android:name="org.chromium.webapk.shell_apk.WebApkServiceFactory" |
| android:exported="true" |
| tools:ignore="ExportedService"> |
| <intent-filter> |
| <action android:name="android.intent.action.MAIN" /> |
| <category android:name="android.intent.category.WEBAPK_API" /> |
| </intent-filter> |
| </service> |
| <service |
| android:name="org.chromium.webapk.shell_apk.IdentityService" |
| android:exported="true" |
| tools:ignore="ExportedService"> |
| <intent-filter> |
| <action android:name="org.webapk.IDENTITY_SERVICE_API" /> |
| </intent-filter> |
| </service> |
| </application> |
| </manifest> |