ptlaunch 0.16: Fix issue adding new patterns (fix #3858)
Display message if tapping manage when there are no patterns
Speed improvements
master
parent
b95ee7bb4a
commit
8442f27c36
|
|
@ -7,3 +7,6 @@
|
||||||
0.13: Improve pattern rendering by HughB http://forum.espruino.com/profiles/167235/
|
0.13: Improve pattern rendering by HughB http://forum.espruino.com/profiles/167235/
|
||||||
0.14: Update setUI to work with new Bangle.js 2v13 menu style
|
0.14: Update setUI to work with new Bangle.js 2v13 menu style
|
||||||
0.15: Update to support clocks in custom setUI mode
|
0.15: Update to support clocks in custom setUI mode
|
||||||
|
0.16: Fix issue adding new patterns (fix #3858)
|
||||||
|
Display message if tapping manage when there are no patterns
|
||||||
|
Speed improvements
|
||||||
|
|
@ -9,10 +9,10 @@ var showMainMenu = () => {
|
||||||
var mainmenu = {
|
var mainmenu = {
|
||||||
"": {
|
"": {
|
||||||
title: "Pattern Launcher",
|
title: "Pattern Launcher",
|
||||||
},
|
back: () => {
|
||||||
"< Back": () => {
|
log("showMainMenu cancel");
|
||||||
log("cancel");
|
load();
|
||||||
load();
|
}
|
||||||
},
|
},
|
||||||
"Add Pattern": () => {
|
"Add Pattern": () => {
|
||||||
log("creating pattern");
|
log("creating pattern");
|
||||||
|
|
@ -83,11 +83,11 @@ var showMainMenu = () => {
|
||||||
var settingsmenu = {
|
var settingsmenu = {
|
||||||
"": {
|
"": {
|
||||||
title: "Pattern Settings",
|
title: "Pattern Settings",
|
||||||
},
|
back: () => {
|
||||||
"< Back": () => {
|
log("settings cancel");
|
||||||
log("cancel");
|
showMainMenu();
|
||||||
load();
|
},
|
||||||
},
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
if (settings.lockDisabled) {
|
if (settings.lockDisabled) {
|
||||||
|
|
@ -116,12 +116,7 @@ var showMainMenu = () => {
|
||||||
|
|
||||||
var recognizeAndDrawPattern = () => {
|
var recognizeAndDrawPattern = () => {
|
||||||
return new Promise((resolve) => {
|
return new Promise((resolve) => {
|
||||||
E.showMenu();
|
|
||||||
g.clear();
|
|
||||||
drawCirclesWithPattern([]);
|
|
||||||
|
|
||||||
var pattern = [];
|
var pattern = [];
|
||||||
|
|
||||||
var isFinished = false;
|
var isFinished = false;
|
||||||
var finishHandler = () => {
|
var finishHandler = () => {
|
||||||
if (pattern.length === 0 || isFinished) {
|
if (pattern.length === 0 || isFinished) {
|
||||||
|
|
@ -129,15 +124,12 @@ var recognizeAndDrawPattern = () => {
|
||||||
}
|
}
|
||||||
log("Pattern is finished.");
|
log("Pattern is finished.");
|
||||||
isFinished = true;
|
isFinished = true;
|
||||||
Bangle.removeListener("drag", dragHandler);
|
Bangle.setUI();
|
||||||
Bangle.removeListener("tap", finishHandler);
|
|
||||||
resolve(pattern.join(""));
|
resolve(pattern.join(""));
|
||||||
};
|
};
|
||||||
setWatch(() => finishHandler(), BTN);
|
|
||||||
// setTimeout(() => Bangle.on("tap", finishHandler), 250);
|
|
||||||
|
|
||||||
var positions = [];
|
var positions = [];
|
||||||
var getPattern = (positions) => {
|
var getPattern = (positions) => { "ram";/*faster*/
|
||||||
var circles = [
|
var circles = [
|
||||||
{ x: 25, y: 25, i: 0 },
|
{ x: 25, y: 25, i: 0 },
|
||||||
{ x: 87, y: 25, i: 1 },
|
{ x: 87, y: 25, i: 1 },
|
||||||
|
|
@ -151,18 +143,8 @@ var recognizeAndDrawPattern = () => {
|
||||||
];
|
];
|
||||||
return positions.reduce((pattern, p, i, arr) => {
|
return positions.reduce((pattern, p, i, arr) => {
|
||||||
var idx = circles.findIndex((c) => {
|
var idx = circles.findIndex((c) => {
|
||||||
var dx = p.x > c.x ? p.x - c.x : c.x - p.x;
|
var dx = p.x - c.x, dy = p.y - c.y;
|
||||||
if (dx > CIRCLE_RADIUS) {
|
return dx*dx + dy*dy <= CIRCLE_RADIUS_2;
|
||||||
return false;
|
|
||||||
}
|
|
||||||
var dy = p.y > c.y ? p.y - c.y : c.y - p.y;
|
|
||||||
if (dy > CIRCLE_RADIUS) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (dx + dy <= CIRCLE_RADIUS) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return dx * dx + dy * dy <= CIRCLE_RADIUS_2;
|
|
||||||
});
|
});
|
||||||
if (idx >= 0) {
|
if (idx >= 0) {
|
||||||
pattern += circles[idx].i;
|
pattern += circles[idx].i;
|
||||||
|
|
@ -183,7 +165,9 @@ var recognizeAndDrawPattern = () => {
|
||||||
positions = [];
|
positions = [];
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
Bangle.on("drag", dragHandler);
|
g.clear();
|
||||||
|
drawCirclesWithPattern([]);
|
||||||
|
Bangle.setUI({mode:"custom", drag:dragHandler, btn :finishHandler});
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -215,14 +199,14 @@ var getAppList = () => {
|
||||||
};
|
};
|
||||||
|
|
||||||
var getSelectedApp = () => {
|
var getSelectedApp = () => {
|
||||||
E.showMessage("Loading apps...");
|
E.showMessage(/*LANG*/"Loading apps...");
|
||||||
return new Promise((resolve) => {
|
return new Promise((resolve) => {
|
||||||
var selectAppMenu = {
|
var selectAppMenu = {
|
||||||
"": {
|
"": {
|
||||||
title: "Select App",
|
title: /*LANG*/"Select App",
|
||||||
},
|
},
|
||||||
"< Cancel": () => {
|
"< Cancel": () => {
|
||||||
log("cancel");
|
log("getSelectedApp cancel");
|
||||||
showMainMenu();
|
showMainMenu();
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
@ -286,6 +270,8 @@ var drawAppWithPattern = (i, r, storedPatterns) => {
|
||||||
|
|
||||||
var showScrollerContainingAppsWithPatterns = () => {
|
var showScrollerContainingAppsWithPatterns = () => {
|
||||||
var storedPatternsArray = getStoredPatternsArray();
|
var storedPatternsArray = getStoredPatternsArray();
|
||||||
|
if (!storedPatternsArray.length)
|
||||||
|
return E.showAlert(/*LANG*/"No Patterns",{title:/*LANG*/"Patterns"}).then(() => ({ pattern: "back", appName:"" }));
|
||||||
log("drawing scroller for stored patterns");
|
log("drawing scroller for stored patterns");
|
||||||
log(storedPatternsArray);
|
log(storedPatternsArray);
|
||||||
log(storedPatternsArray.length);
|
log(storedPatternsArray.length);
|
||||||
|
|
|
||||||
|
|
@ -24,18 +24,8 @@
|
||||||
];
|
];
|
||||||
return positions.reduce((pattern, p, i, arr) => {
|
return positions.reduce((pattern, p, i, arr) => {
|
||||||
var idx = circles.findIndex((c) => {
|
var idx = circles.findIndex((c) => {
|
||||||
var dx = p.x > c.x ? p.x - c.x : c.x - p.x;
|
var dx = p.x - c.x, dy = p.y - c.y;
|
||||||
if (dx > CIRCLE_RADIUS) {
|
return dx*dx + dy*dy <= CIRCLE_RADIUS_2;
|
||||||
return false;
|
|
||||||
}
|
|
||||||
var dy = p.y > c.y ? p.y - c.y : c.y - p.y;
|
|
||||||
if (dy > CIRCLE_RADIUS) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (dx + dy <= CIRCLE_RADIUS) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return dx * dx + dy * dy <= CIRCLE_RADIUS_2;
|
|
||||||
});
|
});
|
||||||
if (idx >= 0) {
|
if (idx >= 0) {
|
||||||
pattern += circles[idx].i;
|
pattern += circles[idx].i;
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
"id": "ptlaunch",
|
"id": "ptlaunch",
|
||||||
"name": "Pattern Launcher",
|
"name": "Pattern Launcher",
|
||||||
"shortName": "Pattern Launcher",
|
"shortName": "Pattern Launcher",
|
||||||
"version": "0.15",
|
"version": "0.16",
|
||||||
"description": "Directly launch apps from the clock screen with custom patterns.",
|
"description": "Directly launch apps from the clock screen with custom patterns.",
|
||||||
"icon": "app.png",
|
"icon": "app.png",
|
||||||
"screenshots": [{"url":"manage_patterns_light.png"}],
|
"screenshots": [{"url":"manage_patterns_light.png"}],
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue