diff --git a/apps/ultrainfo/ChangeLog b/apps/ultrainfo/ChangeLog index 9bb57a5e8b..f7c4ba553f 100644 --- a/apps/ultrainfo/ChangeLog +++ b/apps/ultrainfo/ChangeLog @@ -1,2 +1,3 @@ -0.01: New app +0.01: New app. 0.02: Add lock icon since it's not shown in widget bar, bug fixes and performance improvements. +0.03: Fix clkinfo progress bar not taking info.min and info.v into account, use the colorpicker module for settings. diff --git a/apps/ultrainfo/app.js b/apps/ultrainfo/app.js index 51b928c54a..73842fd415 100644 --- a/apps/ultrainfo/app.js +++ b/apps/ultrainfo/app.js @@ -86,12 +86,17 @@ let drawRectClockInfo = function (itm, info, options, top) { 1, settings.mainColor ); - if (info.max) { + + if (info.max&&info.v) { + let min=info.min?info.min:0; + let val=(info.v-min) / (info.max-min); + val=Math.max(0,val); + val=Math.min(1,val); drawProgBar( options.x + 3, top ? options.y + options.h - 3 : options.y + 3, options.w - 6, - +parseFloat(("" + info.text).match(/[\d.]+/)) / info.max, + val, settings.accentColor ); } @@ -198,5 +203,3 @@ Bangle.setUI({ if (brClkInfo && brClkInfo.remove) brClkInfo.remove(); } }); - - diff --git a/apps/ultrainfo/metadata.json b/apps/ultrainfo/metadata.json index 157ce0a7b0..0974da44ef 100644 --- a/apps/ultrainfo/metadata.json +++ b/apps/ultrainfo/metadata.json @@ -3,7 +3,7 @@ "name": "Ultra Info Clock", "shortName":"Ultra Info", "icon": "icon.png", - "version":"0.02", + "version":"0.03", "description": "The ultimate information clock with not 2, not 4, but 6 ClockInfos - for those who crave as much information as possible on their wrists.", "type":"clock", "tags": "clock,clkinfo", @@ -19,6 +19,7 @@ {"url":"screenshot4.png"}, {"url":"screenshot5.png"} ], + "storage": [ {"name":"ultrainfo.app.js","url":"app.js"}, {"name":"ultrainfo.settings.js","url":"settings.js"}, diff --git a/apps/ultrainfo/settings.js b/apps/ultrainfo/settings.js index d05e151555..c4f2f5810c 100644 --- a/apps/ultrainfo/settings.js +++ b/apps/ultrainfo/settings.js @@ -9,67 +9,31 @@ function writeSettings() { require('Storage').writeJSON(FILE, settings); } - - // same as in clock_bg - function getColorsImage(cols) { - var bpp = 1; - if (cols.length>4) bpp=4; - else if (cols.length>2) bpp=2; - var w = (cols.length>8)?8:16; - var b = Graphics.createArrayBuffer(w*cols.length,16,bpp); - b.palette = new Uint16Array(1<{ - b.setColor(i).fillRect(i*w,0,i*w+w-1,15); - b.palette[i] = g.toColor(c); - }); - return "\0"+b.asImage("string"); - } - function showAccentColor(){ - var menu={ - "" : { "title" : "Accent Color" }, - "< Back" : showMainMenu, - - } - var cols = ["#F00","#0F0","#FF0", - "#00F","#F0F","#0FF", - "#000","#888","#fff",]; - cols.forEach(col => { - menu[" "+getColorsImage([col])] = () => { - settings.accentColor=col; + function showClMenu(settingsKey){ + require("colorpicker").show({ + onSelect:function(color){ + settings[settingsKey]=color; writeSettings(); - showMainMenu(); - }; - }); - E.showMenu(menu); - } - -function showMainColor(){ - var menu={ - "" : { "title" : "Main Color" }, - "< Back" : showMainMenu, + }, + showPreview:true, + back:function(){ + showMainMenu() + } - } - var cols = ["#F00","#0F0","#FF0", - "#00F","#F0F","#0FF", - "#000","#888","#fff",]; - cols.forEach(col => { - menu[" "+getColorsImage([col])] = () => { - settings.mainColor=col; - writeSettings(); - showMainMenu(); - }; }); - E.showMenu(menu); } - function showMainMenu(){ // Show the menu E.showMenu({ "" : { "title" : "Ultra Info" }, "< Back" : () => back(), - 'Main Color': showMainColor, - 'Accent Color': showAccentColor + 'Main Color': function(){ + showClMenu("mainColor") + }, + 'Accent Color': function(){ + showClMenu("accentColor") + }, }); } showMainMenu() -}) \ No newline at end of file +})