mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge
synced 2024-07-22 14:52:25 +02:00
Bangle.js: activity track logic tweak
... to make string sent from Bangle.js shorter. And some other changes.
This commit is contained in:
parent
c572cae161
commit
6255ff615d
|
@ -151,8 +151,6 @@ import nodomain.freeyourgadget.gadgetbridge.service.btle.BLETypeConversions;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.service.btle.BtLEQueue;
|
import nodomain.freeyourgadget.gadgetbridge.service.btle.BtLEQueue;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.service.btle.TransactionBuilder;
|
import nodomain.freeyourgadget.gadgetbridge.service.btle.TransactionBuilder;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.service.btle.actions.SetDeviceStateAction;
|
import nodomain.freeyourgadget.gadgetbridge.service.btle.actions.SetDeviceStateAction;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.util.DateTimeUtils;
|
|
||||||
import nodomain.freeyourgadget.gadgetbridge.util.DeviceHelper;
|
|
||||||
import nodomain.freeyourgadget.gadgetbridge.util.EmojiConverter;
|
import nodomain.freeyourgadget.gadgetbridge.util.EmojiConverter;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.util.FileUtils;
|
import nodomain.freeyourgadget.gadgetbridge.util.FileUtils;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.util.GB;
|
import nodomain.freeyourgadget.gadgetbridge.util.GB;
|
||||||
|
@ -731,10 +729,12 @@ public class BangleJSDeviceSupport extends AbstractBTLEDeviceSupport {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String lastRecToFetch;
|
||||||
private void handleTrksList(JSONObject json) throws JSONException {
|
private void handleTrksList(JSONObject json) throws JSONException {
|
||||||
LOG.info("trksList says hi!");
|
LOG.info("trksList says hi!");
|
||||||
//GB.toast(getContext(), "trksList says hi!", Toast.LENGTH_LONG, GB.INFO);
|
//GB.toast(getContext(), "trksList says hi!", Toast.LENGTH_LONG, GB.INFO);
|
||||||
JSONArray tracksList = json.getJSONArray("list");
|
JSONArray tracksList = json.getJSONArray("list");
|
||||||
|
lastRecToFetch = tracksList.getString(tracksList.length()-1);
|
||||||
LOG.info("New recorder logs since last fetch: " + String.valueOf(tracksList));
|
LOG.info("New recorder logs since last fetch: " + String.valueOf(tracksList));
|
||||||
for (int i = 0; i < tracksList.length(); i ++) {
|
for (int i = 0; i < tracksList.length(); i ++) {
|
||||||
requestActivityTrackLog(tracksList.getString(i), i==tracksList.length()-1);
|
requestActivityTrackLog(tracksList.getString(i), i==tracksList.length()-1);
|
||||||
|
@ -745,9 +745,7 @@ public class BangleJSDeviceSupport extends AbstractBTLEDeviceSupport {
|
||||||
LOG.info("actTrk says hi!");
|
LOG.info("actTrk says hi!");
|
||||||
//GB.toast(getContext(), "actTrk says hi!", Toast.LENGTH_LONG, GB.INFO);
|
//GB.toast(getContext(), "actTrk says hi!", Toast.LENGTH_LONG, GB.INFO);
|
||||||
String log = json.getString("log");
|
String log = json.getString("log");
|
||||||
String line = json.getString("line");
|
|
||||||
LOG.info(log);
|
LOG.info(log);
|
||||||
LOG.info(line);
|
|
||||||
File dir;
|
File dir;
|
||||||
try {
|
try {
|
||||||
dir = FileUtils.getExternalFilesDir();
|
dir = FileUtils.getExternalFilesDir();
|
||||||
|
@ -756,7 +754,34 @@ public class BangleJSDeviceSupport extends AbstractBTLEDeviceSupport {
|
||||||
}
|
}
|
||||||
String filename = "recorder.log" + log + ".csv";
|
String filename = "recorder.log" + log + ".csv";
|
||||||
|
|
||||||
if (line.equals("end of recorder log")) { // TODO: Persist log to database here by reading the now completely transferred csv file from GB storage directory
|
if (!json.has("line")) { // if no line was sent with this json object, it signifies that the whole recorder log has been transmitted.
|
||||||
|
parseFetchedRecorderCSV(dir, filename, log);
|
||||||
|
} else { // We received a line of the csv, now we append it to the file in storage.
|
||||||
|
|
||||||
|
String line = json.getString("line");
|
||||||
|
LOG.info(line);
|
||||||
|
|
||||||
|
File outputFile = new File(dir, filename);
|
||||||
|
String filenameLogID = "latestFetchedRecorderLog.txt";
|
||||||
|
File outputFileLogID = new File(dir, filenameLogID);
|
||||||
|
LOG.warn("Writing log to " + outputFile.toString());
|
||||||
|
try {
|
||||||
|
FileUtils.copyStringToFile(line,outputFile,"append");
|
||||||
|
//GB.toast(getContext(), "Log written to " + filename, Toast.LENGTH_LONG, GB.INFO);
|
||||||
|
|
||||||
|
FileUtils.copyStringToFile(log,outputFileLogID,"");
|
||||||
|
//GB.toast(getContext(), "Log ID " + log + " written to " + filenameLogID, Toast.LENGTH_LONG, GB.INFO);
|
||||||
|
} catch (IOException e) {
|
||||||
|
LOG.warn("Could not write to file", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!json.has("line") && json.getString("log").equals(lastRecToFetch)) {
|
||||||
|
getDevice().unsetBusyTask();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void parseFetchedRecorderCSV(File dir, String filename, String log) {
|
||||||
|
|
||||||
File inputFile = new File(dir, filename);
|
File inputFile = new File(dir, filename);
|
||||||
try { // FIXME: There is maybe code inside this try-statement that should be outside of it.
|
try { // FIXME: There is maybe code inside this try-statement that should be outside of it.
|
||||||
|
@ -764,6 +789,7 @@ public class BangleJSDeviceSupport extends AbstractBTLEDeviceSupport {
|
||||||
// Read from the previously stored log (see the else-statement below) into a string.
|
// Read from the previously stored log (see the else-statement below) into a string.
|
||||||
BufferedReader reader = new BufferedReader(new FileReader(inputFile));
|
BufferedReader reader = new BufferedReader(new FileReader(inputFile));
|
||||||
StringBuilder storedLogBuilder = new StringBuilder(reader.readLine() + "\n");
|
StringBuilder storedLogBuilder = new StringBuilder(reader.readLine() + "\n");
|
||||||
|
String line;
|
||||||
while ((line = reader.readLine()) != null) {
|
while ((line = reader.readLine()) != null) {
|
||||||
storedLogBuilder.append(line).append("\n");
|
storedLogBuilder.append(line).append("\n");
|
||||||
}
|
}
|
||||||
|
@ -1068,6 +1094,7 @@ public class BangleJSDeviceSupport extends AbstractBTLEDeviceSupport {
|
||||||
// "baseAltitude", "ascentSeconds", "descentSeconds", "flatSeconds", "ascentDistance",
|
// "baseAltitude", "ascentSeconds", "descentSeconds", "flatSeconds", "ascentDistance",
|
||||||
// "descentDistance", "flatDistance", "elevationGain", "elevationLoss"
|
// "descentDistance", "flatDistance", "elevationGain", "elevationLoss"
|
||||||
// ));
|
// ));
|
||||||
|
//}
|
||||||
if (storedLogObject.has("Altitude") || storedLogObject.has("Barometer Altitude")) {
|
if (storedLogObject.has("Altitude") || storedLogObject.has("Barometer Altitude")) {
|
||||||
String altitudeToUseKey = null;
|
String altitudeToUseKey = null;
|
||||||
if (storedLogObject.has("Altitude")) {
|
if (storedLogObject.has("Altitude")) {
|
||||||
|
@ -1212,26 +1239,8 @@ public class BangleJSDeviceSupport extends AbstractBTLEDeviceSupport {
|
||||||
|
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
} catch (JSONException e) {
|
||||||
} else { // We received a line of the csv, now we append it to the file in storage.
|
throw new RuntimeException(e);
|
||||||
// TODO: File manipulation adapted from onFetchRecordedData() - break out to a new function to avoid code duplication?
|
|
||||||
|
|
||||||
File outputFile = new File(dir, filename);
|
|
||||||
String filenameLogID = "latestFetchedRecorderLog.txt";
|
|
||||||
File outputFileLogID = new File(dir, filenameLogID);
|
|
||||||
LOG.warn("Writing log to " + outputFile.toString());
|
|
||||||
try {
|
|
||||||
FileUtils.copyStringToFile(line,outputFile,"append");
|
|
||||||
//GB.toast(getContext(), "Log written to " + filename, Toast.LENGTH_LONG, GB.INFO);
|
|
||||||
|
|
||||||
FileUtils.copyStringToFile(log,outputFileLogID,"");
|
|
||||||
//GB.toast(getContext(), "Log ID " + log + " written to " + filenameLogID, Toast.LENGTH_LONG, GB.INFO);
|
|
||||||
} catch (IOException e) {
|
|
||||||
LOG.warn("Could not write to file", e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (json.getString("last").equals("true")) {
|
|
||||||
getDevice().unsetBusyTask();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user