Merge pull request #3647 from bobrippling/feat/drained-menu-pos

drained: restore menu position
pull/3652/head
Rob Pilling 2024-11-08 08:47:25 +00:00 committed by GitHub
commit ff107da1b2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 21 additions and 4 deletions

View File

@ -58,6 +58,7 @@ var draw = function () {
}, 60000 - (date.getTime() % 60000)); }, 60000 - (date.getTime() % 60000));
}; };
var reload = function () { var reload = function () {
var scroller;
var showMenu = function () { var showMenu = function () {
var menu = { var menu = {
"Restore to full power": drainedRestore, "Restore to full power": drainedRestore,
@ -69,9 +70,12 @@ var reload = function () {
menu["Settings"] = function () { return load("setting.app.js"); }; menu["Settings"] = function () { return load("setting.app.js"); };
menu["Recovery"] = function () { return Bangle.showRecoveryMenu(); }; menu["Recovery"] = function () { return Bangle.showRecoveryMenu(); };
menu["Exit menu"] = reload; menu["Exit menu"] = reload;
if (scroller) {
menu[""] = { selected: scroller.scroll };
}
if (nextDraw) if (nextDraw)
clearTimeout(nextDraw); clearTimeout(nextDraw);
E.showMenu(menu); (scroller = E.showMenu(menu).scroller);
}; };
Bangle.setUI({ Bangle.setUI({
mode: "custom", mode: "custom",

View File

@ -78,8 +78,9 @@ const draw = () => {
}; };
const reload = () => { const reload = () => {
let scroller: MenuInstance["scroller"] | undefined;
const showMenu = () => { const showMenu = () => {
const menu: { [k: string]: () => void } = { const menu: Menu = {
"Restore to full power": drainedRestore, "Restore to full power": drainedRestore,
}; };
@ -92,8 +93,12 @@ const reload = () => {
menu["Recovery"] = () => Bangle.showRecoveryMenu(); menu["Recovery"] = () => Bangle.showRecoveryMenu();
menu["Exit menu"] = reload; menu["Exit menu"] = reload;
if(scroller){
menu[""] = { selected: scroller.scroll };
}
if(nextDraw) clearTimeout(nextDraw); if(nextDraw) clearTimeout(nextDraw);
E.showMenu(menu); ({ scroller } = E.showMenu(menu));
}; };
Bangle.setUI({ Bangle.setUI({

View File

@ -69,6 +69,14 @@ type MenuInstance = {
draw: () => void; draw: () => void;
move: (n: number) => void; move: (n: number) => void;
select: () => void; select: () => void;
scroller?: MenuScroller; // BangleJS 2
};
/**
* Menu scroller.
*/
type MenuScroller = {
scroll: number;
}; };
declare const BTN1: Pin; declare const BTN1: Pin;
@ -14828,4 +14836,4 @@ declare module "Storage" {
* @url http://www.espruino.com/Reference#l_Storage_open * @url http://www.espruino.com/Reference#l_Storage_open
*/ */
function open(name: string, mode: "r" | "w" | "a"): StorageFile; function open(name: string, mode: "r" | "w" | "a"): StorageFile;
} }