diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/qhybrid/adapter/fossil/FossilWatchAdapter.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/qhybrid/adapter/fossil/FossilWatchAdapter.java index 59688fd10..1a44a72b0 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/qhybrid/adapter/fossil/FossilWatchAdapter.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/qhybrid/adapter/fossil/FossilWatchAdapter.java @@ -440,7 +440,8 @@ public class FossilWatchAdapter extends WatchAdapter { activeAlarms.add(new nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.requests.fossil.alarm.Alarm( (byte) alarm.getMinute(), (byte) alarm.getHour(), - false + alarm.getTitle(), + alarm.getDescription() )); continue; } @@ -449,7 +450,9 @@ public class FossilWatchAdapter extends WatchAdapter { activeAlarms.add(new nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.requests.fossil.alarm.Alarm( (byte) alarm.getMinute(), (byte) alarm.getHour(), - (byte) repitition + (byte) repitition, + alarm.getTitle(), + alarm.getDescription() )); } queueWrite(new AlarmsSetRequest(activeAlarms.toArray(new nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.requests.fossil.alarm.Alarm[0]), this){ diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/qhybrid/requests/fossil/alarm/Alarm.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/qhybrid/requests/fossil/alarm/Alarm.java index 980a9a2fb..821f707ce 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/qhybrid/requests/fossil/alarm/Alarm.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/qhybrid/requests/fossil/alarm/Alarm.java @@ -29,24 +29,25 @@ public class Alarm { private byte days = 0; private byte minute, hour; private boolean repeat; + private String title, message; - public Alarm(byte minute, byte hour){ + public Alarm(byte minute, byte hour, String title, String message){ this.minute = minute; this.hour = hour; this.repeat = false; + + this.title = title; + this.message = message; } - public Alarm(byte minute, byte hour, boolean repeat){ - this.minute = minute; - this.hour = hour; - this.repeat = repeat; - } - - public Alarm(byte minute, byte hour, byte days){ + public Alarm(byte minute, byte hour, byte days, String title, String message){ this.minute = minute; this.hour = hour; this.repeat = true; this.days = days; + + this.title = title; + this.message = message; } public void setDayEnabled(int day, boolean enabled){ @@ -78,9 +79,25 @@ public class Alarm { boolean repeat = (bytes[1] & 0x80) == 0x80; if(repeat) { - return new Alarm(minutes, bytes[2], days); + return new Alarm(minutes, bytes[2], days, "some title", "i dunno this should't happen"); } - return new Alarm(minutes, bytes[2]); + return new Alarm(minutes, bytes[2], "some title", "i dunno this should't happen"); + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; } @NonNull diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/qhybrid/requests/fossil/alarm/AlarmsSetRequest.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/qhybrid/requests/fossil/alarm/AlarmsSetRequest.java index 82b84ccca..01cf23109 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/qhybrid/requests/fossil/alarm/AlarmsSetRequest.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/qhybrid/requests/fossil/alarm/AlarmsSetRequest.java @@ -52,20 +52,28 @@ public class AlarmsSetRequest extends FilePutRequest { buffer = ByteBuffer.allocate(alarms.length * 3); for (Alarm alarm : alarms) buffer.put(alarm.getData()); } else { - String label = "Brr Brr"; - String message = "I am an alarm"; + int sizeWhole = 17 * alarms.length; + for(Alarm alarm : alarms){ + String label = alarm.getTitle(); + label = label.substring(0, Math.min(label.length(), 15)); + alarm.setTitle(label); - label = label.substring(0, Math.min(label.length(), 15)); - message = message.substring(0, Math.min(message.length(), 50)); + String message = alarm.getMessage(); + message = message.substring(0, Math.min(message.length(), 50)); + alarm.setMessage(message); - int SIZE_ALARM = 17 + label.length() + message.length(); - int sizeAll = alarms.length * SIZE_ALARM; - buffer = ByteBuffer.allocate(sizeAll); // 4 for overall length + sizeWhole += label.length() + message.length(); + } + buffer = ByteBuffer.allocate(sizeWhole); // 4 for overall length buffer.order(ByteOrder.LITTLE_ENDIAN); for (Alarm alarm : alarms) { + String label = alarm.getTitle(); + String message = alarm.getMessage(); + int alarmSize = 17 + label.length() + message.length(); + buffer.put((byte) 0x00); // dunno why - buffer.putShort((short) (SIZE_ALARM - 3)); // alarm size, 0 above does not count + buffer.putShort((short) (alarmSize - 3)); // alarm size, 0 above and this does not count buffer.put((byte) 0x00); // prolly entry id time data buffer.putShort((short) 3); // prolly entry length buffer.put(alarm.getData());