aboutsummaryrefslogtreecommitdiffstats
path: root/device.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'device.cpp')
-rw-r--r--device.cpp35
1 files changed, 29 insertions, 6 deletions
diff --git a/device.cpp b/device.cpp
index fd1a987..0ac6b3f 100644
--- a/device.cpp
+++ b/device.cpp
@@ -18,17 +18,23 @@
static const char* MENU_ITEMS[] = {
"Reboot system now",
+#ifdef DOWNLOAD_MODE
+ "Reboot to download mode",
+#else
"Reboot to bootloader",
- "Apply update from ADB",
- "Apply update from SD card",
+#endif
+ "Apply update",
"Wipe data/factory reset",
"Wipe cache partition",
+ "Wipe media",
"Mount /system",
"View recovery logs",
"Power off",
NULL
};
+extern int ui_root_menu;
+
const char* const* Device::GetMenuItems() {
return MENU_ITEMS;
}
@@ -37,10 +43,10 @@ Device::BuiltinAction Device::InvokeMenuItem(int menu_position) {
switch (menu_position) {
case 0: return REBOOT;
case 1: return REBOOT_BOOTLOADER;
- case 2: return APPLY_ADB_SIDELOAD;
- case 3: return APPLY_SDCARD;
- case 4: return WIPE_DATA;
- case 5: return WIPE_CACHE;
+ case 2: return APPLY_UPDATE;
+ case 3: return WIPE_DATA;
+ case 4: return WIPE_CACHE;
+ case 5: return WIPE_MEDIA;
case 6: return MOUNT_SYSTEM;
case 7: return VIEW_RECOVERY_LOGS;
case 8: return SHUTDOWN;
@@ -53,19 +59,36 @@ int Device::HandleMenuKey(int key, int visible) {
return kNoAction;
}
+ if (key & KEY_FLAG_ABS) {
+ return key;
+ }
+
switch (key) {
+ case KEY_RIGHTSHIFT:
case KEY_DOWN:
case KEY_VOLUMEDOWN:
+ case KEY_MENU:
return kHighlightDown;
+ case KEY_LEFTSHIFT:
case KEY_UP:
case KEY_VOLUMEUP:
+ case KEY_SEARCH:
return kHighlightUp;
case KEY_ENTER:
case KEY_POWER:
+ case BTN_MOUSE:
+ case KEY_HOME:
+ case KEY_HOMEPAGE:
+ case KEY_SEND:
return kInvokeItem;
+ case KEY_BACKSPACE:
+ case KEY_BACK:
+ if (!ui_root_menu)
+ return kGoBack;
+
default:
// If you have all of the above buttons, any other buttons
// are ignored. Otherwise, any button cycles the highlight.