|
34 | 34 | extrasTimeout = undefined;
|
35 | 35 | hideExtras();
|
36 | 36 | }, 5000);
|
| 37 | + extrasShown = false; |
37 | 38 | };
|
38 | 39 | let drawExtras = function() { //draw date, day of the week and widgets
|
39 | 40 | let date = new Date();
|
| 41 | + g.reset(); |
| 42 | + g.clearRect(0, 138, g.getWidth() - 1, 176); |
40 | 43 | g.setFont("Teletext10x18Ascii").setFontAlign(0, 1);
|
41 | 44 | if (settings.weekday) g.drawString(require("locale").dow(date).toUpperCase(), g.getWidth() / 2, g.getHeight() - 18);
|
42 | 45 | if (settings.date) g.drawString(require('locale').date(date, 1), g.getWidth() / 2, g.getHeight());
|
|
45 | 48 | };
|
46 | 49 | let hideExtras = function() {
|
47 | 50 | if (extrasTimeout) clearTimeout(extrasTimeout);
|
| 51 | + extrasTimeout = undefined; //NEW |
| 52 | + g.reset(); |
48 | 53 | g.clearRect(0, 138, g.getWidth() - 1, 176);
|
49 | 54 | require("widget_utils").hide();
|
50 |
| - extrasShown = false; |
| 55 | + extrasShown = false; ///NEW |
51 | 56 | };
|
52 | 57 | let draw = function() {
|
| 58 | + if (drawTimeout) clearTimeout(drawTimeout); //NEW |
| 59 | + drawTimeout = setTimeout(function() { |
| 60 | + drawTimeout = undefined; |
| 61 | + draw(); |
| 62 | + }, 60000 - (Date.now() % 60000)); |
53 | 63 | let date = new Date();
|
54 | 64 | g.reset();
|
55 | 65 | if (extrasShown) drawExtras();
|
56 | 66 | else hideExtras();
|
57 | 67 | require('contourclock').drawClock(settings.fontIndex);
|
58 |
| - if (drawTimeout) clearTimeout(drawTimeout); |
59 |
| - drawTimeout = setTimeout(function() { |
60 |
| - drawTimeout = undefined; |
61 |
| - draw(); |
62 |
| - }, 60000 - (Date.now() % 60000)); |
63 | 68 | };
|
64 | 69 | if (settings.hideWhenLocked) {
|
65 | 70 | onLock = locked => {
|
|
83 | 88 | Bangle.removeListener('twist', showExtras);
|
84 | 89 | if (drawTimeout) clearTimeout(drawTimeout);
|
85 | 90 | if (extrasTimeout) clearTimeout(extrasTimeout);
|
| 91 | + drawTimeout = undefined; |
| 92 | + extrasTimeout = undefined; |
86 | 93 | if (settings.hideWhenLocked) require("widget_utils").show();
|
87 | 94 | g.reset();
|
88 | 95 | g.clear();
|
|
91 | 98 | g.clear();
|
92 | 99 | if (settings.widgets) {
|
93 | 100 | Bangle.loadWidgets();
|
94 |
| - Bangle.drawWidgets(); |
| 101 | + setTimeout(Bangle.drawWidgets,0); //NEW |
95 | 102 | }
|
96 | 103 | draw();
|
97 | 104 | }
|
0 commit comments