Support for optional fullscreen mode.
parent
eebec3b832
commit
1bb3885b2c
|
|
@ -15,3 +15,4 @@
|
||||||
0.15: Using wpedom to count steps.
|
0.15: Using wpedom to count steps.
|
||||||
0.16: Improved stability. Wind can now be shown.
|
0.16: Improved stability. Wind can now be shown.
|
||||||
0.17: Settings for mph/kph and other minor improvements.
|
0.17: Settings for mph/kph and other minor improvements.
|
||||||
|
0.18: Fullscreen mode can now be enabled or disabled in the settings.
|
||||||
|
|
@ -11,7 +11,7 @@ with Gadgetbride and the weather app must be installed.
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
* LCARS Style watch face.
|
* 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.
|
* Tab on left/right to switch between different screens.
|
||||||
* Cusomizable data that is shown on screen 1 (steps, weather etc.)
|
* Cusomizable data that is shown on screen 1 (steps, weather etc.)
|
||||||
* Shows random and real images of planets.
|
* Shows random and real images of planets.
|
||||||
|
|
@ -33,7 +33,7 @@ with Gadgetbride and the weather app must be installed.
|
||||||
## Multiple screens support
|
## Multiple screens support
|
||||||
Access different screens via tap on the left/ right side of the screen
|
Access different screens via tap on the left/ right side of the screen
|
||||||
|
|
||||||

|

