1
0
Fork 0

Merge remote-tracking branch 'upstream/master'

master
Erik Andresen 2022-04-28 16:23:05 +02:00
commit 35631a9266
20 changed files with 166 additions and 21 deletions

View File

@ -1 +1 @@
theme: jekyll-theme-minimal
theme: jekyll-theme-slate

View File

@ -24,3 +24,4 @@
0.23: Fix regression with Days of Week (#1735)
0.24: Automatically save the alarm/timer when the user returns to the main menu using the back arrow
Add "Enable All", "Disable All" and "Remove All" actions
0.25: Fix redrawing selected Alarm/Timer entry inside edit submenu

View File

@ -47,8 +47,7 @@ function showMainMenu() {
menu[txt] = {
value : "\0"+atob(alarm.on?"EhKBAH//v/////////////5//x//j//H+eP+Mf/A//h//z//////////3//g":"EhKBAH//v//8AA8AA8AA8AA8AA8AA8AA8AA8AA8AA8AA8AA8AA8AA///3//g"),
onchange : function() {
if (alarm.timer) editTimer(idx, alarm);
else editAlarm(idx, alarm);
setTimeout(alarm.timer ? editTimer : editAlarm, 10, idx, alarm);
}
};
});
@ -116,7 +115,7 @@ function editAlarm(alarmIndex, alarm) {
},
/*LANG*/'Days': {
value: "SMTWTFS".split("").map((d,n)=>a.dow&(1<<n)?d:".").join(""),
onchange: () => editDOW(a.dow, d => {
onchange: () => setTimeout(editDOW, 100, a.dow, d => {
a.dow = d;
a.t = require("sched").encodeTime(t);
editAlarm(alarmIndex, a);

View File

@ -2,7 +2,7 @@
"id": "alarm",
"name": "Alarms & Timers",
"shortName": "Alarms",
"version": "0.24",
"version": "0.25",
"description": "Set alarms and timers on your Bangle",
"icon": "app.png",
"tags": "tool,alarm,widget",

View File

@ -0,0 +1 @@
require("heatshrink").decompress(atob("mEwwcCkGSpEgwQCChICFkgCBgkQoMEyFJAoICByVBkgLBkkSpIaDEwWShEkFgcIBAIdCEYQCBAoQdBAoYsBC4Q7BpICBEYQCDF4Q7CEYYCCEYUSKYYUDyRlCJQQIBNYYvBMoQCBkgjBFgxxCL4REDFgaPEHYgmCIgosCNYZEEDoZ0CNwY7CIIYgDEYtB9+e/dg/4AB2EJkYEB/mC/fn33Ivvz598v4MB/0BgoRCyVHvmW7Mg2EA8uD/EAh/IkGP/8AgVLtkA5El+FJvoRBgmf4Mkh0HkEQo9kyEfkeQofsgf4kmPCIP+h/gwULkkCncEu/ZsmRI4cEv0H8ESpdgEwMjwXI9kTCIOANYkSEYOCncF+UAjuR/ED+FBg/3/f8RgNgiVPkYdBtkT/Egv0Il+AoMfI4PgyX7vkW799F4Nl//4//woH/+0Ztvx7Fs335sk//5EB/IRBhACB77CBpEkgEIgGQoDRBgEggVBgDdBgGAgPv317ku+5cj334t+OSoI+B8gCBtlx7dkuFfgvx4N8yPbvgOB8ACBR4MA9mf4Egz3IgeChEDwDOBx/AjuCoN8y/JgkX4ME2FBjuQn65BgMtwELkGOEYOO4Mh2EJh+Sh/jOIMd+3fskRcwMTEwOWo98gCSBwFJkm2pfgx3II4PBk++/aABhEfwEInpZBvkX7MkJQMl2FHfANBjgCBlmQhHsgwjB33IkeyBAOChMcEwM9+/ZsBHBboMJtv2hd9+FHZANBVoM7kGC/fv2FJ9+GEYOAh//+UIaIMBkkQpEAHwIIBoMgiFJBANJEAMIkGShEkwQIChIIBhIIBhIaCkmQpIFCgmSEwYpDEYwCCpAICBwUEiQdFEwIICyAIDHwQ7CEYYpCEYWSpA7FDocSEwojBCgIaDIgYCBNwR0BNYYjFEwZTDLgQjGOgYvBEYQ7ENYlJFgQCCDohuGTYpBFkhoCSoQICEYIA="))

115
apps/bradbury/app.js Normal file

File diff suppressed because one or more lines are too long

BIN
apps/bradbury/app.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

View File

@ -0,0 +1,14 @@
{ "id": "bradbury",
"name": "Bradbury Watch",
"shortName":"Bradbury",
"icon": "app.png",
"screenshots": [{"url":"screenshot.png"}],
"version":"0.01",
"description": "A watch face based on the classic Seiko model worn by one of my favorite authors. I didn't follow the original lcd layout exactly, opting for larger font for more easily readable time, and adding date, battery level, and step count; read from the device. Tapping the screen toggles visibility of widgets.",
"type": "clock",
"supports":["BANGLEJS2"],
"storage": [
{"name":"bradbury.app.js","url":"app.js"},
{"name":"bradbury.img","url":"app-icon.js","evaluate":true}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

View File

@ -6,3 +6,4 @@
0.24: Added previews to the customizer.
0.25: Fixed a bug that would let widgets change the color of the clock.
0.26: Time formatted to locale
0.27: Fixed the timing code, which sometimes did not update for one minute

View File

@ -7,6 +7,13 @@ if (settings.fontIndex==undefined) {
require('Storage').writeJSON("myapp.json", settings);
}
function queueDraw() {
setTimeout(function() {
draw();
queueDraw();
}, 60000 - (Date.now() % 60000));
}
function draw() {
var date = new Date();
// Draw day of the week
@ -24,7 +31,5 @@ Bangle.setUI("clock");
g.clear();
Bangle.loadWidgets();
Bangle.drawWidgets();
queueDraw();
draw();
setTimeout(function() {
setInterval(draw,60000);
}, 60000 - Date.now() % 60000);

View File

@ -1,7 +1,7 @@
{ "id": "contourclock",
"name": "Contour Clock",
"shortName" : "Contour Clock",
"version":"0.26",
"version":"0.27",
"icon": "app.png",
"description": "A Minimalist clockface with large Digits. Now with more fonts!",
"screenshots" : [{"url":"cc-screenshot-1.png"},{"url":"cc-screenshot-2.png"}],

View File

@ -48,3 +48,4 @@
0.33: Timeout from the message list screen if the message being displayed is removed and there is a timer going
0.34: Don't buzz for 'map' update messages
0.35: Reset graphics colors before rendering a message (possibly fix #1752)
0.36: Ensure a new message plus an almost immediate deletion of that message doesn't load the messages app (fix #1362)

View File

@ -43,6 +43,9 @@ exports.pushMessage = function(event) {
// if we've removed the last new message, hide the widget
if (event.t=="remove" && !messages.some(m=>m.new)) {
if (global.WIDGETS && WIDGETS.messages) WIDGETS.messages.hide();
// if no new messages now, make sure we don't load the messages app
if (exports.messageTimeout && !messages.some(m=>m.new))
clearTimeout(exports.messageTimeout);
}
// ok, saved now
if (event.id=="music" && Bangle.CLOCK && messages[mIdx].new && openMusic()) {

View File

@ -1,7 +1,7 @@
{
"id": "messages",
"name": "Messages",
"version": "0.35",
"version": "0.36",
"description": "App to display notifications from iOS and Gadgetbridge/Android",
"icon": "app.png",
"type": "app",

View File

@ -45,3 +45,4 @@
0.40: Moved off into Utils, put System after Apps
0.41: Stop users disabling all wake-up methods and locking themselves out (fix #1272)
0.42: Fix theme customizer on new Bangle 2 firmware
0.43: Add some Bangle 1 colours to theme customizer

View File

@ -1,7 +1,7 @@
{
"id": "setting",
"name": "Settings",
"version": "0.42",
"version": "0.43",
"description": "A menu for setting up Bangle.js",
"icon": "settings.png",
"tags": "tool,system",

View File

@ -251,11 +251,15 @@ function showThemeMenu() {
}
upd(th);
}
const rgb = {
let rgb = {
black: "#000", white: "#fff",
red: "#f00", green: "#0f0", blue: "#00f",
cyan: "#0ff", magenta: "#f0f", yellow: "#ff0",
};
if (!BANGLEJS2) Object.assign(rgb, {
// these would cause dithering, which is not great for e.g. text
orange: "#ff7f00", purple: "#7f00ff", grey: "#7f7f7f",
});
let colors = [], names = [];
for(const c in rgb) {
names.push(c);

View File

@ -19,7 +19,7 @@
}
.tile.column.col-6.col-sm-12.col-xs-12.app-tile {
border: solid 1px #fafafa;
border: solid 1px #dadee4;
margin: 0;
min-height: 150px;
padding-top: 0.5rem;

View File

@ -138,15 +138,15 @@ function Layout(layout, options) {
}
// enough physical buttons
let btnHeight = Math.floor(Bangle.appRect.h / this.physBtns);
if (Bangle.btnWatch) Bangle.btnWatch.forEach(clearWatch);
Bangle.btnWatch = [];
if (Bangle.btnWatches) Bangle.btnWatches.forEach(clearWatch);
Bangle.btnWatches = [];
if (this.physBtns > 2 && buttons.length==1)
buttons.unshift({label:""}); // pad so if we have a button in the middle
while (this.physBtns > buttons.length)
buttons.push({label:""});
if (buttons[0]) Bangle.btnWatch.push(setWatch(pressHandler.bind(this,0), BTN1, {repeat:true,edge:-1}));
if (buttons[1]) Bangle.btnWatch.push(setWatch(pressHandler.bind(this,1), BTN2, {repeat:true,edge:-1}));
if (buttons[2]) Bangle.btnWatch.push(setWatch(pressHandler.bind(this,2), BTN3, {repeat:true,edge:-1}));
if (buttons[0]) Bangle.btnWatches.push(setWatch(pressHandler.bind(this,0), BTN1, {repeat:true,edge:-1}));
if (buttons[1]) Bangle.btnWatches.push(setWatch(pressHandler.bind(this,1), BTN2, {repeat:true,edge:-1}));
if (buttons[2]) Bangle.btnWatches.push(setWatch(pressHandler.bind(this,2), BTN3, {repeat:true,edge:-1}));
this._l.width = g.getWidth()-8; // text width
this._l = {type:"h", filly:1, c: [
this._l,
@ -190,9 +190,9 @@ function Layout(layout, options) {
}
Layout.prototype.remove = function (l) {
if (Bangle.btnWatch) {
Bangle.btnWatch.forEach(clearWatch);
delete Bangle.btnWatch;
if (Bangle.btnWatches) {
Bangle.btnWatches.forEach(clearWatch);
delete Bangle.btnWatches;
}
if (Bangle.touchHandler) {
Bangle.removeListener("touch",Bangle.touchHandler);