mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge
synced 2024-12-29 20:15:50 +01:00
Add time synchronization. Some values/parameters are fixed at the moment, which shouldn't be maybe.
This commit is contained in:
parent
fec1f1afc6
commit
c2d608b0ef
@ -102,6 +102,7 @@ public class ZeTimeDeviceSupport extends AbstractBTLEDeviceSupport {
|
|||||||
requestDeviceInfo(builder);
|
requestDeviceInfo(builder);
|
||||||
requestBatteryInfo(builder);
|
requestBatteryInfo(builder);
|
||||||
requestActivityInfo(builder);
|
requestActivityInfo(builder);
|
||||||
|
synchronizeTime(builder);
|
||||||
|
|
||||||
builder.add(new SetDeviceStateAction(getDevice(), GBDevice.State.INITIALIZED, getContext()));
|
builder.add(new SetDeviceStateAction(getDevice(), GBDevice.State.INITIALIZED, getContext()));
|
||||||
LOG.info("Initialization Done");
|
LOG.info("Initialization Done");
|
||||||
@ -358,7 +359,13 @@ public class ZeTimeDeviceSupport extends AbstractBTLEDeviceSupport {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSetTime() {
|
public void onSetTime() {
|
||||||
|
try {
|
||||||
|
TransactionBuilder builder = performInitialized("synchronizeTime");
|
||||||
|
synchronizeTime(builder);
|
||||||
|
performConnected(builder.getTransaction());
|
||||||
|
} catch (IOException e) {
|
||||||
|
GB.toast(getContext(), "Error setting the time: " + e.getLocalizedMessage(), Toast.LENGTH_LONG, GB.ERROR);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -1171,4 +1178,28 @@ public class ZeTimeDeviceSupport extends AbstractBTLEDeviceSupport {
|
|||||||
builder.write(replyCharacteristic, msg);
|
builder.write(replyCharacteristic, msg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void synchronizeTime(TransactionBuilder builder)
|
||||||
|
{
|
||||||
|
Calendar now = GregorianCalendar.getInstance();
|
||||||
|
byte[] timeSync = new byte[]{ZeTimeConstants.CMD_PREAMBLE,
|
||||||
|
ZeTimeConstants.CMD_DATE_TIME,
|
||||||
|
ZeTimeConstants.CMD_SEND,
|
||||||
|
0x0c,
|
||||||
|
0x00,
|
||||||
|
(byte)(now.get(Calendar.YEAR) & 0xff),
|
||||||
|
(byte)(now.get(Calendar.YEAR) >> 8),
|
||||||
|
(byte)(now.get(Calendar.MONTH) + 1),
|
||||||
|
(byte)now.get(Calendar.DAY_OF_MONTH),
|
||||||
|
(byte)now.get(Calendar.HOUR_OF_DAY),
|
||||||
|
(byte)now.get(Calendar.MINUTE),
|
||||||
|
(byte)now.get(Calendar.SECOND),
|
||||||
|
0x00, // is 24h
|
||||||
|
0x00, // SetTime after calibration
|
||||||
|
0x01, // Unit
|
||||||
|
(byte)((now.get(Calendar.ZONE_OFFSET)/3600000) + (now.get(Calendar.DST_OFFSET)/3600000)), // TimeZone hour + daylight saving
|
||||||
|
0x00, // TimeZone minute
|
||||||
|
ZeTimeConstants.CMD_END};
|
||||||
|
sendMsgToWatch(builder, timeSync);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user