aboutsummaryrefslogtreecommitdiffstats
path: root/android/app/src/main/AndroidManifest.xml
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2026-09-04 20:53:13 -0700
committerAdam Soltys <[email protected]>2026-09-04 20:53:13 -0700
commite5e375d8ea2f1193ffe01ff02639f002f91f8035 (patch)
treedac59b4eace3befeb978263acd749f2822957cfe /android/app/src/main/AndroidManifest.xml
parent8d27a5d2c59e0f1824753d59a7326b6b76887bf7 (diff)
downloadcoinosv3-e5e375d8ea2f1193ffe01ff02639f002f91f8035.tar.gz
coinosv3-e5e375d8ea2f1193ffe01ff02639f002f91f8035.zip
Android wrapper v1.1: scheme + NFC intents move onto a per-intent trampoline (IntentActivity, noHistory) — a TWA already on screen ignores a new intent delivered to its still-alive launcher, so a second lightning: tap did nothing; the trampoline maps the URI to ?u= form and relaunches the TWA with CLEAR_TOP, which navigates the open app. Verified on a real phone over adb: URL-bar-less fullscreen (assetlinks verified after the site began serving /.well-known/assetlinks.json — the deploy hook's dist/* glob was blind to dot-directories, fixed on cs), lightning: intent lands on Send with the invoice filled, and a second bitcoin: intent fired while the app was open navigated it (BIP-21 parsed, address + amount). NFC NDEF filters ride the trampoline for bolt cards / NDEF tags
Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01MGzU12QrAA4G6BYGzGVdXz
Diffstat (limited to 'android/app/src/main/AndroidManifest.xml')
-rw-r--r--android/app/src/main/AndroidManifest.xml18
1 files changed, 12 insertions, 6 deletions
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index c6b7a01..4eb96a7 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -32,9 +32,18 @@
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="https" android:host="v3.coinos.io" />
</intent-filter>
- <!-- the payment + nostr schemes: the reason this wrapper exists.
- lnurlw/lnurlp ride along — bolt cards and LNURL NFC tags emit
- those schemes. -->
+ </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" />
@@ -46,9 +55,6 @@
<data android:scheme="lnurlw" />
<data android:scheme="lnurlp" />
</intent-filter>
- <!-- NFC: an NDEF tag carrying one of our URIs (a bolt card tap, an
- address sticker) dispatches here directly — same forwarding path
- as a VIEW intent, no NFC permission needed for NDEF dispatch. -->
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />