Hookup Huawei GPS values

This commit is contained in:
Martin.JM 2024-02-04 18:10:14 +01:00 committed by José Rebelo
parent d379b11535
commit 4b70f3fcdb
2 changed files with 17 additions and 10 deletions

View File

@ -9,19 +9,21 @@ public class GpsAndTime {
public static class CurrentGPSRequest extends HuaweiPacket {
public static final byte id = 0x07;
public CurrentGPSRequest (
ParamsProvider paramsProvider
ParamsProvider paramsProvider,
int timestamp,
double lat,
double lon
) {
super(paramsProvider);
this.serviceId = GpsAndTime.id;
this.commandId = id;
this.tlv = new HuaweiTLV();
this.tlv.put(0x01, (int) 0);
this.tlv.put(0x02, (long) 0);
this.tlv.put(0x03, (long) 0);
this.tlv = new HuaweiTLV()
.put(0x01, timestamp)
.put(0x02, lon)
.put(0x03, lat);
this.isEncrypted = true;
this.complete = true;
}
}
}

View File

@ -1,15 +1,16 @@
package nodomain.freeyourgadget.gadgetbridge.service.devices.huawei.requests;
import java.util.Calendar;
import java.util.List;
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiPacket;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.packets.GpsAndTime;
import nodomain.freeyourgadget.gadgetbridge.service.devices.huawei.HuaweiSupportProvider;
import nodomain.freeyourgadget.gadgetbridge.util.Prefs;
public class SendGpsAndTimeToDeviceRequest extends Request {
public SendGpsAndTimeToDeviceRequest(HuaweiSupportProvider support) {
super(support);
this.serviceId = GpsAndTime.id;
@ -21,12 +22,16 @@ public class SendGpsAndTimeToDeviceRequest extends Request {
try {
// TODO: support multiple units
Prefs prefs = GBApplication.getPrefs();
// Backdating a bit seems to work better
return new GpsAndTime.CurrentGPSRequest(
this.paramsProvider
this.paramsProvider,
(int) (Calendar.getInstance().getTime().getTime() / 1000L) - 60,
prefs.getFloat("location_latitude", 0),
prefs.getFloat("location_longitude", 0)
).serialize();
} catch (HuaweiPacket.CryptoException e) {
throw new RequestCreationException(e);
}
}
}