Merge pull request #1039 from ps-igel/master

update Numerals clock
master
Gordon Williams 2021-12-09 09:09:22 +00:00 committed by GitHub
commit c003a8897f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 46 additions and 18 deletions

View File

@ -2086,12 +2086,12 @@
"id": "numerals", "id": "numerals",
"name": "Numerals Clock", "name": "Numerals Clock",
"shortName": "Numerals Clock", "shortName": "Numerals Clock",
"version": "0.09", "version": "0.10",
"description": "A simple big numerals clock", "description": "A simple big numerals clock",
"icon": "numerals.png", "icon": "numerals.png",
"type": "clock", "type": "clock",
"tags": "numerals,clock", "tags": "numerals,clock",
"supports": ["BANGLEJS"], "supports": ["BANGLEJS","BANGLEJS2"],
"allow_emulator": true, "allow_emulator": true,
"screenshots": [{"url":"bangle1-numerals-screenshot.png"}], "screenshots": [{"url":"bangle1-numerals-screenshot.png"}],
"storage": [ "storage": [

View File

@ -7,3 +7,4 @@
0.07: Add date on touch and some improvements (see settings and readme) 0.07: Add date on touch and some improvements (see settings and readme)
0.08: Add new draw styles, tidy up draw functionality 0.08: Add new draw styles, tidy up draw functionality
0.09: Tweak for faster rendering 0.09: Tweak for faster rendering
0.10: Enhance for use with Bangle2, insert new draw mode 'thickfill'

View File

@ -7,14 +7,20 @@ Settings can be accessed through the app/widget settings menu of the Bangle.js
### Color: ### Color:
* rnd - shows numerals in different color combinations every time the watches wakes * rnd - shows numerals in different color combinations every time the watches wakes
* r/g - red/green * r/g - red/green (Bangle1/Bangle2)
* y/w - yellow/white * y/w - yellow/white (Bangle1 only)
* o/c - orange/cyan * o/c - orange/cyan (Bangle1 only)
* b/y - blue/yellow'ish * b/y - blue/yellow'ish (Bangle1 only)
* r/g - red/green (Bangle2 only)
* g/b - green/blue (Bangle2 only)
* r/c - red/cyan (Bangle2 only)
* m/g - magenta/green (Bangle2 only)
### Draw mode ### Draw mode
* fill - fill numerals * fill - fill numerals
* frame - only shows outline of numerals * frame - only shows outline of numerals
* framefill - frame with lighter color fill
* thickfill - thick frame in theme foreground color
### Menu button ### Menu button
* choose button to start launcher menu with * choose button to start launcher menu with

View File

@ -19,8 +19,8 @@ var numerals = {
9:[[9,1,82,1,90,9,90,92,82,100,9,100,1,92,1,82,9,74,69,74,69,61,9,61,1,53,1,9],[22,27,69,27,69,41,22,41]], 9:[[9,1,82,1,90,9,90,92,82,100,9,100,1,92,1,82,9,74,69,74,69,61,9,61,1,53,1,9],[22,27,69,27,69,41,22,41]],
}; };
var _12hour = (require("Storage").readJSON("setting.json",1)||{})["12hour"]||false; var _12hour = (require("Storage").readJSON("setting.json",1)||{})["12hour"]||false;
var _hCol = ["#ff5555","#ffff00","#FF9901","#2F00FF"]; var _hCol = [];
var _mCol = ["#55ff55","#ffffff","#00EFEF","#FFBF00"]; var _mCol = [];
var _rCol = 0; var _rCol = 0;
var scale = g.getWidth()/240; var scale = g.getWidth()/240;
var interval = 0; var interval = 0;
@ -42,15 +42,23 @@ var drawFuncs = {
}, },
thickframe : function(poly,isHole){ thickframe : function(poly,isHole){
g.drawPoly(poly,true); g.drawPoly(poly,true);
g.drawPoly(translate(1,0,poly),true); g.drawPoly(translate(1,0,poly,1),true);
g.drawPoly(translate(1,1,poly),true); g.drawPoly(translate(1,1,poly,1),true);
g.drawPoly(translate(0,1,poly),true); g.drawPoly(translate(0,1,poly,1),true);
},
thickfill : function(poly,isHole){
if (isHole) g.setColor(g.theme.bg);
g.fillPoly(poly,true);
g.setColor(g.theme.fg);
g.drawPoly(translate(1,0,poly,1),true);
g.drawPoly(translate(1,1,poly,1),true);
g.drawPoly(translate(0,1,poly,1),true);
} }
}; };
function translate(tx, ty, p){ function translate(tx, ty, p, ascale){
//return p.map((x, i)=> x+((i&1)?ty:tx)); //return p.map((x, i)=> x+((i&1)?ty:tx));
return g.transformVertices(p, {x:tx,y:ty,scale:scale}); return g.transformVertices(p, {x:tx,y:ty,scale:ascale==undefined?scale:ascale});
} }
@ -99,6 +107,18 @@ function setUpdateInt(set){
if (set) interval=setInterval(draw, REFRESH_RATE); if (set) interval=setInterval(draw, REFRESH_RATE);
} }
function setUp(){
if (process.env.HWVERSION==1){
_hCol = ["#ff5555","#ffff00","#FF9901","#2F00FF"];
_mCol = ["#55ff55","#ffffff","#00EFEF","#FFBF00"];
} else {
_hCol = ["#ff0000","#00ff00","#ff0000","#ff00ff"];
_mCol = ["#00ff00","#0000ff","#00ffff","#00ff00"];
}
if (settings.color==0) _rCol = Math.floor(Math.random()*_hCol.length);
}
setUp();
g.clear(1); g.clear(1);
// Show launcher when button pressed // Show launcher when button pressed
Bangle.setUI("clock"); Bangle.setUI("clock");
@ -111,11 +131,12 @@ if (settings.showDate) {
} }
Bangle.on('lcdPower', function(on){ Bangle.on('lcdPower', function(on){
if (on){ if (on){
if (settings.color==0) _rCol = Math.floor(Math.random()*_hCol.length); setUp();
draw(); draw();
setUpdateInt(1); setUpdateInt(1);
} else setUpdateInt(0); } else setUpdateInt(0);
}); });
Bangle.on('lock', () => setUp());
Bangle.loadWidgets(); Bangle.loadWidgets();
Bangle.drawWidgets(); Bangle.drawWidgets();

View File

@ -12,8 +12,8 @@
} }
let numeralsSettings = storage.readJSON('numerals.json',1); let numeralsSettings = storage.readJSON('numerals.json',1);
if (!numeralsSettings) resetSettings(); if (!numeralsSettings) resetSettings();
let dm = ["fill","frame","framefill","thickframe"]; let dm = ["fill","frame","framefill","thickframe","thickfill"];
let col = ["rnd","r/g","y/w","o/c","b/y"]; let col = process.env.HWVERSION==1?["rnd","r/g","y/w","o/c","b/y"]:["rnd","r/g","g/b","r/c","m/g"];
let btn = [[24,"BTN1"],[22,"BTN2"],[23,"BTN3"],[11,"BTN4"],[16,"BTN5"]]; let btn = [[24,"BTN1"],[22,"BTN2"],[23,"BTN3"],[11,"BTN4"],[16,"BTN5"]];
var menu={ var menu={
"" : { "title":"Numerals"}, "" : { "title":"Numerals"},