ptlaunch 0.16: Fix issue adding new patterns (fix #3858)

Display message if tapping manage when there are no patterns
      Speed improvements
master
Gordon Williams 2025-06-20 11:21:24 +01:00
parent b95ee7bb4a
commit 8442f27c36
4 changed files with 28 additions and 49 deletions

View File

@ -7,3 +7,6 @@
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.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

View File

@ -9,10 +9,10 @@ var showMainMenu = () => {
var mainmenu = {
"": {
title: "Pattern Launcher",
},
"< Back": () => {
log("cancel");
back: () => {
log("showMainMenu cancel");
load();
}
},
"Add Pattern": () => {
log("creating pattern");
@ -83,11 +83,11 @@ var showMainMenu = () => {
var settingsmenu = {
"": {
title: "Pattern Settings",
back: () => {
log("settings cancel");
showMainMenu();
},
"< Back": () => {
log("cancel");
load();
},
}
};
if (settings.lockDisabled) {
@ -116,12 +116,7 @@ var showMainMenu = () => {
var recognizeAndDrawPattern = () => {
return new Promise((resolve) => {
E.showMenu();
g.clear();
drawCirclesWithPattern([]);
var pattern = [];
var isFinished = false;
var finishHandler = () => {
if (pattern.length === 0 || isFinished) {
@ -129,15 +124,12 @@ var recognizeAndDrawPattern = () => {
}
log("Pattern is finished.");
isFinished = true;
Bangle.removeListener("drag", dragHandler);
Bangle.removeListener("tap", finishHandler);
Bangle.setUI();
resolve(pattern.join(""));
};
setWatch(() => finishHandler(), BTN);
// setTimeout(() => Bangle.on("tap", finishHandler), 250);
var positions = [];
var getPattern = (positions) => {
var getPattern = (positions) => { "ram";/*faster*/
var circles = [
{ x: 25, y: 25, i: 0 },
{ x: 87, y: 25, i: 1 },
@ -151,18 +143,8 @@ var recognizeAndDrawPattern = () => {
];
return positions.reduce((pattern, p, i, arr) => {
var idx = circles.findIndex((c) => {
var dx = p.x > c.x ? p.x - c.x : c.x - p.x;
if (dx > CIRCLE_RADIUS) {
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;
var dx = p.x - c.x, dy = p.y - c.y;
return dx*dx + dy*dy <= CIRCLE_RADIUS_2;
});
if (idx >= 0) {
pattern += circles[idx].i;
@ -183,7 +165,9 @@ var recognizeAndDrawPattern = () => {
positions = [];
}
};
Bangle.on("drag", dragHandler);
g.clear();
drawCirclesWithPattern([]);
Bangle.setUI({mode:"custom", drag:dragHandler, btn :finishHandler});
});
};
@ -215,14 +199,14 @@ var getAppList = () => {
};
var getSelectedApp = () => {
E.showMessage("Loading apps...");
E.showMessage(/*LANG*/"Loading apps...");
return new Promise((resolve) => {
var selectAppMenu = {
"": {
title: "Select App",
title: /*LANG*/"Select App",
},
"< Cancel": () => {
log("cancel");
log("getSelectedApp cancel");
showMainMenu();
},
};
@ -286,6 +270,8 @@ var drawAppWithPattern = (i, r, storedPatterns) => {
var showScrollerContainingAppsWithPatterns = () => {
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(storedPatternsArray);
log(storedPatternsArray.length);

View File

@ -24,18 +24,8 @@
];
return positions.reduce((pattern, p, i, arr) => {
var idx = circles.findIndex((c) => {
var dx = p.x > c.x ? p.x - c.x : c.x - p.x;
if (dx > CIRCLE_RADIUS) {
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;
var dx = p.x - c.x, dy = p.y - c.y;
return dx*dx + dy*dy <= CIRCLE_RADIUS_2;
});
if (idx >= 0) {
pattern += circles[idx].i;

View File

@ -2,7 +2,7 @@
"id": "ptlaunch",
"name": "Pattern Launcher",
"shortName": "Pattern Launcher",
"version": "0.15",
"version": "0.16",
"description": "Directly launch apps from the clock screen with custom patterns.",
"icon": "app.png",
"screenshots": [{"url":"manage_patterns_light.png"}],