recovery: ui: Support hardware virtual keys
* Also swipe left -> KEY_BACK
Change-Id: I6bd8054485d680df35abb86cb79f1dda683e4459
diff --git a/recovery.cpp b/recovery.cpp
index 5fc673e..9cf81e8 100644
--- a/recovery.cpp
+++ b/recovery.cpp
@@ -424,8 +424,10 @@
if (chosen_item == static_cast<size_t>(RecoveryUI::KeyError::INTERRUPTED)) {
break;
}
- if (entries[chosen_item] == "Back") break;
-
+ if (chosen_item == Device::kGoHome || chosen_item == Device::kGoBack ||
+ chosen_item == entries.size() - 1) {
+ break;
+ }
ui->ShowFile(entries[chosen_item]);
}
}
@@ -498,6 +500,11 @@
if (chosen_item == static_cast<size_t>(RecoveryUI::KeyError::INTERRUPTED)) {
return Device::KEY_INTERRUPTED;
}
+ // We are already in the main menu
+ if (chosen_item == Device::kGoBack || chosen_item == Device::kGoHome) {
+ continue;
+ }
+
// Device-specific code may take some action here. It may return one of the core actions
// handled in the switch statement below.
Device::BuiltinAction chosen_action =