diff --git a/apps/setting/ChangeLog b/apps/setting/ChangeLog index eca2b7938..5a225b96d 100644 --- a/apps/setting/ChangeLog +++ b/apps/setting/ChangeLog @@ -50,3 +50,4 @@ UI improvements to Locale and Date & Time menu 0.45: Add calibrate battery option 0.46: Fix regression after making 'calibrate battery' only for Bangle.js 2 +0.47: Improve "Turn Off" user experience diff --git a/apps/setting/metadata.json b/apps/setting/metadata.json index 183290a85..ce4e5b337 100644 --- a/apps/setting/metadata.json +++ b/apps/setting/metadata.json @@ -1,7 +1,7 @@ { "id": "setting", "name": "Settings", - "version": "0.46", + "version": "0.47", "description": "A menu for setting up Bangle.js", "icon": "settings.png", "tags": "tool,system", diff --git a/apps/setting/settings.js b/apps/setting/settings.js index 150251e7d..359bc47a2 100644 --- a/apps/setting/settings.js +++ b/apps/setting/settings.js @@ -569,7 +569,25 @@ function showUtilMenu() { } else showUtilMenu(); }); }; - menu[/*LANG*/'Turn Off'] = ()=>{ if (Bangle.softOff) Bangle.softOff(); else Bangle.off() }; + menu[/*LANG*/"Turn Off"] = () => { + E.showPrompt(/*LANG*/"Are you sure? Alarms and timers won't fire", { + title:/*LANG*/"Turn Off" + }).then((confirmed) => { + if (confirmed) { + E.showMessage(/*LANG*/"See you\nlater!", /*LANG*/"Goodbye"); + setTimeout(() => { + // clear the screen so when the user will turn on the watch they'll see + // an empty screen instead of the latest displayed screen + E.showMessage(); + g.clear(true); + + Bangle.softOff ? Bangle.softOff() : Bangle.off(); + }, 2500); + } else { + showUtilMenu(); + } + }); + }; if (Bangle.factoryReset) { menu[/*LANG*/'Factory Reset'] = ()=>{