|
1 | 1 | { // must be inside our own scope here so that when we are unloaded everything disappears |
2 | 2 | let s = require("Storage"); |
3 | 3 | // handle customised launcher |
4 | | - let scaleval = 1; |
5 | | - let vectorval = 20; |
6 | | - let font = g.getFonts().includes("12x20") ? "12x20" : "6x8:2"; |
7 | | - if (g.getFonts().includes("22")) font="22"; // 2v26+ |
| 4 | + let scaleval = 1, vectorval = 20, fonts = g.getFonts(); |
| 5 | + let font = fonts.includes("12x20") ? "12x20" : "6x8:2"; |
| 6 | + if (fonts.includes("22")) font="22"; // 2v26+ |
8 | 7 | let settings = Object.assign({ |
9 | 8 | showClocks: true, |
10 | 9 | fullscreen: false |
|
20 | 19 | scaleval = (font.split("x")[1])/20; |
21 | 20 | } |
22 | 21 | } |
| 22 | + let height = 50*scaleval; |
| 23 | + |
| 24 | + // Now apps list is loaded - render |
| 25 | + if (!settings.fullscreen) |
| 26 | + Bangle.loadWidgets(); |
| 27 | + let R = Bangle.appRect; |
| 28 | + g.reset().clearRect(R).setColor("#888"); |
| 29 | + for (var y=R.y;y<R.y2;y+=height) { |
| 30 | + g.drawRect(5*scaleval,y+5*scaleval,49*scaleval,y+49*scaleval) // image |
| 31 | + .drawRect(54*scaleval,y+20*scaleval,R.y2-16,y+34*scaleval); // text |
| 32 | + } |
| 33 | + g.flip(); |
| 34 | + |
23 | 35 | // cache app list so launcher loads more quickly |
24 | 36 | let launchCache = s.readJSON("launch.cache.json", true)||{}; |
25 | 37 | let launchHash = require("Storage").hash(/\.info/); |
|
39 | 51 | s.writeJSON("launch.cache.json", launchCache); |
40 | 52 | } |
41 | 53 | let apps = launchCache.apps; |
42 | | - // Now apps list is loaded - render |
43 | | - if (!settings.fullscreen) |
44 | | - Bangle.loadWidgets(); |
| 54 | + |
45 | 55 |
|
46 | 56 | const drawMenu = () => { |
47 | 57 | E.showScroller({ |
48 | | - h : 50*scaleval, c : apps.length, |
| 58 | + h : height, c : apps.length, |
49 | 59 | draw : (i, r) => { |
50 | 60 | var app = apps[i]; |
51 | 61 | if (!app) return; |
|
0 commit comments