aboutsummaryrefslogtreecommitdiffstats
path: root/android/app/src/twa/AndroidManifest.xml
diff options
context:
space:
mode:
Diffstat (limited to 'android/app/src/twa/AndroidManifest.xml')
-rw-r--r--android/app/src/twa/AndroidManifest.xml85
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>