From 23c39280c7be1ff870367ef46589af848d491288 Mon Sep 17 00:00:00 2001 From: Damien 'Psolyca' Gaignon Date: Sat, 30 Mar 2024 23:10:07 +0100 Subject: [PATCH] [Huawei] Rework settings menu with sub-screens --- .../devices/huawei/HuaweiBRCoordinator.java | 14 +- .../devices/huawei/HuaweiCoordinator.java | 94 +++++-- .../devices/huawei/HuaweiLECoordinator.java | 12 +- .../huawei/HuaweiSettingsCustomizer.java | 78 ------ .../honorband3/HonorBand3Coordinator.java | 9 - .../honorband4/HonorBand4Coordinator.java | 8 - .../honorband5/HonorBand5Coordinator.java | 10 - .../honorband6/HonorBand6Coordinator.java | 10 - .../honorband7/HonorBand7Coordinator.java | 10 - .../HonorMagicWatch2Coordinator.java | 7 - .../HuaweiBand4ProCoordinator.java | 10 - .../huaweiband6/HuaweiBand6Coordinator.java | 10 - .../huaweiband7/HuaweiBand7Coordinator.java | 10 - .../huaweiband8/HuaweiBand8Coordinator.java | 10 - .../HuaweiBandAw70Coordinator.java | 8 - .../HuaweiTalkBandB6Coordinator.java | 5 - .../HuaweiWatchFitCoordinator.java | 10 - .../HuaweiWatchGTCoordinator.java | 10 - .../HuaweiWatchGT2Coordinator.java | 7 - .../HuaweiWatchGT2eCoordinator.java | 10 - .../HuaweiWatchGT3Coordinator.java | 10 - .../HuaweiWatchGT4Coordinator.java | 10 - .../HuaweiWatchUltimateCoordinator.java | 10 - ...settings_disconnectnotification_noshed.xml | 3 +- ..._donotdisturb_allday_liftwirst_notwear.xml | 78 ++++++ .../main/res/xml/devicesettings_huawei.xml | 252 ------------------ .../res/xml/devicesettings_huawei_debug.xml | 67 +++++ 27 files changed, 236 insertions(+), 536 deletions(-) create mode 100644 app/src/main/res/xml/devicesettings_donotdisturb_allday_liftwirst_notwear.xml delete mode 100644 app/src/main/res/xml/devicesettings_huawei.xml create mode 100644 app/src/main/res/xml/devicesettings_huawei_debug.xml diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiBRCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiBRCoordinator.java index 9e25451b5..1edaf55af 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiBRCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiBRCoordinator.java @@ -31,6 +31,7 @@ import java.util.List; import de.greenrobot.dao.query.QueryBuilder; import nodomain.freeyourgadget.gadgetbridge.GBApplication; +import nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSpecificSettings; import nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSpecificSettingsCustomizer; import nodomain.freeyourgadget.gadgetbridge.GBException; import nodomain.freeyourgadget.gadgetbridge.devices.AbstractBLClassicDeviceCoordinator; @@ -76,7 +77,12 @@ public abstract class HuaweiBRCoordinator extends AbstractBLClassicDeviceCoordin public Class getPairingActivity() { return null; } - + + @Override + public String[] getSupportedLanguageSettings(GBDevice device) { + return huaweiCoordinator.getSupportedLanguageSettings(device); + } + @Override public int getBondingStyle(){ return BONDING_STYLE_ASK; @@ -193,7 +199,7 @@ public abstract class HuaweiBRCoordinator extends AbstractBLClassicDeviceCoordin @Override public boolean supportsMusicInfo() { - return getHuaweiCoordinator().supportsMusic(); + return huaweiCoordinator.supportsMusic(); } @Override @@ -206,8 +212,8 @@ public abstract class HuaweiBRCoordinator extends AbstractBLClassicDeviceCoordin return new HuaweiSampleProvider(device, session); } - public int[] getSupportedDeviceSpecificSettings(GBDevice device) { - return new int[]{}; + public DeviceSpecificSettings getDeviceSpecificSettings(final GBDevice device) { + return huaweiCoordinator.getDeviceSpecificSettings(device); } @Override diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiCoordinator.java index c5063bd6a..f572e956a 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiCoordinator.java @@ -30,6 +30,8 @@ import org.slf4j.Logger; import nodomain.freeyourgadget.gadgetbridge.GBApplication; import nodomain.freeyourgadget.gadgetbridge.R; +import nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSpecificSettings; +import nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSpecificSettingsScreen; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.packets.Notifications.NotificationConstraintsType; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; import nodomain.freeyourgadget.gadgetbridge.util.GB; @@ -177,36 +179,59 @@ public class HuaweiCoordinator { return notificationConstraints.get(which); } - public int[] genericHuaweiSupportedDeviceSpecificSettings(int[] additionalDeviceSpecificSettings) { - // Add all settings in the default table - // Hide / show table in HuaweiSettingsCustommizer - List dynamicSupportedDeviceSpecificSettings = new ArrayList<>(); + public DeviceSpecificSettings getDeviceSpecificSettings(final GBDevice device) { + final DeviceSpecificSettings deviceSpecificSettings = new DeviceSpecificSettings(); - // Could be limited to 0x04 0x01, but I don't know if that'll work properly - dynamicSupportedDeviceSpecificSettings.add(R.xml.devicesettings_allow_accept_reject_calls); + // Health + if (supportsInactivityWarnings()) + deviceSpecificSettings.addRootScreen(DeviceSpecificSettingsScreen.HEALTH, R.xml.devicesettings_inactivity_sheduled); + if (supportsTruSleep()) + deviceSpecificSettings.addRootScreen(DeviceSpecificSettingsScreen.HEALTH, R.xml.devicesettings_trusleep); + if (supportsHeartRate()) + deviceSpecificSettings.addRootScreen(DeviceSpecificSettingsScreen.HEALTH, R.xml.devicesettings_heartrate_automatic_enable); + if (supportsSPo2()) + deviceSpecificSettings.addRootScreen(DeviceSpecificSettingsScreen.HEALTH, R.xml.devicesettings_spo_automatic_enable); - // Only supported on specific devices - dynamicSupportedDeviceSpecificSettings.add(R.xml.devicesettings_huawei); - dynamicSupportedDeviceSpecificSettings.add(R.xml.devicesettings_trusleep); - dynamicSupportedDeviceSpecificSettings.add(R.xml.devicesettings_wearlocation); - dynamicSupportedDeviceSpecificSettings.add(R.xml.devicesettings_dateformat); - dynamicSupportedDeviceSpecificSettings.add(R.xml.devicesettings_timeformat); - dynamicSupportedDeviceSpecificSettings.add(R.xml.devicesettings_workmode); - dynamicSupportedDeviceSpecificSettings.add(R.xml.devicesettings_liftwrist_display_noshed); - dynamicSupportedDeviceSpecificSettings.add(R.xml.devicesettings_rotatewrist_cycleinfo); + // Notifications + final List notifications = deviceSpecificSettings.addRootScreen(DeviceSpecificSettingsScreen.NOTIFICATIONS); + notifications.add(R.xml.devicesettings_notifications_enable); + if (supportsNotificationOnBluetoothLoss()) + notifications.add(R.xml.devicesettings_disconnectnotification_noshed); + if (supportsDoNotDisturb(device)) + notifications.add(R.xml.devicesettings_donotdisturb_allday_liftwirst_notwear); - int size = dynamicSupportedDeviceSpecificSettings.size(); - if (additionalDeviceSpecificSettings != null) - size += additionalDeviceSpecificSettings.length; - int[] result = new int[size]; + // Workout - for (int i = 0; i < dynamicSupportedDeviceSpecificSettings.size(); i++) - result[i] = dynamicSupportedDeviceSpecificSettings.get(i); + // Other + deviceSpecificSettings.addRootScreen(R.xml.devicesettings_find_phone); + deviceSpecificSettings.addRootScreen(R.xml.devicesettings_disable_find_phone_with_dnd); + deviceSpecificSettings.addRootScreen(R.xml.devicesettings_allow_accept_reject_calls); - if (additionalDeviceSpecificSettings != null) - System.arraycopy(additionalDeviceSpecificSettings, 0, result, dynamicSupportedDeviceSpecificSettings.size(), additionalDeviceSpecificSettings.length); + // Time + if (supportsDateFormat()) { + final List dateTime = deviceSpecificSettings.addRootScreen(DeviceSpecificSettingsScreen.DATE_TIME); + dateTime.add(R.xml.devicesettings_dateformat); + dateTime.add(R.xml.devicesettings_timeformat); + } - return result; + // Display + if (supportsWearLocation(device)) + deviceSpecificSettings.addRootScreen(DeviceSpecificSettingsScreen.DISPLAY, R.xml.devicesettings_wearlocation); + if (supportsAutoWorkMode()) + deviceSpecificSettings.addRootScreen(DeviceSpecificSettingsScreen.DISPLAY, R.xml.devicesettings_workmode); + if (supportsActivateOnLift()) + deviceSpecificSettings.addRootScreen(DeviceSpecificSettingsScreen.DISPLAY, R.xml.devicesettings_liftwrist_display_noshed); + if (supportsRotateToCycleInfo()) + deviceSpecificSettings.addRootScreen(DeviceSpecificSettingsScreen.DISPLAY, R.xml.devicesettings_rotatewrist_cycleinfo); + // Currently on main setting menu. + /*if (supportsLanguageSetting()) + deviceSpecificSettings.addRootScreen(DeviceSpecificSettingsScreen.DISPLAY, R.xml.devicesettings_language_generic);*/ + + // Developer + final List developer = deviceSpecificSettings.addRootScreen(DeviceSpecificSettingsScreen.DEVELOPER); + developer.add(R.xml.devicesettings_huawei_debug); + + return deviceSpecificSettings; } public boolean supportsDateFormat() { @@ -301,6 +326,10 @@ public class HuaweiCoordinator { return supportsCommandForService(0x07, 0x23); } + public boolean supportsSPo2() { + return supportsCommandForService(0x07, 0x24); + } + public boolean supportsFitnessThresholdValue() { return supportsCommandForService(0x07, 0x29); } @@ -476,4 +505,21 @@ public class HuaweiCoordinator { public boolean isTransactionCrypted() { return this.transactionCrypted; } + + public String[] getSupportedLanguageSettings(GBDevice device) { + return new String[]{ + "auto", + "cs_CZ", + "de_DE", + "en_US", + "es_ES", + "fr_FR", + "it_IT", + "pt_BR", + "ru_RU", + "tr_TR", + "zh_CN", + "zh_TW", + }; + } } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiLECoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiLECoordinator.java index a7973476b..ee25083e8 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiLECoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiLECoordinator.java @@ -30,6 +30,7 @@ import java.util.Collections; import java.util.List; import de.greenrobot.dao.query.QueryBuilder; +import nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSpecificSettings; import nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSpecificSettingsCustomizer; import nodomain.freeyourgadget.gadgetbridge.GBException; import nodomain.freeyourgadget.gadgetbridge.devices.AbstractBLEDeviceCoordinator; @@ -76,6 +77,11 @@ public abstract class HuaweiLECoordinator extends AbstractBLEDeviceCoordinator i public Class getPairingActivity() { return null; } + + @Override + public String[] getSupportedLanguageSettings(GBDevice device) { + return huaweiCoordinator.getSupportedLanguageSettings(device); + } @Override public int getBondingStyle(){ @@ -193,7 +199,7 @@ public abstract class HuaweiLECoordinator extends AbstractBLEDeviceCoordinator i @Override public boolean supportsMusicInfo() { - return getHuaweiCoordinator().supportsMusic(); + return huaweiCoordinator.supportsMusic(); } @Override @@ -206,8 +212,8 @@ public abstract class HuaweiLECoordinator extends AbstractBLEDeviceCoordinator i return new HuaweiSampleProvider(device, session); } - public int[] getSupportedDeviceSpecificSettings(GBDevice device) { - return new int[]{}; + public DeviceSpecificSettings getDeviceSpecificSettings(final GBDevice device) { + return huaweiCoordinator.getDeviceSpecificSettings(device); } @Override diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiSettingsCustomizer.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiSettingsCustomizer.java index c7835cb93..b29db52be 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiSettingsCustomizer.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiSettingsCustomizer.java @@ -112,77 +112,6 @@ public class HuaweiSettingsCustomizer implements DeviceSpecificSettingsCustomize handler.addPreferenceHandlerFor(PREF_HUAWEI_TRUSLEEP); handler.addPreferenceHandlerFor(PREF_HUAWEI_DEBUG_REQUEST); - // Only supported on specific devices - final ListPreference languageSetting = handler.findPreference(PREF_LANGUAGE); - if (languageSetting != null) { - languageSetting.setVisible(false); - if (this.coordinator.supportsLanguageSetting()) - languageSetting.setVisible(true); - } - - final Preference dnd = handler.findPreference("screen_do_not_disturb"); - if (dnd != null) { - dnd.setVisible(false); - if (this.coordinator.supportsDoNotDisturb(handler.getDevice())) - dnd.setVisible(true); - } - - final Preference trusleep = handler.findPreference(PREF_HUAWEI_TRUSLEEP); - if (trusleep != null) { - trusleep.setVisible(false); - if (this.coordinator.supportsTruSleep()) - trusleep.setVisible(true); - } - -// if (this.coordinator.supportsHeartRate()) -// dynamicSupportedDeviceSpecificSettings.add(R.xml.devicesettings_heartrate_automatic_enable); - - final Preference inactivity = handler.findPreference("screen_inactivity"); - if (inactivity != null) { - inactivity.setVisible(false); - if (this.coordinator.supportsInactivityWarnings()) - inactivity.setVisible(true); - } - - final ListPreference wearLocation = handler.findPreference(PREF_WEARLOCATION); - if (wearLocation != null) { - wearLocation.setVisible(false); - if (this.coordinator.supportsWearLocation(handler.getDevice())) - wearLocation.setVisible(true); - } - - final ListPreference date = handler.findPreference(PREF_DATEFORMAT); - final ListPreference time = handler.findPreference(PREF_TIMEFORMAT); - if (date != null) { - date.setVisible(false); - time.setVisible(false); - if (this.coordinator.supportsDateFormat()) { - date.setVisible(true); - time.setVisible(true); - } - } - - final ListPreference workmode = handler.findPreference(PREF_HUAWEI_WORKMODE); - if (workmode != null) { - workmode.setVisible(false); - if (this.coordinator.supportsAutoWorkMode()) - workmode.setVisible(true); - } - - final SwitchPreferenceCompat liftwirst = handler.findPreference(PREF_LIFTWRIST_NOSHED); - if (liftwirst != null) { - liftwirst.setVisible(false); - if (this.coordinator.supportsActivateOnLift()) - liftwirst.setVisible(true); - } - - final SwitchPreferenceCompat rotatewirst = handler.findPreference(PREF_MI2_ROTATE_WRIST_TO_SWITCH_INFO); - if (rotatewirst != null) { - rotatewirst.setVisible(false); - if (this.coordinator.supportsRotateToCycleInfo()) - rotatewirst.setVisible(true); - } - final Preference forceOptions = handler.findPreference(PREF_FORCE_OPTIONS); if (forceOptions != null) { forceOptions.setVisible(false); @@ -203,13 +132,6 @@ public class HuaweiSettingsCustomizer implements DeviceSpecificSettingsCustomize } } - final SwitchPreferenceCompat disconnectNotification = handler.findPreference(PREF_DISCONNECTNOTIF_NOSHED); - if (disconnectNotification != null) { - disconnectNotification.setVisible(false); - if (this.coordinator.supportsNotificationOnBluetoothLoss()) - disconnectNotification.setVisible(true); - } - final SwitchPreferenceCompat reparseWorkout = handler.findPreference("huawei_reparse_workout_data"); if (reparseWorkout != null) { reparseWorkout.setVisible(false); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/honorband3/HonorBand3Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/honorband3/HonorBand3Coordinator.java index 2c90c11b3..6566db26d 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/honorband3/HonorBand3Coordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/honorband3/HonorBand3Coordinator.java @@ -51,15 +51,6 @@ public class HonorBand3Coordinator extends HuaweiLECoordinator { return true; } - @Override - public int[] getSupportedDeviceSpecificSettings(GBDevice device) { - return getHuaweiCoordinator().genericHuaweiSupportedDeviceSpecificSettings(new int[]{ - R.xml.devicesettings_heartrate_automatic_enable, - R.xml.devicesettings_find_phone, - R.xml.devicesettings_disable_find_phone_with_dnd, - }); - } - @Override public int getDeviceNameResource() { return R.string.devicetype_honor_band3; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/honorband4/HonorBand4Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/honorband4/HonorBand4Coordinator.java index 4b7100b96..96405bb07 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/honorband4/HonorBand4Coordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/honorband4/HonorBand4Coordinator.java @@ -50,14 +50,6 @@ public class HonorBand4Coordinator extends HuaweiLECoordinator { return Pattern.compile(HuaweiConstants.HO_BAND4_NAME + ".*", Pattern.CASE_INSENSITIVE); } - @Override - public int[] getSupportedDeviceSpecificSettings(GBDevice device) { - return getHuaweiCoordinator().genericHuaweiSupportedDeviceSpecificSettings(new int[]{ - R.xml.devicesettings_find_phone, - R.xml.devicesettings_disable_find_phone_with_dnd, - }); - } - @Override public int getDeviceNameResource() { return R.string.devicetype_honor_band4; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/honorband5/HonorBand5Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/honorband5/HonorBand5Coordinator.java index 098ebb45f..f71fbc175 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/honorband5/HonorBand5Coordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/honorband5/HonorBand5Coordinator.java @@ -65,16 +65,6 @@ public class HonorBand5Coordinator extends HuaweiLECoordinator { return new HuaweiSpo2SampleProvider(device, session); } - @Override - public int[] getSupportedDeviceSpecificSettings(GBDevice device) { - return getHuaweiCoordinator().genericHuaweiSupportedDeviceSpecificSettings(new int[]{ - R.xml.devicesettings_heartrate_automatic_enable, - R.xml.devicesettings_spo_automatic_enable, - R.xml.devicesettings_find_phone, - R.xml.devicesettings_disable_find_phone_with_dnd, - }); - } - @Override public int getDeviceNameResource() { return R.string.devicetype_honor_band5; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/honorband6/HonorBand6Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/honorband6/HonorBand6Coordinator.java index 91135d3d1..17e2a6638 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/honorband6/HonorBand6Coordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/honorband6/HonorBand6Coordinator.java @@ -60,16 +60,6 @@ public class HonorBand6Coordinator extends HuaweiLECoordinator { return new HuaweiSpo2SampleProvider(device, session); } - @Override - public int[] getSupportedDeviceSpecificSettings(GBDevice device) { - return getHuaweiCoordinator().genericHuaweiSupportedDeviceSpecificSettings(new int[]{ - R.xml.devicesettings_heartrate_automatic_enable, - R.xml.devicesettings_spo_automatic_enable, - R.xml.devicesettings_find_phone, - R.xml.devicesettings_disable_find_phone_with_dnd, - }); - } - @Override public int getDeviceNameResource() { return R.string.devicetype_honor_band6; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/honorband7/HonorBand7Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/honorband7/HonorBand7Coordinator.java index 2d902ad7c..266d8a5d0 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/honorband7/HonorBand7Coordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/honorband7/HonorBand7Coordinator.java @@ -60,16 +60,6 @@ public class HonorBand7Coordinator extends HuaweiLECoordinator { return new HuaweiSpo2SampleProvider(device, session); } - @Override - public int[] getSupportedDeviceSpecificSettings(GBDevice device) { - return getHuaweiCoordinator().genericHuaweiSupportedDeviceSpecificSettings(new int[]{ - R.xml.devicesettings_heartrate_automatic_enable, - R.xml.devicesettings_spo_automatic_enable, - R.xml.devicesettings_find_phone, - R.xml.devicesettings_disable_find_phone_with_dnd, - }); - } - @Override public int getDeviceNameResource() { return R.string.devicetype_honor_band7; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/honormagicwatch2/HonorMagicWatch2Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/honormagicwatch2/HonorMagicWatch2Coordinator.java index d7d3715cc..c63b5fa57 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/honormagicwatch2/HonorMagicWatch2Coordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/honormagicwatch2/HonorMagicWatch2Coordinator.java @@ -64,13 +64,6 @@ public class HonorMagicWatch2Coordinator extends HuaweiBRCoordinator { return new HuaweiSpo2SampleProvider(device, session); } - @Override - public int[] getSupportedDeviceSpecificSettings(GBDevice device) { - return getHuaweiCoordinator().genericHuaweiSupportedDeviceSpecificSettings(new int[]{ - R.xml.devicesettings_spo_automatic_enable, - }); - } - @Override public int getDeviceNameResource() { return R.string.devicetype_honor_magicwatch2; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiband4pro/HuaweiBand4ProCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiband4pro/HuaweiBand4ProCoordinator.java index 68802292b..4fdcd26c7 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiband4pro/HuaweiBand4ProCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiband4pro/HuaweiBand4ProCoordinator.java @@ -60,16 +60,6 @@ public class HuaweiBand4ProCoordinator extends HuaweiLECoordinator { return new HuaweiSpo2SampleProvider(device, session); } - @Override - public int[] getSupportedDeviceSpecificSettings(GBDevice device) { - return getHuaweiCoordinator().genericHuaweiSupportedDeviceSpecificSettings(new int[]{ - R.xml.devicesettings_heartrate_automatic_enable, - R.xml.devicesettings_spo_automatic_enable, - R.xml.devicesettings_find_phone, - R.xml.devicesettings_disable_find_phone_with_dnd, - }); - } - @Override public int getDeviceNameResource() { return R.string.devicetype_huawei_band4pro; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiband6/HuaweiBand6Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiband6/HuaweiBand6Coordinator.java index 332f21477..bb2414b0d 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiband6/HuaweiBand6Coordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiband6/HuaweiBand6Coordinator.java @@ -60,16 +60,6 @@ public class HuaweiBand6Coordinator extends HuaweiLECoordinator { return new HuaweiSpo2SampleProvider(device, session); } - @Override - public int[] getSupportedDeviceSpecificSettings(GBDevice device) { - return getHuaweiCoordinator().genericHuaweiSupportedDeviceSpecificSettings(new int[]{ - R.xml.devicesettings_heartrate_automatic_enable, - R.xml.devicesettings_spo_automatic_enable, - R.xml.devicesettings_find_phone, - R.xml.devicesettings_disable_find_phone_with_dnd, - }); - } - @Override public int getDeviceNameResource() { return R.string.devicetype_huawei_band6; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiband7/HuaweiBand7Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiband7/HuaweiBand7Coordinator.java index 47874081f..38fb639a9 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiband7/HuaweiBand7Coordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiband7/HuaweiBand7Coordinator.java @@ -60,16 +60,6 @@ public class HuaweiBand7Coordinator extends HuaweiLECoordinator { return new HuaweiSpo2SampleProvider(device, session); } - @Override - public int[] getSupportedDeviceSpecificSettings(GBDevice device) { - return getHuaweiCoordinator().genericHuaweiSupportedDeviceSpecificSettings(new int[]{ - R.xml.devicesettings_heartrate_automatic_enable, - R.xml.devicesettings_spo_automatic_enable, - R.xml.devicesettings_find_phone, - R.xml.devicesettings_disable_find_phone_with_dnd, - }); - } - @Override public int getDeviceNameResource() { return R.string.devicetype_huawei_band7; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiband8/HuaweiBand8Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiband8/HuaweiBand8Coordinator.java index 0ced42d26..576449d13 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiband8/HuaweiBand8Coordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiband8/HuaweiBand8Coordinator.java @@ -60,16 +60,6 @@ public class HuaweiBand8Coordinator extends HuaweiLECoordinator { return new HuaweiSpo2SampleProvider(device, session); } - @Override - public int[] getSupportedDeviceSpecificSettings(GBDevice device) { - return getHuaweiCoordinator().genericHuaweiSupportedDeviceSpecificSettings(new int[]{ - R.xml.devicesettings_heartrate_automatic_enable, - R.xml.devicesettings_spo_automatic_enable, - R.xml.devicesettings_find_phone, - R.xml.devicesettings_disable_find_phone_with_dnd, - }); - } - @Override public int getDeviceNameResource() { return R.string.devicetype_huawei_band8; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweibandaw70/HuaweiBandAw70Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweibandaw70/HuaweiBandAw70Coordinator.java index a8923a441..32ed3e9f6 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweibandaw70/HuaweiBandAw70Coordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweibandaw70/HuaweiBandAw70Coordinator.java @@ -41,14 +41,6 @@ public class HuaweiBandAw70Coordinator extends HuaweiLECoordinator { return Pattern.compile("(" + HuaweiConstants.HU_BAND3E_NAME + "|" + HuaweiConstants.HU_BAND4E_NAME + ").*", Pattern.CASE_INSENSITIVE); } - @Override - public int[] getSupportedDeviceSpecificSettings(GBDevice device) { - return getHuaweiCoordinator().genericHuaweiSupportedDeviceSpecificSettings(new int[]{ - R.xml.devicesettings_find_phone, - R.xml.devicesettings_disable_find_phone_with_dnd, - }); - } - @Override public int getDeviceNameResource() { return R.string.devicetype_huawei_band_aw70; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweitalkbandb6/HuaweiTalkBandB6Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweitalkbandb6/HuaweiTalkBandB6Coordinator.java index 47e7cddc2..f9c94e6f1 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweitalkbandb6/HuaweiTalkBandB6Coordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweitalkbandb6/HuaweiTalkBandB6Coordinator.java @@ -46,11 +46,6 @@ public class HuaweiTalkBandB6Coordinator extends HuaweiBRCoordinator { return Pattern.compile(HuaweiConstants.HU_TALKBANDB6_NAME + ".*", Pattern.CASE_INSENSITIVE); } - @Override - public int[] getSupportedDeviceSpecificSettings(GBDevice device) { - return getHuaweiCoordinator().genericHuaweiSupportedDeviceSpecificSettings(null); - } - @Override public int getDeviceNameResource() { return R.string.devicetype_huawei_talk_band_b6; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchfit/HuaweiWatchFitCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchfit/HuaweiWatchFitCoordinator.java index 559cdc7ea..5c8ee14e9 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchfit/HuaweiWatchFitCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchfit/HuaweiWatchFitCoordinator.java @@ -59,16 +59,6 @@ public class HuaweiWatchFitCoordinator extends HuaweiLECoordinator { return new HuaweiSpo2SampleProvider(device, session); } - @Override - public int[] getSupportedDeviceSpecificSettings(GBDevice device) { - return getHuaweiCoordinator().genericHuaweiSupportedDeviceSpecificSettings(new int[]{ - R.xml.devicesettings_heartrate_automatic_enable, - R.xml.devicesettings_spo_automatic_enable, - R.xml.devicesettings_find_phone, - R.xml.devicesettings_disable_find_phone_with_dnd, - }); - } - @Override public int getDeviceNameResource() { return R.string.devicetype_huawei_watchfit; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchgt/HuaweiWatchGTCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchgt/HuaweiWatchGTCoordinator.java index 600565b9c..c13d2a97a 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchgt/HuaweiWatchGTCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchgt/HuaweiWatchGTCoordinator.java @@ -60,16 +60,6 @@ public class HuaweiWatchGTCoordinator extends HuaweiLECoordinator { return new HuaweiSpo2SampleProvider(device, session); } - @Override - public int[] getSupportedDeviceSpecificSettings(GBDevice device) { - return getHuaweiCoordinator().genericHuaweiSupportedDeviceSpecificSettings(new int[]{ - R.xml.devicesettings_heartrate_automatic_enable, - R.xml.devicesettings_spo_automatic_enable, - R.xml.devicesettings_find_phone, - R.xml.devicesettings_disable_find_phone_with_dnd, - }); - } - @Override public int getDeviceNameResource() { return R.string.devicetype_huawei_watch_gt; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchgt2/HuaweiWatchGT2Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchgt2/HuaweiWatchGT2Coordinator.java index 3540a54db..919a2f449 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchgt2/HuaweiWatchGT2Coordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchgt2/HuaweiWatchGT2Coordinator.java @@ -59,13 +59,6 @@ public class HuaweiWatchGT2Coordinator extends HuaweiBRCoordinator { return new HuaweiSpo2SampleProvider(device, session); } - @Override - public int[] getSupportedDeviceSpecificSettings(GBDevice device) { - return getHuaweiCoordinator().genericHuaweiSupportedDeviceSpecificSettings(new int[]{ - R.xml.devicesettings_spo_automatic_enable, - }); - } - @Override public int getDeviceNameResource() { return R.string.devicetype_huawei_watchgt2; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchgt2e/HuaweiWatchGT2eCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchgt2e/HuaweiWatchGT2eCoordinator.java index 0c05cc303..55f17c63c 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchgt2e/HuaweiWatchGT2eCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchgt2e/HuaweiWatchGT2eCoordinator.java @@ -64,16 +64,6 @@ public class HuaweiWatchGT2eCoordinator extends HuaweiLECoordinator { return new HuaweiSpo2SampleProvider(device, session); } - @Override - public int[] getSupportedDeviceSpecificSettings(GBDevice device) { - return getHuaweiCoordinator().genericHuaweiSupportedDeviceSpecificSettings(new int[]{ - R.xml.devicesettings_heartrate_automatic_enable, - R.xml.devicesettings_spo_automatic_enable, - R.xml.devicesettings_find_phone, - R.xml.devicesettings_disable_find_phone_with_dnd, - }); - } - @Override public int getDeviceNameResource() { return R.string.devicetype_huawei_watchgt2e; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchgt3/HuaweiWatchGT3Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchgt3/HuaweiWatchGT3Coordinator.java index b0c2b3b5c..1288744ad 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchgt3/HuaweiWatchGT3Coordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchgt3/HuaweiWatchGT3Coordinator.java @@ -45,16 +45,6 @@ public class HuaweiWatchGT3Coordinator extends HuaweiBRCoordinator { return Pattern.compile("(" + HuaweiConstants.HU_WATCHGT3_NAME + "|" + HuaweiConstants.HU_WATCHGT3PRO_NAME + ").*", Pattern.CASE_INSENSITIVE); } - @Override - public int[] getSupportedDeviceSpecificSettings(GBDevice device) { - return getHuaweiCoordinator().genericHuaweiSupportedDeviceSpecificSettings(new int[]{ - R.xml.devicesettings_heartrate_automatic_enable, - R.xml.devicesettings_spo_automatic_enable, - R.xml.devicesettings_find_phone, - R.xml.devicesettings_disable_find_phone_with_dnd, - }); - } - @Override public int getDeviceNameResource() { return R.string.devicetype_huawei_watchgt3; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchgt4/HuaweiWatchGT4Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchgt4/HuaweiWatchGT4Coordinator.java index 932cae877..df11792db 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchgt4/HuaweiWatchGT4Coordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchgt4/HuaweiWatchGT4Coordinator.java @@ -46,16 +46,6 @@ public class HuaweiWatchGT4Coordinator extends HuaweiBRCoordinator { return Pattern.compile("(" + HuaweiConstants.HU_WATCHGT4_NAME + ").*", Pattern.CASE_INSENSITIVE); } - @Override - public int[] getSupportedDeviceSpecificSettings(GBDevice device) { - return getHuaweiCoordinator().genericHuaweiSupportedDeviceSpecificSettings(new int[]{ - R.xml.devicesettings_heartrate_automatic_enable, - R.xml.devicesettings_spo_automatic_enable, - R.xml.devicesettings_find_phone, - R.xml.devicesettings_disable_find_phone_with_dnd, - }); - } - @Override public int getDeviceNameResource() { return R.string.devicetype_huawei_watchgt4; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchultimate/HuaweiWatchUltimateCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchultimate/HuaweiWatchUltimateCoordinator.java index b43860ba3..97497327d 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchultimate/HuaweiWatchUltimateCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchultimate/HuaweiWatchUltimateCoordinator.java @@ -45,16 +45,6 @@ public class HuaweiWatchUltimateCoordinator extends HuaweiBRCoordinator { return Pattern.compile("(" + HuaweiConstants.HU_WATCHULTIMATE_NAME + ").*", Pattern.CASE_INSENSITIVE); } - @Override - public int[] getSupportedDeviceSpecificSettings(GBDevice device) { - return getHuaweiCoordinator().genericHuaweiSupportedDeviceSpecificSettings(new int[]{ - R.xml.devicesettings_heartrate_automatic_enable, - R.xml.devicesettings_spo_automatic_enable, - R.xml.devicesettings_find_phone, - R.xml.devicesettings_disable_find_phone_with_dnd, - }); - } - @Override public int getDeviceNameResource() { return R.string.devicetype_huawei_watchultimate; diff --git a/app/src/main/res/xml/devicesettings_disconnectnotification_noshed.xml b/app/src/main/res/xml/devicesettings_disconnectnotification_noshed.xml index 4ebcbc3b5..2304d7023 100644 --- a/app/src/main/res/xml/devicesettings_disconnectnotification_noshed.xml +++ b/app/src/main/res/xml/devicesettings_disconnectnotification_noshed.xml @@ -5,5 +5,6 @@ android:defaultValue="false" android:key="disconnect_notification_noshed" android:layout="@layout/preference_checkbox" - android:title="@string/prefs_disconnect_notification" /> + android:title="@string/prefs_disconnect_notification" + android:summary="@string/prefs_disconnect_notification_summary"/> \ No newline at end of file diff --git a/app/src/main/res/xml/devicesettings_donotdisturb_allday_liftwirst_notwear.xml b/app/src/main/res/xml/devicesettings_donotdisturb_allday_liftwirst_notwear.xml new file mode 100644 index 000000000..910eaa05b --- /dev/null +++ b/app/src/main/res/xml/devicesettings_donotdisturb_allday_liftwirst_notwear.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/xml/devicesettings_huawei.xml b/app/src/main/res/xml/devicesettings_huawei.xml deleted file mode 100644 index 6d46917fb..000000000 --- a/app/src/main/res/xml/devicesettings_huawei.xml +++ /dev/null @@ -1,252 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/xml/devicesettings_huawei_debug.xml b/app/src/main/res/xml/devicesettings_huawei_debug.xml new file mode 100644 index 000000000..e52fc1edc --- /dev/null +++ b/app/src/main/res/xml/devicesettings_huawei_debug.xml @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + +