mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge
synced 2024-06-02 19:36:14 +02:00
52 lines
2.0 KiB
Java
52 lines
2.0 KiB
Java
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.messages.status;
|
|
|
|
import androidx.annotation.Nullable;
|
|
|
|
public class FitDefinitionStatusMessage extends GFDIStatusMessage {
|
|
|
|
private final Status status;
|
|
private final FitDefinitionStatusCode fitDefinitionStatusCode;
|
|
|
|
public FitDefinitionStatusMessage(GarminMessage garminMessage, Status status, FitDefinitionStatusCode fitDefinitionStatusCode) {
|
|
this.garminMessage = garminMessage;
|
|
this.status = status;
|
|
this.fitDefinitionStatusCode = fitDefinitionStatusCode;
|
|
switch (fitDefinitionStatusCode) {
|
|
case APPLIED:
|
|
LOG.info("FIT DEFINITION RETURNED STATUS: {}", fitDefinitionStatusCode.name());
|
|
break;
|
|
default:
|
|
LOG.warn("FIT DEFINITION RETURNED STATUS: {}", fitDefinitionStatusCode.name());
|
|
}
|
|
}
|
|
|
|
public static FitDefinitionStatusMessage parseIncoming(MessageReader reader, GarminMessage garminMessage) {
|
|
final Status status = Status.fromCode(reader.readByte());
|
|
final int fitDefinitionStatusCodeByte = reader.readByte();
|
|
final FitDefinitionStatusCode fitDefinitionStatusCode = FitDefinitionStatusCode.fromCode(fitDefinitionStatusCodeByte);
|
|
if (fitDefinitionStatusCode == null) {
|
|
LOG.warn("Unknown fit definition status code {}", fitDefinitionStatusCodeByte);
|
|
return null;
|
|
}
|
|
return new FitDefinitionStatusMessage(garminMessage, status, fitDefinitionStatusCode);
|
|
}
|
|
|
|
public enum FitDefinitionStatusCode {
|
|
APPLIED,
|
|
NOT_UNIQUE,
|
|
OUT_OF_RANGE,
|
|
NOT_READY,
|
|
;
|
|
|
|
@Nullable
|
|
public static FitDefinitionStatusCode fromCode(final int code) {
|
|
for (final FitDefinitionStatusCode fitDefinitionStatusCode : FitDefinitionStatusCode.values()) {
|
|
if (fitDefinitionStatusCode.ordinal() == code) {
|
|
return fitDefinitionStatusCode;
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
}
|
|
}
|