diff --git a/apps/coin_info/clkinfo.js b/apps/coin_info/clkinfo.js index e221d3503..a514ce05a 100644 --- a/apps/coin_info/clkinfo.js +++ b/apps/coin_info/clkinfo.js @@ -1,53 +1,36 @@ (function() { - const SETTINGS_FILE = "coin_info.settings.json"; - const settings = require('Storage').readJSON(SETTINGS_FILE,1) || {}; - - function retrieveClkInfo(token) { - return { - text : token, - // color: "#f00", - img : atob("MDCBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAAAA//8AAAAB///AAAAB8A/gAAAAgAH4AAAwAAB8AAB4AAA+AADwA4APAADgA4APAAHgA4AHgADAf/ADwAAAf/gBwAAAf/wB4AAAcB4A4AAAcA4A4AAAcA4A4AYAcA4AcA8AcB4AcB+Af/wDdj/Af/4D/n/Af/8D/n/AcAcB/A4AcAOA+A4AcAOAcAcAcAOAAAcAcAAAAAcAcAAAAAeAf/AAAAOAf/AAAAPAf/ADAAHgA4AHgADwA4AHAADwA4APAAB8AAA+AAA+AAB8AAAfgAH4AAAH8A/gAAAD///AAAAA//8AAAAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==") - } - } - - // function showClkInfo() { - // const self = this; - // this.interval = setTimeout(() => { - // self.emit("redraw"); - // self.interval = setInterval(() => { - // console.log("Interval refresh"); - // self.emit("redraw"); - // }, 60000); - // }, 60000 - (Date.now() % 60000)); - // } - function showClkInfo() { - this.interval = setTimeout(()=>{ - this.emit("redraw"); - this.interval = setInterval(()=>{ - this.emit("redraw"); - }, 60000); - }, 60000 - (Date.now() % 60000)); - } - - function hideClkInfo() { - if (this.interval) { - clearInterval(this.interval); - this.interval = null; - } - } - - function createClkInfoItems() { - return (settings.tokenSelected || []).map(token => ({ - name: token, - get: () => retrieveClkInfo(token), - show: showClkInfo, - hide: hideClkInfo, - hasRange: false - })); - } - + const settings = require("Storage").readJSON("coin_info.settings.json",1)||{}; + if (!(settings.tokenSelected instanceof Array)) + settings.tokenSelected = []; return { name: "CoinInfo", - items: createClkInfoItems + items: settings.tokenSelected.map(token => { + return { name : token, + get : function() + { + return { + text : token, + img : atob("MDCBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAAAA//8AAAAB///AAAAB8A/gAAAAgAH4AAAwAAB8AAB4AAA+AADwA4APAADgA4APAAHgA4AHgADAf/ADwAAAf/gBwAAAf/wB4AAAcB4A4AAAcA4A4AAAcA4A4AYAcA4AcA8AcB4AcB+Af/wDdj/Af/4D/n/Af/8D/n/AcAcB/A4AcAOA+A4AcAOAcAcAcAOAAAcAcAAAAAcAcAAAAAeAf/AAAAOAf/AAAAPAf/ADAAHgA4AHgADwA4AHAADwA4APAAB8AAA+AAA+AAB8AAAfgAH4AAAH8A/gAAAD///AAAAA//8AAAAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==") + } + }, + show : function() { + var self = this; + // Set timeout to align to the next minute + self.interval = setTimeout(function timerTimeout() { + self.emit("redraw"); + // Continue updating every minute + self.interval = setInterval(function intervalCallback() { + self.emit("redraw"); + }, 60000); + }, 60000 - (Date.now() % 60000)); + }, + hide : function() { + if (this.interval) { + clearInterval(this.interval); + this.interval = null; + } + }, + } + }) }; -})(); +}) diff --git a/apps/coin_info/metadata.json b/apps/coin_info/metadata.json index 7d5204e89..a0c45112e 100644 --- a/apps/coin_info/metadata.json +++ b/apps/coin_info/metadata.json @@ -1,7 +1,7 @@ { "id": "coin_info", "name": "Crypto-Coins Info", "shortName":"Coins Info", - "version": "0.03.16", + "version": "0.03.17", "description": "Crypto-Coins Infos with the help of the Coinmarketcap API", "icon": "app.png", "tags": "clkinfo",