Create a new function to return the help message for menu

Then we can override this function in the device specific recovery ui;
and allow customizing the help message.

Bug: 137965958
Test: Check the menu on sailfish
Change-Id: I09f23166f4205c5edf6c62eb42c8ada0fa710b26
This commit is contained in:
Tianjie Xu 2019-07-23 13:23:29 -07:00
parent 7965a95adc
commit e5032219fe
4 changed files with 19 additions and 12 deletions

View file

@ -286,6 +286,9 @@ class ScreenRecoveryUI : public RecoveryUI, public DrawInterface {
// selected.
virtual int SelectMenu(int sel);
// Returns the help message displayed on top of the menu.
virtual std::vector<std::string> GetMenuHelpMessage() const;
virtual void draw_background_locked();
virtual void draw_foreground_locked();
virtual void draw_screen_locked();

View file

@ -118,7 +118,7 @@ class RecoveryUI {
// Returns true if you have the volume up/down and power trio typical of phones and tablets, false
// otherwise.
virtual bool HasThreeButtons();
virtual bool HasThreeButtons() const;
// Returns true if it has a power key.
virtual bool HasPowerKey() const;

View file

@ -673,6 +673,19 @@ void ScreenRecoveryUI::SetTitle(const std::vector<std::string>& lines) {
title_lines_ = lines;
}
std::vector<std::string> ScreenRecoveryUI::GetMenuHelpMessage() const {
// clang-format off
static std::vector<std::string> REGULAR_HELP{
"Use volume up/down and power.",
};
static std::vector<std::string> LONG_PRESS_HELP{
"Any button cycles highlight.",
"Long-press activates.",
};
// clang-format on
return HasThreeButtons() ? REGULAR_HELP : LONG_PRESS_HELP;
}
// Redraws everything on the screen. Does not flip pages. Should only be called with updateMutex
// locked.
void ScreenRecoveryUI::draw_screen_locked() {
@ -685,16 +698,7 @@ void ScreenRecoveryUI::draw_screen_locked() {
gr_color(0, 0, 0, 255);
gr_clear();
// clang-format off
static std::vector<std::string> REGULAR_HELP{
"Use volume up/down and power.",
};
static std::vector<std::string> LONG_PRESS_HELP{
"Any button cycles highlight.",
"Long-press activates.",
};
// clang-format on
draw_menu_and_text_buffer_locked(HasThreeButtons() ? REGULAR_HELP : LONG_PRESS_HELP);
draw_menu_and_text_buffer_locked(GetMenuHelpMessage());
}
// Draws the menu and text buffer on the screen. Should only be called with updateMutex locked.

View file

@ -528,7 +528,7 @@ bool RecoveryUI::IsLongPress() {
return result;
}
bool RecoveryUI::HasThreeButtons() {
bool RecoveryUI::HasThreeButtons() const {
return has_power_key && has_up_key && has_down_key;
}