mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge
synced 2024-11-11 12:39:26 +01:00
Xiaomi: Re-enable screen on on notifications preference
- Disabled by accident on 2063bc2df
- Move preference to XiaomiNotificationService
- Get preference value on connection
This commit is contained in:
parent
2063bc2dfd
commit
2ff92c73f8
@ -388,7 +388,7 @@ public abstract class XiaomiCoordinator extends AbstractBLEDeviceCoordinator {
|
||||
// TODO not implemented settings.add(R.xml.devicesettings_vibrationpatterns);
|
||||
// TODO not implemented settings.add(R.xml.devicesettings_donotdisturb_withauto_and_always);
|
||||
settings.add(R.xml.devicesettings_send_app_notifications);
|
||||
// TODO not implemented settings.add(R.xml.devicesettings_screen_on_on_notifications);
|
||||
settings.add(R.xml.devicesettings_screen_on_on_notifications);
|
||||
// TODO not implemented settings.add(R.xml.devicesettings_autoremove_notifications);
|
||||
if (getCannedRepliesSlotCount(device) > 0) {
|
||||
settings.add(R.xml.devicesettings_canned_dismisscall_16);
|
||||
|
@ -47,6 +47,7 @@ import nodomain.freeyourgadget.gadgetbridge.service.devices.xiaomi.XiaomiPrefere
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.xiaomi.XiaomiSupport;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.BitmapUtil;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.NotificationUtils;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.Prefs;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.StringUtils;
|
||||
|
||||
public class XiaomiNotificationService extends AbstractXiaomiService implements XiaomiDataUploadService.Callback {
|
||||
@ -60,6 +61,8 @@ public class XiaomiNotificationService extends AbstractXiaomiService implements
|
||||
public static final int CMD_NOTIFICATION_DISMISS = 1;
|
||||
public static final int CMD_CALL_REJECT = 2;
|
||||
public static final int CMD_CALL_IGNORE = 5;
|
||||
public static final int CMD_SCREEN_ON_ON_NOTIFICATIONS_GET = 6;
|
||||
public static final int CMD_SCREEN_ON_ON_NOTIFICATIONS_SET = 7;
|
||||
public static final int CMD_OPEN_ON_PHONE = 8;
|
||||
public static final int CMD_CANNED_MESSAGES_GET = 9;
|
||||
public static final int CMD_CANNED_MESSAGES_SET = 12; // also canned message reply
|
||||
@ -78,6 +81,7 @@ public class XiaomiNotificationService extends AbstractXiaomiService implements
|
||||
|
||||
@Override
|
||||
public void initialize() {
|
||||
getSupport().sendCommand("get screen on on notifications", COMMAND_TYPE, CMD_SCREEN_ON_ON_NOTIFICATIONS_GET);
|
||||
requestCannedMessages();
|
||||
}
|
||||
|
||||
@ -106,6 +110,15 @@ public class XiaomiNotificationService extends AbstractXiaomiService implements
|
||||
deviceEvtCallControl.event = GBDeviceEventCallControl.Event.IGNORE;
|
||||
getSupport().evaluateGBDeviceEvent(deviceEvtCallControl);
|
||||
return;
|
||||
case CMD_SCREEN_ON_ON_NOTIFICATIONS_GET:
|
||||
final boolean screenOnOnNotifications = cmd.getNotification().getScreenOnOnNotifications();
|
||||
LOG.debug("Got screen on on notifications: {}", screenOnOnNotifications);
|
||||
final GBDeviceEventUpdatePreferences eventUpdatePreferences = new GBDeviceEventUpdatePreferences(
|
||||
DeviceSettingsPreferenceConst.PREF_SCREEN_ON_ON_NOTIFICATIONS,
|
||||
screenOnOnNotifications
|
||||
);
|
||||
getSupport().evaluateGBDeviceEvent(eventUpdatePreferences);
|
||||
return;
|
||||
case CMD_OPEN_ON_PHONE:
|
||||
LOG.debug("Open on phone {}", cmd.getNotification().getOpenOnPhone().getId());
|
||||
deviceEvtNotificationControl.handle = cmd.getNotification().getOpenOnPhone().getId();
|
||||
@ -125,6 +138,17 @@ public class XiaomiNotificationService extends AbstractXiaomiService implements
|
||||
LOG.warn("Unhandled notification command {}", cmd.getSubtype());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onSendConfiguration(final String config, final Prefs prefs) {
|
||||
switch (config) {
|
||||
case DeviceSettingsPreferenceConst.PREF_SCREEN_ON_ON_NOTIFICATIONS:
|
||||
setScreenOnOnNotifications();
|
||||
return true;
|
||||
}
|
||||
|
||||
return super.onSendConfiguration(config, prefs);
|
||||
}
|
||||
|
||||
public void onNotification(final NotificationSpec notificationSpec) {
|
||||
if (!getDevicePrefs().getBoolean(DeviceSettingsPreferenceConst.PREF_SEND_APP_NOTIFICATIONS, true)) {
|
||||
LOG.debug("App notifications disabled - ignoring");
|
||||
@ -257,6 +281,23 @@ public class XiaomiNotificationService extends AbstractXiaomiService implements
|
||||
);
|
||||
}
|
||||
|
||||
private void setScreenOnOnNotifications() {
|
||||
final Prefs prefs = getDevicePrefs();
|
||||
|
||||
final boolean screenOnOnNotificationsEnabled = prefs.getBoolean(DeviceSettingsPreferenceConst.PREF_SCREEN_ON_ON_NOTIFICATIONS, true);
|
||||
|
||||
LOG.info("Setting screen on on notification: {}", screenOnOnNotificationsEnabled);
|
||||
|
||||
getSupport().sendCommand(
|
||||
"set screen on on notification",
|
||||
XiaomiProto.Command.newBuilder()
|
||||
.setType(COMMAND_TYPE)
|
||||
.setSubtype(CMD_SCREEN_ON_ON_NOTIFICATIONS_SET)
|
||||
.setNotification(XiaomiProto.Notification.newBuilder().setScreenOnOnNotifications(screenOnOnNotificationsEnabled).build())
|
||||
.build()
|
||||
);
|
||||
}
|
||||
|
||||
public void onSetCannedMessages(final CannedMessagesSpec cannedMessagesSpec) {
|
||||
if (cannedMessagesSpec.type != CannedMessagesSpec.TYPE_REJECTEDCALLS) {
|
||||
LOG.warn("Got unsupported canned messages type: {}", cannedMessagesSpec.type);
|
||||
|
@ -67,7 +67,6 @@ public class XiaomiSystemService extends AbstractXiaomiService implements Xiaomi
|
||||
public static final int CMD_CLOCK = 3;
|
||||
public static final int CMD_FIRMWARE_INSTALL = 5;
|
||||
public static final int CMD_LANGUAGE = 6;
|
||||
public static final int CMD_SCREEN_ON_ON_NOTIFICAIONS = 7;
|
||||
public static final int CMD_PASSWORD_GET = 9;
|
||||
public static final int CMD_FIND_PHONE = 17;
|
||||
public static final int CMD_FIND_WATCH = 18;
|
||||
@ -160,9 +159,6 @@ public class XiaomiSystemService extends AbstractXiaomiService implements Xiaomi
|
||||
case HuamiConst.PREF_DISPLAY_ITEMS_SORTABLE:
|
||||
setDisplayItems();
|
||||
return true;
|
||||
case DeviceSettingsPreferenceConst.PREF_SCREEN_ON_ON_NOTIFICATIONS:
|
||||
setScreenOnOnNotifications();
|
||||
return true;
|
||||
}
|
||||
|
||||
return super.onSendConfiguration(config, prefs);
|
||||
@ -306,23 +302,6 @@ public class XiaomiSystemService extends AbstractXiaomiService implements Xiaomi
|
||||
);
|
||||
}
|
||||
|
||||
private void setScreenOnOnNotifications() {
|
||||
final Prefs prefs = getDevicePrefs();
|
||||
|
||||
final boolean screenOnOnNotificationsEnabled = prefs.getBoolean(DeviceSettingsPreferenceConst.PREF_SCREEN_ON_ON_NOTIFICATIONS, true);
|
||||
|
||||
LOG.info("Setting screen on on notification: {}", screenOnOnNotificationsEnabled);
|
||||
|
||||
getSupport().sendCommand(
|
||||
"set password",
|
||||
XiaomiProto.Command.newBuilder()
|
||||
.setType(CMD_SCREEN_ON_ON_NOTIFICAIONS) // Why? Would also expect COMMAND_TYPE here
|
||||
.setSubtype(CMD_SCREEN_ON_ON_NOTIFICAIONS)
|
||||
.setNotification(XiaomiProto.Notification.newBuilder().setScreenOnOnNotifications(screenOnOnNotificationsEnabled).build())
|
||||
.build()
|
||||
);
|
||||
}
|
||||
|
||||
private void handlePassword(final XiaomiProto.Password password) {
|
||||
LOG.debug("Got device password");
|
||||
final GBDeviceEventUpdatePreferences eventUpdatePreferences = new GBDeviceEventUpdatePreferences(
|
||||
|
Loading…
Reference in New Issue
Block a user