From 90bc4d3d54b91cb9845cda4edc53ed148ae00251 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Tue, 13 Oct 2026 06:51:13 +0000 Subject: Android 1.14 (code 15): UnifiedPush only where web push can't reach the app. isolabellart asked why Coinos opens a prompt inside ntfy: every launch of the TWA asked whatever UnifiedPush distributor was installed for an endpoint (and asked for notification permission for it), Play Services or not. UnifiedPush is there for phones without Google Play Services (GrapheneOS and the like); with Play Services, web push reaches Chrome — and so the TWA — through Google already, and asking ntfy too only put up its prompt (and would bring every notification twice). The TWA now asks a distributor only when Play Services isn't installed and enabled (Push.playServices; its package named in the manifest's queries for Android 11+), or when it already holds an endpoint — whoever has one has been through the prompt and may be counting on it. The WebView builds (webview, fdroid) are unchanged: web push never reaches a WebView, so UnifiedPush is their only way in either way. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01KPw21NEpWeTGu6swVASmBt --- android/app/build.gradle | 4 ++-- android/app/src/main/AndroidManifest.xml | 3 +++ android/app/src/main/java/io/coinos/app/Push.java | 13 +++++++++++++ .../app/src/twa/java/io/coinos/app/LauncherActivity.java | 12 ++++++++++-- 4 files changed, 28 insertions(+), 4 deletions(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index 381e277..0119e93 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -29,8 +29,8 @@ android { applicationId 'io.coinos.app' minSdk 24 targetSdk 35 - versionCode 14 - versionName '1.13' + versionCode 15 + versionName '1.14' } // Two builds of the same wallet. // diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 0444b76..2f0f950 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -14,6 +14,9 @@ + + = 33 + if (unifiedPush && Build.VERSION.SDK_INT >= 33 && checkSelfPermission(Manifest.permission.POST_NOTIFICATIONS) != PackageManager.PERMISSION_GRANTED && Push.distributor(this) != null) { try { requestPermissions(new String[] { Manifest.permission.POST_NOTIFICATIONS }, 1); } catch (Exception ignored) {} -- cgit v1.2.3