mirror of
https://code.gri.mw/GUI/grim.git
synced 2026-07-15 19:29:04 +00:00
ae0f36d287
Web "Open in Goblin" pay buttons fired generic nostr: URIs, which the OS routed to whatever social client claims nostr:. Register a dedicated goblin: scheme and route it (plus nostr: pay URIs) to the prefilled send-review screen, the same destination as scanning a checkout QR. Parser (payuri): accept goblin: alongside nostr: (same payload, either scheme); add is_pay_uri() to tell a payment link from a slatepack. Runtime: an argv/intent/socket payload that is a pay URI is stashed and opened by the Goblin surface via SendFlow::from_deeplink, which shares the exact apply_scan path the camera uses. Desktop cold + warm start (argv + single-instance socket) and Android cold + warm (intent-filter) covered. Registration: Linux .desktop x-scheme-handler/goblin, Android goblin intent-filter, macOS CFBundleURLTypes, Windows WiX HKCR URL protocol.
81 lines
3.8 KiB
XML
81 lines
3.8 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<manifest xmlns:tools="http://schemas.android.com/tools" xmlns:android="http://schemas.android.com/apk/res/android">
|
|
<uses-feature android:name="android.hardware.camera" android:required="false"/>
|
|
|
|
<uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />
|
|
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
|
|
<uses-permission android:name="android.permission.INTERNET"/>
|
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" />
|
|
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
|
<uses-permission android:name="android.permission.VIBRATE" />
|
|
<uses-permission android:name="android.permission.CAMERA"/>
|
|
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" tools:ignore="ScopedStorage"/>
|
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:ignore="ScopedStorage"/>
|
|
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" tools:ignore="ScopedStorage"/>
|
|
|
|
<application
|
|
android:hardwareAccelerated="true"
|
|
android:largeHeap="true"
|
|
android:allowBackup="true"
|
|
android:icon="@mipmap/ic_launcher"
|
|
android:label="Goblin"
|
|
android:roundIcon="@mipmap/ic_launcher_round"
|
|
android:theme="@style/Theme.Main"
|
|
android:enableOnBackInvokedCallback="false"
|
|
android:extractNativeLibs="true"
|
|
tools:ignore="UnusedAttribute">
|
|
|
|
<receiver android:name=".NotificationActionsReceiver"/>
|
|
|
|
<provider
|
|
android:name=".FileProvider"
|
|
android:authorities="st.goblin.wallet.fileprovider"
|
|
android:exported="false"
|
|
android:grantUriPermissions="true">
|
|
<meta-data
|
|
android:name="android.support.FILE_PROVIDER_PATHS"
|
|
android:resource="@xml/paths" />
|
|
</provider>
|
|
|
|
<activity
|
|
android:launchMode="singleTask"
|
|
android:name=".MainActivity"
|
|
android:configChanges="orientation|screenSize|smallestScreenSize|screenLayout|uiMode|density|locale|layoutDirection|fontScale|colorMode"
|
|
android:exported="true">
|
|
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.MAIN" />
|
|
<category android:name="android.intent.category.LAUNCHER" />
|
|
</intent-filter>
|
|
|
|
<intent-filter android:scheme="http" tools:ignore="AppLinkUrlError">
|
|
<action android:name="android.intent.action.SEND" />
|
|
<action android:name="android.intent.action.VIEW" />
|
|
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
<data android:mimeType="text/*" />
|
|
<data android:mimeType="application/*" />
|
|
<data android:pathPattern=".*\\.slatepack" />
|
|
</intent-filter>
|
|
|
|
<!-- Goblin payment deep link: web "Open in Goblin" buttons and
|
|
goblin: QR/links open the wallet straight to the send-review
|
|
screen. BROWSABLE so a browser/click can resolve it. -->
|
|
<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="goblin" />
|
|
</intent-filter>
|
|
|
|
<meta-data android:name="android.app.lib_name" android:value="grim" />
|
|
</activity>
|
|
|
|
<service
|
|
android:name=".BackgroundService"
|
|
android:stopWithTask="true"
|
|
android:foregroundServiceType="dataSync" />
|
|
</application>
|
|
|
|
</manifest> |