From b3a59ff35c8bdfaa496ce07cc9ef4fc240e24d7a Mon Sep 17 00:00:00 2001 From: thyttan <6uuxstm66@mozmail.comā©> Date: Thu, 16 Mar 2023 18:39:46 +0100 Subject: [PATCH] Use substring of message as label when it's longer than fits the designated menu entry. Also add some semicolons. --- apps/alarm/ChangeLog | 1 + apps/alarm/app.js | 28 ++++++++++++++++++++-------- apps/alarm/metadata.json | 2 +- 3 files changed, 22 insertions(+), 9 deletions(-) diff --git a/apps/alarm/ChangeLog b/apps/alarm/ChangeLog index ab7db522c..5f068a6b3 100644 --- a/apps/alarm/ChangeLog +++ b/apps/alarm/ChangeLog @@ -42,3 +42,4 @@ When switching 'repeat' from 'Workdays', 'Weekends' to 'Custom' preset Custom menu with previous selection Display alarm label in delete prompt 0.39: Dated event repeat option +0.40: Use substring of message when it's longer than fits the designated menu entry. diff --git a/apps/alarm/app.js b/apps/alarm/app.js index f5758afb0..4deb5764b 100644 --- a/apps/alarm/app.js +++ b/apps/alarm/app.js @@ -3,7 +3,7 @@ Bangle.drawWidgets(); // 0 = Sunday (default), 1 = Monday const firstDayOfWeek = (require("Storage").readJSON("setting.json", true) || {}).firstDayOfWeek || 0; -const WORKDAYS = 62 +const WORKDAYS = 62; const WEEKEND = firstDayOfWeek ? 192 : 65; const EVERY_DAY = firstDayOfWeek ? 254 : 127; const INTERVALS = ["day", "week", "month", "year"]; @@ -50,6 +50,12 @@ function getLabel(e) { ) + (e.msg ? ` ${e.msg}` : ""); } +function trimLabel(label, maxLength) { + return (label.length > maxLength + ? label.substring(0,maxLength-3) + "..." + : label.substring(0,maxLength)); +} + function showMainMenu() { const menu = { "": { "title": /*LANG*/"Alarms & Timers" }, @@ -58,7 +64,7 @@ function showMainMenu() { }; alarms.forEach((e, index) => { - menu[getLabel(e)] = { + menu[trimLabel(getLabel(e),40)] = { value: e.on ? (e.timer ? iconTimerOn : iconAlarmOn) : (e.timer ? iconTimerOff : iconAlarmOff), onchange: () => setTimeout(e.timer ? showEditTimerMenu : showEditAlarmMenu, 10, e, index) }; @@ -139,6 +145,9 @@ function showEditAlarmMenu(selectedAlarm, alarmIndex, withDate) { }, /*LANG*/"Message": { value: alarm.msg, + format: v => (v.length > 7 + ? (v.substring(0,6)+"...") + : v.substring(0,7)), onchange: () => { setTimeout(() => { keyboard.input({text:alarm.msg}).then(result => { @@ -238,7 +247,7 @@ function decodeRepeat(alarm) { .map((day, index) => alarm.dow & (1 << (index + firstDayOfWeek)) ? day : "_") .join("") .toLowerCase()) - : /*LANG*/"Once" + : /*LANG*/"Once"; } function showEditRepeatMenu(repeat, day, dowChangeCallback) { @@ -310,7 +319,7 @@ function showCustomDaysMenu(dow, dowChangeCallback, originalRepeat, originalDow) // If the user unchecks all the days then we assume repeat = once // and we force the dow to every day. var repeat = dow > 0; - dowChangeCallback(repeat, repeat ? dow : EVERY_DAY) + dowChangeCallback(repeat, repeat ? dow : EVERY_DAY); } }; @@ -321,7 +330,7 @@ function showCustomDaysMenu(dow, dowChangeCallback, originalRepeat, originalDow) }; }); - menu[/*LANG*/"Cancel"] = () => setTimeout(showEditRepeatMenu, 10, originalRepeat, originalDow, dowChangeCallback) + menu[/*LANG*/"Cancel"] = () => setTimeout(showEditRepeatMenu, 10, originalRepeat, originalDow, dowChangeCallback); E.showMenu(menu); } @@ -370,6 +379,9 @@ function showEditTimerMenu(selectedTimer, timerIndex) { }, /*LANG*/"Message": { value: timer.msg, + format: v => (v.length > 7 + ? (v.substring(0,6)+"...") + : v.substring(0,7)), onchange: () => { setTimeout(() => { keyboard.input({text:timer.msg}).then(result => { @@ -411,7 +423,7 @@ function showEditTimerMenu(selectedTimer, timerIndex) { showMainMenu(); } else { timer.timer = require("time_utils").encodeTime(time); - setTimeout(showEditTimerMenu, 10, timer, timerIndex) + setTimeout(showEditTimerMenu, 10, timer, timerIndex); } }); }; @@ -458,9 +470,9 @@ function enableAll(on) { alarm.on = on; if (on) { if (alarm.timer) { - prepareTimerForSave(alarm, i, require("time_utils").decodeTime(alarm.timer)) + prepareTimerForSave(alarm, i, require("time_utils").decodeTime(alarm.timer)); } else { - prepareAlarmForSave(alarm, i, require("time_utils").decodeTime(alarm.t)) + prepareAlarmForSave(alarm, i, require("time_utils").decodeTime(alarm.t)); } } }); diff --git a/apps/alarm/metadata.json b/apps/alarm/metadata.json index 8522b07c0..471b181c5 100644 --- a/apps/alarm/metadata.json +++ b/apps/alarm/metadata.json @@ -2,7 +2,7 @@ "id": "alarm", "name": "Alarms & Timers", "shortName": "Alarms", - "version": "0.39", + "version": "0.40", "description": "Set alarms and timers on your Bangle", "icon": "app.png", "tags": "tool,alarm",