diff --git a/app/src/basic/res/xml/preferences.xml b/app/src/basic/res/xml/preferences.xml index c1e62f5ca..6744145bb 100644 --- a/app/src/basic/res/xml/preferences.xml +++ b/app/src/basic/res/xml/preferences.xml @@ -144,6 +144,12 @@ android:summary="@string/keep_install_history_summary" android:defaultValue="false" android:dependency="expert"/> + <CheckBoxPreference + android:key="hideAllNotifications" + android:title="@string/hide_all_notifications" + android:summary="@string/hide_all_notifications_summary" + android:defaultValue="false" + android:dependency="expert"/> <CheckBoxPreference android:key="forceOldIndex" android:title="@string/force_old_index" diff --git a/app/src/main/java/org/fdroid/fdroid/NotificationHelper.java b/app/src/main/java/org/fdroid/fdroid/NotificationHelper.java index c0eda020e..5c290d4e9 100644 --- a/app/src/main/java/org/fdroid/fdroid/NotificationHelper.java +++ b/app/src/main/java/org/fdroid/fdroid/NotificationHelper.java @@ -162,7 +162,7 @@ class NotificationHelper { return; } - if (!notificationManager.areNotificationsEnabled()) { + if (!notificationManager.areNotificationsEnabled() || Preferences.get().hideAllNotifications()) { return; } @@ -193,7 +193,7 @@ class NotificationHelper { } private void createSummaryNotifications() { - if (!notificationManager.areNotificationsEnabled()) { + if (!notificationManager.areNotificationsEnabled() || Preferences.get().hideAllNotifications()) { return; } diff --git a/app/src/main/java/org/fdroid/fdroid/Preferences.java b/app/src/main/java/org/fdroid/fdroid/Preferences.java index 6c42f88d7..e911b653a 100644 --- a/app/src/main/java/org/fdroid/fdroid/Preferences.java +++ b/app/src/main/java/org/fdroid/fdroid/Preferences.java @@ -105,6 +105,7 @@ public final class Preferences implements SharedPreferences.OnSharedPreferenceCh public static final String PREF_PANIC_EXIT = "pref_panic_exit"; public static final String PREF_PANIC_HIDE = "pref_panic_hide"; public static final String PREF_HIDE_ON_LONG_PRESS_SEARCH = "hideOnLongPressSearch"; + public static final String PREF_HIDE_ALL_NOTIFICATIONS = "hideAllNotifications"; public static final int OVER_NETWORK_NEVER = 0; public static final int OVER_NETWORK_ON_DEMAND = 1; @@ -489,6 +490,14 @@ public final class Preferences implements SharedPreferences.OnSharedPreferenceCh return preferences.getBoolean(PREF_HIDE_ON_LONG_PRESS_SEARCH, IGNORED_B); } + /** + * Preference for whitelabel builds that are meant to be entirely controlled + * by the server, without user interaction, e.g. "appliances". + */ + public boolean hideAllNotifications() { + return preferences.getBoolean(PREF_HIDE_ALL_NOTIFICATIONS, IGNORED_B); + } + /** * This is cached as it is called several times inside app list adapters. * Providing it here means the shared preferences file only needs to be diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b7694ee40..7cf88e1d4 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -16,6 +16,10 @@ <string name="updates">Updates</string> <string name="unstable_updates">Unstable updates</string> <string name="unstable_updates_summary">Suggest updates to unstable versions</string> + <string name="hide_all_notifications">Hide all notifications</string> + <string name="hide_all_notifications_summary">Prevent all actions from showing in the status bar and notification + drawer. + </string> <string name="keep_install_history">Keep install history</string> <string name="keep_install_history_summary">Store a log of all installs and uninstalls in a private store</string> <string name="force_old_index">Force old index format</string> diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index 84b3c138d..201964225 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -165,6 +165,12 @@ android:summary="@string/keep_install_history_summary" android:defaultValue="false" android:dependency="expert"/> + <CheckBoxPreference + android:key="hideAllNotifications" + android:title="@string/hide_all_notifications" + android:summary="@string/hide_all_notifications_summary" + android:defaultValue="false" + android:dependency="expert"/> <CheckBoxPreference android:key="forceOldIndex" android:title="@string/force_old_index"