From 682b557c07bc1a6f4930c99b103a50b4223136bb Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 5 Apr 2026 09:41:19 +0000 Subject: [PATCH] Disable self-updater for F-Droid builds via IS_FDROID_BUILD flag Add IS_FDROID_BUILD BuildConfig field (default false). The F-Droid workflow (create-release.yml) flips it to true via sed before building, alongside the existing permission removal step. Amber.kt gates the ZapstoreUpdater instantiation on this flag so F-Droid APKs never attempt to check for or download updates. https://claude.ai/code/session_01NmFcCFmEbY7NMradkEU5bv --- .github/workflows/create-release.yml | 3 ++- app/build.gradle | 2 ++ app/src/main/java/com/greenart7c3/nostrsigner/Amber.kt | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 732055ca..30411a94 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -29,9 +29,10 @@ jobs: restore-keys: | ${{ runner.os }}-gradle- - - name: Remove self-update permission for F-Droid build + - name: Prepare F-Droid build (no self-update) run: | sed -i '/android.permission.REQUEST_INSTALL_PACKAGES/d' app/src/main/AndroidManifest.xml + sed -i 's/buildConfigField "boolean", "IS_FDROID_BUILD", "false"/buildConfigField "boolean", "IS_FDROID_BUILD", "true"/' app/build.gradle - name: Build APK run: ./gradlew assembleRelease --stacktrace diff --git a/app/build.gradle b/app/build.gradle index d925f0ac..860e2fdb 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -15,6 +15,8 @@ android { versionCode 184 versionName "6.0.0-pre1" + buildConfigField "boolean", "IS_FDROID_BUILD", "false" + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" vectorDrawables { useSupportLibrary = true diff --git a/app/src/main/java/com/greenart7c3/nostrsigner/Amber.kt b/app/src/main/java/com/greenart7c3/nostrsigner/Amber.kt index 25049826..d14c9b02 100644 --- a/app/src/main/java/com/greenart7c3/nostrsigner/Amber.kt +++ b/app/src/main/java/com/greenart7c3/nostrsigner/Amber.kt @@ -132,7 +132,7 @@ class Amber : // This runs on the foreground only val profileSubscription = ProfileSubscription(client, this, applicationIOScope) - val zapstoreUpdater: ZapstoreUpdater? = if (!BuildFlavorChecker.isOfflineFlavor()) { + val zapstoreUpdater: ZapstoreUpdater? = if (!BuildFlavorChecker.isOfflineFlavor() && !BuildConfig.IS_FDROID_BUILD) { ZapstoreUpdater(client, applicationIOScope) } else { null