aboutsummaryrefslogtreecommitdiffstats
path: root/android/app/src/nofcm/java/io/coinos
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2026-11-06 23:01:15 -0700
committerAdam Soltys <[email protected]>2026-11-06 23:01:15 -0700
commit8969744783e2851b287e937f71033ce4b6bb4dc3 (patch)
tree682652e80d9119da9106a2e5ce2d11eeadb08d6f /android/app/src/nofcm/java/io/coinos
parent1fe10057f301b09bbad0cfccdfecac9826733048 (diff)
downloadcoinosv3-8969744783e2851b287e937f71033ce4b6bb4dc3.tar.gz
coinosv3-8969744783e2851b287e937f71033ce4b6bb4dc3.zip
A third Android build, fcm (io.coinos.beta, "Coinos Beta"): the wallet in 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
Diffstat (limited to 'android/app/src/nofcm/java/io/coinos')
-rw-r--r--android/app/src/nofcm/java/io/coinos/app/Fcm.java14
1 files changed, 14 insertions, 0 deletions
diff --git a/android/app/src/nofcm/java/io/coinos/app/Fcm.java b/android/app/src/nofcm/java/io/coinos/app/Fcm.java
new file mode 100644
index 0000000..bb68bbc
--- /dev/null
+++ b/android/app/src/nofcm/java/io/coinos/app/Fcm.java
@@ -0,0 +1,14 @@
+package io.coinos.app;
+
+import android.content.Context;
+
+/**
+ * The WebView and F-Droid builds carry no Firebase: push there is UnifiedPush
+ * only. The fcm build's version of this class (src/fcm) is the real one.
+ */
+final class Fcm {
+ private Fcm() {}
+ static boolean available(Context c) { return false; }
+ /** @return whether Firebase will deliver this app's pushes (never, here) */
+ static boolean register(Context c, Runnable onEndpoint) { return false; }
+}