Skip to content

Commit 8442f27

Browse files
committed
ptlaunch 0.16: Fix issue adding new patterns (fix #3858)
Display message if tapping manage when there are no patterns Speed improvements
1 parent b95ee7b commit 8442f27

File tree

4 files changed

+28
-49
lines changed

4 files changed

+28
-49
lines changed

apps/ptlaunch/ChangeLog

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,6 @@
77
0.13: Improve pattern rendering by HughB http://forum.espruino.com/profiles/167235/
88
0.14: Update setUI to work with new Bangle.js 2v13 menu style
99
0.15: Update to support clocks in custom setUI mode
10+
0.16: Fix issue adding new patterns (fix #3858)
11+
Display message if tapping manage when there are no patterns
12+
Speed improvements

apps/ptlaunch/app.js

Lines changed: 22 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@ var showMainMenu = () => {
99
var mainmenu = {
1010
"": {
1111
title: "Pattern Launcher",
12-
},
13-
"< Back": () => {
14-
log("cancel");
15-
load();
12+
back: () => {
13+
log("showMainMenu cancel");
14+
load();
15+
}
1616
},
1717
"Add Pattern": () => {
1818
log("creating pattern");
@@ -83,11 +83,11 @@ var showMainMenu = () => {
8383
var settingsmenu = {
8484
"": {
8585
title: "Pattern Settings",
86-
},
87-
"< Back": () => {
88-
log("cancel");
89-
load();
90-
},
86+
back: () => {
87+
log("settings cancel");
88+
showMainMenu();
89+
},
90+
}
9191
};
9292

9393
if (settings.lockDisabled) {
@@ -116,28 +116,20 @@ var showMainMenu = () => {
116116

117117
var recognizeAndDrawPattern = () => {
118118
return new Promise((resolve) => {
119-
E.showMenu();
120-
g.clear();
121-
drawCirclesWithPattern([]);
122-
123119
var pattern = [];
124-
125120
var isFinished = false;
126121
var finishHandler = () => {
127122
if (pattern.length === 0 || isFinished) {
128123
return;
129124
}
130125
log("Pattern is finished.");
131126
isFinished = true;
132-
Bangle.removeListener("drag", dragHandler);
133-
Bangle.removeListener("tap", finishHandler);
127+
Bangle.setUI();
134128
resolve(pattern.join(""));
135129
};
136-
setWatch(() => finishHandler(), BTN);
137-
// setTimeout(() => Bangle.on("tap", finishHandler), 250);
138130

139131
var positions = [];
140-
var getPattern = (positions) => {
132+
var getPattern = (positions) => { "ram";/*faster*/
141133
var circles = [
142134
{ x: 25, y: 25, i: 0 },
143135
{ x: 87, y: 25, i: 1 },
@@ -151,18 +143,8 @@ var recognizeAndDrawPattern = () => {
151143
];
152144
return positions.reduce((pattern, p, i, arr) => {
153145
var idx = circles.findIndex((c) => {
154-
var dx = p.x > c.x ? p.x - c.x : c.x - p.x;
155-
if (dx > CIRCLE_RADIUS) {
156-
return false;
157-
}
158-
var dy = p.y > c.y ? p.y - c.y : c.y - p.y;
159-
if (dy > CIRCLE_RADIUS) {
160-
return false;
161-
}
162-
if (dx + dy <= CIRCLE_RADIUS) {
163-
return true;
164-
}
165-
return dx * dx + dy * dy <= CIRCLE_RADIUS_2;
146+
var dx = p.x - c.x, dy = p.y - c.y;
147+
return dx*dx + dy*dy <= CIRCLE_RADIUS_2;
166148
});
167149
if (idx >= 0) {
168150
pattern += circles[idx].i;
@@ -183,7 +165,9 @@ var recognizeAndDrawPattern = () => {
183165
positions = [];
184166
}
185167
};
186-
Bangle.on("drag", dragHandler);
168+
g.clear();
169+
drawCirclesWithPattern([]);
170+
Bangle.setUI({mode:"custom", drag:dragHandler, btn :finishHandler});
187171
});
188172
};
189173

@@ -215,14 +199,14 @@ var getAppList = () => {
215199
};
216200

217201
var getSelectedApp = () => {
218-
E.showMessage("Loading apps...");
202+
E.showMessage(/*LANG*/"Loading apps...");
219203
return new Promise((resolve) => {
220204
var selectAppMenu = {
221205
"": {
222-
title: "Select App",
206+
title: /*LANG*/"Select App",
223207
},
224208
"< Cancel": () => {
225-
log("cancel");
209+
log("getSelectedApp cancel");
226210
showMainMenu();
227211
},
228212
};
@@ -286,6 +270,8 @@ var drawAppWithPattern = (i, r, storedPatterns) => {
286270

287271
var showScrollerContainingAppsWithPatterns = () => {
288272
var storedPatternsArray = getStoredPatternsArray();
273+
if (!storedPatternsArray.length)
274+
return E.showAlert(/*LANG*/"No Patterns",{title:/*LANG*/"Patterns"}).then(() => ({ pattern: "back", appName:"" }));
289275
log("drawing scroller for stored patterns");
290276
log(storedPatternsArray);
291277
log(storedPatternsArray.length);
@@ -485,4 +471,4 @@ var log = (message) => {
485471
// run main function
486472
//////
487473

488-
showMainMenu();
474+
showMainMenu();

apps/ptlaunch/boot.js

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -24,18 +24,8 @@
2424
];
2525
return positions.reduce((pattern, p, i, arr) => {
2626
var idx = circles.findIndex((c) => {
27-
var dx = p.x > c.x ? p.x - c.x : c.x - p.x;
28-
if (dx > CIRCLE_RADIUS) {
29-
return false;
30-
}
31-
var dy = p.y > c.y ? p.y - c.y : c.y - p.y;
32-
if (dy > CIRCLE_RADIUS) {
33-
return false;
34-
}
35-
if (dx + dy <= CIRCLE_RADIUS) {
36-
return true;
37-
}
38-
return dx * dx + dy * dy <= CIRCLE_RADIUS_2;
27+
var dx = p.x - c.x, dy = p.y - c.y;
28+
return dx*dx + dy*dy <= CIRCLE_RADIUS_2;
3929
});
4030
if (idx >= 0) {
4131
pattern += circles[idx].i;

apps/ptlaunch/metadata.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"id": "ptlaunch",
33
"name": "Pattern Launcher",
44
"shortName": "Pattern Launcher",
5-
"version": "0.15",
5+
"version": "0.16",
66
"description": "Directly launch apps from the clock screen with custom patterns.",
77
"icon": "app.png",
88
"screenshots": [{"url":"manage_patterns_light.png"}],

0 commit comments

Comments
 (0)