aboutsummaryrefslogtreecommitdiffstats
path: root/android/app/src/fcm
Commit message (Collapse)AuthorAgeFilesLines
* Passkeys in the WebView builds: the apps name v3.coinos.io too, and a failed ↵Adam Soltys13 hours1-0/+6
| | | | | | | passkey sign-in no longer goes on to make a new one. Coinos Beta's passkey sign-in failed after the account was picked — "CredMan getCredential call failed … RP ID cannot be validated" (Pixel 9, 2026-11-06). An app's association with a site runs both ways: the site's assetlinks.json names the app (it did), and the app's manifest names the site through asset_statements meta-data — which the TWA has and the webview/fcm manifests didn't. They declare it now, and the shared asset_statements string carries get_login_creds beside handle_all_urls. And passkeyLogin rolled any sign-in failure into creating a passkey, so the validation error was followed by a second, failed create dialog: only NotAllowedError (how browsers report "no passkey here", or a dismissed sheet) leads to creating one now; any other error is shown Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01VMan6Ts5Tktega8VbLg31q
* Coinos Beta (io.coinos.beta, 1.14-beta) is published for a trial at ↵Adam Soltys13 hours1-1/+5
| | | | | | | https://v3.coinos.io/coinos-beta.apk — the wallet in its own WebView with Firebase push, installed beside the current app. Built with the coinos-v3 Firebase project's config (android/app/google-services.json, fetched with the project's service account through the Firebase Management API; gitignored) and signed with the usual key; nwcpush sends fcm: endpoints with the same service account (on cs in the nwcpush state, config fcm.serviceAccount). Verified on a Pixel 9: the token reaches the page as its push endpoint, and a data message sent through FCM v1 woke the off-screen wallet ("wake: job started", the service worker's NWC responder up) and raised its notification. Not on Zapstore. FcmService no longer resets the "endpoint handed to the page" flag when the first token arrives a second time through onNewToken Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01VMan6Ts5Tktega8VbLg31q
* A third Android build, fcm (io.coinos.beta, "Coinos Beta"): the wallet in ↵Adam Soltys14 hours4-0/+161
its own WebView, as the webview build, with Firebase Cloud Messaging for push on phones with Google Play Services — no distributor app to install. A user on the TWA APK found launching slow next to Minibits (2026-11-05); measured on a Pixel 9, a WebView paints ~0.7 s sooner than a cold Chrome. This build installs beside the TWA for a side-by-side trial before deciding whether it replaces it. Fcm asks for the token and stores "fcm:<token>" as the push endpoint, which reaches the page down the UnifiedPush road (?up= on the next launch, or written straight into the page's localStorage once it has loaded, since the token arrives after the first load starts); nwcpush (coinosv3-server 0c50417) sends an fcm: endpoint through Firebase. FcmService hands a message's "body" to the same handler UnifiedPush messages use (PushReceiver.onPush: wake the wallet off-screen, notify unless it answered a silent request). Firebase is set up in code (CoinosApp → Fcm.init) from values build.gradle reads out of app/google-services.json (gitignored) — without it the build still builds and falls back to UnifiedPush. The webview and fdroid builds get a stub Fcm (src/nofcm) and carry no Google code; the notification permission is asked when Firebase or a distributor can deliver; CoinosHost.env reports app "fcm" Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01VMan6Ts5Tktega8VbLg31q