|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ let settings = {
|
||||||
dataRow2: "Temp",
|
dataRow2: "Temp",
|
||||||
dataRow3: "Battery",
|
dataRow3: "Battery",
|
||||||
speed: "kph",
|
speed: "kph",
|
||||||
|
fullscreen: false,
|
||||||
};
|
};
|
||||||
let saved_settings = storage.readJSON(SETTINGS_FILE, 1) || settings;
|
let saved_settings = storage.readJSON(SETTINGS_FILE, 1) || settings;
|
||||||
for (const key in saved_settings) {
|
for (const key in saved_settings) {
|
||||||
|
|
@ -30,6 +31,7 @@ let lcarsViewPos = 0;
|
||||||
// let hrmValue = 0;
|
// let hrmValue = 0;
|
||||||
var plotMonth = false;
|
var plotMonth = false;
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Requirements and globals
|
* Requirements and globals
|
||||||
*/
|
*/
|
||||||
|
|
@ -217,7 +219,7 @@ function drawHorizontalBgLine(color, x1, x2, y, h){
|
||||||
|
|
||||||
|
|
||||||
function drawInfo(){
|
function drawInfo(){
|
||||||
if(lcarsViewPos != 0){
|
if(lcarsViewPos != 0 || !settings.fullscreen){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -304,15 +306,26 @@ function drawPosition0(){
|
||||||
var currentDate = new Date();
|
var currentDate = new Date();
|
||||||
var timeStr = locale.time(currentDate,1);
|
var timeStr = locale.time(currentDate,1);
|
||||||
g.setFontAntonioLarge();
|
g.setFontAntonioLarge();
|
||||||
|
if(settings.fullscreen){
|
||||||
g.drawString(timeStr, 27, 10);
|
g.drawString(timeStr, 27, 10);
|
||||||
|
} else {
|
||||||
|
g.drawString(timeStr, 27, 30);
|
||||||
|
}
|
||||||
|
|
||||||
// Write date
|
// Write date
|
||||||
g.setColor(cWhite);
|
g.setColor(cWhite);
|
||||||
g.setFontAntonioMedium();
|
g.setFontAntonioMedium();
|
||||||
|
if(settings.fullscreen){
|
||||||
var dayStr = locale.dow(currentDate, true).toUpperCase();
|
var dayStr = locale.dow(currentDate, true).toUpperCase();
|
||||||
dayStr += " " + currentDate.getDate();
|
dayStr += " " + currentDate.getDate();
|
||||||
dayStr += " " + locale.month(currentDate, 1).toUpperCase();
|
dayStr += " " + locale.month(currentDate, 1).toUpperCase();
|
||||||
g.drawString(dayStr, 30, 56);
|
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
|
// Draw data
|
||||||
g.setFontAlign(-1, -1, 0);
|
g.setFontAlign(-1, -1, 0);
|
||||||
|
|
@ -451,6 +464,13 @@ function draw(){
|
||||||
} else if (lcarsViewPos == 1) {
|
} else if (lcarsViewPos == 1) {
|
||||||
drawPosition1();
|
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
|
// Show launcher when middle button pressed
|
||||||
Bangle.setUI("clock");
|
Bangle.setUI("clock");
|
||||||
Bangle.loadWidgets();
|
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
|
// Clear the screen once, at startup and draw clock
|
||||||
g.setTheme({bg:"#000",fg:"#fff",dark:true}).clear();
|
g.setTheme({bg:"#000",fg:"#fff",dark:true}).clear();
|
||||||
draw();
|
draw();
|
||||||
|
|
||||||
// After drawing the watch face, we can draw the widgets
|
|
||||||
// Bangle.drawWidgets();
|
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@
|
||||||
dataRow2: "Steps",
|
dataRow2: "Steps",
|
||||||
dataRow3: "Temp",
|
dataRow3: "Temp",
|
||||||
speed: "kph",
|
speed: "kph",
|
||||||
|
fullscreen: false,
|
||||||
};
|
};
|
||||||
let saved_settings = storage.readJSON(SETTINGS_FILE, 1) || settings;
|
let saved_settings = storage.readJSON(SETTINGS_FILE, 1) || settings;
|
||||||
for (const key in saved_settings) {
|
for (const key in saved_settings) {
|
||||||
|
|
@ -52,6 +53,14 @@
|
||||||
save();
|
save();
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
'Full Screen': {
|
||||||
|
value: settings.fullscreen,
|
||||||
|
format: () => (settings.fullscreen ? 'Yes' : 'No'),
|
||||||
|
onchange: () => {
|
||||||
|
settings.fullscreen = !settings.fullscreen;
|
||||||
|
save();
|
||||||
|
},
|
||||||
|
},
|
||||||
'Speed': {
|
'Speed': {
|
||||||
value: 0 | speedOptions.indexOf(settings.speed),
|
value: 0 | speedOptions.indexOf(settings.speed),
|
||||||
min: 0, max: 1,
|
min: 0, max: 1,
|
||||||
|
|
|
||||||
|
|
@ -3,13 +3,15 @@
|
||||||
"name": "LCARS Clock",
|
"name": "LCARS Clock",
|
||||||
"shortName":"LCARS",
|
"shortName":"LCARS",
|
||||||
"icon": "lcars.png",
|
"icon": "lcars.png",
|
||||||
"version":"0.17",
|
"version":"0.18",
|
||||||
"readme": "README.md",
|
"readme": "README.md",
|
||||||
"supports": ["BANGLEJS2"],
|
"supports": ["BANGLEJS2"],
|
||||||
"description": "Library Computer Access Retrieval System (LCARS) clock.",
|
"description": "Library Computer Access Retrieval System (LCARS) clock.",
|
||||||
"type": "clock",
|
"type": "clock",
|
||||||
"tags": "clock",
|
"tags": "clock",
|
||||||
"screenshots": [{"url":"screenshot.png"}],
|
"screenshots": [
|
||||||
|
{"url":"screenshot_1.png"},
|
||||||
|
{"url":"screenshot_3.png"}],
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"lcars.app.js","url":"lcars.app.js"},
|
{"name":"lcars.app.js","url":"lcars.app.js"},
|
||||||
{"name":"lcars.img","url":"lcars.icon.js","evaluate":true},
|
{"name":"lcars.img","url":"lcars.icon.js","evaluate":true},
|
||||||
|
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 5.1 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 5.5 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 2.6 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 4.8 KiB |
Loading…
Reference in New Issue