Recorder - Allow creation of new file instead of overwriting
parent
4198189fbb
commit
4ea4966feb
|
|
@ -12,6 +12,11 @@
|
||||||
return settings;
|
return settings;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function updateSettings(settings) {
|
||||||
|
require("Storage").writeJSON("recorder.json", settings);
|
||||||
|
if (WIDGETS["recorder"]) WIDGETS["recorder"].reload();
|
||||||
|
}
|
||||||
|
|
||||||
function getRecorders() {
|
function getRecorders() {
|
||||||
var recorders = {
|
var recorders = {
|
||||||
gps:function() {
|
gps:function() {
|
||||||
|
|
@ -227,15 +232,32 @@
|
||||||
Bangle.drawWidgets(); // relayout all widgets
|
Bangle.drawWidgets(); // relayout all widgets
|
||||||
},setRecording:function(isOn) {
|
},setRecording:function(isOn) {
|
||||||
var settings = loadSettings();
|
var settings = loadSettings();
|
||||||
if (isOn && !settings.recording && require("Storage").list(settings.file).length)
|
if (isOn && !settings.recording && require("Storage").list(settings.file).length){
|
||||||
return E.showPrompt("Overwrite\nLog " + settings.file.match(/\d+/)[0] + "?",{title:"Recorder",buttons:{Yes:"yes",No:"no"}}).then(selection=>{
|
var logfiles=require("Storage").list(/recorder.log.*/);
|
||||||
|
var maxNumber=0;
|
||||||
|
for (var c of logfiles){
|
||||||
|
maxNumber = Math.max(maxNumber, c.match(/\d+/)[0]);
|
||||||
|
}
|
||||||
|
var newFileName;
|
||||||
|
if (maxNumber < 99){
|
||||||
|
newFileName="recorder.log" + (maxNumber + 1) + ".csv";
|
||||||
|
updateSettings(settings);
|
||||||
|
}
|
||||||
|
var buttons={Yes:"yes",No:"no"};
|
||||||
|
if (newFileName) buttons["New"] = "new";
|
||||||
|
var prompt = E.showPrompt("Overwrite\nLog " + settings.file.match(/\d+/)[0] + "?",{title:"Recorder",buttons:buttons}).then(selection=>{
|
||||||
if (selection=="no") return false; // just cancel
|
if (selection=="no") return false; // just cancel
|
||||||
if (selection=="yes") require("Storage").open(settings.file,"r").erase();
|
if (selection=="yes") require("Storage").open(settings.file,"r").erase();
|
||||||
// TODO: Add 'new file' option
|
if (selection=="new"){
|
||||||
|
settings.file = newFileName;
|
||||||
|
updateSettings(settings);
|
||||||
|
}
|
||||||
return WIDGETS["recorder"].setRecording(1);
|
return WIDGETS["recorder"].setRecording(1);
|
||||||
});
|
});
|
||||||
|
return prompt;
|
||||||
|
}
|
||||||
settings.recording = isOn;
|
settings.recording = isOn;
|
||||||
require("Storage").write("recorder.json", settings);
|
updateSettings(settings);
|
||||||
WIDGETS["recorder"].reload();
|
WIDGETS["recorder"].reload();
|
||||||
return Promise.resolve(settings.recording);
|
return Promise.resolve(settings.recording);
|
||||||
}/*,plotTrack:function(m) { // m=instance of openstmap module
|
}/*,plotTrack:function(m) { // m=instance of openstmap module
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue