From 178331ce2ac9f6feb7188845b860fd843e40da63 Mon Sep 17 00:00:00 2001 From: adbenitez Date: Wed, 12 Jun 2024 03:49:45 +0200 Subject: [PATCH] disable push notifications setting if apk was built without support --- build.gradle | 2 ++ .../org/thoughtcrime/securesms/ApplicationContext.java | 10 +++++++--- .../preferences/NotificationsPreferenceFragment.java | 2 ++ .../java/org/thoughtcrime/securesms/util/Prefs.java | 4 +--- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/build.gradle b/build.gradle index bb6727540..39ac7c770 100644 --- a/build.gradle +++ b/build.gradle @@ -111,11 +111,13 @@ android { productFlavors { fat { dimension "none" + buildConfigField "boolean", "USE_PLAY_SERVICES", "false" } gplay { dimension "none" applicationId "chat.delta" apply plugin: "com.google.gms.google-services" + buildConfigField "boolean", "USE_PLAY_SERVICES", "true" } } diff --git a/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java b/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java index 6e9212dc0..d64ac8f62 100644 --- a/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java +++ b/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java @@ -227,10 +227,14 @@ public class ApplicationContext extends MultiDexApplication { fetchWorkRequest); AppCompatDelegate.setCompatVectorFromResourcesEnabled(true); - if(Prefs.isPushEnabled(this)) { - FcmReceiveService.register(this); + if (BuildConfig.USE_PLAY_SERVICES) { + if (Prefs.isPushEnabled(this)) { + FcmReceiveService.register(this); + } else { + Log.i(TAG, "FCM disabled in user settings"); + } } else { - Log.i(TAG, "FCM disabled in user settings"); + Log.i(TAG, "FCM disabled at build time"); } } diff --git a/src/main/java/org/thoughtcrime/securesms/preferences/NotificationsPreferenceFragment.java b/src/main/java/org/thoughtcrime/securesms/preferences/NotificationsPreferenceFragment.java index cb080829b..7b0258c9c 100644 --- a/src/main/java/org/thoughtcrime/securesms/preferences/NotificationsPreferenceFragment.java +++ b/src/main/java/org/thoughtcrime/securesms/preferences/NotificationsPreferenceFragment.java @@ -21,6 +21,7 @@ import androidx.preference.Preference; import android.text.TextUtils; import org.thoughtcrime.securesms.ApplicationPreferencesActivity; +import org.thoughtcrime.securesms.BuildConfig; import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.connect.DcHelper; import org.thoughtcrime.securesms.connect.KeepAliveService; @@ -74,6 +75,7 @@ public class NotificationsPreferenceFragment extends ListSummaryPreferenceFragme CheckBoxPreference usePushService = this.findPreference("pref_push_enabled"); usePushService.setChecked(Prefs.isPushEnabled(getContext())); + usePushService.setEnabled(BuildConfig.USE_PLAY_SERVICES); usePushService.setOnPreferenceChangeListener((preference, newValue) -> { final boolean enabled = (Boolean) newValue; if (!enabled) { diff --git a/src/main/java/org/thoughtcrime/securesms/util/Prefs.java b/src/main/java/org/thoughtcrime/securesms/util/Prefs.java index 8099d6516..ba898fb4a 100644 --- a/src/main/java/org/thoughtcrime/securesms/util/Prefs.java +++ b/src/main/java/org/thoughtcrime/securesms/util/Prefs.java @@ -173,9 +173,7 @@ public class Prefs { } public static boolean isPushEnabled(Context context) { - // Do not use PUSH for the the default application ID "com.b44t.messenger" which is used eg. used by F-Droid - boolean defaultPush = !BuildConfig.APPLICATION_ID.equals("com.b44t.messenger"); - return getBooleanPreference(context, "pref_push_enabled", defaultPush); + return BuildConfig.USE_PLAY_SERVICES && getBooleanPreference(context, "pref_push_enabled", true); } public static boolean isHardCompressionEnabled(Context context) {