1
0
mirror of https://codeberg.org/Freeyourgadget/Gadgetbridge synced 2024-11-30 05:52:57 +01:00

Moyoung: Fix DND and Lift Wrist settings

This commit is contained in:
Arjan Schrijver 2024-09-09 22:43:46 +02:00
parent 7db655cd39
commit 18768f5df3
5 changed files with 155 additions and 89 deletions

View File

@ -225,6 +225,7 @@ public class DeviceSettingsPreferenceConst {
public static final String PREF_DO_NOT_DISTURB_END = "do_not_disturb_end"; public static final String PREF_DO_NOT_DISTURB_END = "do_not_disturb_end";
public static final String PREF_DO_NOT_DISTURB_LIFT_WRIST = "do_not_disturb_lift_wrist"; public static final String PREF_DO_NOT_DISTURB_LIFT_WRIST = "do_not_disturb_lift_wrist";
public static final String PREF_DO_NOT_DISTURB_NOT_WEAR = "do_not_disturb_not_wear"; public static final String PREF_DO_NOT_DISTURB_NOT_WEAR = "do_not_disturb_not_wear";
public static final String PREF_DO_NOT_DISTURB_BOOL = "do_not_disturb_on_off";
public static final String PREF_DO_NOT_DISTURB_OFF = "off"; public static final String PREF_DO_NOT_DISTURB_OFF = "off";
public static final String PREF_DO_NOT_DISTURB_AUTOMATIC = "automatic"; public static final String PREF_DO_NOT_DISTURB_AUTOMATIC = "automatic";
public static final String PREF_DO_NOT_DISTURB_ALWAYS = "always"; public static final String PREF_DO_NOT_DISTURB_ALWAYS = "always";

View File

@ -571,6 +571,7 @@ public class DeviceSpecificSettingsFragment extends AbstractPreferenceFragment i
addPreferenceHandlerFor(PREF_DO_NOT_DISTURB_SU); addPreferenceHandlerFor(PREF_DO_NOT_DISTURB_SU);
addPreferenceHandlerFor(PREF_DO_NOT_DISTURB_LIFT_WRIST); addPreferenceHandlerFor(PREF_DO_NOT_DISTURB_LIFT_WRIST);
addPreferenceHandlerFor(PREF_DO_NOT_DISTURB_NOT_WEAR); addPreferenceHandlerFor(PREF_DO_NOT_DISTURB_NOT_WEAR);
addPreferenceHandlerFor(PREF_DO_NOT_DISTURB_BOOL);
addPreferenceHandlerFor(PREF_FIND_PHONE); addPreferenceHandlerFor(PREF_FIND_PHONE);
addPreferenceHandlerFor(PREF_FIND_PHONE_DURATION); addPreferenceHandlerFor(PREF_FIND_PHONE_DURATION);
addPreferenceHandlerFor(PREF_AUTOLIGHT); addPreferenceHandlerFor(PREF_AUTOLIGHT);

View File

@ -188,6 +188,7 @@ public abstract class AbstractMoyoungDeviceCoordinator extends AbstractBLEDevice
new MoyoungSettingBool("SEDENTARY_REMINDER", MoyoungConstants.CMD_QUERY_SEDENTARY_REMINDER, MoyoungConstants.CMD_SET_SEDENTARY_REMINDER), new MoyoungSettingBool("SEDENTARY_REMINDER", MoyoungConstants.CMD_QUERY_SEDENTARY_REMINDER, MoyoungConstants.CMD_SET_SEDENTARY_REMINDER),
new MoyoungSettingRemindersToMove("REMINDERS_TO_MOVE_PERIOD", MoyoungConstants.CMD_QUERY_REMINDERS_TO_MOVE_PERIOD, MoyoungConstants.CMD_SET_REMINDERS_TO_MOVE_PERIOD), new MoyoungSettingRemindersToMove("REMINDERS_TO_MOVE_PERIOD", MoyoungConstants.CMD_QUERY_REMINDERS_TO_MOVE_PERIOD, MoyoungConstants.CMD_SET_REMINDERS_TO_MOVE_PERIOD),
new MoyoungSettingTimeRange("DO_NOT_DISTURB_TIME", MoyoungConstants.CMD_QUERY_DO_NOT_DISTURB_TIME, MoyoungConstants.CMD_SET_DO_NOT_DISTURB_TIME), new MoyoungSettingTimeRange("DO_NOT_DISTURB_TIME", MoyoungConstants.CMD_QUERY_DO_NOT_DISTURB_TIME, MoyoungConstants.CMD_SET_DO_NOT_DISTURB_TIME),
new MoyoungSettingBool("DO_NOT_DISTURB_ONOFF", MoyoungConstants.CMD_QUERY_DO_NOT_DISTURB_TIME, MoyoungConstants.CMD_SET_DO_NOT_DISTURB_TIME),
// (*) new MoyoungSetting("PSYCHOLOGICAL_PERIOD", MoyoungConstants.CMD_QUERY_PSYCHOLOGICAL_PERIOD, MoyoungConstants.CMD_SET_PSYCHOLOGICAL_PERIOD), // (*) new MoyoungSetting("PSYCHOLOGICAL_PERIOD", MoyoungConstants.CMD_QUERY_PSYCHOLOGICAL_PERIOD, MoyoungConstants.CMD_SET_PSYCHOLOGICAL_PERIOD),
new MoyoungSettingBool("BREATHING_LIGHT", MoyoungConstants.CMD_QUERY_BREATHING_LIGHT, MoyoungConstants.CMD_SET_BREATHING_LIGHT) new MoyoungSettingBool("BREATHING_LIGHT", MoyoungConstants.CMD_QUERY_BREATHING_LIGHT, MoyoungConstants.CMD_SET_BREATHING_LIGHT)
@ -199,14 +200,16 @@ public abstract class AbstractMoyoungDeviceCoordinator extends AbstractBLEDevice
final DeviceSpecificSettings deviceSpecificSettings = new DeviceSpecificSettings(); final DeviceSpecificSettings deviceSpecificSettings = new DeviceSpecificSettings();
final List<Integer> generic = deviceSpecificSettings.addRootScreen(DeviceSpecificSettingsScreen.GENERIC); final List<Integer> generic = deviceSpecificSettings.addRootScreen(DeviceSpecificSettingsScreen.GENERIC);
generic.add(R.xml.devicesettings_moyoung_device_version); generic.add(R.xml.devicesettings_moyoung_device_version);
generic.add(R.xml.devicesettings_heartrate_interval);
generic.add(R.xml.devicesettings_timeformat); generic.add(R.xml.devicesettings_timeformat);
generic.add(R.xml.devicesettings_moyoung_watchface); generic.add(R.xml.devicesettings_moyoung_watchface);
generic.add(R.xml.devicesettings_liftwrist_display); generic.add(R.xml.devicesettings_liftwrist_display);
generic.add(R.xml.devicesettings_moyoung_sedentary_reminder); // generic.add(R.xml.devicesettings_donotdisturb_no_auto); // not supported by Colmi i28 Ultra
generic.add(R.xml.devicesettings_donotdisturb_no_auto); generic.add(R.xml.devicesettings_donotdisturb_on_off);
generic.add(R.xml.devicesettings_world_clocks); generic.add(R.xml.devicesettings_world_clocks);
generic.add(R.xml.devicesettings_sync_calendar); generic.add(R.xml.devicesettings_sync_calendar);
final List<Integer> health = deviceSpecificSettings.addRootScreen(DeviceSpecificSettingsScreen.HEALTH);
health.add(R.xml.devicesettings_heartrate_interval);
health.add(R.xml.devicesettings_moyoung_sedentary_reminder);
return deviceSpecificSettings; return deviceSpecificSettings;
} }

