diff --git a/apps/lcars/ChangeLog b/apps/lcars/ChangeLog index a8c55f8fd..7d8fecb1e 100644 --- a/apps/lcars/ChangeLog +++ b/apps/lcars/ChangeLog @@ -14,4 +14,5 @@ 0.14: Added altitude as an option to display. 0.15: Using wpedom to count steps. 0.16: Improved stability. Wind can now be shown. -0.17: Settings for mph/kph and other minor improvements. \ No newline at end of file +0.17: Settings for mph/kph and other minor improvements. +0.18: Fullscreen mode can now be enabled or disabled in the settings. \ No newline at end of file diff --git a/apps/lcars/README.md b/apps/lcars/README.md index b6bfda2c1..f979b2304 100644 --- a/apps/lcars/README.md +++ b/apps/lcars/README.md @@ -11,7 +11,7 @@ with Gadgetbride and the weather app must be installed. ## Features * LCARS Style watch face. - * Full screen mode - widgets are still loaded but not shown. + * Enable or disable fullscreen mode (widgets are always loaded, but hidden if fullscreen). * Tab on left/right to switch between different screens. * Cusomizable data that is shown on screen 1 (steps, weather etc.) * Shows random and real images of planets. @@ -33,7 +33,7 @@ with Gadgetbride and the weather app must be installed. ## Multiple screens support Access different screens via tap on the left/ right side of the screen -![](screenshot.png) +![](screenshot_1.png) ![](screenshot_2.png) diff --git a/apps/lcars/lcars.app.js b/apps/lcars/lcars.app.js index 1ac67d8aa..2d2239396 100644 --- a/apps/lcars/lcars.app.js +++ b/apps/lcars/lcars.app.js @@ -7,6 +7,7 @@ let settings = { dataRow2: "Temp", dataRow3: "Battery", speed: "kph", + fullscreen: false, }; let saved_settings = storage.readJSON(SETTINGS_FILE, 1) || settings; for (const key in saved_settings) { @@ -30,6 +31,7 @@ let lcarsViewPos = 0; // let hrmValue = 0; var plotMonth = false; + /* * Requirements and globals */ @@ -217,7 +219,7 @@ function drawHorizontalBgLine(color, x1, x2, y, h){ function drawInfo(){ - if(lcarsViewPos != 0){ + if(lcarsViewPos != 0 || !settings.fullscreen){ return; } @@ -304,15 +306,26 @@ function drawPosition0(){ var currentDate = new Date(); var timeStr = locale.time(currentDate,1); g.setFontAntonioLarge(); - g.drawString(timeStr, 27, 10); + if(settings.fullscreen){ + g.drawString(timeStr, 27, 10); + } else { + g.drawString(timeStr, 27, 30); + } // Write date g.setColor(cWhite); g.setFontAntonioMedium(); - var dayStr = locale.dow(currentDate, true).toUpperCase(); - dayStr += " " + currentDate.getDate(); - dayStr += " " + locale.month(currentDate, 1).toUpperCase(); - g.drawString(dayStr, 30, 56); + if(settings.fullscreen){ + var dayStr = locale.dow(currentDate, true).toUpperCase(); + dayStr += " " + currentDate.getDate(); + dayStr += " " + locale.month(currentDate, 1).toUpperCase(); + g.drawString(dayStr, 30, 56); + } else { + var dayStr = locale.dow(currentDate, true).toUpperCase(); + var date = currentDate.getDate(); + g.drawString(dayStr, 128, 33); + g.drawString(date, 128, 53); + } // Draw data g.setFontAlign(-1, -1, 0); @@ -451,6 +464,13 @@ function draw(){ } else if (lcarsViewPos == 1) { drawPosition1(); } + + // After drawing the watch face, we can draw the widgets + if(settings.fullscreen){ + for (let wd of WIDGETS) {wd.draw=()=>{};wd.area="";} + } else { + Bangle.drawWidgets(); + } } @@ -653,16 +673,7 @@ Bangle.on('touch', function(btn, e){ // Show launcher when middle button pressed Bangle.setUI("clock"); Bangle.loadWidgets(); -/* - * we are not drawing the widgets as we are taking over the whole screen - * so we will blank out the draw() functions of each widget and change the - * area to the top bar doesn't get cleared. - */ -for (let wd of WIDGETS) {wd.draw=()=>{};wd.area="";} // Clear the screen once, at startup and draw clock g.setTheme({bg:"#000",fg:"#fff",dark:true}).clear(); draw(); - -// After drawing the watch face, we can draw the widgets -// Bangle.drawWidgets(); diff --git a/apps/lcars/lcars.settings.js b/apps/lcars/lcars.settings.js index 176f88593..75add1ece 100644 --- a/apps/lcars/lcars.settings.js +++ b/apps/lcars/lcars.settings.js @@ -9,6 +9,7 @@ dataRow2: "Steps", dataRow3: "Temp", speed: "kph", + fullscreen: false, }; let saved_settings = storage.readJSON(SETTINGS_FILE, 1) || settings; for (const key in saved_settings) { @@ -52,6 +53,14 @@ save(); }, }, + 'Full Screen': { + value: settings.fullscreen, + format: () => (settings.fullscreen ? 'Yes' : 'No'), + onchange: () => { + settings.fullscreen = !settings.fullscreen; + save(); + }, + }, 'Speed': { value: 0 | speedOptions.indexOf(settings.speed), min: 0, max: 1, diff --git a/apps/lcars/metadata.json b/apps/lcars/metadata.json index a402b35a4..e6ca10f79 100644 --- a/apps/lcars/metadata.json +++ b/apps/lcars/metadata.json @@ -3,13 +3,15 @@ "name": "LCARS Clock", "shortName":"LCARS", "icon": "lcars.png", - "version":"0.17", + "version":"0.18", "readme": "README.md", "supports": ["BANGLEJS2"], "description": "Library Computer Access Retrieval System (LCARS) clock.", "type": "clock", "tags": "clock", - "screenshots": [{"url":"screenshot.png"}], + "screenshots": [ + {"url":"screenshot_1.png"}, + {"url":"screenshot_3.png"}], "storage": [ {"name":"lcars.app.js","url":"lcars.app.js"}, {"name":"lcars.img","url":"lcars.icon.js","evaluate":true}, diff --git a/apps/lcars/screenshot.png b/apps/lcars/screenshot.png deleted file mode 100644 index e2d2cbd5f..000000000 Binary files a/apps/lcars/screenshot.png and /dev/null differ diff --git a/apps/lcars/screenshot_1.png b/apps/lcars/screenshot_1.png new file mode 100644 index 000000000..09a604069 Binary files /dev/null and b/apps/lcars/screenshot_1.png differ diff --git a/apps/lcars/screenshot_2.png b/apps/lcars/screenshot_2.png index 52ad295c4..a7a94db39 100644 Binary files a/apps/lcars/screenshot_2.png and b/apps/lcars/screenshot_2.png differ diff --git a/apps/lcars/screenshot_3.png b/apps/lcars/screenshot_3.png new file mode 100644 index 000000000..c18b807bc Binary files /dev/null and b/apps/lcars/screenshot_3.png differ