diff --git a/apps/setting/ChangeLog b/apps/setting/ChangeLog index 3be7db96a..27aa5c90c 100644 --- a/apps/setting/ChangeLog +++ b/apps/setting/ChangeLog @@ -82,3 +82,4 @@ of 'Select Clock' 0.71: Minor code improvements 0.72: Add setting for configuring BLE privacy 0.73: Fix `const` bug / work with fastload +0.74: Add extra layer of checks before allowing a factory reset (fix #3476) \ No newline at end of file diff --git a/apps/setting/metadata.json b/apps/setting/metadata.json index 44774dc08..67ca847d9 100644 --- a/apps/setting/metadata.json +++ b/apps/setting/metadata.json @@ -1,7 +1,7 @@ { "id": "setting", "name": "Settings", - "version": "0.73", + "version": "0.74", "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 b348e00d5..d8ecefd92 100644 --- a/apps/setting/settings.js +++ b/apps/setting/settings.js @@ -702,14 +702,24 @@ function showUtilMenu() { } }); }; - if (Bangle.factoryReset) { menu[/*LANG*/'Factory Reset'] = ()=>{ - E.showPrompt(/*LANG*/'This will remove everything!',{title:/*LANG*/"Factory Reset"}).then((v) => { + E.showPrompt(/*LANG*/'This will remove everything!',{title:/*LANG*/"Factory Reset",back:showUtilMenu}).then((v) => { if (v) { - E.showMessage(); - Terminal.setConsole(); - Bangle.factoryReset(); + var n = ((Math.random()*4)&3) + 1; + E.showPrompt(/*LANG*/"To confirm, please press "+n,{ + title:/*LANG*/"Factory Reset", + buttons : {"1":1,"2":2,"3":3,"4":4}, + back:showUtilMenu + }).then(function(v) { + if (v==n) { + E.showMessage(); + Terminal.setConsole(); + Bangle.factoryReset(); + } else { + showUtilMenu(); + } + }); } else showUtilMenu(); }); }