diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/casio/CasioConstants.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/casio/CasioConstants.java index 8011bf8da..967c3ebdf 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/casio/CasioConstants.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/casio/CasioConstants.java @@ -116,7 +116,8 @@ public final class CasioConstants { MODEL_CASIO_GENERIC, MODEL_CASIO_6900B, MODEL_CASIO_5600B, - MODEL_CASIO_GBX100 + MODEL_CASIO_GBX100, + MODEL_CASIO_STB1000, } public enum ConfigurationOption { diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/casio/gb6900/CasioGB6900DeviceCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/casio/gb6900/CasioGB6900DeviceCoordinator.java index 09445a5a9..7de0c53cd 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/casio/gb6900/CasioGB6900DeviceCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/casio/gb6900/CasioGB6900DeviceCoordinator.java @@ -48,7 +48,8 @@ public class CasioGB6900DeviceCoordinator extends AbstractDeviceCoordinator { public DeviceType getSupportedType(GBDeviceCandidate candidate) { String name = candidate.getDevice().getName(); if (name != null) { - if (name.startsWith("CASIO") && (name.contains("6900B") || name.contains("5600B"))) { + if (name.startsWith("CASIO") && (name.contains("6900B") || name.contains("5600B") || + name.contains("STB-1000"))) { return DeviceType.CASIOGB6900; } } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/casio/CasioGB6900DeviceSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/casio/CasioGB6900DeviceSupport.java index 7a81574ef..bb0bb8b14 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/casio/CasioGB6900DeviceSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/casio/CasioGB6900DeviceSupport.java @@ -153,19 +153,21 @@ public class CasioGB6900DeviceSupport extends AbstractBTLEDeviceSupport { mModel = CasioConstants.Model.MODEL_CASIO_5600B; } else if(name.contains("6900B")) { mModel = CasioConstants.Model.MODEL_CASIO_6900B; + } else if(name.contains("STB-1000")) { + mModel = CasioConstants.Model.MODEL_CASIO_STB1000; } else { mModel = CasioConstants.Model.MODEL_CASIO_GENERIC; } - try { - new InitOperationGB6900(this, builder).perform(); - } catch (IOException e) { - GB.toast(getContext(), "Initializing Casio watch failed", Toast.LENGTH_SHORT, GB.ERROR, e); + // We skip configuring BLE settings for the STB-1000 since it powers off + // BLE on the watch. + if(mModel != CasioConstants.Model.MODEL_CASIO_STB1000) { + try { + new InitOperationGB6900(this, builder).perform(); + } catch (IOException e) { + GB.toast(getContext(), "Initializing Casio watch failed", Toast.LENGTH_SHORT, GB.ERROR, e); + } } - /* - gbDevice.setState(GBDevice.State.INITIALIZING); - gbDevice.sendDeviceUpdateIntent(getContext()); - */ getDevice().setFirmwareVersion("N/A"); getDevice().setFirmwareVersion2("N/A"); @@ -779,6 +781,31 @@ public class CasioGB6900DeviceSupport extends AbstractBTLEDeviceSupport { return true; } + private GBDeviceEventMusicControl.Event parse5Button(int button) { + GBDeviceEventMusicControl.Event event; + switch(button) { + case 5: + event = GBDeviceEventMusicControl.Event.PLAYPAUSE; + break; + case 4: + event = GBDeviceEventMusicControl.Event.NEXT; + break; + case 3: + event = GBDeviceEventMusicControl.Event.VOLUMEUP; + break; + case 2: + event = GBDeviceEventMusicControl.Event.PREVIOUS; + break; + case 1: + event = GBDeviceEventMusicControl.Event.VOLUMEDOWN; + break; + default: + LOG.warn("Unhandled button received: " + button); + event = GBDeviceEventMusicControl.Event.UNKNOWN; + } + return event; + } + private GBDeviceEventMusicControl.Event parse3Button(int button) { GBDeviceEventMusicControl.Event event; switch(button) { @@ -835,6 +862,9 @@ public class CasioGB6900DeviceSupport extends AbstractBTLEDeviceSupport { case MODEL_CASIO_6900B: musicCmd.event = parse3Button(button); break; + case MODEL_CASIO_STB1000: + musicCmd.event = parse5Button(button); + break; case MODEL_CASIO_GENERIC: musicCmd.event = parse3Button(button); break;