View File

@ -18,6 +18,7 @@ package nodomain.freeyourgadget.gadgetbridge.service.devices.moyoung;
import android.bluetooth.BluetoothGatt; import android.bluetooth.BluetoothGatt;
import android.bluetooth.BluetoothGattCharacteristic; import android.bluetooth.BluetoothGattCharacteristic;
import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.os.Handler; import android.os.Handler;
import android.text.format.DateFormat; import android.text.format.DateFormat;
@ -77,6 +78,7 @@ import nodomain.freeyourgadget.gadgetbridge.devices.moyoung.settings.MoyoungEnum
import nodomain.freeyourgadget.gadgetbridge.devices.moyoung.settings.MoyoungSetting; import nodomain.freeyourgadget.gadgetbridge.devices.moyoung.settings.MoyoungSetting;
import nodomain.freeyourgadget.gadgetbridge.devices.moyoung.settings.MoyoungSettingEnum; import nodomain.freeyourgadget.gadgetbridge.devices.moyoung.settings.MoyoungSettingEnum;
import nodomain.freeyourgadget.gadgetbridge.devices.moyoung.settings.MoyoungSettingRemindersToMove; import nodomain.freeyourgadget.gadgetbridge.devices.moyoung.settings.MoyoungSettingRemindersToMove;
import nodomain.freeyourgadget.gadgetbridge.devices.moyoung.settings.MoyoungSettingTimeRange;
import nodomain.freeyourgadget.gadgetbridge.entities.BaseActivitySummary; import nodomain.freeyourgadget.gadgetbridge.entities.BaseActivitySummary;
import nodomain.freeyourgadget.gadgetbridge.entities.BaseActivitySummaryDao; import nodomain.freeyourgadget.gadgetbridge.entities.BaseActivitySummaryDao;
import nodomain.freeyourgadget.gadgetbridge.entities.Device; import nodomain.freeyourgadget.gadgetbridge.entities.Device;
@ -90,6 +92,7 @@ import nodomain.freeyourgadget.gadgetbridge.model.ActivityKind;
import nodomain.freeyourgadget.gadgetbridge.model.ActivitySample; import nodomain.freeyourgadget.gadgetbridge.model.ActivitySample;
import nodomain.freeyourgadget.gadgetbridge.model.ActivityUser; import nodomain.freeyourgadget.gadgetbridge.model.ActivityUser;
import nodomain.freeyourgadget.gadgetbridge.model.Alarm; import nodomain.freeyourgadget.gadgetbridge.model.Alarm;
import nodomain.freeyourgadget.gadgetbridge.model.BatteryState;
import nodomain.freeyourgadget.gadgetbridge.model.CalendarEventSpec; import nodomain.freeyourgadget.gadgetbridge.model.CalendarEventSpec;
import nodomain.freeyourgadget.gadgetbridge.model.CallSpec; import nodomain.freeyourgadget.gadgetbridge.model.CallSpec;
import nodomain.freeyourgadget.gadgetbridge.model.DeviceService; import nodomain.freeyourgadget.gadgetbridge.model.DeviceService;
@ -455,6 +458,23 @@ public class MoyoungDeviceSupport extends AbstractBTLEDeviceSupport {
return true; return true;
} }
if (packetType == MoyoungConstants.CMD_QUERY_QUICK_VIEW)
{
LOG.info("AOD or Lift Wrist toggle changed to: {}", payload[0] == 0x00 ? "enabled" : "disabled");
onReadConfigurationDone(getSetting("QUICK_VIEW"), payload[0], null);
return true;
}
if (packetType == MoyoungConstants.CMD_QUERY_DO_NOT_DISTURB_TIME)
{
LOG.info("DND setting changed to: {}", payload[0]);
if (payload.length > 4)
onReadConfigurationDone(getSetting("DO_NOT_DISTURB_TIME"), payload, null);
else
onReadConfigurationDone(getSetting("DO_NOT_DISTURB_ONOFF"), payload, null);
return true;
}
if (packetType == MoyoungConstants.CMD_ADVANCED_QUERY && payload[0] == MoyoungConstants.ARG_ADVANCED_QUERY_STOCKS) if (packetType == MoyoungConstants.CMD_ADVANCED_QUERY && payload[0] == MoyoungConstants.ARG_ADVANCED_QUERY_STOCKS)
{ {
LOG.info("Stocks queried from watch"); LOG.info("Stocks queried from watch");
@ -508,6 +528,7 @@ public class MoyoungDeviceSupport extends AbstractBTLEDeviceSupport {
private void handleBatteryInfo(BatteryInfo info) { private void handleBatteryInfo(BatteryInfo info) {
LOG.warn("Battery info: " + info); LOG.warn("Battery info: " + info);
batteryCmd.level = (short) info.getPercentCharged(); batteryCmd.level = (short) info.getPercentCharged();
if (batteryCmd.state == BatteryState.UNKNOWN) batteryCmd.state = BatteryState.BATTERY_NORMAL;
handleGBDeviceEvent(batteryCmd); handleGBDeviceEvent(batteryCmd);
} }
@ -1433,7 +1454,10 @@ public class MoyoungDeviceSupport extends AbstractBTLEDeviceSupport {
else if (timeSystemPref.equals(getContext().getString(R.string.p_timeformat_am_pm))) else if (timeSystemPref.equals(getContext().getString(R.string.p_timeformat_am_pm)))
timeSystem = MoyoungEnumTimeSystem.TIME_SYSTEM_12; timeSystem = MoyoungEnumTimeSystem.TIME_SYSTEM_12;
else else
throw new IllegalArgumentException(); if (DateFormat.is24HourFormat(GBApplication.getContext()))
timeSystem = MoyoungEnumTimeSystem.TIME_SYSTEM_24;
else
timeSystem = MoyoungEnumTimeSystem.TIME_SYSTEM_12;
sendSetting(getSetting("TIME_SYSTEM"), timeSystem); sendSetting(getSetting("TIME_SYSTEM"), timeSystem);
break; break;
@ -1515,47 +1539,52 @@ public class MoyoungDeviceSupport extends AbstractBTLEDeviceSupport {
sendSetting(versionSetting, versionSetting.findByValue(versionNum)); sendSetting(versionSetting, versionSetting.findByValue(versionNum));
break; break;
// case MiBandConst.PREF_DO_NOT_DISTURB: case DeviceSettingsPreferenceConst.PREF_DO_NOT_DISTURB_BOOL:
// case MiBandConst.PREF_DO_NOT_DISTURB_START: boolean dndEnabled = prefs.getBoolean(DeviceSettingsPreferenceConst.PREF_DO_NOT_DISTURB_BOOL, false);
// case MiBandConst.PREF_DO_NOT_DISTURB_END: sendSetting(getSetting("DO_NOT_DISTURB_ONOFF"), dndEnabled);
// String doNotDisturbPref = prefs.getString(MiBandConst.PREF_DO_NOT_DISTURB, MiBandConst.PREF_DO_NOT_DISTURB_OFF); break;
// boolean doNotDisturbEnabled = !MiBandConst.PREF_DO_NOT_DISTURB_OFF.equals(doNotDisturbPref);
//
// Calendar doNotDisturbStart = getTimePref(prefs, MiBandConst.PREF_DO_NOT_DISTURB_START, "01:00");
// Calendar doNotDisturbEnd = getTimePref(prefs, MiBandConst.PREF_DO_NOT_DISTURB_END, "06:00");
//
// MoyoungSettingTimeRange.TimeRange doNotDisturb;
// if (doNotDisturbEnabled)
// doNotDisturb = new MoyoungSettingTimeRange.TimeRange(
// (byte) doNotDisturbStart.get(Calendar.HOUR_OF_DAY), (byte) doNotDisturbStart.get(Calendar.MINUTE),
// (byte) doNotDisturbEnd.get(Calendar.HOUR_OF_DAY), (byte) doNotDisturbEnd.get(Calendar.MINUTE));
// else
// doNotDisturb = new MoyoungSettingTimeRange.TimeRange((byte)0, (byte)0, (byte)0, (byte)0);
//
// sendSetting(getSetting("DO_NOT_DISTURB_TIME"), doNotDisturb);
// break;
// case HuamiConst.PREF_ACTIVATE_DISPLAY_ON_LIFT: case DeviceSettingsPreferenceConst.PREF_DO_NOT_DISTURB:
// case HuamiConst.PREF_DISPLAY_ON_LIFT_START: case DeviceSettingsPreferenceConst.PREF_DO_NOT_DISTURB_START:
// case HuamiConst.PREF_DISPLAY_ON_LIFT_END: case DeviceSettingsPreferenceConst.PREF_DO_NOT_DISTURB_END:
// String quickViewPref = prefs.getString(HuamiConst.PREF_ACTIVATE_DISPLAY_ON_LIFT, MiBandConst.PREF_DO_NOT_DISTURB_OFF); String doNotDisturbPref = prefs.getString(DeviceSettingsPreferenceConst.PREF_DO_NOT_DISTURB, DeviceSettingsPreferenceConst.PREF_DO_NOT_DISTURB_OFF);
// boolean quickViewEnabled = !quickViewPref.equals(getContext().getString(R.string.p_off)); boolean doNotDisturbEnabled = !DeviceSettingsPreferenceConst.PREF_DO_NOT_DISTURB_OFF.equals(doNotDisturbPref);
// boolean quickViewScheduled = quickViewPref.equals(getContext().getString(R.string.p_scheduled));
// Calendar doNotDisturbStart = getTimePref(prefs, DeviceSettingsPreferenceConst.PREF_DO_NOT_DISTURB_START, "01:00");
// Calendar quickViewStart = getTimePref(prefs, HuamiConst.PREF_DISPLAY_ON_LIFT_START, "00:00"); Calendar doNotDisturbEnd = getTimePref(prefs, DeviceSettingsPreferenceConst.PREF_DO_NOT_DISTURB_END, "06:00");
// Calendar quickViewEnd = getTimePref(prefs, HuamiConst.PREF_DISPLAY_ON_LIFT_END, "00:00");
// MoyoungSettingTimeRange.TimeRange doNotDisturb;
// MoyoungSettingTimeRange.TimeRange quickViewTime; if (doNotDisturbEnabled)
// if (quickViewEnabled && quickViewScheduled) doNotDisturb = new MoyoungSettingTimeRange.TimeRange(
// quickViewTime = new MoyoungSettingTimeRange.TimeRange( (byte) doNotDisturbStart.get(Calendar.HOUR_OF_DAY), (byte) doNotDisturbStart.get(Calendar.MINUTE),
// (byte) quickViewStart.get(Calendar.HOUR_OF_DAY), (byte) quickViewStart.get(Calendar.MINUTE), (byte) doNotDisturbEnd.get(Calendar.HOUR_OF_DAY), (byte) doNotDisturbEnd.get(Calendar.MINUTE));
// (byte) quickViewEnd.get(Calendar.HOUR_OF_DAY), (byte) quickViewEnd.get(Calendar.MINUTE)); else
// else doNotDisturb = new MoyoungSettingTimeRange.TimeRange((byte)0, (byte)0, (byte)0, (byte)0);
// quickViewTime = new MoyoungSettingTimeRange.TimeRange((byte)0, (byte)0, (byte)0, (byte)0);
// sendSetting(getSetting("DO_NOT_DISTURB_TIME"), doNotDisturb);
// sendSetting(getSetting("QUICK_VIEW"), quickViewEnabled); break;
// sendSetting(getSetting("QUICK_VIEW_TIME"), quickViewTime);
// break; case DeviceSettingsPreferenceConst.PREF_ACTIVATE_DISPLAY_ON_LIFT:
case DeviceSettingsPreferenceConst.PREF_DISPLAY_ON_LIFT_START:
case DeviceSettingsPreferenceConst.PREF_DISPLAY_ON_LIFT_END:
String quickViewPref = prefs.getString(DeviceSettingsPreferenceConst.PREF_ACTIVATE_DISPLAY_ON_LIFT, DeviceSettingsPreferenceConst.PREF_DO_NOT_DISTURB_OFF);
boolean quickViewEnabled = !quickViewPref.equals(getContext().getString(R.string.p_off));
boolean quickViewScheduled = quickViewPref.equals(getContext().getString(R.string.p_scheduled));
Calendar quickViewStart = getTimePref(prefs, DeviceSettingsPreferenceConst.PREF_DISPLAY_ON_LIFT_START, "00:00");
Calendar quickViewEnd = getTimePref(prefs, DeviceSettingsPreferenceConst.PREF_DISPLAY_ON_LIFT_END, "00:00");
MoyoungSettingTimeRange.TimeRange quickViewTime;
if (quickViewEnabled && quickViewScheduled)
quickViewTime = new MoyoungSettingTimeRange.TimeRange(
(byte) quickViewStart.get(Calendar.HOUR_OF_DAY), (byte) quickViewStart.get(Calendar.MINUTE),
(byte) quickViewEnd.get(Calendar.HOUR_OF_DAY), (byte) quickViewEnd.get(Calendar.MINUTE));
else
quickViewTime = new MoyoungSettingTimeRange.TimeRange((byte)0, (byte)0, (byte)0, (byte)0);
sendSetting(getSetting("QUICK_VIEW"), quickViewEnabled);
sendSetting(getSetting("QUICK_VIEW_TIME"), quickViewTime);
break;
case MoyoungConstants.PREF_SEDENTARY_REMINDER: case MoyoungConstants.PREF_SEDENTARY_REMINDER:
String sedentaryReminderPref = prefs.getString(MoyoungConstants.PREF_SEDENTARY_REMINDER, "off"); String sedentaryReminderPref = prefs.getString(MoyoungConstants.PREF_SEDENTARY_REMINDER, "off");
@ -1662,10 +1691,8 @@ public class MoyoungDeviceSupport extends AbstractBTLEDeviceSupport {
public void onReadConfigurationDone(MoyoungSetting setting, Object value, byte[] data) public void onReadConfigurationDone(MoyoungSetting setting, Object value, byte[] data)
{ {
LOG.info("CONFIG " + setting.name + " = " + value); LOG.info("CONFIG " + setting.name + " = " + value);
Prefs prefs = getDevicePrefs();
final GBDeviceEventUpdatePreferences eventUpdatePreferences = new GBDeviceEventUpdatePreferences(); final GBDeviceEventUpdatePreferences eventUpdatePreferences = new GBDeviceEventUpdatePreferences();
// Prefs prefs = getDevicePrefs();
// Map<String, String> changedProperties = new ArrayMap<>();
// SharedPreferences.Editor prefsEditor = prefs.getPreferences().edit();
switch (setting.name) { switch (setting.name) {
case "TIME_SYSTEM": case "TIME_SYSTEM":
MoyoungEnumTimeSystem timeSystem = (MoyoungEnumTimeSystem) value; MoyoungEnumTimeSystem timeSystem = (MoyoungEnumTimeSystem) value;
@ -1688,13 +1715,10 @@ public class MoyoungDeviceSupport extends AbstractBTLEDeviceSupport {
// break; // break;
case "DISPLAY_WATCH_FACE": case "DISPLAY_WATCH_FACE":
// byte watchFace = (Byte) value;
// changedProperties.put(MoyoungConstants.PREF_MOYOUNG_WATCH_FACE, String.valueOf(watchFace));
eventUpdatePreferences.withPreference( eventUpdatePreferences.withPreference(
MoyoungConstants.PREF_MOYOUNG_WATCH_FACE, MoyoungConstants.PREF_MOYOUNG_WATCH_FACE,
String.valueOf((byte) value) String.valueOf((byte) value)
); );
evaluateGBDeviceEvent(eventUpdatePreferences);
break; break;
case "DEVICE_LANGUAGE": case "DEVICE_LANGUAGE":
@ -1712,37 +1736,71 @@ public class MoyoungDeviceSupport extends AbstractBTLEDeviceSupport {
// changedProperties.put(MoyoungConstants.PREF_MOYOUNG_DEVICE_VERSION, String.valueOf(deviceVersion.value())); // changedProperties.put(MoyoungConstants.PREF_MOYOUNG_DEVICE_VERSION, String.valueOf(deviceVersion.value()));
break; break;
// case "DO_NOT_DISTURB_TIME": case "DO_NOT_DISTURB_ONOFF":
// MoyoungSettingTimeRange.TimeRange doNotDisturb = (MoyoungSettingTimeRange.TimeRange) value; eventUpdatePreferences.withPreference(
// if (doNotDisturb.start_h == 0 && doNotDisturb.start_m == 0 && DeviceSettingsPreferenceConst.PREF_DO_NOT_DISTURB_BOOL,
// doNotDisturb.end_h == 0 && doNotDisturb.end_m == 0) BLETypeConversions.toUint24((byte[]) value) != 0
// changedProperties.put(MiBandConst.PREF_DO_NOT_DISTURB, MiBandConst.PREF_DO_NOT_DISTURB_OFF); );
// else break;
// changedProperties.put(MiBandConst.PREF_DO_NOT_DISTURB, MiBandConst.PREF_DO_NOT_DISTURB_SCHEDULED);
// changedProperties.put(MiBandConst.PREF_DO_NOT_DISTURB_START, String.format(Locale.ROOT, "%02d:%02d", doNotDisturb.start_h, doNotDisturb.start_m));
// changedProperties.put(MiBandConst.PREF_DO_NOT_DISTURB_END, String.format(Locale.ROOT, "%02d:%02d", doNotDisturb.end_h, doNotDisturb.end_m));
// break;
// case "QUICK_VIEW": case "DO_NOT_DISTURB_TIME":
// boolean quickViewEnabled = (Boolean) value; MoyoungSettingTimeRange.TimeRange doNotDisturb = (MoyoungSettingTimeRange.TimeRange) value;
// boolean quickViewScheduled = prefs.getString(HuamiConst.PREF_ACTIVATE_DISPLAY_ON_LIFT, getContext().getString(R.string.p_off)).equals(getContext().getString(R.string.p_scheduled)); if (doNotDisturb.start_h == 0 && doNotDisturb.start_m == 0 &&
// changedProperties.put(HuamiConst.PREF_ACTIVATE_DISPLAY_ON_LIFT, quickViewEnabled ? (quickViewScheduled ? getContext().getString(R.string.p_scheduled) : getContext().getString(R.string.p_on)) : getContext().getString(R.string.p_off)); doNotDisturb.end_h == 0 && doNotDisturb.end_m == 0)
// break; eventUpdatePreferences.withPreference(
DeviceSettingsPreferenceConst.PREF_DO_NOT_DISTURB,
DeviceSettingsPreferenceConst.PREF_DO_NOT_DISTURB_OFF
);
else
eventUpdatePreferences.withPreference(
DeviceSettingsPreferenceConst.PREF_DO_NOT_DISTURB,
DeviceSettingsPreferenceConst.PREF_DO_NOT_DISTURB_SCHEDULED
);
eventUpdatePreferences.withPreference(
DeviceSettingsPreferenceConst.PREF_DO_NOT_DISTURB_START,
String.format(Locale.ROOT, "%02d:%02d", doNotDisturb.start_h, doNotDisturb.start_m)
);
eventUpdatePreferences.withPreference(
DeviceSettingsPreferenceConst.PREF_DO_NOT_DISTURB_END,
String.format(Locale.ROOT, "%02d:%02d", doNotDisturb.end_h, doNotDisturb.end_m)
);
break;
// case "QUICK_VIEW_TIME": case "QUICK_VIEW":
// boolean quickViewEnabled2 = !prefs.getString(HuamiConst.PREF_ACTIVATE_DISPLAY_ON_LIFT, getContext().getString(R.string.p_off)).equals(getContext().getString(R.string.p_off)); boolean quickViewEnabled = (Boolean) value;
// MoyoungSettingTimeRange.TimeRange quickViewTime = (MoyoungSettingTimeRange.TimeRange) value; boolean quickViewScheduled = prefs.getString(DeviceSettingsPreferenceConst.PREF_ACTIVATE_DISPLAY_ON_LIFT, getContext().getString(R.string.p_off)).equals(getContext().getString(R.string.p_scheduled));
// if (quickViewEnabled2) eventUpdatePreferences.withPreference(
// { DeviceSettingsPreferenceConst.PREF_ACTIVATE_DISPLAY_ON_LIFT,
// if (quickViewTime.start_h == 0 && quickViewTime.start_m == 0 && quickViewEnabled ? (quickViewScheduled ? getContext().getString(R.string.p_scheduled) : getContext().getString(R.string.p_on)) : getContext().getString(R.string.p_off)
// quickViewTime.end_h == 0 && quickViewTime.end_m == 0) );
// changedProperties.put(HuamiConst.PREF_ACTIVATE_DISPLAY_ON_LIFT, getContext().getString(R.string.p_on)); break;
// else
// changedProperties.put(HuamiConst.PREF_ACTIVATE_DISPLAY_ON_LIFT, getContext().getString(R.string.p_scheduled)); case "QUICK_VIEW_TIME":
// } boolean quickViewEnabled2 = !prefs.getString(DeviceSettingsPreferenceConst.PREF_ACTIVATE_DISPLAY_ON_LIFT, getContext().getString(R.string.p_off)).equals(getContext().getString(R.string.p_off));
// changedProperties.put(HuamiConst.PREF_DISPLAY_ON_LIFT_START, String.format(Locale.ROOT, "%02d:%02d", quickViewTime.start_h, quickViewTime.start_m)); MoyoungSettingTimeRange.TimeRange quickViewTime = (MoyoungSettingTimeRange.TimeRange) value;
// changedProperties.put(HuamiConst.PREF_DISPLAY_ON_LIFT_END, String.format(Locale.ROOT, "%02d:%02d", quickViewTime.end_h, quickViewTime.end_m)); if (quickViewEnabled2)
// break; {
if (quickViewTime.start_h == 0 && quickViewTime.start_m == 0 &&
quickViewTime.end_h == 0 && quickViewTime.end_m == 0)
eventUpdatePreferences.withPreference(
DeviceSettingsPreferenceConst.PREF_ACTIVATE_DISPLAY_ON_LIFT,
getContext().getString(R.string.p_on)
);
else
eventUpdatePreferences.withPreference(
DeviceSettingsPreferenceConst.PREF_ACTIVATE_DISPLAY_ON_LIFT,
getContext().getString(R.string.p_scheduled)
);
}
eventUpdatePreferences.withPreference(
DeviceSettingsPreferenceConst.PREF_DISPLAY_ON_LIFT_START,
String.format(Locale.ROOT, "%02d:%02d", quickViewTime.start_h, quickViewTime.start_m)
);
eventUpdatePreferences.withPreference(
DeviceSettingsPreferenceConst.PREF_DISPLAY_ON_LIFT_END,
String.format(Locale.ROOT, "%02d:%02d", quickViewTime.end_h, quickViewTime.end_m)
);
break;
case "SEDENTARY_REMINDER": case "SEDENTARY_REMINDER":
boolean sedentaryReminderEnabled = (Boolean) value; boolean sedentaryReminderEnabled = (Boolean) value;
@ -1757,16 +1815,7 @@ public class MoyoungDeviceSupport extends AbstractBTLEDeviceSupport {
// changedProperties.put(MoyoungConstants.PREF_SEDENTARY_REMINDER_END, String.valueOf(remindersToMove.end_h)); // changedProperties.put(MoyoungConstants.PREF_SEDENTARY_REMINDER_END, String.valueOf(remindersToMove.end_h));
break; break;
} }
// for (Map.Entry<String, String> property : changedProperties.entrySet()) evaluateGBDeviceEvent(eventUpdatePreferences);
// prefsEditor.putString(property.getKey(), property.getValue());
// prefsEditor.apply();
// for (Map.Entry<String, String> property : changedProperties.entrySet())
// {
// GBDeviceEventConfigurationRead configReadEvent = new GBDeviceEventConfigurationRead();
// configReadEvent.config = property.getKey();
// configReadEvent.event = GBDeviceEventConfigurationRead.Event.SUCCESS;
// evaluateGBDeviceEvent(configReadEvent);
// }
} }
@Override @Override

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<SwitchPreferenceCompat
android:defaultValue="false"
android:icon="@drawable/ic_block"
android:key="do_not_disturb_on_off"
android:layout="@layout/preference_checkbox"
android:title="@string/mi2_prefs_do_not_disturb"
android:summary="@string/mi2_prefs_do_not_disturb_summary" />
</androidx.preference.PreferenceScreen>