diff options
Diffstat (limited to 'android/app/src/twa')
| -rw-r--r-- | android/app/src/twa/AndroidManifest.xml | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/android/app/src/twa/AndroidManifest.xml b/android/app/src/twa/AndroidManifest.xml new file mode 100644 index 0000000..c430cdf --- /dev/null +++ b/android/app/src/twa/AndroidManifest.xml @@ -0,0 +1,85 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- TWA wrapper: full-screen Chrome running https://v3.coinos.io (needs the + site's /.well-known/assetlinks.json to name this app's signing cert, or + Android shows a URL bar). The point of the wrapper is the intent + filters: lightning:/bitcoin:/nostr:/lnurl: URIs open this app, and + LauncherActivity forwards them into the web app as ?u=<encoded>. --> +<manifest xmlns:android="http://schemas.android.com/apk/res/android"> + <application> + <meta-data + android:name="asset_statements" + android:resource="@string/asset_statements" /> + <activity + android:name="io.coinos.app.LauncherActivity" + android:exported="true" + android:theme="@android:style/Theme.Translucent.NoTitleBar"> + <meta-data + android:name="android.support.customtabs.trusted.DEFAULT_URL" + android:value="https://v3.coinos.io/" /> + <!-- System-bar colors: without these the TWA status bar defaults to + white. Light follows the page background, dark the PWA's + theme_color, so the bar icons keep their contrast either way. --> + <meta-data + android:name="android.support.customtabs.trusted.STATUS_BAR_COLOR" + android:resource="@color/statusBarColor" /> + <meta-data + android:name="android.support.customtabs.trusted.STATUS_BAR_COLOR_DARK" + android:resource="@color/statusBarColorDark" /> + <meta-data + android:name="android.support.customtabs.trusted.NAVIGATION_BAR_COLOR" + android:resource="@color/navigationBarColor" /> + <meta-data + android:name="android.support.customtabs.trusted.NAVIGATION_BAR_COLOR_DARK" + android:resource="@color/navigationBarColorDark" /> + <intent-filter> + <action android:name="android.intent.action.MAIN" /> + <category android:name="android.intent.category.LAUNCHER" /> + </intent-filter> + <!-- own the site's links (verified against assetlinks.json) --> + <intent-filter android:autoVerify="true"> + <action android:name="android.intent.action.VIEW" /> + <category android:name="android.intent.category.DEFAULT" /> + <category android:name="android.intent.category.BROWSABLE" /> + <data android:scheme="https" android:host="v3.coinos.io" /> + </intent-filter> + </activity> + <!-- Scheme + NFC intents land on this per-intent trampoline, not the + launcher: a TWA already on screen ignores a new intent to its + launcher, so a second lightning: tap used to do nothing. The + trampoline relaunches the TWA with the new URL and finishes. + lnurlw/lnurlp ride along — bolt cards and LNURL NFC tags emit + those schemes; NDEF dispatch needs no NFC permission. --> + <activity + android:name="io.coinos.app.IntentActivity" + android:exported="true" + android:noHistory="true" + android:theme="@android:style/Theme.Translucent.NoTitleBar"> + <intent-filter> + <action android:name="android.intent.action.VIEW" /> + <category android:name="android.intent.category.DEFAULT" /> + <category android:name="android.intent.category.BROWSABLE" /> + <data android:scheme="lightning" /> + <data android:scheme="bitcoin" /> + <data android:scheme="nostr" /> + <data android:scheme="lnurl" /> + <data android:scheme="lnurlw" /> + <data android:scheme="lnurlp" /> + </intent-filter> + <intent-filter> + <action android:name="android.nfc.action.NDEF_DISCOVERED" /> + <category android:name="android.intent.category.DEFAULT" /> + <data android:scheme="lightning" /> + <data android:scheme="bitcoin" /> + <data android:scheme="nostr" /> + <data android:scheme="lnurl" /> + <data android:scheme="lnurlw" /> + <data android:scheme="lnurlp" /> + </intent-filter> + <intent-filter> + <action android:name="android.nfc.action.NDEF_DISCOVERED" /> + <category android:name="android.intent.category.DEFAULT" /> + <data android:scheme="https" android:host="v3.coinos.io" /> + </intent-filter> + </activity> + </application> +</manifest> |
