mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge
synced 2024-11-25 19:36:50 +01:00
Bangle.js: Send the timestamp of our last activity sample to the Bangle on connect, so that it can update us on missing activity samples
This commit is contained in:
parent
2aac797dec
commit
d82ba7a04c
@ -71,7 +71,6 @@ import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.GregorianCalendar;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
@ -311,7 +310,7 @@ public class BangleJSDeviceSupport extends AbstractBTLEDeviceSupport {
|
||||
Prefs devicePrefs = new Prefs(GBApplication.getDeviceSpecificSharedPrefs(gbDevice.getAddress()));
|
||||
allowHighMTU = devicePrefs.getBoolean(PREF_ALLOW_HIGH_MTU, true);
|
||||
|
||||
uartTx(builder, " \u0003"); // clear active line
|
||||
// No need to clear active line with Ctrl-C now - firmwares in 2023 auto-clear on connect
|
||||
|
||||
Prefs prefs = GBApplication.getPrefs();
|
||||
if (prefs.getBoolean("datetime_synconconnect", true))
|
||||
@ -327,6 +326,27 @@ public class BangleJSDeviceSupport extends AbstractBTLEDeviceSupport {
|
||||
getDevice().setFirmwareVersion2("N/A");
|
||||
lastBatteryPercent = -1;
|
||||
|
||||
/* Here we get the last Activity info saved from Bangle.js, and then send
|
||||
its timestamp. Bangle.js can then look back at its history and can try and
|
||||
send any missing data. */
|
||||
try (DBHandler dbHandler = GBApplication.acquireDB()) {
|
||||
BangleJSSampleProvider provider = new BangleJSSampleProvider(getDevice(), dbHandler.getDaoSession());
|
||||
BangleJSActivitySample sample = provider.getLatestActivitySample();
|
||||
if (sample!=null) {
|
||||
LOG.info("Send 'actlast' with last activity's timestamp: "+sample.getTimestamp());
|
||||
try {
|
||||
JSONObject o = new JSONObject();
|
||||
o.put("t", "actlast");
|
||||
o.put("time", sample.getTimestamp());
|
||||
uartTxJSON("actlast", o);
|
||||
} catch (JSONException e) {
|
||||
LOG.info("JSONException: " + e.getLocalizedMessage());
|
||||
}
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
LOG.warn("Error getting last activity: " + ex.getLocalizedMessage());
|
||||
}
|
||||
|
||||
LOG.info("Initialization Done");
|
||||
|
||||
requestBangleGPSPowerStatus();
|
||||
@ -560,7 +580,7 @@ public class BangleJSDeviceSupport extends AbstractBTLEDeviceSupport {
|
||||
} break;
|
||||
case "act": {
|
||||
BangleJSActivitySample sample = new BangleJSActivitySample();
|
||||
sample.setTimestamp((int) (GregorianCalendar.getInstance().getTimeInMillis() / 1000L));
|
||||
sample.setTimestamp((int) (System.currentTimeMillis() / 1000L));
|
||||
int hrm = 0;
|
||||
int steps = 0;
|
||||
if (json.has("time")) sample.setTimestamp(json.getInt("time"));
|
||||
|
Loading…
Reference in New Issue
Block a user