mirror of https://github.com/espruino/BangleApps
pomoplus: HW button hide/show widgets + SW buttons
parent
15f8906723
commit
70be2ed03f
|
@ -2,4 +2,6 @@
|
||||||
0.02-0.04: Bug fixes
|
0.02-0.04: Bug fixes
|
||||||
0.05: Submitted to the app loader
|
0.05: Submitted to the app loader
|
||||||
0.06: Added setting to show clock after start/resume
|
0.06: Added setting to show clock after start/resume
|
||||||
0.07: Make fonts and buttons larger for legibility and ease of use.
|
0.07: Make fonts and buttons larger for legibility and ease of use. Hide
|
||||||
|
buttons when screen is locked. Toggle the graphical presentation when
|
||||||
|
pressing the (middle) hardware button.
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
- Click the pause button if you're interrupted with something urgent.
|
- Click the pause button if you're interrupted with something urgent.
|
||||||
- Click the cross button if you need to end your work session.
|
- Click the cross button if you need to end your work session.
|
||||||
- Click the skip button if you forgot to start the pomodori after the urgent interruption and ended up working for a long time! (Good on ya'!)
|
- Click the skip button if you forgot to start the pomodori after the urgent interruption and ended up working for a long time! (Good on ya'!)
|
||||||
|
- Press the (middle) hardware button to toggle visibility of widgets and software buttons.
|
||||||
|
|
||||||
Configure the pomodori and break times in the settings.
|
Configure the pomodori and break times in the settings.
|
||||||
|
|
||||||
|
@ -26,6 +27,8 @@ Configure the pomodori and break times in the settings.
|
||||||
|
|
||||||
Continues to run in the background if you exit the app while the pomodoro timer is running.
|
Continues to run in the background if you exit the app while the pomodoro timer is running.
|
||||||
|
|
||||||
|
The buttons and widgets hide automatically when the screen is locked.
|
||||||
|
|
||||||
## Requests
|
## Requests
|
||||||
|
|
||||||
Open an issue on the espruino/BangleApps issue tracker.
|
Open an issue on the espruino/BangleApps issue tracker.
|
||||||
|
|
|
@ -88,10 +88,34 @@ function drawTimerAndMessage() {
|
||||||
|
|
||||||
if (!Bangle.isLocked()) drawButtons();
|
if (!Bangle.isLocked()) drawButtons();
|
||||||
|
|
||||||
Bangle.on("touch", (button, xy) => {
|
let hideButtons = ()=>{
|
||||||
|
g.clearRect(0,BUTTON_TOP,W-1,H-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
let graphicState = 0; // 0 - all is visible, 1 - widgets are hidden, 2 - widgets and buttons are hidden.
|
||||||
|
let switchGraphicsOnButton = (n)=>{
|
||||||
|
if (process.env.HWVERSION == 2) n=2; // Translate Bangle.js 2 button to Bangle.js 1 middle button.
|
||||||
|
if (n == 2) {
|
||||||
|
if (graphicState == 0) {
|
||||||
|
wu.hide();
|
||||||
|
}
|
||||||
|
if (graphicState == 1) {
|
||||||
|
hideButtons();
|
||||||
|
}
|
||||||
|
if (graphicState == 2) {
|
||||||
|
wu.show();
|
||||||
|
drawButtons();
|
||||||
|
}
|
||||||
|
|
||||||
|
graphicState = (graphicState+1) % 3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let touchHandler = (button, xy) => {
|
||||||
//If we support full touch and we're not touching the keys, ignore.
|
//If we support full touch and we're not touching the keys, ignore.
|
||||||
//If we don't support full touch, we can't tell so just assume we are.
|
//If we don't support full touch, we can't tell so just assume we are.
|
||||||
if (xy !== undefined && xy.y <= g.getHeight() - BUTTON_HEIGHT) return;
|
let isOutsideButtonArea = xy !== undefined && xy.y <= g.getHeight() - BUTTON_HEIGHT;
|
||||||
|
if (isOutsideButtonArea || graphicState == 2) return;
|
||||||
|
|
||||||
if (!common.state.wasRunning) {
|
if (!common.state.wasRunning) {
|
||||||
//If we were never running, there is only one button: the start button
|
//If we were never running, there is only one button: the start button
|
||||||
|
@ -147,7 +171,14 @@ Bangle.on("touch", (button, xy) => {
|
||||||
if (common.settings.showClock) Bangle.showClock();
|
if (common.settings.showClock) Bangle.showClock();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
};
|
||||||
|
|
||||||
|
Bangle.setUI({
|
||||||
|
mode: "custom",
|
||||||
|
touch: touchHandler,
|
||||||
|
btn: switchGraphicsOnButton
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
let timerInterval;
|
let timerInterval;
|
||||||
|
|
||||||
|
@ -168,7 +199,7 @@ if (common.state.running) {
|
||||||
|
|
||||||
Bangle.on('lock', (on, reason) => {
|
Bangle.on('lock', (on, reason) => {
|
||||||
if (on) {
|
if (on) {
|
||||||
g.clearRect(0,BUTTON_TOP,W-1,H-1);
|
hideButtons();
|
||||||
wu.hide();
|
wu.hide();
|
||||||
}
|
}
|
||||||
if (!on) {
|
if (!on) {
|
||||||
|
|
Loading…
Reference in New Issue