From 1cfd00c924a3897b2769061137550af1775b41fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Rebelo?= Date: Sat, 23 Dec 2023 21:51:54 +0000 Subject: [PATCH] Pixoo: Add setting to disable notifications --- .../gadgetbridge/devices/divoom/PixooCoordinator.java | 2 ++ .../gadgetbridge/service/devices/divoom/PixooProtocol.java | 5 +++++ .../gadgetbridge/service/serial/GBDeviceProtocol.java | 6 ++++++ 3 files changed, 13 insertions(+) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/divoom/PixooCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/divoom/PixooCoordinator.java index 2f3ab8e81..5996da4b9 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/divoom/PixooCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/divoom/PixooCoordinator.java @@ -83,6 +83,8 @@ public class PixooCoordinator extends AbstractBLEDeviceCoordinator { R.xml.devicesettings_screen_brightness, R.xml.devicesettings_header_time, R.xml.devicesettings_timeformat, + R.xml.devicesettings_header_notifications, + R.xml.devicesettings_send_app_notifications, R.xml.devicesettings_header_other, R.xml.devicesettings_pixoo, R.xml.devicesettings_header_connection, diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/divoom/PixooProtocol.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/divoom/PixooProtocol.java index d9dcdc99c..760d2cf5a 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/divoom/PixooProtocol.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/divoom/PixooProtocol.java @@ -216,6 +216,11 @@ public class PixooProtocol extends GBDeviceProtocol { @Override public byte[] encodeNotification(NotificationSpec notificationSpec) { + if (!getDevicePrefs().getBoolean(DeviceSettingsPreferenceConst.PREF_SEND_APP_NOTIFICATIONS, true)) { + LOG.debug("App notifications disabled - ignoring"); + return null; + } + byte iconID; switch (notificationSpec.type) { case KAKAO_TALK: diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/serial/GBDeviceProtocol.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/serial/GBDeviceProtocol.java index 8551787cd..1b1389bc6 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/serial/GBDeviceProtocol.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/serial/GBDeviceProtocol.java @@ -22,6 +22,7 @@ import android.location.Location; import java.util.ArrayList; import java.util.UUID; +import nodomain.freeyourgadget.gadgetbridge.GBApplication; import nodomain.freeyourgadget.gadgetbridge.deviceevents.GBDeviceEvent; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; import nodomain.freeyourgadget.gadgetbridge.model.Alarm; @@ -31,6 +32,7 @@ import nodomain.freeyourgadget.gadgetbridge.model.NotificationSpec; import nodomain.freeyourgadget.gadgetbridge.model.Reminder; import nodomain.freeyourgadget.gadgetbridge.model.WeatherSpec; import nodomain.freeyourgadget.gadgetbridge.model.WorldClock; +import nodomain.freeyourgadget.gadgetbridge.util.Prefs; public abstract class GBDeviceProtocol { @@ -178,4 +180,8 @@ public abstract class GBDeviceProtocol { public byte[] encodeGpsLocation(Location location) { return null; } + + protected Prefs getDevicePrefs() { + return new Prefs(GBApplication.getDeviceSpecificSharedPrefs(getDevice().getAddress())); + } }