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 018f45e47d..b335c1e596 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 @@ -52,14 +52,6 @@ import nodomain.freeyourgadget.gadgetbridge.service.devices.huawei.HuaweiWorkout public abstract class HuaweiBRCoordinator extends AbstractBLClassicDeviceCoordinator implements HuaweiCoordinatorSupplier { - private final HuaweiCoordinator huaweiCoordinator = new HuaweiCoordinator(this); - private GBDevice device; - - @Override - public HuaweiCoordinator getHuaweiCoordinator() { - return huaweiCoordinator; - } - @NonNull @Override public Collection createBLEScanFilters() { @@ -75,7 +67,7 @@ public abstract class HuaweiBRCoordinator extends AbstractBLClassicDeviceCoordin @Override public String[] getSupportedLanguageSettings(GBDevice device) { - return huaweiCoordinator.getSupportedLanguageSettings(device); + return HuaweiDeviceStateManager.get(device).getSupportedLanguageSettings(device); } @Override @@ -85,7 +77,7 @@ public abstract class HuaweiBRCoordinator extends AbstractBLClassicDeviceCoordin @Override protected void deleteDevice(@NonNull GBDevice gbDevice, @NonNull Device device, @NonNull DaoSession session) throws GBException { - huaweiCoordinator.deleteDevice(gbDevice, device, session); + HuaweiDeviceStateManager.get(gbDevice).deleteDevice(gbDevice, device, session); } @Override @@ -95,7 +87,7 @@ public abstract class HuaweiBRCoordinator extends AbstractBLClassicDeviceCoordin @Override public boolean supportsSmartWakeup(@NonNull GBDevice device, int position) { - return huaweiCoordinator.supportsSmartAlarm(device, position); + return HuaweiDeviceStateManager.get(device).supportsSmartAlarm(device, position); } @Override @@ -105,7 +97,7 @@ public abstract class HuaweiBRCoordinator extends AbstractBLClassicDeviceCoordin @Override public boolean forcedSmartWakeup(GBDevice device, int alarmPosition) { - return huaweiCoordinator.forcedSmartWakeup(device, alarmPosition); + return HuaweiDeviceStateManager.get(device).forcedSmartWakeup(device, alarmPosition); } @Override @@ -115,21 +107,21 @@ public abstract class HuaweiBRCoordinator extends AbstractBLClassicDeviceCoordin @Override public boolean supportsWeather(@NonNull final GBDevice device) { - return huaweiCoordinator.supportsWeather(); + return HuaweiDeviceStateManager.get(device).supportsWeather(); } @Override public Class getAppsManagementActivity(final GBDevice device) { - return huaweiCoordinator.getAppManagerActivity(); + return HuaweiDeviceStateManager.get(device).getAppManagerActivity(); } @Override public boolean supportsAppListFetching(@NonNull final GBDevice device) { - return huaweiCoordinator.getSupportsAppListFetching(); + return HuaweiDeviceStateManager.get(device).getSupportsAppListFetching(); } @Override public boolean supportsAppsManagement(@NonNull GBDevice device) { - return huaweiCoordinator.getSupportsAppsManagement(device); + return HuaweiDeviceStateManager.get(device).getSupportsAppsManagement(device); } @Override @@ -139,37 +131,37 @@ public abstract class HuaweiBRCoordinator extends AbstractBLClassicDeviceCoordin @Override public boolean supportsInstalledAppManagement(@NonNull GBDevice device) { - return huaweiCoordinator.getSupportsInstalledAppManagement(device); + return HuaweiDeviceStateManager.get(device).getSupportsInstalledAppManagement(device); } @Override public boolean supportsCachedAppManagement(@NonNull GBDevice device) { - return huaweiCoordinator.getSupportsCachedAppManagement(device); + return HuaweiDeviceStateManager.get(device).getSupportsCachedAppManagement(device); } @Override public boolean supportsFlashing(@NonNull GBDevice device) { - return huaweiCoordinator.getSupportsFlashing(); + return HuaweiDeviceStateManager.get(device).getSupportsFlashing(); } @Override public int getAlarmSlotCount(GBDevice device) { - return huaweiCoordinator.getAlarmSlotCount(device); + return HuaweiDeviceStateManager.get(device).getAlarmSlotCount(device); } @Override public int getContactsSlotCount(GBDevice device) { - return huaweiCoordinator.getContactsSlotCount(device); + return HuaweiDeviceStateManager.get(device).getContactsSlotCount(device); } @Override public int getCannedRepliesSlotCount(GBDevice device) { - return huaweiCoordinator.getCannedRepliesSlotCount(device); + return HuaweiDeviceStateManager.get(device).getCannedRepliesSlotCount(device); } @Override public boolean supportsCalendarEvents(@NonNull final GBDevice device) { - return huaweiCoordinator.supportsCalendarEvents(); + return HuaweiDeviceStateManager.get(device).supportsCalendarEvents(); } @Override @@ -194,54 +186,55 @@ public abstract class HuaweiBRCoordinator extends AbstractBLClassicDeviceCoordin @Override public boolean supportsHeartRateMeasurement(@NonNull GBDevice device) { - return huaweiCoordinator.supportsHeartRate(device); + return HuaweiDeviceStateManager.get(device).supportsHeartRate(device); } @Override public boolean supportsSpo2(@NonNull GBDevice device) { - return huaweiCoordinator.supportsSPo2(device); + return HuaweiDeviceStateManager.get(device).supportsSPo2(device); } @Override public boolean supportsMusicInfo(@NonNull GBDevice device) { - return huaweiCoordinator.supportsMusic(); + return HuaweiDeviceStateManager.get(device).supportsMusic(); } @Override public boolean supportsTemperatureMeasurement(@NonNull final GBDevice device) { - return huaweiCoordinator.supportsTemperature(); + return HuaweiDeviceStateManager.get(device).supportsTemperature(); } @Override public boolean supportsContinuousTemperature(@NonNull final GBDevice device) { - return huaweiCoordinator.supportsTemperature(); + return HuaweiDeviceStateManager.get(device).supportsTemperature(); } @Override public boolean supportsStressMeasurement(@NonNull GBDevice device) { - return huaweiCoordinator.supportsAutoStress(); + return HuaweiDeviceStateManager.get(device).supportsAutoStress(); } @Override public boolean supportsFindDevice(@NonNull GBDevice device) { - return huaweiCoordinator.supportsFindDeviceAbility(); + return HuaweiDeviceStateManager.get(device).supportsFindDeviceAbility(); } @Override - public boolean supportsRemSleep(@NonNull GBDevice device) {return huaweiCoordinator.getSupportsNewTrueSleep(device);} + public boolean supportsRemSleep(@NonNull GBDevice device) {return HuaweiDeviceStateManager.get(device).getSupportsNewTrueSleep(device);} @Override - public boolean supportsAwakeSleep(@NonNull GBDevice device) {return huaweiCoordinator.getSupportsNewTrueSleep(device);} + public boolean supportsAwakeSleep(@NonNull GBDevice device) {return HuaweiDeviceStateManager.get(device).getSupportsNewTrueSleep(device);} @Override - public boolean supportsSleepScore(@NonNull final GBDevice device) { return huaweiCoordinator.getSupportsNewTrueSleep(device); } + public boolean supportsSleepScore(@NonNull final GBDevice device) { return HuaweiDeviceStateManager.get(device).getSupportsNewTrueSleep(device); } @Override - public boolean supportsHrvMeasurement(@NonNull GBDevice device) { return huaweiCoordinator.supportsHRV();} + public boolean supportsHrvMeasurement(@NonNull GBDevice device) { return HuaweiDeviceStateManager.get(device).supportsHRV();} @Override public InstallHandler findInstallHandler(Uri uri, Context context) { - return huaweiCoordinator.getInstallHandler(uri, context); + HuaweiInstallHandler handler = new HuaweiInstallHandler(uri, context); + return handler.isValid() ? handler : null; } @Override @@ -281,7 +274,11 @@ public abstract class HuaweiBRCoordinator extends AbstractBLClassicDeviceCoordin @Override public int[] getStressRanges() { - return huaweiCoordinator.getStressRanges(); + // 1-29 = relaxed + // 30-59 = mild + // 60-79 = moderate + // 80-100 = high + return new int[]{1, 30, 60, 80}; } @Override @@ -291,12 +288,13 @@ public abstract class HuaweiBRCoordinator extends AbstractBLClassicDeviceCoordin @Override public int[] getStressChartParameters() { - return huaweiCoordinator.getStressChartParameters(); + // For Huawei devices stress data is provided every 30 minutes. So draw it as bars with delta + return new int[]{1800, 1800, 400}; } @Override public DeviceSpecificSettings getDeviceSpecificSettings(final GBDevice device) { - return huaweiCoordinator.getDeviceSpecificSettings(device); + return HuaweiDeviceStateManager.get(device).getDeviceSpecificSettings(device); } @Override @@ -304,16 +302,6 @@ public abstract class HuaweiBRCoordinator extends AbstractBLClassicDeviceCoordin return HuaweiDeviceType.BR; } - @Override - public void setDevice(GBDevice device) { - this.device = device; - } - - @Override - public GBDevice getDevice() { - return this.device; - } - @NonNull @Override public Class getDeviceSupportClass(final GBDevice device) { @@ -327,11 +315,11 @@ public abstract class HuaweiBRCoordinator extends AbstractBLClassicDeviceCoordin @Override public HeartRateZonesSpec getHeartRateZonesSpec(@NonNull GBDevice device) { - return huaweiCoordinator.getHeartRateZonesSpec(device); + return HuaweiDeviceStateManager.get(device).getHeartRateZonesSpec(device); } @Override public boolean supportsNavigation(@NonNull GBDevice device) { - return huaweiCoordinator.supportsNavigation(device); + return HuaweiDeviceStateManager.get(device).supportsNavigation(device); } } 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 9d170c44fd..4fd129acc2 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 @@ -24,6 +24,7 @@ import android.text.TextUtils; import java.nio.ByteBuffer; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.TreeMap; @@ -98,9 +99,7 @@ public class HuaweiCoordinator { private HuaweiMusicUtils.MusicCapabilities musicExtendedDeviceParams = null; - private final HuaweiCoordinatorSupplier parent; - - private boolean transactionCrypted=true; + private final String address; private int maxContactsCount = 0; @@ -109,12 +108,12 @@ public class HuaweiCoordinator { private boolean navigationAvailable = false; - public HuaweiCoordinator(HuaweiCoordinatorSupplier parent) { - this.parent = parent; + public HuaweiCoordinator(final String address) { + this.address = address; // Set non-numeric capabilities this.expandCapabilities = GB.hexStringToByteArray(getCapabilitiesSharedPreferences().getString("expandCapabilities", "00")); - this.notificationCapabilities = (byte)getCapabilitiesSharedPreferences().getInt("notificationCapabilities", -0x01); + this.notificationCapabilities = (byte) getCapabilitiesSharedPreferences().getInt("notificationCapabilities", -0x01); this.notificationConstraints = ByteBuffer.wrap(GB.hexStringToByteArray( getCapabilitiesSharedPreferences().getString( "notificationConstraints", @@ -190,6 +189,7 @@ public class HuaweiCoordinator { HuaweiDictDataValuesDao.Properties.DictId.eq(data.getDictId()) ).buildDelete().executeDeleteWithoutDetachingEntities(); } + session.getHuaweiDictDataDao().queryBuilder().where(HuaweiDictDataDao.Properties.DeviceId.eq(deviceId)).buildDelete().executeDeleteWithoutDetachingEntities(); QueryBuilder qb4 = session.getHuaweiEcgSummarySampleDao().queryBuilder(); @@ -203,7 +203,7 @@ public class HuaweiCoordinator { } private SharedPreferences getCapabilitiesSharedPreferences() { - return GBApplication.getContext().getSharedPreferences("huawei_coordinator_capatilities" + parent.getDeviceType().name(), Context.MODE_PRIVATE); + return GBApplication.getContext().getSharedPreferences("huawei_coordinator_capabilities_" + address.toLowerCase(Locale.ROOT).replace(":", "_"), Context.MODE_PRIVATE); } private SharedPreferences getDeviceSpecificSharedPreferences(GBDevice gbDevice) { @@ -226,7 +226,7 @@ public class HuaweiCoordinator { public void saveNotificationCapabilities(byte capabilities) { notificationCapabilities = capabilities; - getCapabilitiesSharedPreferences().edit().putInt("notificationCapabilities", (int)capabilities).apply(); + getCapabilitiesSharedPreferences().edit().putInt("notificationCapabilities", (int) capabilities).apply(); } public void saveNotificationConstraints(ByteBuffer constraints) { @@ -271,9 +271,9 @@ public class HuaweiCoordinator { // Print all Services ID and Commands ID public void printCommandsPerService() { StringBuilder msg = new StringBuilder(); - for(Map.Entry entry : commandsPerService.entrySet()) { + for (Map.Entry entry : commandsPerService.entrySet()) { msg.append("ServiceID: ").append(Integer.toHexString(entry.getKey())).append(" => Commands: "); - for (byte b: entry.getValue()) { + for (byte b : entry.getValue()) { msg.append(Integer.toHexString(b)).append(" "); } msg.append("\n"); @@ -328,39 +328,39 @@ public class HuaweiCoordinator { deviceSpecificSettings.addRootScreen(DeviceSpecificSettingsScreen.HEALTH, R.xml.devicesettings_heartrate_automatic_enable); if (supportsRealtimeHeartRate()) deviceSpecificSettings.addRootScreen(DeviceSpecificSettingsScreen.HEALTH, R.xml.devicesettings_huawei_heart_rate_realtime); - if(supportsHighHeartRateAlert()) + if (supportsHighHeartRateAlert()) deviceSpecificSettings.addRootScreen(DeviceSpecificSettingsScreen.HEALTH, R.xml.devicesettings_huawei_heart_rate_huawei_high_alert); - if(supportsLowHeartRateAlert()) + if (supportsLowHeartRateAlert()) deviceSpecificSettings.addRootScreen(DeviceSpecificSettingsScreen.HEALTH, R.xml.devicesettings_huawei_heart_rate_huawei_low_alert); } if (supportsSPo2()) { deviceSpecificSettings.addRootScreen(DeviceSpecificSettingsScreen.HEALTH, R.xml.devicesettings_spo_automatic_enable); - if(supportsLowSPo2Alert()) + if (supportsLowSPo2Alert()) deviceSpecificSettings.addRootScreen(DeviceSpecificSettingsScreen.HEALTH, R.xml.devicesettings_huawei_spo_low_alert); } - if(supportsTemperature()) { + if (supportsTemperature()) { deviceSpecificSettings.addRootScreen(DeviceSpecificSettingsScreen.HEALTH, R.xml.devicesettings_temperature_automatic_enable); } - if(supportsAutoStress()) { + if (supportsAutoStress()) { deviceSpecificSettings.addRootScreen(DeviceSpecificSettingsScreen.HEALTH, R.xml.devicesettings_huawei_stress); } - if(supportsArrhythmia() && isShowForceCountrySpecificFeatures(device)) { + if (supportsArrhythmia() && isShowForceCountrySpecificFeatures(device)) { deviceSpecificSettings.addRootScreen(DeviceSpecificSettingsScreen.HEALTH, R.xml.devicesettings_huawei_arrhythmia); } - if(supportsECG() && isShowForceCountrySpecificFeatures(device)) { + if (supportsECG() && isShowForceCountrySpecificFeatures(device)) { deviceSpecificSettings.addRootScreen(DeviceSpecificSettingsScreen.HEALTH, R.xml.devicesettings_huawei_ecg); } - if(supportsArterialStiffnessDetection() && isShowForceCountrySpecificFeatures(device)) { + if (supportsArterialStiffnessDetection() && isShowForceCountrySpecificFeatures(device)) { deviceSpecificSettings.addRootScreen(DeviceSpecificSettingsScreen.HEALTH, R.xml.devicesettings_huawei_arterial_stiffness_detection); } - if(supportsThreeCircle() || supportsThreeCircleLite()) { + if (supportsThreeCircle() || supportsThreeCircleLite()) { deviceSpecificSettings.addRootScreen(DeviceSpecificSettingsScreen.HEALTH, R.xml.devicesettings_huawei_activity_reminders); } // Notifications final List notifications = deviceSpecificSettings.addRootScreen(DeviceSpecificSettingsScreen.NOTIFICATIONS); notifications.add(R.xml.devicesettings_notifications_enable); - if (supportsNotificationsRepeatedNotify() || supportsNotificationsRemoveSingle()){ + if (supportsNotificationsRepeatedNotify() || supportsNotificationsRemoveSingle()) { notifications.add(R.xml.devicesettings_autoremove_notifications); } if (supportsNotificationPicture()) { @@ -381,7 +381,7 @@ public class HuaweiCoordinator { if (supportsSendingGps()) deviceSpecificSettings.addRootScreen(DeviceSpecificSettingsScreen.WORKOUT, R.xml.devicesettings_workout_send_gps_to_band); - if(supportsTrack() || supportsHeartRateZones()) + if (supportsTrack() || supportsHeartRateZones()) deviceSpecificSettings.addRootScreen(DeviceSpecificSettingsScreen.WORKOUT, R.xml.devicesettings_heartrate_settings); // Other @@ -404,7 +404,7 @@ public class HuaweiCoordinator { deviceSpecificSettings.addRootScreen(R.xml.devicesettings_musicmanagement); } - if(supportsSendCountryCode()) { + if (supportsSendCountryCode()) { deviceSpecificSettings.addRootScreen(R.xml.devicesettings_huawei_features); } @@ -416,7 +416,7 @@ public class HuaweiCoordinator { } //Calendar - if( supportsP2PService() && supportsCalendar()) { + if (supportsP2PService() && supportsCalendar()) { deviceSpecificSettings.addRootScreen(DeviceSpecificSettingsScreen.CALENDAR, R.xml.devicesettings_sync_calendar); } @@ -432,14 +432,14 @@ public class HuaweiCoordinator { // Currently on main setting menu. /*if (supportsLanguageSetting()) deviceSpecificSettings.addRootScreen(DeviceSpecificSettingsScreen.DISPLAY, R.xml.devicesettings_language_generic);*/ - if(supportsTemperature()) { + if (supportsTemperature()) { deviceSpecificSettings.addRootScreen(DeviceSpecificSettingsScreen.DISPLAY, R.xml.devicesettings_temperature_scale_cf); } // Developer final List developer = deviceSpecificSettings.addRootScreen(DeviceSpecificSettingsScreen.DEVELOPER); developer.add(R.xml.devicesettings_huawei_debug); - if(supportsGpsAndTimeToDevice()) + if (supportsGpsAndTimeToDevice()) developer.add(R.xml.devicesettings_huawei_gps_and_time); return deviceSpecificSettings; @@ -528,7 +528,7 @@ public class HuaweiCoordinator { public boolean supportsMotionGoal() { return supportsCommandForService(0x07, 0x01); } - + public boolean supportsInactivityWarnings() { return supportsCommandForService(0x07, 0x06); } @@ -596,21 +596,28 @@ public class HuaweiCoordinator { public boolean supportsFitnessThresholdValue() { return supportsCommandForService(0x07, 0x29); } - public boolean supportsFitnessThresholdValueV2() { return supportsExpandCapability(0x9a) || supportsExpandCapability(0x9c); } + + public boolean supportsFitnessThresholdValueV2() { + return supportsExpandCapability(0x9a) || supportsExpandCapability(0x9c); + } // 0x1d - SupportTemperature // 0xba - SupportTemperatureClassification // 0x43 - SupportTemperatureStudy - public boolean supportsTemperature() { return supportsExpandCapability(0x1d); } + public boolean supportsTemperature() { + return supportsExpandCapability(0x1d); + } - public boolean supportsBloodPressure() { return supportsExpandCapability(0x3b); } + public boolean supportsBloodPressure() { + return supportsExpandCapability(0x3b); + } public boolean supportsEventAlarm() { return supportsCommandForService(0x08, 0x01); } public boolean supportsSmartAlarm() { - return supportsCommandForService(0x08, 0x02) ; + return supportsCommandForService(0x08, 0x02); } public boolean supportsSmartAlarm(GBDevice gbDevice) { @@ -640,11 +647,17 @@ public class HuaweiCoordinator { return supportsCommandForService(0x0c, 0x01); } - public boolean supportsWatchfaceParams(){ return supportsCommandForService(0x27, 0x01);} + public boolean supportsWatchfaceParams() { + return supportsCommandForService(0x27, 0x01); + } - public boolean supportsAppParams(){ return supportsCommandForService(0x2a, 0x06);} + public boolean supportsAppParams() { + return supportsCommandForService(0x2a, 0x06); + } - public boolean supportsMusicUploading(){ return supportsCommandForService(0x25, 0x04);} + public boolean supportsMusicUploading() { + return supportsCommandForService(0x25, 0x04); + } public boolean supportsWeather() { return supportsCommandForService(0x0f, 0x01); @@ -702,7 +715,9 @@ public class HuaweiCoordinator { return supportsCommandForService(0x18, 0x02); } - public boolean supportsGpsAndTimeToDevice() { return supportsCommandForService(0x18, 0x06); } + public boolean supportsGpsAndTimeToDevice() { + return supportsCommandForService(0x18, 0x06); + } public boolean supportsAccount() { return supportsCommandForService(0x1A, 0x01); @@ -891,13 +906,13 @@ public class HuaweiCoordinator { return supportsExpandCapability(82); return false; } - + public boolean supportsDeviceCommandConfig() { if (supportsExpandCapability()) return supportsExpandCapability(83); return false; } - + public boolean supportsDeviceCommandEvent() { if (supportsExpandCapability()) return supportsExpandCapability(84); @@ -927,12 +942,13 @@ public class HuaweiCoordinator { return supportsExpandCapability(156); return false; } - + public boolean supportsOTAChangelog() { if (supportsExpandCapability()) return supportsExpandCapability(52); return false; } + public boolean supportsOTASignature() { if (supportsExpandCapability()) return supportsExpandCapability(144); @@ -1046,7 +1062,7 @@ public class HuaweiCoordinator { return false; } - public boolean supportsPromptPushMessage () { + public boolean supportsPromptPushMessage() { // do not ask for capabilities under specific condition // if (deviceType == 10 && deviceVersion == 73617766697368 && deviceSoftVersion == 372E312E31) -> leo device // if V1V0Device @@ -1112,25 +1128,17 @@ public class HuaweiCoordinator { } public int getContactsSlotCount(GBDevice device) { - if(supportsContactsSync()) { + if (supportsContactsSync()) { // TODO: Currently I don't know how to obtain contacts limit in runtime, and I don't know is the limit exists, // set limit to 20 because more items not comfortable to use in the current GB's UI. Can be increased in the future. return 20; } - return supportsContacts()?maxContactsCount:0; + return supportsContacts() ? maxContactsCount : 0; } public int getCannedRepliesSlotCount(GBDevice device) { // TODO: find proper count - return supportsCannedReplies()?10:0; - } - - public void setTransactionCrypted(boolean crypted) { - this.transactionCrypted = crypted; - } - - public boolean isTransactionCrypted() { - return this.transactionCrypted; + return supportsCannedReplies() ? 10 : 0; } public String[] getSupportedLanguageSettings(GBDevice device) { @@ -1167,11 +1175,11 @@ public class HuaweiCoordinator { } public short getWidth() { - return (short)watchfaceDeviceParams.width; + return (short) watchfaceDeviceParams.width; } public short getHeight() { - return (short)watchfaceDeviceParams.height; + return (short) watchfaceDeviceParams.height; } public void setWatchfaceDeviceParams(Watchface.WatchfaceDeviceParams watchfaceDeviceParams) { @@ -1190,6 +1198,7 @@ public class HuaweiCoordinator { LOG.info(musicDeviceParams.toString()); this.musicExtendedDeviceParams = musicDeviceParams; } + public HuaweiMusicUtils.MusicCapabilities getExtendedMusicInfoParams() { return musicExtendedDeviceParams; } @@ -1198,6 +1207,7 @@ public class HuaweiCoordinator { LOG.info(musicDeviceParams.toString()); this.musicDeviceParams = musicDeviceParams; } + public HuaweiMusicUtils.MusicCapabilities getMusicInfoParams() { return musicDeviceParams; } @@ -1207,7 +1217,9 @@ public class HuaweiCoordinator { return AppManagerActivity.class; } - public boolean getSupportsAppListFetching() { return true; } + public boolean getSupportsAppListFetching() { + return true; + } public boolean getSupportsAppsManagement(GBDevice device) { return true; @@ -1278,19 +1290,6 @@ public class HuaweiCoordinator { this.otaSignatureLength = otaSignatureLength; } - public int[] getStressRanges() { - // 1-29 = relaxed - // 30-59 = mild - // 60-79 = moderate - // 80-100 = high - return new int[]{1, 30, 60, 80}; - } - - public int[] getStressChartParameters() { - // For Huawei devices stress data is provided every 30 minutes. So draw it as bars with delta - return new int[]{1800, 1800, 400}; - } - public boolean getSupportsNewTrueSleep(final GBDevice device) { return supportsTruSleep() && supportsDictSleepSync(); } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiCoordinatorSupplier.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiCoordinatorSupplier.java index 9f260129d3..867d97491c 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiCoordinatorSupplier.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiCoordinatorSupplier.java @@ -16,9 +16,6 @@ along with this program. If not, see . */ package nodomain.freeyourgadget.gadgetbridge.devices.huawei; -import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; -import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; - public interface HuaweiCoordinatorSupplier { enum HuaweiDeviceType { @@ -39,9 +36,9 @@ public interface HuaweiCoordinatorSupplier { } } - HuaweiCoordinator getHuaweiCoordinator(); + default boolean isTransactionCrypted() { + return true; + } + HuaweiDeviceType getHuaweiType(); - DeviceType getDeviceType(); - void setDevice(GBDevice Device); - GBDevice getDevice(); } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiDeviceStateManager.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiDeviceStateManager.java new file mode 100644 index 0000000000..b1b153a7e8 --- /dev/null +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiDeviceStateManager.java @@ -0,0 +1,41 @@ +/* Copyright (C) 2025 Damien José Rebelo + + This file is part of Gadgetbridge. + + Gadgetbridge is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Gadgetbridge is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . */ +package nodomain.freeyourgadget.gadgetbridge.devices.huawei; + +import java.util.HashMap; +import java.util.Map; + +import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; + +public class HuaweiDeviceStateManager { + private static final Map STATES = new HashMap<>(); + + public static HuaweiCoordinator get(final GBDevice device) { + return get(device.getAddress()); + } + + public static HuaweiCoordinator get(final String macAddress) { + if (STATES.containsKey(macAddress)) { + return STATES.get(macAddress); + } + + final HuaweiCoordinator huaweiDeviceState = new HuaweiCoordinator(macAddress); + STATES.put(macAddress, huaweiDeviceState); + + return huaweiDeviceState; + } +} diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiFreebudsCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiFreebudsCoordinator.java index b1f4f4f515..8a0ada3a5d 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiFreebudsCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiFreebudsCoordinator.java @@ -36,13 +36,6 @@ import nodomain.freeyourgadget.gadgetbridge.util.preferences.DevicePrefs; public abstract class HuaweiFreebudsCoordinator extends AbstractBLClassicDeviceCoordinator implements HuaweiCoordinatorSupplier { - private final HuaweiCoordinator huaweiCoordinator = new HuaweiCoordinator(this); - private GBDevice gbDevice; - - public HuaweiFreebudsCoordinator() { - huaweiCoordinator.setTransactionCrypted(false); - } - @Override public String getManufacturer() { return "Huawei"; @@ -54,8 +47,8 @@ public abstract class HuaweiFreebudsCoordinator extends AbstractBLClassicDeviceC } @Override - public HuaweiCoordinator getHuaweiCoordinator() { - return huaweiCoordinator; + public boolean isTransactionCrypted() { + return false; } @Override @@ -63,16 +56,6 @@ public abstract class HuaweiFreebudsCoordinator extends AbstractBLClassicDeviceC return HuaweiDeviceType.BR; } - @Override - public void setDevice(GBDevice gbDevice) { - this.gbDevice = gbDevice; - } - - @Override - public GBDevice getDevice() { - return this.gbDevice; - } - @Override public int getBondingStyle() { // TODO: Check if correct diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiInstallHandler.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiInstallHandler.java index 3a7f9d915d..2903a6b611 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiInstallHandler.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiInstallHandler.java @@ -34,7 +34,6 @@ import java.util.Locale; import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.activities.install.FwAppInstallerActivity; import nodomain.freeyourgadget.gadgetbridge.activities.install.InstallActivity; -import nodomain.freeyourgadget.gadgetbridge.devices.DeviceCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.InstallHandler; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; import nodomain.freeyourgadget.gadgetbridge.model.GenericItem; @@ -112,13 +111,7 @@ public class HuaweiInstallHandler implements InstallHandler { @Override public void validateInstallation(InstallActivity installActivity, GBDevice device) { - - final DeviceCoordinator coordinator = device.getDeviceCoordinator(); - if (!(coordinator instanceof HuaweiCoordinatorSupplier huaweiCoordinatorSupplier)) { - LOG.warn("Coordinator is not a HuaweiCoordinatorSupplier: {}", coordinator.getClass()); - installActivity.setInstallEnabled(false); - return; - } + final HuaweiCoordinator huaweiDeviceState = HuaweiDeviceStateManager.get(device); if (helper.isFirmware) { this.valid = true; //NOTE: nothing to verify for now @@ -168,8 +161,8 @@ public class HuaweiInstallHandler implements InstallHandler { String deviceScreen = String.format( Locale.ROOT, "%d*%d", - huaweiCoordinatorSupplier.getHuaweiCoordinator().getHeight(), - huaweiCoordinatorSupplier.getHuaweiCoordinator().getWidth() + huaweiDeviceState.getHeight(), + huaweiDeviceState.getWidth() ); this.valid = resolution.isValid(description.screen, deviceScreen); @@ -252,9 +245,9 @@ public class HuaweiInstallHandler implements InstallHandler { LOG.debug("Initialized HuaweiInstallHandler: App"); } else if (helper.isMusic()) { - HuaweiMusicUtils.MusicCapabilities capabilities = huaweiCoordinatorSupplier.getHuaweiCoordinator().getExtendedMusicInfoParams(); + HuaweiMusicUtils.MusicCapabilities capabilities = huaweiDeviceState.getExtendedMusicInfoParams(); if (capabilities == null) { - capabilities = huaweiCoordinatorSupplier.getHuaweiCoordinator().getMusicInfoParams(); + capabilities = huaweiDeviceState.getMusicInfoParams(); } AudioInfo currentMusicInfo = helper.getMusicInfo(); 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 8fe4f22098..4ef19acbe5 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 @@ -54,15 +54,6 @@ import nodomain.freeyourgadget.gadgetbridge.service.devices.huawei.HuaweiLESuppo import nodomain.freeyourgadget.gadgetbridge.service.devices.huawei.HuaweiWorkoutGbParser; public abstract class HuaweiLECoordinator extends AbstractBLEDeviceCoordinator implements HuaweiCoordinatorSupplier { - - private final HuaweiCoordinator huaweiCoordinator = new HuaweiCoordinator(this); - private GBDevice device; - - @Override - public HuaweiCoordinator getHuaweiCoordinator() { - return huaweiCoordinator; - } - @NonNull @Override public Collection createBLEScanFilters() { @@ -78,7 +69,7 @@ public abstract class HuaweiLECoordinator extends AbstractBLEDeviceCoordinator i @Override public String[] getSupportedLanguageSettings(GBDevice device) { - return huaweiCoordinator.getSupportedLanguageSettings(device); + return HuaweiDeviceStateManager.get(device).getSupportedLanguageSettings(device); } @Override @@ -96,7 +87,7 @@ public abstract class HuaweiLECoordinator extends AbstractBLEDeviceCoordinator i @Override protected void deleteDevice(@NonNull GBDevice gbDevice, @NonNull Device device, @NonNull DaoSession session) throws GBException { - huaweiCoordinator.deleteDevice(gbDevice, device, session); + HuaweiDeviceStateManager.get(gbDevice).deleteDevice(gbDevice, device, session); } @Override @@ -106,7 +97,7 @@ public abstract class HuaweiLECoordinator extends AbstractBLEDeviceCoordinator i @Override public boolean supportsSmartWakeup(@NonNull GBDevice device, int position) { - return huaweiCoordinator.supportsSmartAlarm(device, position); + return HuaweiDeviceStateManager.get(device).supportsSmartAlarm(device, position); } @Override @@ -116,7 +107,7 @@ public abstract class HuaweiLECoordinator extends AbstractBLEDeviceCoordinator i @Override public boolean forcedSmartWakeup(GBDevice device, int alarmPosition) { - return huaweiCoordinator.forcedSmartWakeup(device, alarmPosition); + return HuaweiDeviceStateManager.get(device).forcedSmartWakeup(device, alarmPosition); } @Override @@ -126,21 +117,21 @@ public abstract class HuaweiLECoordinator extends AbstractBLEDeviceCoordinator i @Override public boolean supportsWeather(@NonNull final GBDevice device) { - return huaweiCoordinator.supportsWeather(); + return HuaweiDeviceStateManager.get(device).supportsWeather(); } @Override public Class getAppsManagementActivity(final GBDevice device) { - return huaweiCoordinator.getAppManagerActivity(); + return HuaweiDeviceStateManager.get(device).getAppManagerActivity(); } @Override public boolean supportsAppListFetching(@NonNull final GBDevice device) { - return huaweiCoordinator.getSupportsAppListFetching(); + return HuaweiDeviceStateManager.get(device).getSupportsAppListFetching(); } @Override public boolean supportsAppsManagement(@NonNull GBDevice device) { - return huaweiCoordinator.getSupportsAppsManagement(device); + return HuaweiDeviceStateManager.get(device).getSupportsAppsManagement(device); } @Override @@ -150,37 +141,37 @@ public abstract class HuaweiLECoordinator extends AbstractBLEDeviceCoordinator i @Override public boolean supportsInstalledAppManagement(@NonNull GBDevice device) { - return huaweiCoordinator.getSupportsInstalledAppManagement(device); + return HuaweiDeviceStateManager.get(device).getSupportsInstalledAppManagement(device); } @Override public boolean supportsCachedAppManagement(@NonNull GBDevice device) { - return huaweiCoordinator.getSupportsCachedAppManagement(device); + return HuaweiDeviceStateManager.get(device).getSupportsCachedAppManagement(device); } @Override public boolean supportsFlashing(@NonNull GBDevice device) { - return huaweiCoordinator.getSupportsFlashing(); + return HuaweiDeviceStateManager.get(device).getSupportsFlashing(); } @Override public int getAlarmSlotCount(GBDevice device) { - return huaweiCoordinator.getAlarmSlotCount(device); + return HuaweiDeviceStateManager.get(device).getAlarmSlotCount(device); } @Override public int getContactsSlotCount(GBDevice device) { - return huaweiCoordinator.getContactsSlotCount(device); + return HuaweiDeviceStateManager.get(device).getContactsSlotCount(device); } @Override public int getCannedRepliesSlotCount(GBDevice device) { - return huaweiCoordinator.getCannedRepliesSlotCount(device); + return HuaweiDeviceStateManager.get(device).getCannedRepliesSlotCount(device); } @Override public boolean supportsCalendarEvents(@NonNull final GBDevice device) { - return huaweiCoordinator.supportsCalendarEvents(); + return HuaweiDeviceStateManager.get(device).supportsCalendarEvents(); } @Override @@ -205,54 +196,55 @@ public abstract class HuaweiLECoordinator extends AbstractBLEDeviceCoordinator i @Override public boolean supportsHeartRateMeasurement(@NonNull GBDevice device) { - return huaweiCoordinator.supportsHeartRate(device); + return HuaweiDeviceStateManager.get(device).supportsHeartRate(device); } @Override public boolean supportsSpo2(@NonNull GBDevice device) { - return huaweiCoordinator.supportsSPo2(device); + return HuaweiDeviceStateManager.get(device).supportsSPo2(device); } @Override public boolean supportsMusicInfo(@NonNull GBDevice device) { - return huaweiCoordinator.supportsMusic(); + return HuaweiDeviceStateManager.get(device).supportsMusic(); } @Override public boolean supportsTemperatureMeasurement(@NonNull final GBDevice device) { - return huaweiCoordinator.supportsTemperature(); + return HuaweiDeviceStateManager.get(device).supportsTemperature(); } @Override public boolean supportsContinuousTemperature(@NonNull final GBDevice device) { - return huaweiCoordinator.supportsTemperature(); + return HuaweiDeviceStateManager.get(device).supportsTemperature(); } @Override public boolean supportsStressMeasurement(@NonNull GBDevice device) { - return huaweiCoordinator.supportsAutoStress(); + return HuaweiDeviceStateManager.get(device).supportsAutoStress(); } @Override public boolean supportsFindDevice(@NonNull GBDevice device) { - return huaweiCoordinator.supportsFindDeviceAbility(); + return HuaweiDeviceStateManager.get(device).supportsFindDeviceAbility(); } @Override - public boolean supportsRemSleep(@NonNull GBDevice device) {return huaweiCoordinator.getSupportsNewTrueSleep(device);} + public boolean supportsRemSleep(@NonNull GBDevice device) {return HuaweiDeviceStateManager.get(device).getSupportsNewTrueSleep(device);} @Override - public boolean supportsAwakeSleep(@NonNull GBDevice device) {return huaweiCoordinator.getSupportsNewTrueSleep(device);} + public boolean supportsAwakeSleep(@NonNull GBDevice device) {return HuaweiDeviceStateManager.get(device).getSupportsNewTrueSleep(device);} @Override - public boolean supportsSleepScore(@NonNull final GBDevice device) { return huaweiCoordinator.getSupportsNewTrueSleep(device); } + public boolean supportsSleepScore(@NonNull final GBDevice device) { return HuaweiDeviceStateManager.get(device).getSupportsNewTrueSleep(device); } @Override - public boolean supportsHrvMeasurement(@NonNull GBDevice device) { return huaweiCoordinator.supportsHRV();} + public boolean supportsHrvMeasurement(@NonNull GBDevice device) { return HuaweiDeviceStateManager.get(device).supportsHRV();} @Override public InstallHandler findInstallHandler(Uri uri, Context context) { - return huaweiCoordinator.getInstallHandler(uri, context); + HuaweiInstallHandler handler = new HuaweiInstallHandler(uri, context); + return handler.isValid() ? handler : null; } @Override @@ -297,7 +289,11 @@ public abstract class HuaweiLECoordinator extends AbstractBLEDeviceCoordinator i @Override public int[] getStressRanges() { - return huaweiCoordinator.getStressRanges(); + // 1-29 = relaxed + // 30-59 = mild + // 60-79 = moderate + // 80-100 = high + return new int[]{1, 30, 60, 80}; } @Override @@ -307,12 +303,13 @@ public abstract class HuaweiLECoordinator extends AbstractBLEDeviceCoordinator i @Override public int[] getStressChartParameters() { - return huaweiCoordinator.getStressChartParameters(); + // For Huawei devices stress data is provided every 30 minutes. So draw it as bars with delta + return new int[]{1800, 1800, 400}; } @Override public DeviceSpecificSettings getDeviceSpecificSettings(final GBDevice device) { - return huaweiCoordinator.getDeviceSpecificSettings(device); + return HuaweiDeviceStateManager.get(device).getDeviceSpecificSettings(device); } @Override @@ -320,16 +317,6 @@ public abstract class HuaweiLECoordinator extends AbstractBLEDeviceCoordinator i return HuaweiDeviceType.BLE; } - @Override - public void setDevice(GBDevice device) { - this.device = device; - } - - @Override - public GBDevice getDevice() { - return this.device; - } - @NonNull @Override public Class getDeviceSupportClass(final GBDevice device) { @@ -342,11 +329,11 @@ public abstract class HuaweiLECoordinator extends AbstractBLEDeviceCoordinator i } public HeartRateZonesSpec getHeartRateZonesSpec(@NonNull GBDevice device) { - return huaweiCoordinator.getHeartRateZonesSpec(device); + return HuaweiDeviceStateManager.get(device).getHeartRateZonesSpec(device); } @Override public boolean supportsNavigation(@NonNull GBDevice device) { - return huaweiCoordinator.supportsNavigation(device); + return HuaweiDeviceStateManager.get(device).supportsNavigation(device); } } 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 c477252e12..d28e74d28c 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 @@ -64,11 +64,11 @@ import static nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiConstant public class HuaweiSettingsCustomizer implements DeviceSpecificSettingsCustomizer { final GBDevice device; - final HuaweiCoordinator coordinator; + final HuaweiCoordinator deviceState; public HuaweiSettingsCustomizer(final GBDevice device) { this.device = device; - this.coordinator = ((HuaweiCoordinatorSupplier) this.device.getDeviceCoordinator()).getHuaweiCoordinator(); + this.deviceState = HuaweiDeviceStateManager.get(device); } @Override @@ -103,16 +103,16 @@ public class HuaweiSettingsCustomizer implements DeviceSpecificSettingsCustomize if (preference.getKey().equals(PREF_FORCE_OPTIONS)) { final Preference dnd = handler.findPreference("screen_do_not_disturb"); if (dnd != null) - dnd.setVisible(this.coordinator.supportsDoNotDisturb(handler.getDevice())); + dnd.setVisible(this.deviceState.supportsDoNotDisturb(handler.getDevice())); final ListPreference wearLocation = handler.findPreference(PREF_WEARLOCATION); if (wearLocation != null) - wearLocation.setVisible(this.coordinator.supportsWearLocation(handler.getDevice())); + wearLocation.setVisible(this.deviceState.supportsWearLocation(handler.getDevice())); final ListPreference heartRate = handler.findPreference(PREF_HEARTRATE_AUTOMATIC_ENABLE); if (heartRate != null) - heartRate.setVisible(this.coordinator.supportsHeartRate(handler.getDevice())); + heartRate.setVisible(this.deviceState.supportsHeartRate(handler.getDevice())); final ListPreference spo2 = handler.findPreference(PREF_SPO_AUTOMATIC_ENABLE); if (spo2 != null) - spo2.setVisible(this.coordinator.supportsSPo2(handler.getDevice())); + spo2.setVisible(this.deviceState.supportsSPo2(handler.getDevice())); } } @@ -152,10 +152,10 @@ public class HuaweiSettingsCustomizer implements DeviceSpecificSettingsCustomize final Preference forceOptions = handler.findPreference(PREF_FORCE_OPTIONS); if (forceOptions != null) { - boolean supportsSmartAlarm = this.coordinator.supportsSmartAlarm(); - boolean supportsWearLocation = this.coordinator.supportsWearLocation(); - boolean supportsHeartRate = this.coordinator.supportsHeartRate(); - boolean supportsSpO2 = this.coordinator.supportsSPo2(); + boolean supportsSmartAlarm = this.deviceState.supportsSmartAlarm(); + boolean supportsWearLocation = this.deviceState.supportsWearLocation(); + boolean supportsHeartRate = this.deviceState.supportsHeartRate(); + boolean supportsSpO2 = this.deviceState.supportsSPo2(); forceOptions.setVisible(!supportsSmartAlarm || !supportsWearLocation || !supportsHeartRate || !supportsSpO2); final SwitchPreferenceCompat forceSmartAlarm = handler.findPreference(PREF_FORCE_ENABLE_SMART_ALARM); if(forceSmartAlarm != null) @@ -172,14 +172,14 @@ public class HuaweiSettingsCustomizer implements DeviceSpecificSettingsCustomize } final SwitchPreferenceCompat sleepBreath = handler.findPreference(PREF_HUAWEI_SLEEP_BREATH); - if (sleepBreath != null && !(coordinator.supportsSleepBreath() || coordinator.supportsSleepApnea())) { + if (sleepBreath != null && !(deviceState.supportsSleepBreath() || deviceState.supportsSleepApnea())) { sleepBreath.setVisible(false); } final SwitchPreferenceCompat reparseWorkout = handler.findPreference("huawei_reparse_workout_data"); if (reparseWorkout != null) { reparseWorkout.setVisible(false); - if (this.coordinator.supportsWorkouts()) + if (this.deviceState.supportsWorkouts()) reparseWorkout.setVisible(true); } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/freearc/HuaweiFreearcCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/freearc/HuaweiFreearcCoordinator.java index 6e043271f5..6959827238 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/freearc/HuaweiFreearcCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/freearc/HuaweiFreearcCoordinator.java @@ -19,7 +19,6 @@ package nodomain.freeyourgadget.gadgetbridge.devices.huawei.freearc; import androidx.annotation.NonNull; -import java.util.Arrays; import java.util.HashSet; import java.util.Set; import java.util.regex.Pattern; @@ -28,7 +27,6 @@ import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiFreebudsCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiHeadphonesCapabilities; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; -import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; import nodomain.freeyourgadget.gadgetbridge.service.DeviceSupport; import nodomain.freeyourgadget.gadgetbridge.service.devices.huawei.HuaweiFreebudsSupport; @@ -52,11 +50,6 @@ public class HuaweiFreearcCoordinator extends HuaweiFreebudsCoordinator { return HuaweiFreebudsSupport.class; } - @Override - public DeviceType getDeviceType() { - return DeviceType.HUAWEI_FREEARC; - } - @Override public int getDeviceNameResource() { return R.string.devicetype_huawei_freearc; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/freebuds5i/HuaweiFreebuds5iCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/freebuds5i/HuaweiFreebuds5iCoordinator.java index f843d40a36..00d5de0da6 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/freebuds5i/HuaweiFreebuds5iCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/freebuds5i/HuaweiFreebuds5iCoordinator.java @@ -28,7 +28,6 @@ import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiFreebudsCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiHeadphonesCapabilities; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; -import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; import nodomain.freeyourgadget.gadgetbridge.service.DeviceSupport; import nodomain.freeyourgadget.gadgetbridge.service.devices.huawei.HuaweiFreebudsSupport; @@ -53,11 +52,6 @@ public class HuaweiFreebuds5iCoordinator extends HuaweiFreebudsCoordinator { return HuaweiFreebudsSupport.class; } - @Override - public DeviceType getDeviceType() { - return DeviceType.HUAWEI_FREEBUDS5I; - } - @Override public int getDeviceNameResource() { return R.string.devicetype_huawei_freebuds_5i; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/freebuds6/HuaweiFreebuds6Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/freebuds6/HuaweiFreebuds6Coordinator.java index 606b8b33af..accc7e7963 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/freebuds6/HuaweiFreebuds6Coordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/freebuds6/HuaweiFreebuds6Coordinator.java @@ -28,7 +28,6 @@ import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiFreebudsCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiHeadphonesCapabilities; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; -import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; import nodomain.freeyourgadget.gadgetbridge.service.DeviceSupport; import nodomain.freeyourgadget.gadgetbridge.service.devices.huawei.HuaweiFreebudsSupport; @@ -53,11 +52,6 @@ public class HuaweiFreebuds6Coordinator extends HuaweiFreebudsCoordinator { return HuaweiFreebudsSupport.class; } - @Override - public DeviceType getDeviceType() { - return DeviceType.HUAWEI_FREEBUDS6; - } - @Override public int getDeviceNameResource() { return R.string.devicetype_huawei_freebuds_6; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/freebudspro/HuaweiFreebudsProCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/freebudspro/HuaweiFreebudsProCoordinator.java index c4a1e3fed9..4e196569e7 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/freebudspro/HuaweiFreebudsProCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/freebudspro/HuaweiFreebudsProCoordinator.java @@ -28,7 +28,6 @@ import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiFreebudsCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiHeadphonesCapabilities; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; -import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; import nodomain.freeyourgadget.gadgetbridge.service.DeviceSupport; import nodomain.freeyourgadget.gadgetbridge.service.devices.huawei.HuaweiFreebudsSupport; @@ -55,11 +54,6 @@ public class HuaweiFreebudsProCoordinator extends HuaweiFreebudsCoordinator { return HuaweiFreebudsSupport.class; } - @Override - public DeviceType getDeviceType() { - return DeviceType.HUAWEI_FREEBUDS_PRO; - } - @Override public int getDeviceNameResource() { return R.string.devicetype_huawei_freebuds_pro; 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 5ba8aaf94c..2299587fa8 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 @@ -25,7 +25,6 @@ import nodomain.freeyourgadget.gadgetbridge.devices.DeviceCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiConstants; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiLECoordinator; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; -import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; public class HonorBand3Coordinator extends HuaweiLECoordinator { @Override @@ -33,11 +32,6 @@ public class HonorBand3Coordinator extends HuaweiLECoordinator { return "Honor"; } - @Override - public DeviceType getDeviceType() { - return DeviceType.HONORBAND3; - } - @Override protected Pattern getSupportedDeviceName() { return Pattern.compile(HuaweiConstants.HO_BAND3_NAME + ".*", Pattern.CASE_INSENSITIVE); 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 0a615af6f3..b47a3c786c 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 @@ -25,7 +25,6 @@ import nodomain.freeyourgadget.gadgetbridge.devices.DeviceCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiConstants; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiLECoordinator; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; -import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; public class HonorBand4Coordinator extends HuaweiLECoordinator { @Override @@ -33,11 +32,6 @@ public class HonorBand4Coordinator extends HuaweiLECoordinator { return "Honor"; } - @Override - public DeviceType getDeviceType() { - return DeviceType.HONORBAND4; - } - @Override protected Pattern getSupportedDeviceName() { return Pattern.compile(HuaweiConstants.HO_BAND4_NAME + ".*", Pattern.CASE_INSENSITIVE); 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 c161d255e5..ba390dba6c 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 @@ -25,7 +25,6 @@ import nodomain.freeyourgadget.gadgetbridge.devices.DeviceCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiConstants; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiLECoordinator; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; -import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; public class HonorBand5Coordinator extends HuaweiLECoordinator { @Override @@ -33,11 +32,6 @@ public class HonorBand5Coordinator extends HuaweiLECoordinator { return "Honor"; } - @Override - public DeviceType getDeviceType() { - return DeviceType.HONORBAND5; - } - @Override protected Pattern getSupportedDeviceName() { return Pattern.compile(HuaweiConstants.HO_BAND5_NAME + ".*", Pattern.CASE_INSENSITIVE); 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 0270830ed0..99a64d381f 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 @@ -25,7 +25,6 @@ import nodomain.freeyourgadget.gadgetbridge.devices.DeviceCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiConstants; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiLECoordinator; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; -import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; public class HonorBand6Coordinator extends HuaweiLECoordinator { @Override @@ -33,11 +32,6 @@ public class HonorBand6Coordinator extends HuaweiLECoordinator { return "Honor"; } - @Override - public DeviceType getDeviceType() { - return DeviceType.HONORBAND6; - } - @Override protected Pattern getSupportedDeviceName() { return Pattern.compile(HuaweiConstants.HO_BAND6_NAME + ".*", Pattern.CASE_INSENSITIVE); 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 daec5982f5..19472a6f62 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 @@ -25,7 +25,6 @@ import nodomain.freeyourgadget.gadgetbridge.devices.DeviceCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiConstants; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiLECoordinator; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; -import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; public class HonorBand7Coordinator extends HuaweiLECoordinator { @Override @@ -33,11 +32,6 @@ public class HonorBand7Coordinator extends HuaweiLECoordinator { return "Honor"; } - @Override - public DeviceType getDeviceType() { - return DeviceType.HUAWEIBAND7; - } - @Override protected Pattern getSupportedDeviceName() { return Pattern.compile(HuaweiConstants.HO_BAND7_NAME + ".*", Pattern.CASE_INSENSITIVE); 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 4ed397d310..8e192f8985 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 @@ -24,12 +24,11 @@ import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiBRCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiConstants; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; -import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; public class HonorMagicWatch2Coordinator extends HuaweiBRCoordinator { - public HonorMagicWatch2Coordinator() { - super(); - getHuaweiCoordinator().setTransactionCrypted(false); + @Override + public boolean isTransactionCrypted() { + return false; } @Override @@ -37,11 +36,6 @@ public class HonorMagicWatch2Coordinator extends HuaweiBRCoordinator { return "Honor"; } - @Override - public DeviceType getDeviceType() { - return DeviceType.HONORMAGICWATCH2; - } - @Override protected Pattern getSupportedDeviceName() { return Pattern.compile(HuaweiConstants.HO_MAGICWATCH2_NAME + ".*", Pattern.CASE_INSENSITIVE); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/honorwatch4/HonorWatch4Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/honorwatch4/HonorWatch4Coordinator.java index b7829b7d22..f5c38a0713 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/honorwatch4/HonorWatch4Coordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/honorwatch4/HonorWatch4Coordinator.java @@ -24,12 +24,11 @@ import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HonorBRCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiConstants; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; -import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; public class HonorWatch4Coordinator extends HonorBRCoordinator { - public HonorWatch4Coordinator() { - super(); - getHuaweiCoordinator().setTransactionCrypted(false); + @Override + public boolean isTransactionCrypted() { + return false; } @Override @@ -37,11 +36,6 @@ public class HonorWatch4Coordinator extends HonorBRCoordinator { return "Honor"; } - @Override - public DeviceType getDeviceType() { - return DeviceType.HONORWATCH4; - } - @Override protected Pattern getSupportedDeviceName() { return Pattern.compile("(" + HuaweiConstants.HO_WATCH4_NAME + "|" + HuaweiConstants.HO_WATCH4PRO_NAME + ").*", Pattern.CASE_INSENSITIVE); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/honorwatchgs3/HonorWatchGS3Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/honorwatchgs3/HonorWatchGS3Coordinator.java index 1c5b7f1435..26a99f6a18 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/honorwatchgs3/HonorWatchGS3Coordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/honorwatchgs3/HonorWatchGS3Coordinator.java @@ -24,12 +24,11 @@ import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiBRCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiConstants; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; -import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; public class HonorWatchGS3Coordinator extends HuaweiBRCoordinator { - public HonorWatchGS3Coordinator() { - super(); - getHuaweiCoordinator().setTransactionCrypted(false); + @Override + public boolean isTransactionCrypted() { + return false; } @Override @@ -37,11 +36,6 @@ public class HonorWatchGS3Coordinator extends HuaweiBRCoordinator { return "Honor"; } - @Override - public DeviceType getDeviceType() { - return DeviceType.HONORWATCHGS3; - } - @Override protected Pattern getSupportedDeviceName() { return Pattern.compile(HuaweiConstants.HO_WATCHGS3_NAME + ".*", Pattern.CASE_INSENSITIVE); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/honorwatchgspro/HonorWatchGSProCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/honorwatchgspro/HonorWatchGSProCoordinator.java index cc9fc0a2a1..f501d7d68f 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/honorwatchgspro/HonorWatchGSProCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/honorwatchgspro/HonorWatchGSProCoordinator.java @@ -24,12 +24,11 @@ import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiBRCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiConstants; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; -import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; public class HonorWatchGSProCoordinator extends HuaweiBRCoordinator { - public HonorWatchGSProCoordinator() { - super(); - getHuaweiCoordinator().setTransactionCrypted(false); + @Override + public boolean isTransactionCrypted() { + return false; } @Override @@ -37,11 +36,6 @@ public class HonorWatchGSProCoordinator extends HuaweiBRCoordinator { return "Honor"; } - @Override - public DeviceType getDeviceType() { - return DeviceType.HONORWATCHGSPRO; - } - @Override protected Pattern getSupportedDeviceName() { return Pattern.compile(HuaweiConstants.HO_WATCHGSPRO_NAME + ".*", Pattern.CASE_INSENSITIVE); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiband10/HuaweiBand10Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiband10/HuaweiBand10Coordinator.java index e4a0f52ba7..d5de0109f8 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiband10/HuaweiBand10Coordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiband10/HuaweiBand10Coordinator.java @@ -25,7 +25,6 @@ import nodomain.freeyourgadget.gadgetbridge.devices.DeviceCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiConstants; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiLECoordinator; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; -import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; public class HuaweiBand10Coordinator extends HuaweiLECoordinator { @Override @@ -33,11 +32,6 @@ public class HuaweiBand10Coordinator extends HuaweiLECoordinator { return true; } - @Override - public DeviceType getDeviceType() { - return DeviceType.HUAWEIBAND10; - } - @Override protected Pattern getSupportedDeviceName() { return Pattern.compile(HuaweiConstants.HU_BAND10_NAME + ".*", Pattern.CASE_INSENSITIVE); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiband2pro/HuaweiBand2ProCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiband2pro/HuaweiBand2ProCoordinator.java index e84655e21e..bf2c6f0a0a 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiband2pro/HuaweiBand2ProCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiband2pro/HuaweiBand2ProCoordinator.java @@ -25,14 +25,8 @@ import nodomain.freeyourgadget.gadgetbridge.devices.DeviceCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiConstants; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiLECoordinator; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; -import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; public class HuaweiBand2ProCoordinator extends HuaweiLECoordinator { - @Override - public DeviceType getDeviceType() { - return DeviceType.HUAWEIBAND2PRO; - } - @Override protected Pattern getSupportedDeviceName() { return Pattern.compile("(" + HuaweiConstants.HU_BAND2_NAME + "|" + HuaweiConstants.HU_BAND2PRO_NAME + ").*", Pattern.CASE_INSENSITIVE); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiband3pro/HuaweiBand3ProCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiband3pro/HuaweiBand3ProCoordinator.java index dacd40e948..7d927df744 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiband3pro/HuaweiBand3ProCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiband3pro/HuaweiBand3ProCoordinator.java @@ -25,14 +25,8 @@ import nodomain.freeyourgadget.gadgetbridge.devices.DeviceCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiConstants; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiLECoordinator; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; -import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; public class HuaweiBand3ProCoordinator extends HuaweiLECoordinator { - @Override - public DeviceType getDeviceType() { - return DeviceType.HUAWEIBAND3PRO; - } - @Override protected Pattern getSupportedDeviceName() { return Pattern.compile("(" + HuaweiConstants.HU_BAND3_NAME + "|" + HuaweiConstants.HU_BAND3PRO_NAME + ").*", Pattern.CASE_INSENSITIVE); 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 df621ebacc..5bbfa97f54 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 @@ -25,14 +25,8 @@ import nodomain.freeyourgadget.gadgetbridge.devices.DeviceCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiConstants; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiLECoordinator; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; -import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; public class HuaweiBand4ProCoordinator extends HuaweiLECoordinator { - @Override - public DeviceType getDeviceType() { - return DeviceType.HUAWEIBAND4PRO; - } - @Override protected Pattern getSupportedDeviceName() { return Pattern.compile("(" + HuaweiConstants.HU_BAND4_NAME + "|" + HuaweiConstants.HU_BAND4PRO_NAME + ").*", Pattern.CASE_INSENSITIVE); 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 fd48e7873e..81939e4e8d 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 @@ -25,14 +25,8 @@ import nodomain.freeyourgadget.gadgetbridge.devices.DeviceCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiConstants; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiLECoordinator; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; -import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; public class HuaweiBand6Coordinator extends HuaweiLECoordinator { - @Override - public DeviceType getDeviceType() { - return DeviceType.HUAWEIBAND6; - } - @Override protected Pattern getSupportedDeviceName() { return Pattern.compile(HuaweiConstants.HU_BAND6_NAME + ".*", Pattern.CASE_INSENSITIVE); 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 8ea7cd6cd4..2c574e2c99 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 @@ -25,14 +25,8 @@ import nodomain.freeyourgadget.gadgetbridge.devices.DeviceCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiConstants; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiLECoordinator; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; -import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; public class HuaweiBand7Coordinator extends HuaweiLECoordinator { - @Override - public DeviceType getDeviceType() { - return DeviceType.HUAWEIBAND7; - } - @Override protected Pattern getSupportedDeviceName() { return Pattern.compile(HuaweiConstants.HU_BAND7_NAME + ".*", Pattern.CASE_INSENSITIVE); 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 62bed35b2f..4609b2179c 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 @@ -25,14 +25,8 @@ import nodomain.freeyourgadget.gadgetbridge.devices.DeviceCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiConstants; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiLECoordinator; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; -import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; public class HuaweiBand8Coordinator extends HuaweiLECoordinator { - @Override - public DeviceType getDeviceType() { - return DeviceType.HUAWEIBAND8; - } - @Override protected Pattern getSupportedDeviceName() { return Pattern.compile(HuaweiConstants.HU_BAND8_NAME + ".*", Pattern.CASE_INSENSITIVE); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiband9/HuaweiBand9Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiband9/HuaweiBand9Coordinator.java index 5766573640..4fb8d1cd6f 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiband9/HuaweiBand9Coordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiband9/HuaweiBand9Coordinator.java @@ -25,7 +25,6 @@ import nodomain.freeyourgadget.gadgetbridge.devices.DeviceCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiConstants; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiLECoordinator; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; -import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; public class HuaweiBand9Coordinator extends HuaweiLECoordinator { @Override @@ -33,11 +32,6 @@ public class HuaweiBand9Coordinator extends HuaweiLECoordinator { return true; } - @Override - public DeviceType getDeviceType() { - return DeviceType.HUAWEIBAND9; - } - @Override protected Pattern getSupportedDeviceName() { return Pattern.compile(HuaweiConstants.HU_BAND9_NAME + ".*", Pattern.CASE_INSENSITIVE); 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 08dac731d6..0011d2c279 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 @@ -25,14 +25,8 @@ import nodomain.freeyourgadget.gadgetbridge.devices.DeviceCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiConstants; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiLECoordinator; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; -import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; public class HuaweiBandAw70Coordinator extends HuaweiLECoordinator { - @Override - public DeviceType getDeviceType() { - return DeviceType.HUAWEIBANDAW70; - } - @Override protected Pattern getSupportedDeviceName() { return Pattern.compile("(" + HuaweiConstants.HU_BAND3E_NAME + "|" + HuaweiConstants.HU_BAND4E_NAME + ").*", Pattern.CASE_INSENSITIVE); 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 2743aa96e0..7f7b66a5e0 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 @@ -25,17 +25,11 @@ import nodomain.freeyourgadget.gadgetbridge.devices.DeviceCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiBRCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiConstants; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; -import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; public class HuaweiTalkBandB6Coordinator extends HuaweiBRCoordinator { - public HuaweiTalkBandB6Coordinator() { - super(); - getHuaweiCoordinator().setTransactionCrypted(false); - } - @Override - public DeviceType getDeviceType() { - return DeviceType.HUAWEITALKBANDB6; + public boolean isTransactionCrypted() { + return false; } @Override diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatch3/HuaweiWatch3Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatch3/HuaweiWatch3Coordinator.java index eb8d1c5fb4..a7f2009a0b 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatch3/HuaweiWatch3Coordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatch3/HuaweiWatch3Coordinator.java @@ -24,14 +24,8 @@ import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiBRCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiConstants; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; -import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; public class HuaweiWatch3Coordinator extends HuaweiBRCoordinator { - @Override - public DeviceType getDeviceType() { - return DeviceType.HUAWEIWATCH3; - } - @Override protected Pattern getSupportedDeviceName() { return Pattern.compile("(" + HuaweiConstants.HU_WATCH3_NAME + "|" + HuaweiConstants.HU_WATCH3PRO_NAME + ").*", Pattern.CASE_INSENSITIVE); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatch4pro/HuaweiWatch4ProCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatch4pro/HuaweiWatch4ProCoordinator.java index a01e0efccb..f41863585f 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatch4pro/HuaweiWatch4ProCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatch4pro/HuaweiWatch4ProCoordinator.java @@ -24,19 +24,8 @@ import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiBRCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiConstants; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; -import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; public class HuaweiWatch4ProCoordinator extends HuaweiBRCoordinator { - public HuaweiWatch4ProCoordinator() { - super(); - getHuaweiCoordinator().setTransactionCrypted(true); - } - - @Override - public DeviceType getDeviceType() { - return DeviceType.HUAWEIWATCH4PRO; - } - @Override protected Pattern getSupportedDeviceName() { return Pattern.compile("(" + HuaweiConstants.HU_WATCH4_NAME + "|" + HuaweiConstants.HU_WATCH4PRO_NAME + ").*", Pattern.CASE_INSENSITIVE); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatch5/HuaweiWatch5Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatch5/HuaweiWatch5Coordinator.java index 34c6d7afaa..fb605d1d71 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatch5/HuaweiWatch5Coordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatch5/HuaweiWatch5Coordinator.java @@ -24,24 +24,13 @@ import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiBRCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiConstants; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; -import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; public class HuaweiWatch5Coordinator extends HuaweiBRCoordinator { - public HuaweiWatch5Coordinator() { - super(); - getHuaweiCoordinator().setTransactionCrypted(true); - } - @Override public boolean isExperimental() { return true; } - @Override - public DeviceType getDeviceType() { - return DeviceType.HUAWEIWATCH5; - } - @Override protected Pattern getSupportedDeviceName() { return Pattern.compile("(" + HuaweiConstants.HU_WATCH5_NAME + ").*", Pattern.CASE_INSENSITIVE); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchd2/HuaweiWatchD2Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchd2/HuaweiWatchD2Coordinator.java index 1aa0e58b0f..a32cacf435 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchd2/HuaweiWatchD2Coordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchd2/HuaweiWatchD2Coordinator.java @@ -24,14 +24,8 @@ import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiBRCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiConstants; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; -import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; public class HuaweiWatchD2Coordinator extends HuaweiBRCoordinator { - @Override - public DeviceType getDeviceType() { - return DeviceType.HUAWEIWATCHD2; - } - @Override protected Pattern getSupportedDeviceName() { return Pattern.compile("(" + HuaweiConstants.HU_WATCHD2_NAME + ").*", Pattern.CASE_INSENSITIVE); 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 477e7729c4..b0059ff6ac 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 @@ -24,14 +24,8 @@ import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiConstants; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiLECoordinator; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; -import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; public class HuaweiWatchFitCoordinator extends HuaweiLECoordinator { - @Override - public DeviceType getDeviceType() { - return DeviceType.HUAWEIWATCHFIT; - } - @Override protected Pattern getSupportedDeviceName() { return Pattern.compile(HuaweiConstants.HU_WATCHFIT_NAME + ".*", Pattern.CASE_INSENSITIVE); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchfit2/HuaweiWatchFit2Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchfit2/HuaweiWatchFit2Coordinator.java index 11fd8aa5f3..6151c966d8 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchfit2/HuaweiWatchFit2Coordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchfit2/HuaweiWatchFit2Coordinator.java @@ -24,19 +24,8 @@ import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiBRCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiConstants; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; -import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; public class HuaweiWatchFit2Coordinator extends HuaweiBRCoordinator { - public HuaweiWatchFit2Coordinator() { - super(); - getHuaweiCoordinator().setTransactionCrypted(true); - } - - @Override - public DeviceType getDeviceType() { - return DeviceType.HUAWEIWATCHFIT2; - } - @Override protected Pattern getSupportedDeviceName() { return Pattern.compile("(" + HuaweiConstants.HU_WATCHFIT2_NAME + ").*", Pattern.CASE_INSENSITIVE); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchfit3/HuaweiWatchFit3Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchfit3/HuaweiWatchFit3Coordinator.java index 835cf7a5ae..4305f43167 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchfit3/HuaweiWatchFit3Coordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchfit3/HuaweiWatchFit3Coordinator.java @@ -24,24 +24,13 @@ import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiBRCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiConstants; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; -import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; public class HuaweiWatchFit3Coordinator extends HuaweiBRCoordinator { - public HuaweiWatchFit3Coordinator() { - super(); - getHuaweiCoordinator().setTransactionCrypted(true); - } - @Override public boolean isExperimental() { return true; } - @Override - public DeviceType getDeviceType() { - return DeviceType.HUAWEIWATCHFIT3; - } - @Override protected Pattern getSupportedDeviceName() { return Pattern.compile("(" + HuaweiConstants.HU_WATCHFIT3_NAME + ").*", Pattern.CASE_INSENSITIVE); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchfit4pro/HuaweiWatchFit4ProCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchfit4pro/HuaweiWatchFit4ProCoordinator.java index 69e0d95984..fb731f7773 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchfit4pro/HuaweiWatchFit4ProCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchfit4pro/HuaweiWatchFit4ProCoordinator.java @@ -24,24 +24,13 @@ import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiBRCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiConstants; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; -import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; public class HuaweiWatchFit4ProCoordinator extends HuaweiBRCoordinator { - public HuaweiWatchFit4ProCoordinator() { - super(); - getHuaweiCoordinator().setTransactionCrypted(true); - } - @Override public boolean isExperimental() { return true; } - @Override - public DeviceType getDeviceType() { - return DeviceType.HUAWEIWATCHFIT4PRO; - } - @Override protected Pattern getSupportedDeviceName() { return Pattern.compile("(" + HuaweiConstants.HU_WATCHFIT4_NAME + "|" + HuaweiConstants.HU_WATCHFIT4PRO_NAME + ").*", Pattern.CASE_INSENSITIVE); 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 da2322ab11..abf28b151d 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 @@ -24,14 +24,8 @@ import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiConstants; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiLECoordinator; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; -import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; public class HuaweiWatchGTCoordinator extends HuaweiLECoordinator { - @Override - public DeviceType getDeviceType() { - return DeviceType.HUAWEIWATCHGT; - } - @Override protected Pattern getSupportedDeviceName() { return Pattern.compile(HuaweiConstants.HU_WATCHGT_NAME + ".*", Pattern.CASE_INSENSITIVE); 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 9fbea953b6..dad3a9e00e 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 @@ -24,14 +24,8 @@ import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiBRCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiConstants; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; -import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; public class HuaweiWatchGT2Coordinator extends HuaweiBRCoordinator { - @Override - public DeviceType getDeviceType() { - return DeviceType.HUAWEIWATCHGT2; - } - @Override protected Pattern getSupportedDeviceName() { return Pattern.compile("(" + HuaweiConstants.HU_WATCHGT2_NAME + "|" + HuaweiConstants.HU_WATCHGT2PRO_NAME + ").*", Pattern.CASE_INSENSITIVE); 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 1d95696351..cff846d25f 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 @@ -24,14 +24,8 @@ import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiConstants; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiLECoordinator; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; -import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; public class HuaweiWatchGT2eCoordinator extends HuaweiLECoordinator { - @Override - public DeviceType getDeviceType() { - return DeviceType.HUAWEIWATCHGT2E; - } - @Override protected Pattern getSupportedDeviceName() { return Pattern.compile(HuaweiConstants.HU_WATCHGT2E_NAME + ".*", Pattern.CASE_INSENSITIVE); 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 365b5acd9b..f8f9b27a20 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 @@ -24,14 +24,8 @@ import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiBRCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiConstants; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; -import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; public class HuaweiWatchGT3Coordinator extends HuaweiBRCoordinator { - @Override - public DeviceType getDeviceType() { - return DeviceType.HUAWEIWATCHGT3; - } - @Override protected Pattern getSupportedDeviceName() { return Pattern.compile("(" + HuaweiConstants.HU_WATCHGT3_NAME + "|" + HuaweiConstants.HU_WATCHGT3PRO_NAME + "|" + HuaweiConstants.HU_WATCHGT3SE_NAME + ").*", Pattern.CASE_INSENSITIVE); 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 901e030820..4c0b406408 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 @@ -24,19 +24,8 @@ import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiBRCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiConstants; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; -import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; public class HuaweiWatchGT4Coordinator extends HuaweiBRCoordinator { - public HuaweiWatchGT4Coordinator() { - super(); - getHuaweiCoordinator().setTransactionCrypted(true); - } - - @Override - public DeviceType getDeviceType() { - return DeviceType.HUAWEIWATCHGT4; - } - @Override protected Pattern getSupportedDeviceName() { return Pattern.compile("(" + HuaweiConstants.HU_WATCHGT4_NAME + ").*", Pattern.CASE_INSENSITIVE); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchgt5/HuaweiWatchGT5Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchgt5/HuaweiWatchGT5Coordinator.java index b7d22cb4cf..72fca8b5aa 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchgt5/HuaweiWatchGT5Coordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchgt5/HuaweiWatchGT5Coordinator.java @@ -24,14 +24,8 @@ import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiBRCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiConstants; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; -import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; public class HuaweiWatchGT5Coordinator extends HuaweiBRCoordinator { - @Override - public DeviceType getDeviceType() { - return DeviceType.HUAWEIWATCHGT5; - } - @Override protected Pattern getSupportedDeviceName() { return Pattern.compile("(" + HuaweiConstants.HU_WATCHGT5_NAME + "|" + HuaweiConstants.HU_WATCHGT5PRO_NAME + ").*", Pattern.CASE_INSENSITIVE); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchgt6/HuaweiWatchGT6Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchgt6/HuaweiWatchGT6Coordinator.java index 13703f64f9..8a0da11e76 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchgt6/HuaweiWatchGT6Coordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchgt6/HuaweiWatchGT6Coordinator.java @@ -24,15 +24,9 @@ import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiBRCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiConstants; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; -import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; /// #5428 public class HuaweiWatchGT6Coordinator extends HuaweiBRCoordinator { - @Override - public DeviceType getDeviceType() { - return DeviceType.HUAWEIWATCHGT6; - } - @Override protected Pattern getSupportedDeviceName() { return Pattern.compile("(" + HuaweiConstants.HU_WATCHGT6_NAME + "|" + HuaweiConstants.HU_WATCHGT6PRO_NAME + ").*", Pattern.CASE_INSENSITIVE); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchgtcyber/HuaweiWatchGTCyberCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchgtcyber/HuaweiWatchGTCyberCoordinator.java index 7d66647da4..1df04779a0 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchgtcyber/HuaweiWatchGTCyberCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchgtcyber/HuaweiWatchGTCyberCoordinator.java @@ -24,14 +24,8 @@ import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiBRCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiConstants; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; -import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; public class HuaweiWatchGTCyberCoordinator extends HuaweiBRCoordinator { - @Override - public DeviceType getDeviceType() { - return DeviceType.HUAWEIWATCHGTCYBER; - } - @Override protected Pattern getSupportedDeviceName() { return Pattern.compile("(" + HuaweiConstants.HU_WATCHGTCYBER_NAME + ").*", Pattern.CASE_INSENSITIVE); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchgtrunner/HuaweiWatchGTRunnerCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchgtrunner/HuaweiWatchGTRunnerCoordinator.java index 2eea907e02..3282c61893 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchgtrunner/HuaweiWatchGTRunnerCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchgtrunner/HuaweiWatchGTRunnerCoordinator.java @@ -24,14 +24,8 @@ import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiBRCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiConstants; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; -import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; public class HuaweiWatchGTRunnerCoordinator extends HuaweiBRCoordinator { - @Override - public DeviceType getDeviceType() { - return DeviceType.HUAWEIWATCHGTRUNNER; - } - @Override protected Pattern getSupportedDeviceName() { return Pattern.compile("(" + HuaweiConstants.HU_WATCHGTRUNNER_NAME + ").*", Pattern.CASE_INSENSITIVE); 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 84a8c433e3..7d09005fa8 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 @@ -24,19 +24,8 @@ import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiBRCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiConstants; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; -import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; public class HuaweiWatchUltimateCoordinator extends HuaweiBRCoordinator { - public HuaweiWatchUltimateCoordinator() { - super(); - getHuaweiCoordinator().setTransactionCrypted(true); - } - - @Override - public DeviceType getDeviceType() { - return DeviceType.HUAWEIWATCHULTIMATE; - } - @Override protected Pattern getSupportedDeviceName() { return Pattern.compile("(" + HuaweiConstants.HU_WATCHULTIMATE_NAME + ").*", Pattern.CASE_INSENSITIVE); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/HuaweiAppManager.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/HuaweiAppManager.java index 9bd510aab7..65007a750d 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/HuaweiAppManager.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/HuaweiAppManager.java @@ -91,7 +91,7 @@ public class HuaweiAppManager { } public void requestAppList() { - if (!this.support.getHuaweiCoordinator().supportsAppParams()) + if (!this.support.getDeviceState().supportsAppParams()) return; try { GetAppNames getAppNames = new GetAppNames(support); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/HuaweiBRSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/HuaweiBRSupport.java index 6d53b252f7..a17f46cfe4 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/HuaweiBRSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/HuaweiBRSupport.java @@ -61,7 +61,7 @@ public class HuaweiBRSupport extends AbstractBTBRDeviceSupport { @Override public void setContext(GBDevice gbDevice, BluetoothAdapter btAdapter, Context context) { super.setContext(gbDevice, btAdapter, context); - supportProvider.setContext(context); + supportProvider.setContext(gbDevice, context); } @Override diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/HuaweiDataSyncManager.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/HuaweiDataSyncManager.java index 4938b0947f..52938217dc 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/HuaweiDataSyncManager.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/HuaweiDataSyncManager.java @@ -85,7 +85,7 @@ public class HuaweiDataSyncManager { } public boolean sendConfigCommand(String srcPackage, String dstPackage, HuaweiDataSyncCommon.ConfigCommandData data) { - if(!this.support.getHuaweiCoordinator().supportsDeviceCommandConfig()) { + if(!this.support.getDeviceState().supportsDeviceCommandConfig()) { LOG.info("sendConfigCommand is not supported"); return false; } @@ -100,7 +100,7 @@ public class HuaweiDataSyncManager { } public boolean sendEventCommand(String srcPackage, String dstPackage, HuaweiDataSyncCommon.EventCommandData data) { - if(!this.support.getHuaweiCoordinator().supportsDeviceCommandEvent()) { + if(!this.support.getDeviceState().supportsDeviceCommandEvent()) { LOG.info("sendEventCommand is not supported"); return false; } @@ -115,7 +115,7 @@ public class HuaweiDataSyncManager { } public boolean sendDataCommand(String srcPackage, String dstPackage, HuaweiDataSyncCommon.DataCommandData data) { - if(!this.support.getHuaweiCoordinator().supportsDeviceCommandData()) { + if(!this.support.getDeviceState().supportsDeviceCommandData()) { LOG.info("sendDataCommand is not supported"); return false; } @@ -130,7 +130,7 @@ public class HuaweiDataSyncManager { } public boolean sendDictDataCommand(String srcPackage, String dstPackage, HuaweiDataSyncCommon.DictDataCommandData data) { - if(!this.support.getHuaweiCoordinator().supportsDeviceCommandDictData()) { + if(!this.support.getDeviceState().supportsDeviceCommandDictData()) { LOG.info("sendDictDataCommand is not supported"); return false; } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/HuaweiFreebudsSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/HuaweiFreebudsSupport.java index e77c307947..bacfc46fd4 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/HuaweiFreebudsSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/HuaweiFreebudsSupport.java @@ -82,8 +82,6 @@ public class HuaweiFreebudsSupport extends HuaweiBRSupport implements HeadphoneH protected TransactionBuilder initializeDevice(TransactionBuilder builder) { LOG.info("Huawei Freebuds init"); - super.getSupportProvider().setup(getDevice(), getContext()); - builder.setDeviceState(GBDevice.State.INITIALIZING); try { builder.setCallback(this); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/HuaweiLESupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/HuaweiLESupport.java index 96cce0fdac..9787013d63 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/HuaweiLESupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/HuaweiLESupport.java @@ -66,7 +66,7 @@ public class HuaweiLESupport extends AbstractBTLESingleDeviceSupport { @Override public void setContext(GBDevice gbDevice, BluetoothAdapter btAdapter, Context context) { super.setContext(gbDevice, btAdapter, context); - supportProvider.setContext(context); + supportProvider.setContext(gbDevice, context); } @Override diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/HuaweiMusicManager.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/HuaweiMusicManager.java index feeed81594..bbc297df70 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/HuaweiMusicManager.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/HuaweiMusicManager.java @@ -97,7 +97,7 @@ public class HuaweiMusicManager { return; } int count = this.frameCount; - if (support.getHuaweiCoordinator().supportsMoreMusic()) { + if (support.getDeviceState().supportsMoreMusic()) { count = Math.min(this.frameCount, 250); } if (this.currentFrame < count) { @@ -200,7 +200,7 @@ public class HuaweiMusicManager { //TODO: research and use pageStruct. It may/should be used to retrieve music data from devices by pages. // without it list can be incomplete, but I can't confirm this. LOG.info("FrameCount: {}, pageStruct: {}", frameCount, pageStruct); - support.getHuaweiCoordinator().setMusicInfoParams(capabilities); + support.getDeviceState().setMusicInfoParams(capabilities); if(syncMusicData) { this.frameCount = frameCount; this.currentFrame = 0; @@ -210,8 +210,8 @@ public class HuaweiMusicManager { formats = String.join(",", capabilities.supportedFormats); } int maxPlaylistCount = 0; - if(support.getCoordinator().getHuaweiCoordinator().getExtendedMusicInfoParams() != null) { - maxPlaylistCount = support.getCoordinator().getHuaweiCoordinator().getExtendedMusicInfoParams().maxPlaylistCount; + if(support.getDeviceState().getExtendedMusicInfoParams() != null) { + maxPlaylistCount = support.getDeviceState().getExtendedMusicInfoParams().maxPlaylistCount; } sendMusicSyncStart(support.getContext().getString(R.string.music_huawei_device_info, formats, capabilities.availableSpace), capabilities.maxMusicCount, maxPlaylistCount); syncMusicList(); @@ -250,7 +250,7 @@ public class HuaweiMusicManager { public void onMusicListResponse(int startFrame, int endFrame, List list) { sendMusicList(list); - if (support.getHuaweiCoordinator().supportsMoreMusic() || !(endFrame == this.endFrame || list.size() == 1)) { + if (support.getDeviceState().supportsMoreMusic() || !(endFrame == this.endFrame || list.size() == 1)) { if (list.size() == 2) { this.endFrame = list.get(1).getId(); } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/HuaweiNotificationsManager.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/HuaweiNotificationsManager.java index 8090b48796..a1fd1d5b09 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/HuaweiNotificationsManager.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/HuaweiNotificationsManager.java @@ -88,7 +88,7 @@ public class HuaweiNotificationsManager { } public void onDeleteNotification(int id) { - if (!support.getHuaweiCoordinator().supportsNotificationsRepeatedNotify() && !support.getHuaweiCoordinator().supportsNotificationsRemoveSingle()) { + if (!support.getDeviceState().supportsNotificationsRepeatedNotify() && !support.getDeviceState().supportsNotificationsRemoveSingle()) { LOG.info("Delete notification is not supported"); return; } @@ -122,7 +122,7 @@ public class HuaweiNotificationsManager { void onReplyResponse(Notifications.NotificationReply.ReplyResponse response) { LOG.info(" KEY: {}, Text: {}", response.key, response.text); - if(!this.support.getHuaweiCoordinator().supportsNotificationsReplyActions()) { + if(!this.support.getDeviceState().supportsNotificationsReplyActions()) { LOG.info("Reply is not supported"); return; } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/HuaweiOTAManager.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/HuaweiOTAManager.java index 65fef8a792..c01ea4f2b1 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/HuaweiOTAManager.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/HuaweiOTAManager.java @@ -154,14 +154,14 @@ public class HuaweiOTAManager { cleanup(); return; } - if (!support.getHuaweiCoordinator().supportsOTAUpdate()) { + if (!support.getDeviceState().supportsOTAUpdate()) { LOG.info("OTA update is not supported"); cleanup(); return; } setDeviceBusy(); - if (support.getHuaweiCoordinator().supportsOTANotify()) { + if (support.getDeviceState().supportsOTANotify()) { try { SendOTANotifyNewVersion notifyNewVersion = new SendOTANotifyNewVersion(support, this.fwInfo.versionName, this.fwInfo.size, (byte) 1, (byte) 2); notifyNewVersion.doPerform(); @@ -181,7 +181,7 @@ public class HuaweiOTAManager { private void startFWCheck(HuaweiOTAFileList.OTAFileInfo fwInfo, Uri uri) { downloadProgress = 0; - if (support.getHuaweiCoordinator().supportsOTADeviceRequest()) { + if (support.getDeviceState().supportsOTADeviceRequest()) { try { SendOTAProgress progressReq = new SendOTAProgress(support, (byte) 0, (byte) 0, (byte) 0); progressReq.doPerform(); @@ -298,8 +298,8 @@ public class HuaweiOTAManager { int data = buffer.getInt(); int signature = 256; - if (support.getHuaweiCoordinator().supportsOTASignature()) { - signature = support.getHuaweiCoordinator().getOtaSignatureLength(); + if (support.getDeviceState().supportsOTASignature()) { + signature = support.getDeviceState().getOtaSignatureLength(); } LOG.info("data: {}, signature: {}", data, signature); return (short) (data + signature); @@ -354,7 +354,7 @@ public class HuaweiOTAManager { public void onFwCheckFail() { LOG.info("onFwCheckFail"); - if (support.getHuaweiCoordinator().supportsOTADeviceRequest()) { + if (support.getDeviceState().supportsOTADeviceRequest()) { try { SendOTAProgress progressReq = new SendOTAProgress(support, (byte) downloadProgress, (byte) 2, (byte) 0); progressReq.doPerform(); @@ -375,7 +375,7 @@ public class HuaweiOTAManager { this.state = 3; - if (support.getHuaweiCoordinator().supportsOTADeviceRequest()) { + if (support.getDeviceState().supportsOTADeviceRequest()) { try { SendOTAGetMode sendOTAGetMode = new SendOTAGetMode(support); sendOTAGetMode.doPerform(); @@ -391,7 +391,7 @@ public class HuaweiOTAManager { public void onFwCheckProgress(int val) { LOG.info("onFwCheckProgress: {}", val); downloadProgress = val; - if (support.getHuaweiCoordinator().supportsOTADeviceRequest()) { + if (support.getDeviceState().supportsOTADeviceRequest()) { try { SendOTAProgress progressReq = new SendOTAProgress(support, (byte) downloadProgress, (byte) 1, (byte) 0); progressReq.doPerform(); @@ -413,7 +413,7 @@ public class HuaweiOTAManager { } if (this.state == 1) { this.state = 2; - if (support.getHuaweiCoordinator().supportsOTANotify()) { + if (support.getDeviceState().supportsOTANotify()) { try { SendOTANotifyNewVersion notifyNewVersion = new SendOTANotifyNewVersion(support, fwInfo.versionName, fwInfo.size, (byte) 1, (byte) 0); notifyNewVersion.doPerform(); @@ -533,7 +533,7 @@ public class HuaweiOTAManager { return; } if (this.state == 1) { - if (support.getHuaweiCoordinator().supportsOTAUpdate()) { + if (support.getDeviceState().supportsOTAUpdate()) { try { SendOTAStartQuery sendOTAStartQuery = new SendOTAStartQuery(support, fwInfo.versionName, (short) 256, (byte) 2, false); sendOTAStartQuery.doPerform(); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/HuaweiSupportProvider.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/HuaweiSupportProvider.java index 972fff6ad2..d8afa255ca 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/HuaweiSupportProvider.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/HuaweiSupportProvider.java @@ -66,10 +66,11 @@ import nodomain.freeyourgadget.gadgetbridge.deviceevents.GBDeviceEventDisplayMes import nodomain.freeyourgadget.gadgetbridge.devices.DeviceCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiCompatTemperatureSampleProvider; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiConstants; -import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiCoordinatorSupplier; +import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiCoordinatorSupplier.HuaweiDeviceType; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiCrypto; +import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiDeviceStateManager; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiDictTypes; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiEcgFileParser; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiGpsParser; @@ -336,8 +337,8 @@ public class HuaweiSupportProvider { return ((HuaweiCoordinatorSupplier) this.gbDevice.getDeviceCoordinator()); } - public HuaweiCoordinator getHuaweiCoordinator() { - return getCoordinator().getHuaweiCoordinator(); + public HuaweiCoordinator getDeviceState() { + return HuaweiDeviceStateManager.get(getDevice()); } public HuaweiUploadManager getUploadManager() { @@ -388,7 +389,11 @@ public class HuaweiSupportProvider { this.leSupport = support; } - public void setContext(Context context) { + public void setContext(GBDevice device, Context context) { + this.gbDevice = device; + this.context = context; + this.huaweiType = getCoordinator().getHuaweiType(); + this.paramsProvider.setTransactionsCrypted(getCoordinator().isTransactionCrypted()); mediaManager = new MediaManager(context); } @@ -472,11 +477,10 @@ public class HuaweiSupportProvider { this.gbDevice = device; this.context = context; this.huaweiType = getCoordinator().getHuaweiType(); - this.paramsProvider.setTransactionsCrypted(this.getHuaweiCoordinator().isTransactionCrypted()); + this.paramsProvider.setTransactionsCrypted(getCoordinator().isTransactionCrypted()); } protected nodomain.freeyourgadget.gadgetbridge.service.btle.TransactionBuilder initializeDevice(nodomain.freeyourgadget.gadgetbridge.service.btle.TransactionBuilder builder) { - setup(leSupport.getDevice(), leSupport.getContext()); builder.setCallback(leSupport); final BluetoothGattCharacteristic characteristicRead = leSupport.getCharacteristic(HuaweiConstants.UUID_CHARACTERISTIC_HUAWEI_READ); if (characteristicRead == null) { @@ -488,17 +492,14 @@ public class HuaweiSupportProvider { builder.setDeviceState(GBDevice.State.AUTHENTICATING); final GetLinkParamsRequest linkParamsReq = new GetLinkParamsRequest(this, builder); initializeDevice(linkParamsReq); - getCoordinator().setDevice(this.gbDevice); return builder; } protected nodomain.freeyourgadget.gadgetbridge.service.btbr.TransactionBuilder initializeDevice(nodomain.freeyourgadget.gadgetbridge.service.btbr.TransactionBuilder builder) { - setup(brSupport.getDevice(), brSupport.getContext()); builder.setCallback(brSupport); builder.setDeviceState(GBDevice.State.AUTHENTICATING); final GetLinkParamsRequest linkParamsReq = new GetLinkParamsRequest(this, builder); initializeDevice(linkParamsReq); - getCoordinator().setDevice(this.gbDevice); return builder; } @@ -877,36 +878,36 @@ public class HuaweiSupportProvider { try { // NOTE: register all DAta Sync handlers on the early stage. We can receive requests from the watch during initialization. - if (getHuaweiCoordinator().getSendCountryCodeEnabled(getDevice())) { + if (getDeviceState().getSendCountryCodeEnabled(getDevice())) { huaweiDataSyncFeatureManager = new HuaweiDataSyncFeatureManager(HuaweiSupportProvider.this); } - if (getHuaweiCoordinator().supportsNotificationPicture()) { + if (getDeviceState().supportsNotificationPicture()) { huaweiDataSyncNotificationPictures = new HuaweiDataSyncNotificationPictures(HuaweiSupportProvider.this); } - if (getHuaweiCoordinator().supportsThreeCircle() || getHuaweiCoordinator().supportsThreeCircleLite()) { + if (getDeviceState().supportsThreeCircle() || getDeviceState().supportsThreeCircleLite()) { huaweiDataSyncTreeCircleGoals = new HuaweiDataSyncGoals(HuaweiSupportProvider.this); } - if (getHuaweiCoordinator().supportsFindDeviceAbility()) { + if (getDeviceState().supportsFindDeviceAbility()) { huaweiDataSyncFindDevice = new HuaweiDataSyncFindDevice(HuaweiSupportProvider.this); } - if (getHuaweiCoordinator().supportsEmotion()) { + if (getDeviceState().supportsEmotion()) { huaweiDataSyncEmotion = new HuaweiDataSyncEmotion(HuaweiSupportProvider.this); } - if (getHuaweiCoordinator().supportsArrhythmia() && getHuaweiCoordinator().isShowForceCountrySpecificFeatures(getCoordinator().getDevice())) { + if (getDeviceState().supportsArrhythmia() && getDeviceState().isShowForceCountrySpecificFeatures(getDevice())) { huaweiDataSyncArrhythmia = new HuaweiDataSyncArrhythmia(HuaweiSupportProvider.this); } - if (getHuaweiCoordinator().supportsECG() && getHuaweiCoordinator().isShowForceCountrySpecificFeatures(getCoordinator().getDevice())) { + if (getDeviceState().supportsECG() && getDeviceState().isShowForceCountrySpecificFeatures(getDevice())) { huaweiDataSyncEcg = new HuaweiDataSyncEcg(HuaweiSupportProvider.this); } - if (getHuaweiCoordinator().supportsSleepApnea()) { + if (getDeviceState().supportsSleepApnea()) { huaweiDataSyncSleepApnea = new HuaweiDataSyncSleepApnea(HuaweiSupportProvider.this); } - if (getHuaweiCoordinator().supportsArterialStiffnessDetection()) { + if (getDeviceState().supportsArterialStiffnessDetection()) { huaweiDataSyncArterialStiffnessDetection = new HuaweiDataSyncArterialStiffnessDetection(HuaweiSupportProvider.this); } @@ -962,7 +963,7 @@ public class HuaweiSupportProvider { // Setup the alarms if necessary - if (!getHuaweiCoordinator().supportsChangingAlarm() && firstConnection) + if (!getDeviceState().supportsChangingAlarm() && firstConnection) initializeAlarms(); // Queue all the requests @@ -981,20 +982,20 @@ public class HuaweiSupportProvider { public void call() { gbDevice.setUpdateState(GBDevice.State.INITIALIZED, getContext()); - if (getHuaweiCoordinator().supportsP2PService()) { - if (getHuaweiCoordinator().supportsCalendar()) { + if (getDeviceState().supportsP2PService()) { + if (getDeviceState().supportsCalendar()) { if (HuaweiP2PCalendarService.getRegisteredInstance(huaweiP2PManager) == null) { HuaweiP2PCalendarService calendarService = new HuaweiP2PCalendarService(huaweiP2PManager); calendarService.register(); } } - if (getHuaweiCoordinator().supportsTrack()) { + if (getDeviceState().supportsTrack()) { if (HuaweiP2PTrackService.getRegisteredInstance(huaweiP2PManager) == null) { HuaweiP2PTrackService trackService = new HuaweiP2PTrackService(huaweiP2PManager); trackService.register(); } } - if (getHuaweiCoordinator().supportsCannedReplies()) { + if (getDeviceState().supportsCannedReplies()) { if (HuaweiP2PCannedRepliesService.getRegisteredInstance(huaweiP2PManager) == null) { HuaweiP2PCannedRepliesService cannedRepliesService = new HuaweiP2PCannedRepliesService(huaweiP2PManager); cannedRepliesService.register(); @@ -1004,13 +1005,13 @@ public class HuaweiSupportProvider { HuaweiP2PDataDictionarySyncService trackService = new HuaweiP2PDataDictionarySyncService(huaweiP2PManager); trackService.register(); } - if (getHuaweiCoordinator().supportsNotificationsAddIconTimestamp()) { + if (getDeviceState().supportsNotificationsAddIconTimestamp()) { if (HuaweiP2PAppIcon.getRegisteredInstance(huaweiP2PManager) == null) { HuaweiP2PAppIcon appIconService = new HuaweiP2PAppIcon(huaweiP2PManager); appIconService.register(); } } - if (getHuaweiCoordinator().supportsContactsSync()) { + if (getDeviceState().supportsContactsSync()) { if (HuaweiP2PContactsService.getRegisteredInstance(huaweiP2PManager) == null) { HuaweiP2PContactsService contactsService = new HuaweiP2PContactsService(huaweiP2PManager); contactsService.register(); @@ -1078,14 +1079,14 @@ public class HuaweiSupportProvider { } private void getAlarms() { - if (!getHuaweiCoordinator().supportsChangingAlarm()) + if (!getDeviceState().supportsChangingAlarm()) return; GetEventAlarmList getEventAlarmList = new GetEventAlarmList(this); getEventAlarmList.setFinalizeReq(new RequestCallback() { @Override public void call() { - if (!getHuaweiCoordinator().supportsSmartAlarm(getDevice())) + if (!getDeviceState().supportsSmartAlarm(getDevice())) return; // Don't get smart alarms when not supported GetSmartAlarmList getSmartAlarmList = new GetSmartAlarmList(HuaweiSupportProvider.this); @@ -1621,7 +1622,7 @@ public class HuaweiSupportProvider { if (P2PSyncService == null) { return; } - Map sup = P2PSyncService.getAllSupported(this.getHuaweiCoordinator()); + Map sup = P2PSyncService.getAllSupported(this.getDeviceState()); if (sup.isEmpty()) { return; } @@ -1808,7 +1809,7 @@ public class HuaweiSupportProvider { } public void onSetAlarms(ArrayList alarms) { - boolean smartAlarmEnabled = getHuaweiCoordinator().supportsSmartAlarm(getDevice()); + boolean smartAlarmEnabled = getDeviceState().supportsSmartAlarm(getDevice()); AlarmsRequest smartAlarmReq = new AlarmsRequest(this, true); AlarmsRequest eventAlarmReq = new AlarmsRequest(this, false); @@ -1830,7 +1831,7 @@ public class HuaweiSupportProvider { } public void onSetCallState(CallSpec callSpec) { - if (callSpec.command == CallSpec.CALL_INCOMING || (callSpec.command == CallSpec.CALL_OUTGOING && getHuaweiCoordinator().supportsOutgoingCall())) { + if (callSpec.command == CallSpec.CALL_INCOMING || (callSpec.command == CallSpec.CALL_OUTGOING && getDeviceState().supportsOutgoingCall())) { SendNotificationRequest sendNotificationReq = new SendNotificationRequest(this); try { sendNotificationReq.buildNotificationTLVFromCallSpec(callSpec); @@ -1841,7 +1842,7 @@ public class HuaweiSupportProvider { } else if ( callSpec.command == CallSpec.CALL_ACCEPT || callSpec.command == CallSpec.CALL_START) { - byte type = getHuaweiCoordinator().supportsNotificationsStartCall() ? Notifications.NotificationType.startCall : Notifications.NotificationType.stopNotification; + byte type = getDeviceState().supportsNotificationsStartCall() ? Notifications.NotificationType.startCall : Notifications.NotificationType.stopNotification; StopNotificationRequest stopNotificationRequest = new StopNotificationRequest(this, type); try { stopNotificationRequest.doPerform(); @@ -2098,7 +2099,7 @@ public class HuaweiSupportProvider { packet.trainingPoints, packet.longestStreak, packet.tripped, - getHuaweiCoordinator().isSupportsWorkoutNewSteps() + getDeviceState().isSupportsWorkoutNewSteps() ); db.getDaoSession().getHuaweiWorkoutSummarySampleDao().insertOrReplace(summarySample); @@ -2914,17 +2915,17 @@ public class HuaweiSupportProvider { } public void onSetContacts(ArrayList contacts) { - if (getHuaweiCoordinator().supportsContactsSync()) { + if (getDeviceState().supportsContactsSync()) { HuaweiP2PContactsService P2PContactsService = HuaweiP2PContactsService.getRegisteredInstance(huaweiP2PManager); if (P2PContactsService != null) { P2PContactsService.startSync(); } - } else if (getHuaweiCoordinator().supportsContacts()) { + } else if (getDeviceState().supportsContacts()) { SendSetContactsRequest sendSetContactsRequest = new SendSetContactsRequest( this, contacts, - this.getHuaweiCoordinator().getContactsSlotCount(getDevice()) + this.getDeviceState().getContactsSlotCount(getDevice()) ); try { sendSetContactsRequest.doPerform(); @@ -3002,8 +3003,8 @@ public class HuaweiSupportProvider { } private boolean downloadDictTrueSleepData(int start, int end) { - LOG.info("supportsDictSleepSync: {}", getHuaweiCoordinator().supportsDictSleepSync()); - if (!getHuaweiCoordinator().supportsDictSleepSync()) { + LOG.info("supportsDictSleepSync: {}", getDeviceState().supportsDictSleepSync()); + if (!getDeviceState().supportsDictSleepSync()) { return false; } huaweiFileDownloadManager.addToQueue(HuaweiFileDownloadManager.FileRequest.sequenceDataFileRequest( @@ -3075,7 +3076,7 @@ public class HuaweiSupportProvider { sleepStat.setSleepVersion(sleepDataSummary.sleepVersion); sleepStatsSamples.add(sleepStat); - long time = HuaweiTrueSleepSequenceDataParser.getTime(sleepDataSummary.fallAsleepTime, sleepDataSummary.bedTime, sleepDataSummary.validData, getHuaweiCoordinator().supportsBedTime()); + long time = HuaweiTrueSleepSequenceDataParser.getTime(sleepDataSummary.fallAsleepTime, sleepDataSummary.bedTime, sleepDataSummary.validData, getDeviceState().supportsBedTime()); LOG.info("SLEEP Time: {}", time); List stages = HuaweiTrueSleepSequenceDataParser.parseSleepDetails(sd.getDetails(), time); LOG.info("SLEEP Stages: {}", stages); @@ -3112,7 +3113,7 @@ public class HuaweiSupportProvider { public boolean downloadTruSleepData(int start, int end) { // We only get the data if TruSleep is supported - if (!getHuaweiCoordinator().supportsTruSleep()) + if (!getDeviceState().supportsTruSleep()) return false; if (downloadDictTrueSleepData(start, end)) @@ -3148,13 +3149,13 @@ public class HuaweiSupportProvider { }; huaweiFileDownloadManager.addToQueue(HuaweiFileDownloadManager.FileRequest.sleepStateFileRequest( - getHuaweiCoordinator().getSupportsTruSleepNewSync(), + getDeviceState().getSupportsTruSleepNewSync(), start, end, callback ), true); huaweiFileDownloadManager.addToQueue(HuaweiFileDownloadManager.FileRequest.sleepDataFileRequest( - getHuaweiCoordinator().getSupportsTruSleepNewSync(), + getDeviceState().getSupportsTruSleepNewSync(), start, end, callback @@ -3163,13 +3164,13 @@ public class HuaweiSupportProvider { } public boolean downloadStressData(int start, int end) { - if (!getHuaweiCoordinator().supportsAutoStress()) + if (!getDeviceState().supportsAutoStress()) return false; syncState.setStressSync(true); huaweiFileDownloadManager.addToQueue(HuaweiFileDownloadManager.FileRequest.rriFileRequest( - getHuaweiCoordinator().getSupportsRriNewSync(), + getDeviceState().getSupportsRriNewSync(), start, end, new HuaweiFileDownloadManager.FileDownloadCallback() { @@ -3208,7 +3209,7 @@ public class HuaweiSupportProvider { } public boolean downloadEcgData(int start, int end) { - if (!getHuaweiCoordinator().supportsECG()) + if (!getDeviceState().supportsECG()) return false; syncState.setEcgSync(true); @@ -3274,7 +3275,7 @@ public class HuaweiSupportProvider { } public void downloadWorkoutPdrFiles(short workoutId, Long databaseId) { - if(!getHuaweiCoordinator().isSupportsGpsNewSync()) + if(!getDeviceState().isSupportsGpsNewSync()) return; huaweiFileDownloadManager.addToQueue(HuaweiFileDownloadManager.FileRequest.workoutPdrFileRequest( workoutId, @@ -3306,7 +3307,7 @@ public class HuaweiSupportProvider { syncState.startWorkoutGpsDownload(); huaweiFileDownloadManager.addToQueue(HuaweiFileDownloadManager.FileRequest.workoutGpsFileRequest( - getHuaweiCoordinator().isSupportsGpsNewSync(), + getDeviceState().isSupportsGpsNewSync(), workoutId, databaseId, new HuaweiFileDownloadManager.FileDownloadCallback() { diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/HuaweiWeatherManager.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/HuaweiWeatherManager.java index 9b1612cfd4..768859c8c8 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/HuaweiWeatherManager.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/HuaweiWeatherManager.java @@ -209,7 +209,7 @@ public class HuaweiWeatherManager { public void sendWeather(WeatherSpec weatherSpec) { // Initialize weather settings and send weather - if (!supportProvider.getHuaweiCoordinator().supportsWeather()) { + if (!supportProvider.getDeviceState().supportsWeather()) { LOG.error("onSendWeather called while weather is not supported."); return; } @@ -226,15 +226,15 @@ public class HuaweiWeatherManager { fixupWeather(weatherSpec); Weather.Settings weatherSettings = new Weather.Settings(); - weatherSettings.uvIndexSupported = supportProvider.getHuaweiCoordinator().supportsWeatherUvIndex(); - weatherSettings.extendedHourlyForecast = supportProvider.getHuaweiCoordinator().supportsWeatherExtendedHourForecast(); + weatherSettings.uvIndexSupported = supportProvider.getDeviceState().supportsWeatherUvIndex(); + weatherSettings.extendedHourlyForecast = supportProvider.getDeviceState().supportsWeatherExtendedHourForecast(); SendWeatherStartRequest weatherStartRequest = new SendWeatherStartRequest(supportProvider, weatherSettings); weatherStartRequest.setFinalizeReq(errorHandler); weatherStartRequest.setupTimeoutUntilNext(1000); Request lastRequest = weatherStartRequest; - if (supportProvider.getHuaweiCoordinator().supportsWeatherUnit()) { + if (supportProvider.getDeviceState().supportsWeatherUnit()) { SendWeatherUnitRequest weatherUnitRequest = new SendWeatherUnitRequest(supportProvider); weatherUnitRequest.setFinalizeReq(errorHandler); lastRequest.nextRequest(weatherUnitRequest); @@ -246,14 +246,14 @@ public class HuaweiWeatherManager { lastRequest.nextRequest(weatherSupportRequest); lastRequest = weatherSupportRequest; - if (supportProvider.getHuaweiCoordinator().supportsWeatherExtended()) { + if (supportProvider.getDeviceState().supportsWeatherExtended()) { SendWeatherExtendedSupportRequest weatherExtendedSupportRequest = new SendWeatherExtendedSupportRequest(supportProvider, weatherSettings); weatherExtendedSupportRequest.setFinalizeReq(errorHandler); lastRequest.nextRequest(weatherExtendedSupportRequest); lastRequest = weatherExtendedSupportRequest; } - if (supportProvider.getHuaweiCoordinator().supportsWeatherMoonRiseSet()) { + if (supportProvider.getDeviceState().supportsWeatherMoonRiseSet()) { SendWeatherSunMoonSupportRequest weatherSunMoonSupportRequest = new SendWeatherSunMoonSupportRequest(supportProvider, weatherSettings); weatherSunMoonSupportRequest.setFinalizeReq(errorHandler); lastRequest.nextRequest(weatherSunMoonSupportRequest); @@ -268,7 +268,7 @@ public class HuaweiWeatherManager { lastRequest = sendWeatherCurrentRequest; - if (supportProvider.getHuaweiCoordinator().supportsGpsAndTimeToDevice() && + if (supportProvider.getDeviceState().supportsGpsAndTimeToDevice() && GBApplication.getDevicePrefs(supportProvider.getDevice()).getBoolean("pref_huawei_gps_and_time", true)) { Location location = new CurrentPosition().getLastKnownLocation(); BigDecimal latitude = toBigDecimal(location.getLatitude()); @@ -285,7 +285,7 @@ public class HuaweiWeatherManager { } } - if (supportProvider.getHuaweiCoordinator().supportsWeatherForecasts()) { + if (supportProvider.getDeviceState().supportsWeatherForecasts()) { SendWeatherForecastRequest sendWeatherForecastRequest = new SendWeatherForecastRequest(supportProvider, weatherSettings, weatherSpec); sendWeatherForecastRequest.setFinalizeReq(errorHandler); lastRequest.nextRequest(sendWeatherForecastRequest); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/datasync/HuaweiDataSyncFeatureManager.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/datasync/HuaweiDataSyncFeatureManager.java index 922cc69102..ba5c07ebe5 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/datasync/HuaweiDataSyncFeatureManager.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/datasync/HuaweiDataSyncFeatureManager.java @@ -185,7 +185,7 @@ public class HuaweiDataSyncFeatureManager implements HuaweiDataSyncCommon.DataCa private void sendFeaturesFile() { LOG.info("HuaweiDataSyncFeatureManager Send feature file upload info"); - final String countryCode = support.getHuaweiCoordinator().getCountryCode(support.getDevice()); + final String countryCode = support.getDeviceState().getCountryCode(support.getDevice()); final String json = getFeaturesFileContent(countryCode); LOG.info("feature file content: {}", json); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/p2p/HuaweiBaseP2PService.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/p2p/HuaweiBaseP2PService.java index 5aa1dc422a..39bcc9a44c 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/p2p/HuaweiBaseP2PService.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/p2p/HuaweiBaseP2PService.java @@ -97,7 +97,7 @@ public abstract class HuaweiBaseP2PService { sendP2PCommand((byte) 2, this.getModule(), this.getPackage(), this.getLocalFingerprint(), this.getFingerprint(), sendData, callback); } public void sendGetVersion(HuaweiP2PCallback callback) { - if(manager.getSupportProvider().getHuaweiCoordinator().supportsP2PGetAppVersion()) { + if(manager.getSupportProvider().getDeviceState().supportsP2PGetAppVersion()) { sendP2PCommand((byte) 4, this.getModule(), this.getPackage(), null, null, null, callback); } else { LOG.error("P2P Get App Version is not supported"); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/p2p/HuaweiP2PCalendarService.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/p2p/HuaweiP2PCalendarService.java index 42e589b055..b925714f63 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/p2p/HuaweiP2PCalendarService.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/p2p/HuaweiP2PCalendarService.java @@ -88,14 +88,14 @@ public class HuaweiP2PCalendarService extends HuaweiBaseP2PService { @Override public String getPackage() { - if (manager.getSupportProvider().getHuaweiCoordinator().supportsExternalCalendarService()) + if (manager.getSupportProvider().getDeviceState().supportsExternalCalendarService()) return "com.huawei.ohos.calendar"; return "in.huawei.calendar"; } @Override public String getFingerprint() { - if (manager.getSupportProvider().getHuaweiCoordinator().supportsExternalCalendarService()) + if (manager.getSupportProvider().getDeviceState().supportsExternalCalendarService()) return "com.huawei.ohos.calendar_BCgpfcWNSKWgvxsSILxooQZyAmKYsFQnMTibnfrKQqK9M0ABtXH+GbsOscsnVvVc5qIDiFEyEOYMSF7gJ7Vb5Mc="; return "SystemApp"; } @@ -476,7 +476,7 @@ public class HuaweiP2PCalendarService extends HuaweiBaseP2PService { // NOTE: scheduleCount is a max number of events to send. It suitable only if supportsExternalCalendarService not set //external calendar synchronization only supported on Harmony devices. I don't know how to deal with this. - if (!manager.getSupportProvider().getHuaweiCoordinator().supportsExternalCalendarService()) { + if (!manager.getSupportProvider().getDeviceState().supportsExternalCalendarService()) { if (!syncCalendarEvents(majorVersion, minorVersion, scheduleCount)) { sendCalendarCmd((byte) 0x01, (byte) 0x04, null); //No sync required } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/p2p/HuaweiP2PCannedRepliesService.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/p2p/HuaweiP2PCannedRepliesService.java index aa0dc26568..85b4d09c8e 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/p2p/HuaweiP2PCannedRepliesService.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/p2p/HuaweiP2PCannedRepliesService.java @@ -107,7 +107,7 @@ public class HuaweiP2PCannedRepliesService extends HuaweiBaseP2PService { return; final GBDeviceEventUpdatePreferences gbDeviceEventUpdatePreferences = new GBDeviceEventUpdatePreferences(); - for (int i = 1; i <= manager.getSupportProvider().getHuaweiCoordinator().getCannedRepliesSlotCount(manager.getSupportProvider().getDevice()); i++) { + for (int i = 1; i <= manager.getSupportProvider().getDeviceState().getCannedRepliesSlotCount(manager.getSupportProvider().getDevice()); i++) { String message = null; if (replies.size() >= i) { if (replies.get(i - 1).contains(0x04)) { diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/p2p/HuaweiP2PDirection.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/p2p/HuaweiP2PDirection.java index 7c2650a101..eea09b92a5 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/p2p/HuaweiP2PDirection.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/p2p/HuaweiP2PDirection.java @@ -118,7 +118,7 @@ public class HuaweiP2PDirection extends HuaweiBaseP2PService { // app availability can be checked by querying app list from the watch (service 0x2a). sendGetVersion((version, data) -> { LOG.info("HuaweiP2PDirection App version: {}", version); - manager.getSupportProvider().getCoordinator().getHuaweiCoordinator().setNavigationAvailability(version != -1); + manager.getSupportProvider().getDeviceState().setNavigationAvailability(version != -1); }); } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/p2p/HuaweiP2PTrackService.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/p2p/HuaweiP2PTrackService.java index d727f2d1ab..7dd3459924 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/p2p/HuaweiP2PTrackService.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/p2p/HuaweiP2PTrackService.java @@ -29,7 +29,6 @@ import nodomain.freeyourgadget.gadgetbridge.model.heartratezones.HeartRateZones; import nodomain.freeyourgadget.gadgetbridge.model.heartratezones.HeartRateZonesConfig; import nodomain.freeyourgadget.gadgetbridge.model.heartratezones.HeartRateZonesSpec; import nodomain.freeyourgadget.gadgetbridge.service.devices.huawei.HuaweiP2PManager; -import nodomain.freeyourgadget.gadgetbridge.util.GB; public class HuaweiP2PTrackService extends HuaweiBaseP2PService { private final Logger LOG = LoggerFactory.getLogger(HuaweiP2PTrackService.class); @@ -89,7 +88,7 @@ public class HuaweiP2PTrackService extends HuaweiBaseP2PService { public byte[] getHRZonesData() { - HuaweiHeartRateZonesSpec spec = new HuaweiHeartRateZonesSpec(manager.getSupportProvider().getDevice(), manager.getSupportProvider().getHuaweiCoordinator()); + HuaweiHeartRateZonesSpec spec = new HuaweiHeartRateZonesSpec(manager.getSupportProvider().getDevice(), manager.getSupportProvider().getDeviceState()); List zones = spec.getDeviceConfig(); HeartRateZonesConfig uprightConfig = HuaweiHeartRateZonesSpec.getByPosture(zones, HeartRateZonesSpec.PostureType.UPRIGHT); HeartRateZonesConfig sittingConfig = HuaweiHeartRateZonesSpec.getByPosture(zones, HeartRateZonesSpec.PostureType.SITTING); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/AcceptAgreementsRequest.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/AcceptAgreementsRequest.java index c189eccce1..290954ada5 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/AcceptAgreementsRequest.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/AcceptAgreementsRequest.java @@ -37,7 +37,7 @@ public class AcceptAgreementsRequest extends Request { @Override protected boolean requestSupported() { - return supportProvider.getHuaweiCoordinator().supportsAcceptAgreement(); + return supportProvider.getDeviceState().supportsAcceptAgreement(); } @Override diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetActivityTypeRequest.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetActivityTypeRequest.java index 6e75c86588..cf16d69dee 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetActivityTypeRequest.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetActivityTypeRequest.java @@ -42,7 +42,7 @@ public class GetActivityTypeRequest extends Request { @Override protected boolean requestSupported() { - return supportProvider.getHuaweiCoordinator().supportsActivityType(); + return supportProvider.getDeviceState().supportsActivityType(); } @Override diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetAppInfoParams.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetAppInfoParams.java index bbe842f714..3ca897ab4d 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetAppInfoParams.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetAppInfoParams.java @@ -33,7 +33,7 @@ public class GetAppInfoParams extends Request{ @Override protected boolean requestSupported() { - return supportProvider.getHuaweiCoordinator().supportsAppParams(); + return supportProvider.getDeviceState().supportsAppParams(); } @Override @@ -51,6 +51,6 @@ public class GetAppInfoParams extends Request{ throw new ResponseTypeMismatchException(receivedPacket, App.AppInfoParams.Response.class); App.AppInfoParams.Response resp = (App.AppInfoParams.Response)(receivedPacket); - supportProvider.getHuaweiCoordinator().setAppDeviceParams(resp.params); + supportProvider.getDeviceState().setAppDeviceParams(resp.params); } } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetConnectStatusRequest.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetConnectStatusRequest.java index efa40cf044..114d23447d 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetConnectStatusRequest.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetConnectStatusRequest.java @@ -36,7 +36,7 @@ public class GetConnectStatusRequest extends Request { @Override protected boolean requestSupported() { - return supportProvider.getHuaweiCoordinator().supportsConnectStatus(); + return supportProvider.getDeviceState().supportsConnectStatus(); } @Override diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetContactsCount.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetContactsCount.java index 7c5363582f..8afc1b37f6 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetContactsCount.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetContactsCount.java @@ -36,7 +36,7 @@ public class GetContactsCount extends Request { @Override protected boolean requestSupported() { - return supportProvider.getHuaweiCoordinator().supportsContacts(); + return supportProvider.getDeviceState().supportsContacts(); } @Override @@ -56,6 +56,6 @@ public class GetContactsCount extends Request { throw new ResponseTypeMismatchException(receivedPacket, Contacts.ContactsCount.Response.class); int count = ((Contacts.ContactsCount.Response) receivedPacket).maxCount; - this.supportProvider.getHuaweiCoordinator().saveMaxContactsCount(count); + this.supportProvider.getDeviceState().saveMaxContactsCount(count); } } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetDndLiftWristTypeRequest.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetDndLiftWristTypeRequest.java index 266b0306f5..b2e059f973 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetDndLiftWristTypeRequest.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetDndLiftWristTypeRequest.java @@ -40,7 +40,7 @@ public class GetDndLiftWristTypeRequest extends Request { @Override protected boolean requestSupported() { - return supportProvider.getHuaweiCoordinator().supportsQueryDndLiftWristDisturbType(); + return supportProvider.getDeviceState().supportsQueryDndLiftWristDisturbType(); } @Override diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetEventAlarmList.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetEventAlarmList.java index 940b65e75f..f7a7cf547f 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetEventAlarmList.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetEventAlarmList.java @@ -35,7 +35,7 @@ public class GetEventAlarmList extends Request { @Override protected boolean requestSupported() { - return supportProvider.getHuaweiCoordinator().supportsChangingAlarm(); + return supportProvider.getDeviceState().supportsChangingAlarm(); } @Override @@ -57,7 +57,7 @@ public class GetEventAlarmList extends Request { // Correct for position of smart alarm // Note that the band uses 1 as the first index for event alarms int positionOffset; - if (supportProvider.getCoordinator().getHuaweiCoordinator().supportsSmartAlarm(supportProvider.getDevice())) + if (supportProvider.getDeviceState().supportsSmartAlarm(supportProvider.getDevice())) positionOffset = 0; else positionOffset = -1; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetExpandCapabilityRequest.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetExpandCapabilityRequest.java index a5f2ec0ec1..a9eee6584e 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetExpandCapabilityRequest.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetExpandCapabilityRequest.java @@ -65,7 +65,7 @@ public class GetExpandCapabilityRequest extends Request { if (!(receivedPacket instanceof DeviceConfig.ExpandCapability.Response)) throw new ResponseTypeMismatchException(receivedPacket, DeviceConfig.ExpandCapability.Response.class); - supportProvider.getHuaweiCoordinator().saveExpandCapabilities(((DeviceConfig.ExpandCapability.Response) receivedPacket).expandCapabilities); + supportProvider.getDeviceState().saveExpandCapabilities(((DeviceConfig.ExpandCapability.Response) receivedPacket).expandCapabilities); dynamicServicesReq.call(); } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetExtendedMusicInfoParams.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetExtendedMusicInfoParams.java index 9e25dce846..995396cf42 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetExtendedMusicInfoParams.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetExtendedMusicInfoParams.java @@ -36,7 +36,7 @@ public class GetExtendedMusicInfoParams extends Request { @Override protected boolean requestSupported() { - return supportProvider.getHuaweiCoordinator().supportsMusicUploading(); + return supportProvider.getDeviceState().supportsMusicUploading(); } @Override @@ -55,6 +55,6 @@ public class GetExtendedMusicInfoParams extends Request { throw new Request.ResponseTypeMismatchException(receivedPacket, MusicControl.ExtendedMusicInfoParams.Response.class); MusicControl.ExtendedMusicInfoParams.Response resp = (MusicControl.ExtendedMusicInfoParams.Response)(receivedPacket); - supportProvider.getHuaweiCoordinator().setExtendedMusicInfoParams(resp.params); + supportProvider.getDeviceState().setExtendedMusicInfoParams(resp.params); } } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetMusicInfoParams.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetMusicInfoParams.java index f614509da6..3460e8d618 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetMusicInfoParams.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetMusicInfoParams.java @@ -36,7 +36,7 @@ public class GetMusicInfoParams extends Request { @Override protected boolean requestSupported() { - return supportProvider.getHuaweiCoordinator().supportsMusicUploading(); + return supportProvider.getDeviceState().supportsMusicUploading(); } @Override diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetNotificationCapabilitiesRequest.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetNotificationCapabilitiesRequest.java index 2d2f3f8bd8..fe173a8067 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetNotificationCapabilitiesRequest.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetNotificationCapabilitiesRequest.java @@ -37,7 +37,7 @@ public class GetNotificationCapabilitiesRequest extends Request { @Override protected boolean requestSupported() { - return supportProvider.getHuaweiCoordinator().supportsPromptPushMessage() && supportProvider.getProtocolVersion() == 2; + return supportProvider.getDeviceState().supportsPromptPushMessage() && supportProvider.getProtocolVersion() == 2; } @Override @@ -56,6 +56,6 @@ public class GetNotificationCapabilitiesRequest extends Request { if (!(receivedPacket instanceof NotificationCapabilities.Response)) throw new ResponseTypeMismatchException(receivedPacket, NotificationCapabilities.Response.class); - supportProvider.getHuaweiCoordinator().saveNotificationCapabilities(((NotificationCapabilities.Response) receivedPacket).capabilities); + supportProvider.getDeviceState().saveNotificationCapabilities(((NotificationCapabilities.Response) receivedPacket).capabilities); } } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetNotificationConstraintsRequest.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetNotificationConstraintsRequest.java index abb8698d39..72118f15b9 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetNotificationConstraintsRequest.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetNotificationConstraintsRequest.java @@ -38,9 +38,9 @@ public class GetNotificationConstraintsRequest extends Request { @Override protected boolean requestSupported() { - return supportProvider.getHuaweiCoordinator().supportsNotificationAlert() && supportProvider.getProtocolVersion() == 2 - && supportProvider.getCoordinator().getDeviceType() != DeviceType.HUAWEIBANDAW70 - && supportProvider.getCoordinator().getDeviceType() != DeviceType.HONORWATCH4; // Bit of a workaround, there is probably some capabilities this actually depends on + return supportProvider.getDeviceState().supportsNotificationAlert() && supportProvider.getProtocolVersion() == 2 + && supportProvider.getDevice().getType() != DeviceType.HUAWEIBANDAW70 + && supportProvider.getDevice().getType() != DeviceType.HONORWATCH4; // Bit of a workaround, there is probably some capabilities this actually depends on } @Override @@ -59,6 +59,6 @@ public class GetNotificationConstraintsRequest extends Request { if (!(receivedPacket instanceof NotificationConstraints.Response)) throw new ResponseTypeMismatchException(receivedPacket, NotificationConstraints.Response.class); - supportProvider.getHuaweiCoordinator().saveNotificationConstraints(((NotificationConstraints.Response) receivedPacket).constraints); + supportProvider.getDeviceState().saveNotificationConstraints(((NotificationConstraints.Response) receivedPacket).constraints); } } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetOTAChangeLog.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetOTAChangeLog.java index 39cc30bc9b..2550c51a32 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetOTAChangeLog.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetOTAChangeLog.java @@ -36,15 +36,15 @@ public class GetOTAChangeLog extends Request { @Override protected boolean requestSupported() { - return supportProvider.getHuaweiCoordinator().supportsOTAChangelog() && - supportProvider.getHuaweiCoordinator().getOtaSoftwareVersion() != null; + return supportProvider.getDeviceState().supportsOTAChangelog() && + supportProvider.getDeviceState().getOtaSoftwareVersion() != null; } @Override protected List createRequest() throws RequestCreationException { try { // TODO: get proper language. - return new OTA.GetChangeLog.Request(paramsProvider, supportProvider.getHuaweiCoordinator().getOtaSoftwareVersion(), "en").serialize(); + return new OTA.GetChangeLog.Request(paramsProvider, supportProvider.getDeviceState().getOtaSoftwareVersion(), "en").serialize(); } catch (HuaweiPacket.CryptoException e) { throw new RequestCreationException(e); } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetProductInformationRequest.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetProductInformationRequest.java index 749e19e4c4..d98da63cef 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetProductInformationRequest.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetProductInformationRequest.java @@ -60,7 +60,7 @@ public class GetProductInformationRequest extends Request { getDevice().addDeviceInfo(new GenericItem("SN: ", ((DeviceConfig.ProductInfo.Response) receivedPacket).serialNumber)); getDevice().addDeviceInfo(new GenericItem("RC: ", String.valueOf(((DeviceConfig.ProductInfo.Response) receivedPacket).regionCode))); - supportProvider.getHuaweiCoordinator().setOtaSoftwareVersion(((DeviceConfig.ProductInfo.Response) receivedPacket).softwareVersion); - supportProvider.getHuaweiCoordinator().setOtaSignatureLength(((DeviceConfig.ProductInfo.Response) receivedPacket).otaSignatureLength); + supportProvider.getDeviceState().setOtaSoftwareVersion(((DeviceConfig.ProductInfo.Response) receivedPacket).softwareVersion); + supportProvider.getDeviceState().setOtaSignatureLength(((DeviceConfig.ProductInfo.Response) receivedPacket).otaSignatureLength); } } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetSettingRelatedRequest.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetSettingRelatedRequest.java index ada70fab80..74561db77f 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetSettingRelatedRequest.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetSettingRelatedRequest.java @@ -36,7 +36,7 @@ public class GetSettingRelatedRequest extends Request { @Override protected boolean requestSupported() { - return supportProvider.getHuaweiCoordinator().supportsSettingRelated(); + return supportProvider.getDeviceState().supportsSettingRelated(); } @Override @@ -55,8 +55,8 @@ public class GetSettingRelatedRequest extends Request { LOG.debug("handle Setting Related"); - supportProvider.getHuaweiCoordinator().setSupportsTruSleepNewSync(((DeviceConfig.SettingRelated.Response) receivedPacket).truSleepNewSync); - supportProvider.getHuaweiCoordinator().setSupportsRriNewSync(((DeviceConfig.SettingRelated.Response) receivedPacket).rriNewSync); - supportProvider.getHuaweiCoordinator().setSupportsGpsNewSync(((DeviceConfig.SettingRelated.Response) receivedPacket).gpsNewSync); + supportProvider.getDeviceState().setSupportsTruSleepNewSync(((DeviceConfig.SettingRelated.Response) receivedPacket).truSleepNewSync); + supportProvider.getDeviceState().setSupportsRriNewSync(((DeviceConfig.SettingRelated.Response) receivedPacket).rriNewSync); + supportProvider.getDeviceState().setSupportsGpsNewSync(((DeviceConfig.SettingRelated.Response) receivedPacket).gpsNewSync); } } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetSmartAlarmList.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetSmartAlarmList.java index b663abcae0..06f9875e13 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetSmartAlarmList.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetSmartAlarmList.java @@ -34,8 +34,8 @@ public class GetSmartAlarmList extends Request { @Override protected boolean requestSupported() { - return supportProvider.getHuaweiCoordinator().supportsChangingAlarm() && - supportProvider.getHuaweiCoordinator().supportsSmartAlarm(supportProvider.getDevice()); + return supportProvider.getDeviceState().supportsChangingAlarm() && + supportProvider.getDeviceState().supportsSmartAlarm(supportProvider.getDevice()); } @Override diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetSupportedCommandsRequest.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetSupportedCommandsRequest.java index 775341c5f5..eae60e6836 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetSupportedCommandsRequest.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetSupportedCommandsRequest.java @@ -82,7 +82,7 @@ public class GetSupportedCommandsRequest extends Request { throw new ResponseTypeMismatchException(receivedPacket, DeviceConfig.SupportedCommands.Response.class); for (DeviceConfig.SupportedCommands.Response.CommandsList commandsList : ((DeviceConfig.SupportedCommands.Response) receivedPacket).commandsLists) { - supportProvider.getHuaweiCoordinator().addCommandsForService( + supportProvider.getDeviceState().addCommandsForService( commandsList.service, commandsList.commands ); @@ -92,8 +92,8 @@ public class GetSupportedCommandsRequest extends Request { GetSupportedCommandsRequest nextRequest = new GetSupportedCommandsRequest(supportProvider, activatedServices); this.nextRequest(nextRequest); } else { - supportProvider.getHuaweiCoordinator().printCommandsPerService(); - if(supportProvider.getHuaweiCoordinator().supportsExpandCapability()) { + supportProvider.getDeviceState().printCommandsPerService(); + if(supportProvider.getDeviceState().supportsExpandCapability()) { GetExpandCapabilityRequest nextRequest = new GetExpandCapabilityRequest(supportProvider); this.nextRequest(nextRequest); } else { diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetWatchfaceParams.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetWatchfaceParams.java index 6c65c11f12..cb1f139155 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetWatchfaceParams.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetWatchfaceParams.java @@ -34,7 +34,7 @@ public class GetWatchfaceParams extends Request{ @Override protected boolean requestSupported() { - return supportProvider.getHuaweiCoordinator().supportsWatchfaceParams(); + return supportProvider.getDeviceState().supportsWatchfaceParams(); } @Override @@ -52,6 +52,6 @@ public class GetWatchfaceParams extends Request{ throw new ResponseTypeMismatchException(receivedPacket, Watchface.WatchfaceParams.Response.class); Watchface.WatchfaceParams.Response resp = (Watchface.WatchfaceParams.Response)(receivedPacket); - supportProvider.getHuaweiCoordinator().setWatchfaceDeviceParams(resp.params); + supportProvider.getDeviceState().setWatchfaceDeviceParams(resp.params); } } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetWearStatusRequest.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetWearStatusRequest.java index 008c360032..84fca99174 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetWearStatusRequest.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetWearStatusRequest.java @@ -37,7 +37,7 @@ public class GetWearStatusRequest extends Request { @Override protected boolean requestSupported() { - return supportProvider.getHuaweiCoordinator().supportsMultiDevice(); + return supportProvider.getDeviceState().supportsMultiDevice(); } @Override diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetWorkoutCapability.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetWorkoutCapability.java index 441df45d79..cd56fc95cf 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetWorkoutCapability.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetWorkoutCapability.java @@ -36,7 +36,7 @@ public class GetWorkoutCapability extends Request { @Override protected boolean requestSupported() { - return supportProvider.getHuaweiCoordinator().supportsWorkoutCapability(); + return supportProvider.getDeviceState().supportsWorkoutCapability(); } @Override @@ -56,6 +56,6 @@ public class GetWorkoutCapability extends Request { LOG.info("Workout capability: NewSteps: {}", ((Workout.WorkoutCapability.Response) receivedPacket).supportNewStep); - supportProvider.getHuaweiCoordinator().setSupportsWorkoutNewSteps(((Workout.WorkoutCapability.Response) receivedPacket).supportNewStep); + supportProvider.getDeviceState().setSupportsWorkoutNewSteps(((Workout.WorkoutCapability.Response) receivedPacket).supportNewStep); } } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetWorkoutDataRequest.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetWorkoutDataRequest.java index afb3ad4cd2..3b503dfbc1 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetWorkoutDataRequest.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/GetWorkoutDataRequest.java @@ -60,7 +60,7 @@ public class GetWorkoutDataRequest extends Request { @Override protected List createRequest() throws RequestCreationException { try { - return new Workout.WorkoutData.Request(paramsProvider, workoutNumbers.workoutNumber, this.number, supportProvider.getHuaweiCoordinator().isSupportsWorkoutNewSteps()).serialize(); + return new Workout.WorkoutData.Request(paramsProvider, workoutNumbers.workoutNumber, this.number, supportProvider.getDeviceState().isSupportsWorkoutNewSteps()).serialize(); } catch (HuaweiPacket.CryptoException e) { throw new RequestCreationException(e); } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendCameraRemoteSetupEvent.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendCameraRemoteSetupEvent.java index b06ab2a3be..7a9e8e7721 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendCameraRemoteSetupEvent.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendCameraRemoteSetupEvent.java @@ -37,7 +37,7 @@ public class SendCameraRemoteSetupEvent extends Request { @Override protected boolean requestSupported() { - return supportProvider.getHuaweiCoordinator().supportsCameraRemote() && GBApplication.getDeviceSpecificSharedPrefs(supportProvider.getDevice().getAddress()).getBoolean(DeviceSettingsPreferenceConst.PREF_CAMERA_REMOTE, false); + return supportProvider.getDeviceState().supportsCameraRemote() && GBApplication.getDeviceSpecificSharedPrefs(supportProvider.getDevice().getAddress()).getBoolean(DeviceSettingsPreferenceConst.PREF_CAMERA_REMOTE, false); } @Override diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendCountryCodeRequest.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendCountryCodeRequest.java index 94864b53a6..e39ce15848 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendCountryCodeRequest.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendCountryCodeRequest.java @@ -21,15 +21,15 @@ public class SendCountryCodeRequest extends Request { @Override protected boolean requestSupported() { - return supportProvider.getHuaweiCoordinator().supportsSendCountryCode() && supportProvider.getHuaweiCoordinator().getSendCountryCodeEnabled(supportProvider.getDevice()); + return supportProvider.getDeviceState().supportsSendCountryCode() && supportProvider.getDeviceState().getSendCountryCodeEnabled(supportProvider.getDevice()); } @Override protected List createRequest() throws Request.RequestCreationException { try { - final String countryCode = supportProvider.getHuaweiCoordinator().getCountryCode(supportProvider.getDevice()); + final String countryCode = supportProvider.getDeviceState().getCountryCode(supportProvider.getDevice()); Byte siteId = null; - if(supportProvider.getHuaweiCoordinator().supportsSendSiteId()) { + if(supportProvider.getDeviceState().supportsSendSiteId()) { siteId = (byte) HuaweiUtil.getSiteIdByCountryCode(countryCode); } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendDeviceReportThreshold.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendDeviceReportThreshold.java index 2281fb9ea3..0fcd1e7fc1 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendDeviceReportThreshold.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendDeviceReportThreshold.java @@ -37,7 +37,7 @@ public class SendDeviceReportThreshold extends Request { @Override protected boolean requestSupported() { - return supportProvider.getHuaweiCoordinator().supportsDeviceReportThreshold(); + return supportProvider.getDeviceState().supportsDeviceReportThreshold(); } @Override diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendDndAddRequest.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendDndAddRequest.java index 7a3943984f..3da0afaf9e 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendDndAddRequest.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendDndAddRequest.java @@ -43,7 +43,7 @@ public class SendDndAddRequest extends Request { @Override protected boolean requestSupported() { - return supportProvider.getHuaweiCoordinator().supportsDoNotDisturb(supportProvider.getDevice()); + return supportProvider.getDeviceState().supportsDoNotDisturb(supportProvider.getDevice()); } @Override @@ -78,7 +78,7 @@ public class SendDndAddRequest extends Request { end, cycle, statusDndLiftWrist ? dndLiftWristType : 0x00, - supportProvider.getHuaweiCoordinator().supportsQueryDndLiftWristDisturbType() + supportProvider.getDeviceState().supportsQueryDndLiftWristDisturbType() ).serialize(); } catch (HuaweiPacket.CryptoException e) { throw new RequestCreationException(e); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendDndDeleteRequest.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendDndDeleteRequest.java index 8e8accc4dd..f0e77f4c3c 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendDndDeleteRequest.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendDndDeleteRequest.java @@ -36,7 +36,7 @@ public class SendDndDeleteRequest extends Request { @Override protected boolean requestSupported() { - return supportProvider.getHuaweiCoordinator().supportsDoNotDisturb(supportProvider.getDevice()); + return supportProvider.getDeviceState().supportsDoNotDisturb(supportProvider.getDevice()); } @Override diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendExtendedAccountRequest.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendExtendedAccountRequest.java index 8068f59d49..efe56bc258 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendExtendedAccountRequest.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendExtendedAccountRequest.java @@ -39,7 +39,7 @@ public class SendExtendedAccountRequest extends Request { @Override protected boolean requestSupported() { - return supportProvider.getHuaweiCoordinator().supportsAccountJudgment() && supportProvider.getHuaweiCoordinator().supportsAccountSwitch(); + return supportProvider.getDeviceState().supportsAccountJudgment() && supportProvider.getDeviceState().supportsAccountSwitch(); } @Override @@ -50,7 +50,7 @@ public class SendExtendedAccountRequest extends Request { try { return new AccountRelated.SendExtendedAccountToDevice.Request( paramsProvider, - supportProvider.getHuaweiCoordinator().supportsDiffAccountPairingOptimization(), + supportProvider.getDeviceState().supportsDiffAccountPairingOptimization(), account) .serialize(); } catch (CryptoException e) { diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendFitnessGoalRequest.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendFitnessGoalRequest.java index 4121b158b5..f884fd766a 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendFitnessGoalRequest.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendFitnessGoalRequest.java @@ -39,7 +39,7 @@ public class SendFitnessGoalRequest extends Request { @Override protected boolean requestSupported() { - return supportProvider.getHuaweiCoordinator().supportsMotionGoal(); + return supportProvider.getDeviceState().supportsMotionGoal(); } @Override diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendFitnessUserInfoRequest.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendFitnessUserInfoRequest.java index bfbc87d1d7..67be6087d0 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendFitnessUserInfoRequest.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendFitnessUserInfoRequest.java @@ -54,12 +54,12 @@ public class SendFitnessUserInfoRequest extends Request { birthdayEncoded += dateOfBirth.getMonthValue() << 8; birthdayEncoded += dateOfBirth.getDayOfMonth(); - boolean unknownGenderSupported = supportProvider.getHuaweiCoordinator().supportsUnknownGender(); + boolean unknownGenderSupported = supportProvider.getDeviceState().supportsUnknownGender(); //TODO: discover Vo2Max capability and retrieve calculate and set proper values. Currently disabled. boolean vo2Supported = false; int vo2Max = 0; int vo2Time = 0; - boolean precisionWeightSupported = supportProvider.getHuaweiCoordinator().supportsPrecisionWeight(); + boolean precisionWeightSupported = supportProvider.getDeviceState().supportsPrecisionWeight(); UserInfo.UserInfoData userInfoData = new UserInfo.UserInfoData( activityUser.getHeightCm(), diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendGetDefaultSwitch.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendGetDefaultSwitch.java index d58145bdb6..5501335f39 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendGetDefaultSwitch.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendGetDefaultSwitch.java @@ -36,7 +36,7 @@ public class SendGetDefaultSwitch extends Request { @Override protected boolean requestSupported() { - return supportProvider.getHuaweiCoordinator().supportDefaultSwitch(); + return supportProvider.getDeviceState().supportDefaultSwitch(); } @Override diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendHeartRateZonesConfig.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendHeartRateZonesConfig.java index 14cf896cc1..d569df483a 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendHeartRateZonesConfig.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendHeartRateZonesConfig.java @@ -30,7 +30,7 @@ public class SendHeartRateZonesConfig extends Request { public SendHeartRateZonesConfig(HuaweiSupportProvider support) { super(support); this.serviceId = FitnessData.id; - this.commandId = supportProvider.getHuaweiCoordinator().supportsExtendedHeartRateZones() ? + this.commandId = supportProvider.getDeviceState().supportsExtendedHeartRateZones() ? FitnessData.HeartRateZoneConfigPacket.id_extended : FitnessData.HeartRateZoneConfigPacket.id_simple; } @@ -38,17 +38,17 @@ public class SendHeartRateZonesConfig extends Request { @Override protected boolean requestSupported() { return - !supportProvider.getHuaweiCoordinator().supportsTrack() && // In this case it uses P2P - supportProvider.getHuaweiCoordinator().supportsHeartRateZones(); + !supportProvider.getDeviceState().supportsTrack() && // In this case it uses P2P + supportProvider.getDeviceState().supportsHeartRateZones(); } @Override protected List createRequest() throws RequestCreationException { try { - HuaweiHeartRateZonesSpec spec = new HuaweiHeartRateZonesSpec(supportProvider.getDevice(), supportProvider.getHuaweiCoordinator()); + HuaweiHeartRateZonesSpec spec = new HuaweiHeartRateZonesSpec(supportProvider.getDevice(), supportProvider.getDeviceState()); List zones = spec.getDeviceConfig(); HeartRateZonesConfig heartRateZonesConfig = HuaweiHeartRateZonesSpec.getByPosture(zones, HeartRateZonesSpec.PostureType.UPRIGHT); - if (supportProvider.getHuaweiCoordinator().supportsExtendedHeartRateZones()) { + if (supportProvider.getDeviceState().supportsExtendedHeartRateZones()) { return FitnessData.HeartRateZoneConfigPacket.Request.requestExtended(paramsProvider, heartRateZonesConfig).serialize(); } else { return FitnessData.HeartRateZoneConfigPacket.Request.requestSimple(paramsProvider, heartRateZonesConfig).serialize(); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendMenstrualCapabilityRequest.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendMenstrualCapabilityRequest.java index 7565145971..103a29b0a4 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendMenstrualCapabilityRequest.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendMenstrualCapabilityRequest.java @@ -37,7 +37,7 @@ public class SendMenstrualCapabilityRequest extends Request { @Override protected boolean requestSupported() { - return supportProvider.getHuaweiCoordinator().supportsMenstrual(); + return supportProvider.getDeviceState().supportsMenstrual(); } @Override diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendNotificationRequest.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendNotificationRequest.java index e3d6f1de9c..a12e6a2980 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendNotificationRequest.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendNotificationRequest.java @@ -65,8 +65,8 @@ public class SendNotificationRequest extends Request { title = notificationSpec.sourceName; String body = notificationSpec.body; - if (body != null && body.length() > supportProvider.getHuaweiCoordinator().getContentLength()) { - body = notificationSpec.body.substring(0x0, supportProvider.getHuaweiCoordinator().getContentLength() - 0xD); + if (body != null && body.length() > supportProvider.getDeviceState().getContentLength()) { + body = notificationSpec.body.substring(0x0, supportProvider.getDeviceState().getContentLength() - 0xD); body += "..."; } @@ -85,11 +85,11 @@ public class SendNotificationRequest extends Request { Notifications.NotificationActionRequest.AdditionalParams params = new Notifications.NotificationActionRequest.AdditionalParams(); - params.supportsReply = supportProvider.getHuaweiCoordinator().supportsNotificationsReply(); - params.supportsRepeatedNotify = supportProvider.getHuaweiCoordinator().supportsNotificationsRepeatedNotify(); - params.supportsRemoveSingle = supportProvider.getHuaweiCoordinator().supportsNotificationsRemoveSingle(); - params.supportsReplyActions = supportProvider.getHuaweiCoordinator().supportsNotificationsReplyActions(); - params.supportsTimestamp = supportProvider.getHuaweiCoordinator().supportsNotificationsAddIconTimestamp(); + params.supportsReply = supportProvider.getDeviceState().supportsNotificationsReply(); + params.supportsRepeatedNotify = supportProvider.getDeviceState().supportsNotificationsRepeatedNotify(); + params.supportsRemoveSingle = supportProvider.getDeviceState().supportsNotificationsRemoveSingle(); + params.supportsReplyActions = supportProvider.getDeviceState().supportsNotificationsReplyActions(); + params.supportsTimestamp = supportProvider.getDeviceState().supportsNotificationsAddIconTimestamp(); params.notificationId = notificationSpec.getId(); params.notificationKey = getNotificationKey(notificationSpec); @@ -102,7 +102,7 @@ public class SendNotificationRequest extends Request { boolean pictureEnabled = GBApplication .getDeviceSpecificSharedPrefs(supportProvider.getDevice().getAddress()) .getBoolean(DeviceSettingsPreferenceConst.PREF_NOTIFICATION_PICTURES_ENABLE, true); - if(supportProvider.getHuaweiCoordinator().supportsNotificationPicture() && !TextUtils.isEmpty(notificationSpec.picturePath) && pictureEnabled) { + if(supportProvider.getDeviceState().supportsNotificationPicture() && !TextUtils.isEmpty(notificationSpec.picturePath) && pictureEnabled) { params.pictureName = supportProvider.getHuaweiDataSyncNotificationPictures().getNameForPath(notificationSpec.picturePath); } @@ -110,19 +110,19 @@ public class SendNotificationRequest extends Request { content.add( new Notifications.NotificationActionRequest.TextElement( (byte)Notifications.TextType.title, - (byte)supportProvider.getHuaweiCoordinator().getContentFormat(), + (byte)supportProvider.getDeviceState().getContentFormat(), title) ); content.add( new Notifications.NotificationActionRequest.TextElement( (byte) Notifications.TextType.sender, - (byte)supportProvider.getHuaweiCoordinator().getContentFormat(), + (byte)supportProvider.getDeviceState().getContentFormat(), notificationSpec.sender) ); content.add( new Notifications.NotificationActionRequest.TextElement( (byte) Notifications.TextType.text, - (byte)supportProvider.getHuaweiCoordinator().getContentFormat(), + (byte)supportProvider.getDeviceState().getContentFormat(), body) ); @@ -146,7 +146,7 @@ public class SendNotificationRequest extends Request { content.add( new Notifications.NotificationActionRequest.TextElement( (byte) Notifications.TextType.text, - (byte)supportProvider.getHuaweiCoordinator().getContentFormat(), + (byte)supportProvider.getDeviceState().getContentFormat(), callSpec.name) ); @@ -154,54 +154,54 @@ public class SendNotificationRequest extends Request { sourceAppId = callSpec.sourceAppId; params = new Notifications.NotificationActionRequest.AdditionalParams(); - params.supportsReply = supportProvider.getHuaweiCoordinator().supportsNotificationsReply(); - params.supportsRepeatedNotify = supportProvider.getHuaweiCoordinator().supportsNotificationsRepeatedNotify(); - params.supportsRemoveSingle = supportProvider.getHuaweiCoordinator().supportsNotificationsRemoveSingle(); - params.supportsReplyActions = supportProvider.getHuaweiCoordinator().supportsNotificationsReplyActions(); - params.supportsTimestamp = supportProvider.getHuaweiCoordinator().supportsNotificationsAddIconTimestamp(); + params.supportsReply = supportProvider.getDeviceState().supportsNotificationsReply(); + params.supportsRepeatedNotify = supportProvider.getDeviceState().supportsNotificationsRepeatedNotify(); + params.supportsRemoveSingle = supportProvider.getDeviceState().supportsNotificationsRemoveSingle(); + params.supportsReplyActions = supportProvider.getDeviceState().supportsNotificationsReplyActions(); + params.supportsTimestamp = supportProvider.getDeviceState().supportsNotificationsAddIconTimestamp(); params.notificationId = new Random().nextInt(Integer.MAX_VALUE - 1); params.notificationKey = getCallSpecKey(callSpec, params.notificationId); params.channelId = callSpec.channelId; - if(supportProvider.getHuaweiCoordinator().supportsVoipType3()) { + if(supportProvider.getDeviceState().supportsVoipType3()) { params.category = "imcall"; } else { params.category = callSpec.category; } params.address = null; - if(supportProvider.getHuaweiCoordinator().supportsVoipType2()) { + if(supportProvider.getDeviceState().supportsVoipType2()) { params.voipType = 1; } - if (supportProvider.getHuaweiCoordinator().supportsVoipType1() || supportProvider.getHuaweiCoordinator().supportsVoipType2()) { + if (supportProvider.getDeviceState().supportsVoipType1() || supportProvider.getDeviceState().supportsVoipType2()) { notificationType = Notifications.NotificationType.generic; content.add( new Notifications.NotificationActionRequest.TextElement( (byte) Notifications.TextType.title, - (byte) supportProvider.getHuaweiCoordinator().getContentFormat(), + (byte) supportProvider.getDeviceState().getContentFormat(), callSpec.name) ); content.add( new Notifications.NotificationActionRequest.TextElement( (byte) Notifications.TextType.sender, - (byte) supportProvider.getHuaweiCoordinator().getContentFormat(), + (byte) supportProvider.getDeviceState().getContentFormat(), callSpec.name) ); // TODO: Reject action, need to be parsed from the notification and added here. Then the watch send it back in the service id: 0x2 Command id: 0x11 // content.add( // new Notifications.NotificationActionRequest.TextElement( // (byte) 8, -// (byte) supportProvider.getHuaweiCoordinator().getContentFormat(), +// (byte) supportProvider.getDeviceState().getContentFormat(), // "REJECT_CALL") // ); } } - if(supportProvider.getHuaweiCoordinator().supportsIncomingNumber()) { + if(supportProvider.getDeviceState().supportsIncomingNumber()) { content.add( new Notifications.NotificationActionRequest.TextElement( (byte) Notifications.TextType.flight, - (byte) supportProvider.getHuaweiCoordinator().getIncomingNumberFormat(), + (byte) supportProvider.getDeviceState().getIncomingNumberFormat(), callSpec.number) ); } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendNotifyHeartRateCapabilityRequest.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendNotifyHeartRateCapabilityRequest.java index 8e05c1afc2..cfd6e76a4d 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendNotifyHeartRateCapabilityRequest.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendNotifyHeartRateCapabilityRequest.java @@ -37,7 +37,7 @@ public class SendNotifyHeartRateCapabilityRequest extends Request { @Override protected boolean requestSupported() { - return supportProvider.getHuaweiCoordinator().supportsWorkoutsTrustHeartRate(); + return supportProvider.getDeviceState().supportsWorkoutsTrustHeartRate(); } @Override diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendNotifyRestHeartRateCapabilityRequest.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendNotifyRestHeartRateCapabilityRequest.java index c0f99a1cdc..fa6a0b492e 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendNotifyRestHeartRateCapabilityRequest.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendNotifyRestHeartRateCapabilityRequest.java @@ -37,7 +37,7 @@ public class SendNotifyRestHeartRateCapabilityRequest extends Request { @Override protected boolean requestSupported() { - return supportProvider.getHuaweiCoordinator().supportsFitnessRestHeartRate(); + return supportProvider.getDeviceState().supportsFitnessRestHeartRate(); } @Override diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendOTASetAutoUpdate.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendOTASetAutoUpdate.java index 35e9cd4b90..e0c65a2b2a 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendOTASetAutoUpdate.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendOTASetAutoUpdate.java @@ -36,7 +36,7 @@ public class SendOTASetAutoUpdate extends Request { @Override protected boolean requestSupported() { - return supportProvider.getHuaweiCoordinator().supportsOTAAutoUpdate(); + return supportProvider.getDeviceState().supportsOTAAutoUpdate(); } @Override diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendOTASetStatus.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendOTASetStatus.java index 2d8e7cd793..0c3d098547 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendOTASetStatus.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendOTASetStatus.java @@ -34,7 +34,7 @@ public class SendOTASetStatus extends Request { @Override protected List createRequest() throws RequestCreationException { Byte useWifi = null; - if(supportProvider.getHuaweiCoordinator().supportsWiFiDirect()) { + if(supportProvider.getDeviceState().supportsWiFiDirect()) { useWifi = 0; // NOTE: do not use wifi } try { diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendReverseCapabilitiesRequest.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendReverseCapabilitiesRequest.java index cd14bb71fd..f77f4653ad 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendReverseCapabilitiesRequest.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendReverseCapabilitiesRequest.java @@ -36,7 +36,7 @@ public class SendReverseCapabilitiesRequest extends Request { @Override protected boolean requestSupported() { - return supportProvider.getHuaweiCoordinator().supportsReverseCapabilities(); + return supportProvider.getDeviceState().supportsReverseCapabilities(); } @Override diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendRunPaceConfigRequest.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendRunPaceConfigRequest.java index 837048735c..ff02157441 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendRunPaceConfigRequest.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendRunPaceConfigRequest.java @@ -37,7 +37,7 @@ public class SendRunPaceConfigRequest extends Request { @Override protected boolean requestSupported() { - return supportProvider.getHuaweiCoordinator().supportsRunPaceConfig(); + return supportProvider.getDeviceState().supportsRunPaceConfig(); } @Override diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendSetECGOpenRequest.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendSetECGOpenRequest.java index 4ec2aba8c3..a8976abd2b 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendSetECGOpenRequest.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendSetECGOpenRequest.java @@ -16,7 +16,7 @@ public class SendSetECGOpenRequest extends Request { @Override protected boolean requestSupported() { - return supportProvider.getHuaweiCoordinator().supportsECGOpen(); + return supportProvider.getDeviceState().supportsECGOpen(); } @Override diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendSetUpDeviceStatusRequest.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendSetUpDeviceStatusRequest.java index 9d338b0a16..f448e2687c 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendSetUpDeviceStatusRequest.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendSetUpDeviceStatusRequest.java @@ -37,7 +37,7 @@ public class SendSetUpDeviceStatusRequest extends Request { @Override protected boolean requestSupported() { - return supportProvider.getHuaweiCoordinator().supportsMultiDevice(); + return supportProvider.getDeviceState().supportsMultiDevice(); } @Override diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendSleepBreathRequest.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendSleepBreathRequest.java index 6c13989c4e..ca2a646467 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendSleepBreathRequest.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendSleepBreathRequest.java @@ -18,7 +18,7 @@ public class SendSleepBreathRequest extends Request { @Override protected boolean requestSupported() { - return supportProvider.getHuaweiCoordinator().supportsSleepBreath(); + return supportProvider.getDeviceState().supportsSleepBreath(); } @Override diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendWeatherErrorRequest.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendWeatherErrorRequest.java index 9537138bd5..36984a9fa0 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendWeatherErrorRequest.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendWeatherErrorRequest.java @@ -32,13 +32,13 @@ public class SendWeatherErrorRequest extends Request { @Override protected boolean requestSupported() { - return supportProvider.getHuaweiCoordinator().supportsWeatherErrorSimple() || supportProvider.getHuaweiCoordinator().supportsWeatherErrorExtended(); + return supportProvider.getDeviceState().supportsWeatherErrorSimple() || supportProvider.getDeviceState().supportsWeatherErrorExtended(); } public SendWeatherErrorRequest(HuaweiSupportProvider support, Weather.ErrorCode errorCode) { super(support); this.serviceId = Weather.id; - if (supportProvider.getHuaweiCoordinator().supportsWeatherErrorExtended()) + if (supportProvider.getDeviceState().supportsWeatherErrorExtended()) this.commandId = Weather.WeatherErrorExtended.id; else this.commandId = Weather.WeatherErrorSimple.id; @@ -48,7 +48,7 @@ public class SendWeatherErrorRequest extends Request { @Override protected List createRequest() throws RequestCreationException { try { - if (supportProvider.getHuaweiCoordinator().supportsWeatherErrorExtended()) { + if (supportProvider.getDeviceState().supportsWeatherErrorExtended()) { Weather.WeatherErrorExtended.Request request = new Weather.WeatherErrorExtended.Request(paramsProvider, errorCode, false); return request.serialize(); } else { diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetActivateOnLiftRequest.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetActivateOnLiftRequest.java index 6b3156ea5c..e7d9b3e611 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetActivateOnLiftRequest.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetActivateOnLiftRequest.java @@ -38,7 +38,7 @@ public class SetActivateOnLiftRequest extends Request { @Override protected boolean requestSupported() { - return supportProvider.getHuaweiCoordinator().supportsActivateOnLift(); + return supportProvider.getDeviceState().supportsActivateOnLift(); } @Override diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetActivityReminderRequest.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetActivityReminderRequest.java index 45f13fb204..b72b3f524a 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetActivityReminderRequest.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetActivityReminderRequest.java @@ -42,7 +42,7 @@ public class SetActivityReminderRequest extends Request { @Override protected boolean requestSupported() { - return supportProvider.getHuaweiCoordinator().supportsActivityReminder(); + return supportProvider.getDeviceState().supportsActivityReminder(); } @Override diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetAutomaticHeartrateRequest.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetAutomaticHeartrateRequest.java index 2a5578c56d..6a86ee3a1f 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetAutomaticHeartrateRequest.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetAutomaticHeartrateRequest.java @@ -50,7 +50,7 @@ public class SetAutomaticHeartrateRequest extends Request { LOG.info("Attempting to enable automatic heart rate"); else LOG.info("Attempting to disable automatic heart rate"); - if(realtimeHeartRateEnabled && this.supportProvider.getHuaweiCoordinator().supportsRealtimeHeartRate()) { + if(realtimeHeartRateEnabled && this.supportProvider.getDeviceState().supportsRealtimeHeartRate()) { try { return new FitnessData.EnableRealtimeHeartRate.Request(paramsProvider, automaticHeartRateEnabled).serialize(); } catch (HuaweiPacket.CryptoException e) { diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetDateFormatRequest.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetDateFormatRequest.java index 8487a4bed0..132d8b3ea3 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetDateFormatRequest.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetDateFormatRequest.java @@ -39,7 +39,7 @@ public class SetDateFormatRequest extends Request { @Override protected boolean requestSupported() { - return supportProvider.getHuaweiCoordinator().supportsDateFormat(); + return supportProvider.getDeviceState().supportsDateFormat(); } @Override diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetLanguageSettingRequest.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetLanguageSettingRequest.java index d4d5e09d39..485e7d1159 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetLanguageSettingRequest.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetLanguageSettingRequest.java @@ -43,7 +43,7 @@ public class SetLanguageSettingRequest extends Request { @Override protected boolean requestSupported() { - return supportProvider.getHuaweiCoordinator().supportsLanguageSetting(); + return supportProvider.getDeviceState().supportsLanguageSetting(); } @Override diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetMediumToStrengthThresholdRequest.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetMediumToStrengthThresholdRequest.java index a35bc4738f..17876829a3 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetMediumToStrengthThresholdRequest.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetMediumToStrengthThresholdRequest.java @@ -37,14 +37,14 @@ public class SetMediumToStrengthThresholdRequest extends Request { @Override protected boolean requestSupported() { - return supportProvider.getHuaweiCoordinator().supportsFitnessThresholdValue(); + return supportProvider.getDeviceState().supportsFitnessThresholdValue(); } @Override protected List createRequest() throws RequestCreationException { try { //Hardcoded value till interface enable threshold values - if(supportProvider.getHuaweiCoordinator().supportsFitnessThresholdValueV2()) { + if(supportProvider.getDeviceState().supportsFitnessThresholdValueV2()) { return new MediumToStrengthThreshold.Request(paramsProvider, (byte) 0x6E, (byte) 0x3C, diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetNavigateOnRotateRequest.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetNavigateOnRotateRequest.java index c445ce7ff3..3f001637fe 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetNavigateOnRotateRequest.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetNavigateOnRotateRequest.java @@ -38,7 +38,7 @@ public class SetNavigateOnRotateRequest extends Request { @Override protected boolean requestSupported() { - return supportProvider.getHuaweiCoordinator().supportsRotateToCycleInfo(); + return supportProvider.getDeviceState().supportsRotateToCycleInfo(); } @Override diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetNotificationRequest.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetNotificationRequest.java index 24da95a387..4f01903be4 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetNotificationRequest.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetNotificationRequest.java @@ -38,7 +38,7 @@ public class SetNotificationRequest extends Request { @Override protected boolean requestSupported() { - return supportProvider.getHuaweiCoordinator().supportsNotification(); + return supportProvider.getDeviceState().supportsNotification(); } @Override diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetOTAChangeLog.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetOTAChangeLog.java index 07689be9f8..3853c3e82a 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetOTAChangeLog.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetOTAChangeLog.java @@ -36,15 +36,15 @@ public class SetOTAChangeLog extends Request { @Override protected boolean requestSupported() { - return supportProvider.getHuaweiCoordinator().supportsOTAChangelog() && - supportProvider.getHuaweiCoordinator().getOtaSoftwareVersion() != null; + return supportProvider.getDeviceState().supportsOTAChangelog() && + supportProvider.getDeviceState().getOtaSoftwareVersion() != null; } @Override protected List createRequest() throws RequestCreationException { try { // TODO: currently send empty. Send real changelog. Research required. - return new OTA.SetChangeLog.Request(paramsProvider, supportProvider.getHuaweiCoordinator().getOtaSoftwareVersion(), (byte) 0).serialize(); + return new OTA.SetChangeLog.Request(paramsProvider, supportProvider.getDeviceState().getOtaSoftwareVersion(), (byte) 0).serialize(); } catch (HuaweiPacket.CryptoException e) { throw new RequestCreationException(e); } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetTimeZoneIdRequest.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetTimeZoneIdRequest.java index 5f1fd5dd5f..6d1e03ee55 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetTimeZoneIdRequest.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetTimeZoneIdRequest.java @@ -36,7 +36,7 @@ public class SetTimeZoneIdRequest extends Request { @Override protected boolean requestSupported() { - return supportProvider.getHuaweiCoordinator().supportsTimeAndZoneId(); + return supportProvider.getDeviceState().supportsTimeAndZoneId(); } @Override diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetTruSleepRequest.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetTruSleepRequest.java index 36714290fa..492a18a930 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetTruSleepRequest.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetTruSleepRequest.java @@ -38,7 +38,7 @@ public class SetTruSleepRequest extends Request { @Override protected boolean requestSupported() { - return supportProvider.getHuaweiCoordinator().supportsTruSleep(); + return supportProvider.getDeviceState().supportsTruSleep(); } @Override diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetWearLocationRequest.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetWearLocationRequest.java index 6150586410..8ea6cb627b 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetWearLocationRequest.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetWearLocationRequest.java @@ -38,7 +38,7 @@ public class SetWearLocationRequest extends Request { @Override protected boolean requestSupported() { - return supportProvider.getHuaweiCoordinator().supportsWearLocation(supportProvider.getDevice()); + return supportProvider.getDeviceState().supportsWearLocation(supportProvider.getDevice()); } @Override diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetWearMessagePushRequest.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetWearMessagePushRequest.java index f2861bd00d..1caf7ca36e 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetWearMessagePushRequest.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SetWearMessagePushRequest.java @@ -38,7 +38,7 @@ public class SetWearMessagePushRequest extends Request { @Override protected boolean requestSupported() { - return supportProvider.getHuaweiCoordinator().supportsDoNotDisturb(supportProvider.getDevice()) && supportProvider.getHuaweiCoordinator().supportsWearMessagePush(); + return supportProvider.getDeviceState().supportsDoNotDisturb(supportProvider.getDevice()) && supportProvider.getDeviceState().supportsWearMessagePush(); } @Override diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/StopNotificationRequest.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/StopNotificationRequest.java index 0cdae81f76..878cb0acd4 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/StopNotificationRequest.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/StopNotificationRequest.java @@ -40,7 +40,7 @@ public class StopNotificationRequest extends Request { content.add( new Notifications.NotificationActionRequest.TextElement( (byte) Notifications.TextType.text, - (byte)supportProvider.getHuaweiCoordinator().getContentFormat(), + (byte)supportProvider.getDeviceState().getContentFormat(), "") ); return new Notifications.NotificationActionRequest(