Huawei: Rename HuaweiCoordinator to HuaweiState

This commit is contained in:
José Rebelo
2026-01-17 15:58:26 +00:00
parent 71d54cf0f9
commit ec17ae383f
18 changed files with 49 additions and 51 deletions
@@ -30,7 +30,6 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Locale;
import de.greenrobot.dao.query.QueryBuilder;
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
@@ -163,7 +162,7 @@ public abstract class HuaweiCoordinatorSupplier extends AbstractDeviceCoordinato
@Override
protected void deleteDevice(@NonNull final GBDevice gbDevice, @NonNull final Device device, @NonNull final DaoSession session) {
// Clear capabilities shared preferences
GBApplication.getContext().getSharedPreferences(HuaweiCoordinator.getCapabilitiesSharedPreferencesName(gbDevice.getAddress()), Context.MODE_PRIVATE).edit().clear().apply();
GBApplication.getContext().getSharedPreferences(HuaweiState.getCapabilitiesSharedPreferencesName(gbDevice.getAddress()), Context.MODE_PRIVATE).edit().clear().apply();
// Before #5629, we would persist capabilities per device type, so clear those as well if they exist
GBApplication.getContext().getSharedPreferences("huawei_coordinator_capatilities" + gbDevice.getType().name(), Context.MODE_PRIVATE).edit().clear().apply();
@@ -435,7 +434,7 @@ public abstract class HuaweiCoordinatorSupplier extends AbstractDeviceCoordinato
@Override
public DeviceSpecificSettings getDeviceSpecificSettings(final GBDevice device) {
final HuaweiCoordinator deviceState = HuaweiDeviceStateManager.get(device);
final HuaweiState deviceState = HuaweiDeviceStateManager.get(device);
final DeviceSpecificSettings deviceSpecificSettings = new DeviceSpecificSettings();
@@ -22,13 +22,13 @@ import java.util.concurrent.ConcurrentHashMap;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
public class HuaweiDeviceStateManager {
private static final Map<String, HuaweiCoordinator> STATES = new ConcurrentHashMap<>();
private static final Map<String, HuaweiState> STATES = new ConcurrentHashMap<>();
public static HuaweiCoordinator get(final GBDevice device) {
public static HuaweiState get(final GBDevice device) {
return get(device.getAddress());
}
public static HuaweiCoordinator get(final String macAddress) {
return STATES.computeIfAbsent(macAddress, HuaweiCoordinator::new);
public static HuaweiState get(final String macAddress) {
return STATES.computeIfAbsent(macAddress, HuaweiState::new);
}
}
@@ -31,11 +31,11 @@ public class HuaweiHeartRateZonesSpec extends HeartRateZonesSpec {
public static final int HUAWEI_CALCULATE_METHOD_HRR = 1;
public static final int HUAWEI_CALCULATE_METHOD_LTHR = 3;
private final HuaweiCoordinator coordinator;
private final HuaweiState state;
public HuaweiHeartRateZonesSpec(GBDevice device, HuaweiCoordinator coordinator) {
public HuaweiHeartRateZonesSpec(GBDevice device, HuaweiState state) {
super(device);
this.coordinator = coordinator;
this.state = state;
}
@Override
@@ -67,11 +67,11 @@ public class HuaweiHeartRateZonesSpec extends HeartRateZonesSpec {
int age = new ActivityUser().getAge();
if (!coordinator.supportsTrack() && coordinator.supportsHeartRateZones()) {
if (!state.supportsTrack() && state.supportsHeartRateZones()) {
List<HeartRateZones> zones = new ArrayList<>();
int maxHRThreshold = (HeartRateZonesUtils.MAXIMUM_HEART_RATE - age) - getHRCorrection(HeartRateZonesSpec.PostureType.UPRIGHT);
zones.add(loadOrCreateZones(HeartRateZonesSpec.PostureType.UPRIGHT, HeartRateZones.CalculationMethod.MHR, maxHRThreshold));
if (coordinator.supportsExtendedHeartRateZones())
if (state.supportsExtendedHeartRateZones())
zones.add(loadOrCreateZones(HeartRateZonesSpec.PostureType.UPRIGHT, HeartRateZones.CalculationMethod.HRR, maxHRThreshold));
res.add(loadOrCreateHeartRateZonesConfig(HeartRateZonesSpec.PostureType.UPRIGHT,
true,
@@ -82,7 +82,7 @@ public class HuaweiHeartRateZonesSpec extends HeartRateZonesSpec {
return res;
}
if (!coordinator.supportsTrack())
if (!state.supportsTrack())
return null;
res.add(loadOrCreateHeartRateZonesConfig(HeartRateZonesSpec.PostureType.UPRIGHT,
@@ -111,7 +111,7 @@ public class HuaweiInstallHandler implements InstallHandler {
@Override
public void validateInstallation(InstallActivity installActivity, GBDevice device) {
final HuaweiCoordinator huaweiDeviceState = HuaweiDeviceStateManager.get(device);
final HuaweiState huaweiDeviceState = HuaweiDeviceStateManager.get(device);
if (helper.isFirmware) {
this.valid = true; //NOTE: nothing to verify for now
@@ -64,7 +64,7 @@ import static nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiConstant
public class HuaweiSettingsCustomizer implements DeviceSpecificSettingsCustomizer {
final GBDevice device;
final HuaweiCoordinator deviceState;
final HuaweiState deviceState;
public HuaweiSettingsCustomizer(final GBDevice device) {
this.device = device;
@@ -44,8 +44,8 @@ import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.Dev
import androidx.annotation.NonNull;
public class HuaweiCoordinator {
Logger LOG = LoggerFactory.getLogger(HuaweiCoordinator.class);
public class HuaweiState {
Logger LOG = LoggerFactory.getLogger(HuaweiState.class);
TreeMap<Integer, byte[]> commandsPerService = new TreeMap<>();
// Each byte of expandCapabilities represent a "service"
@@ -77,7 +77,7 @@ public class HuaweiCoordinator {
private boolean navigationAvailable = false;
public HuaweiCoordinator(final String address) {
public HuaweiState(final String address) {
this.address = address;
// Set non-numeric capabilities
@@ -67,7 +67,7 @@ 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.HuaweiCoordinatorSupplier;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiCoordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiState;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiCoordinatorSupplier.HuaweiDeviceType;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiCrypto;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiDeviceStateManager;
@@ -337,7 +337,7 @@ public class HuaweiSupportProvider {
return ((HuaweiCoordinatorSupplier) this.gbDevice.getDeviceCoordinator());
}
public HuaweiCoordinator getDeviceState() {
public HuaweiState getDeviceState() {
return HuaweiDeviceStateManager.get(getDevice());
}
@@ -37,7 +37,6 @@ import java.util.UUID;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiCoordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.packets.Watchface;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDeviceApp;
import nodomain.freeyourgadget.gadgetbridge.service.devices.huawei.requests.GetWatchfacesList;
@@ -46,7 +45,7 @@ import nodomain.freeyourgadget.gadgetbridge.service.devices.huawei.requests.Requ
import nodomain.freeyourgadget.gadgetbridge.service.devices.huawei.requests.SendWatchfaceOperation;
public class HuaweiWatchfaceManager {
static Logger LOG = LoggerFactory.getLogger(HuaweiCoordinator.class);
static Logger LOG = LoggerFactory.getLogger(HuaweiWatchfaceManager.class);
public static class Resolution {
@@ -28,7 +28,7 @@ import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicBoolean;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiCoordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiState;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiPacket;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiTLV;
import nodomain.freeyourgadget.gadgetbridge.service.devices.huawei.HuaweiP2PManager;
@@ -102,11 +102,11 @@ public class HuaweiP2PDataDictionarySyncService extends HuaweiBaseP2PService {
return ret;
}
public Map<Integer, HuaweiDictionarySyncInterface> getAllSupported(HuaweiCoordinator coordinator) {
public Map<Integer, HuaweiDictionarySyncInterface> getAllSupported(HuaweiState state) {
List<HuaweiDictionarySyncInterface> handlers = getSyncHandlers();
Map<Integer, HuaweiDictionarySyncInterface> ret = new HashMap<>();
for(HuaweiDictionarySyncInterface i: handlers) {
if(i.supports(coordinator)) {
if(i.supports(state)) {
ret.put(i.getDataClass(), i);
}
}
@@ -7,7 +7,7 @@ import org.slf4j.LoggerFactory;
import java.util.List;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiCoordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiState;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.service.devices.huawei.p2p.HuaweiP2PDataDictionarySyncService;
@@ -23,8 +23,8 @@ public class HuaweiDictionarySyncAltitude implements HuaweiDictionarySyncInterf
}
@Override
public boolean supports(HuaweiCoordinator coordinator) {
return false; // coordinator.supportsAltitude()
public boolean supports(HuaweiState state) {
return false; // state.supportsAltitude()
}
@Override
@@ -7,7 +7,7 @@ import org.slf4j.LoggerFactory;
import java.util.List;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiCoordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiState;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.service.devices.huawei.p2p.HuaweiP2PDataDictionarySyncService;
@@ -23,8 +23,8 @@ public class HuaweiDictionarySyncArterialStiffness implements HuaweiDictionaryS
}
@Override
public boolean supports(HuaweiCoordinator coordinator) {
return false; // coordinator.supportsArterialStiffnessDetection()
public boolean supports(HuaweiState state) {
return false; // state.supportsArterialStiffnessDetection()
}
@Override
@@ -7,7 +7,7 @@ import org.slf4j.LoggerFactory;
import java.util.List;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiCoordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiState;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.service.devices.huawei.p2p.HuaweiP2PDataDictionarySyncService;
@@ -23,8 +23,8 @@ public class HuaweiDictionarySyncBloodPressure implements HuaweiDictionarySyncI
}
@Override
public boolean supports(HuaweiCoordinator coordinator) {
return false; //coordinator.supportsBloodPressure()
public boolean supports(HuaweiState state) {
return false; //state.supportsBloodPressure()
}
@Override
@@ -10,7 +10,7 @@ import java.util.List;
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
import nodomain.freeyourgadget.gadgetbridge.database.DBHandler;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiCoordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiState;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiEmotionsSampleProvider;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiUtil;
import nodomain.freeyourgadget.gadgetbridge.entities.DaoSession;
@@ -33,8 +33,8 @@ public class HuaweiDictionarySyncEmotion implements HuaweiDictionarySyncInterfa
}
@Override
public boolean supports(HuaweiCoordinator coordinator) {
return coordinator.supportsEmotion();
public boolean supports(HuaweiState state) {
return state.supportsEmotion();
}
@Override
@@ -10,7 +10,7 @@ import java.util.List;
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
import nodomain.freeyourgadget.gadgetbridge.database.DBHandler;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiCoordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiState;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiHrvValueSampleProvider;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiUtil;
import nodomain.freeyourgadget.gadgetbridge.entities.DaoSession;
@@ -30,8 +30,8 @@ public class HuaweiDictionarySyncHRV implements HuaweiDictionarySyncInterface {
}
@Override
public boolean supports(HuaweiCoordinator coordinator) {
return coordinator.supportsHRV();
public boolean supports(HuaweiState state) {
return state.supportsHRV();
}
@Override
@@ -4,7 +4,7 @@ import android.content.Context;
import java.util.List;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiCoordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiState;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.service.devices.huawei.p2p.HuaweiP2PDataDictionarySyncService;
@@ -12,7 +12,7 @@ public interface HuaweiDictionarySyncInterface {
int getDataClass();
boolean supports(HuaweiCoordinator coordinator);
boolean supports(HuaweiState state);
long getLastDataSyncTimestamp(GBDevice gbDevice);
@@ -8,7 +8,7 @@ import org.slf4j.LoggerFactory;
import java.util.List;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiCoordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiState;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.service.devices.huawei.p2p.HuaweiP2PDataDictionarySyncService;
@@ -24,8 +24,8 @@ public class HuaweiDictionarySyncLakeLouiseAMS implements HuaweiDictionarySyncI
}
@Override
public boolean supports(HuaweiCoordinator coordinator) {
return false; // coordinator.supportsAltitude()
public boolean supports(HuaweiState state) {
return false; // state.supportsAltitude()
}
@Override
@@ -10,7 +10,7 @@ import java.util.List;
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
import nodomain.freeyourgadget.gadgetbridge.database.DBHandler;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiCoordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiState;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiDictTypes;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiTemperatureSampleProvider;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiUtil;
@@ -29,8 +29,8 @@ public class HuaweiDictionarySyncSkinTemperature implements HuaweiDictionarySyn
}
@Override
public boolean supports(HuaweiCoordinator coordinator) {
return coordinator.supportsTemperature();
public boolean supports(HuaweiState state) {
return state.supportsTemperature();
}
@Override
@@ -11,7 +11,7 @@ import java.util.List;
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
import nodomain.freeyourgadget.gadgetbridge.database.DBHandler;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiCoordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiState;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiSleepApneaSampleProvider;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiUtil;
import nodomain.freeyourgadget.gadgetbridge.entities.DaoSession;
@@ -31,8 +31,8 @@ public class HuaweiDictionarySyncSleepApnea implements HuaweiDictionarySyncInte
}
@Override
public boolean supports(HuaweiCoordinator coordinator) {
return coordinator.supportsSleepApnea();
public boolean supports(HuaweiState state) {
return state.supportsSleepApnea();
}
@Override