1
0
Fork 0

Merge pull request #2369 from pebl-hank/master

BangleJS2: Swipe down to rotate screen. So you can show the time to a friend real quick.
master
Gordon Williams 2022-12-07 11:36:37 +00:00 committed by GitHub
commit e3d92ea3da
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 53 additions and 2 deletions

View File

@ -9,3 +9,4 @@
0.23: Added note to configure position in "my location" if not done yet. Small fixes. 0.23: Added note to configure position in "my location" if not done yet. Small fixes.
0.24: Added fast load 0.24: Added fast load
0.25: Minor code optimization 0.25: Minor code optimization
0.26: BJS2: Swipe down to rotate 180 degree

View File

@ -14,6 +14,7 @@ Provide names and the UTC offsets for up to three other timezones in the app sto
The clock does not handle summer time / daylight saving time changes automatically. If one of your three locations changes its UTC offset, you can simply change the setting in the app store and update. Currently the clock only supports 24 hour time format for the additional time zones. The clock does not handle summer time / daylight saving time changes automatically. If one of your three locations changes its UTC offset, you can simply change the setting in the app store and update. Currently the clock only supports 24 hour time format for the additional time zones.
BangleJS2: Swipe down to rotate screen. So you can show the time to a friend real quick.
## Requests ## Requests

View File

@ -7,6 +7,7 @@ var showSunInfo;
var colorWhenDark; var colorWhenDark;
// ------- Settings file // ------- Settings file
const BANGLEJS2 = process.env.HWVERSION == 2;
const big = g.getWidth()>200; const big = g.getWidth()>200;
// Font for primary time and date // Font for primary time and date
const primaryTimeFontSize = big?6:5; const primaryTimeFontSize = big?6:5;
@ -24,6 +25,7 @@ const xcol1 = 10;
const xcol2 = g.getWidth() - xcol1; const xcol2 = g.getWidth() - xcol1;
const font = "6x8"; const font = "6x8";
let drag;
/* TODO: we could totally use 'Layout' here and /* TODO: we could totally use 'Layout' here and
avoid a whole bunch of hard-coded offsets */ avoid a whole bunch of hard-coded offsets */
@ -317,6 +319,54 @@ Bangle.drawWidgets();
draw(); draw();
function initDragEvents() {
if (BANGLEJS2) {
Bangle.on("drag", e => {
if (!drag) { // start dragging
drag = {x: e.x, y: e.y};
} else if (!e.b) { // released
const dx = e.x-drag.x, dy = e.y-drag.y;
drag = null;
if (Math.abs(dx)>Math.abs(dy)+10) {
// horizontal
if (dx < dy) {
// for later purpose
} else {
// for later purpose
}
} else if (Math.abs(dy)>Math.abs(dx)+10) {
// vertical
if (dx < dy) {
g.clear().setRotation(2);
draw();
Bangle.loadWidgets();
Bangle.drawWidgets();
} else {
g.clear().setRotation(0);
draw();
Bangle.loadWidgets();
Bangle.drawWidgets();
}
} else {
//console.log("tap " + e.x + " " + e.y);
if (e.x > 145 && e.y > 145) {
// for later purpose
}
}
}
});
} else {
//setWatch(xxx, BTN1, { repeat: true, debounce:50 }); // maybe adding this later
//setWatch(xxx, BTN3, { repeat: true, debounce:50 });
//setWatch(xxx, BTN4, { repeat: true, debounce:50 });
//setWatch(xxx, BTN5, { repeat: true, debounce:50 });
}
}
initDragEvents();
if (!Bangle.isLocked()) { // Initial state if (!Bangle.isLocked()) { // Initial state
if (showSunInfo) { if (showSunInfo) {
if (PosInterval != 0 && typeof PosInterval != 'undefined') clearInterval(PosInterval); if (PosInterval != 0 && typeof PosInterval != 'undefined') clearInterval(PosInterval);
@ -350,7 +400,6 @@ if (!Bangle.isLocked()) { // Initial state
updatePos(); updatePos();
} }
draw(); // draw immediately, queue redraw draw(); // draw immediately, queue redraw
} }

View File

@ -2,7 +2,7 @@
"id": "hworldclock", "id": "hworldclock",
"name": "Hanks World Clock", "name": "Hanks World Clock",
"shortName": "Hanks World Clock", "shortName": "Hanks World Clock",
"version": "0.25", "version": "0.26",
"description": "Current time zone plus up to three others", "description": "Current time zone plus up to three others",
"allow_emulator":true, "allow_emulator":true,
"icon": "app.png", "icon": "app.png",