Merge "recovery: Add ability to set title lines"
This commit is contained in:
@@ -1063,6 +1063,11 @@ Device::BuiltinAction start_recovery(Device* device, const std::vector<std::stri
|
|||||||
ui->SetStage(st_cur, st_max);
|
ui->SetStage(st_cur, st_max);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::vector<std::string> title_lines =
|
||||||
|
android::base::Split(android::base::GetProperty("ro.bootimage.build.fingerprint", ""), ":");
|
||||||
|
title_lines.insert(std::begin(title_lines), "Android Recovery");
|
||||||
|
ui->SetTitle(title_lines);
|
||||||
|
|
||||||
device->StartRecovery();
|
device->StartRecovery();
|
||||||
|
|
||||||
printf("Command:");
|
printf("Command:");
|
||||||
|
|||||||
+7
-5
@@ -496,6 +496,10 @@ int ScreenRecoveryUI::DrawWrappedTextLines(int x, int y,
|
|||||||
return offset;
|
return offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ScreenRecoveryUI::SetTitle(const std::vector<std::string>& lines) {
|
||||||
|
title_lines_ = lines;
|
||||||
|
}
|
||||||
|
|
||||||
// Redraws everything on the screen. Does not flip pages. Should only be called with updateMutex
|
// Redraws everything on the screen. Does not flip pages. Should only be called with updateMutex
|
||||||
// locked.
|
// locked.
|
||||||
void ScreenRecoveryUI::draw_screen_locked() {
|
void ScreenRecoveryUI::draw_screen_locked() {
|
||||||
@@ -529,11 +533,9 @@ void ScreenRecoveryUI::draw_menu_and_text_buffer_locked(
|
|||||||
int x = kMarginWidth + kMenuIndent;
|
int x = kMarginWidth + kMenuIndent;
|
||||||
|
|
||||||
SetColor(INFO);
|
SetColor(INFO);
|
||||||
y += DrawTextLine(x, y, "Android Recovery", true);
|
|
||||||
std::string recovery_fingerprint =
|
for (size_t i = 0; i < title_lines_.size(); i++) {
|
||||||
android::base::GetProperty("ro.bootimage.build.fingerprint", "");
|
y += DrawTextLine(x, y, title_lines_[i], i == 0);
|
||||||
for (const auto& chunk : android::base::Split(recovery_fingerprint, ":")) {
|
|
||||||
y += DrawTextLine(x, y, chunk, false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
y += DrawTextLines(x, y, help_message);
|
y += DrawTextLines(x, y, help_message);
|
||||||
|
|||||||
@@ -141,6 +141,7 @@ class ScreenRecoveryUI : public RecoveryUI {
|
|||||||
size_t ShowMenu(const std::vector<std::string>& headers, const std::vector<std::string>& items,
|
size_t ShowMenu(const std::vector<std::string>& headers, const std::vector<std::string>& items,
|
||||||
size_t initial_selection, bool menu_only,
|
size_t initial_selection, bool menu_only,
|
||||||
const std::function<int(int, bool)>& key_handler) override;
|
const std::function<int(int, bool)>& key_handler) override;
|
||||||
|
void SetTitle(const std::vector<std::string>& lines) override;
|
||||||
|
|
||||||
void KeyLongPress(int) override;
|
void KeyLongPress(int) override;
|
||||||
|
|
||||||
@@ -266,6 +267,8 @@ class ScreenRecoveryUI : public RecoveryUI {
|
|||||||
bool show_text;
|
bool show_text;
|
||||||
bool show_text_ever; // has show_text ever been true?
|
bool show_text_ever; // has show_text ever been true?
|
||||||
|
|
||||||
|
std::vector<std::string> title_lines_;
|
||||||
|
|
||||||
bool scrollable_menu_;
|
bool scrollable_menu_;
|
||||||
std::unique_ptr<Menu> menu_;
|
std::unique_ptr<Menu> menu_;
|
||||||
|
|
||||||
|
|||||||
@@ -67,6 +67,8 @@ class StubRecoveryUI : public RecoveryUI {
|
|||||||
const std::function<int(int, bool)>& /* key_handler */) override {
|
const std::function<int(int, bool)>& /* key_handler */) override {
|
||||||
return initial_selection;
|
return initial_selection;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SetTitle(const std::vector<std::string>& /* lines */) override {}
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // RECOVERY_STUB_UI_H
|
#endif // RECOVERY_STUB_UI_H
|
||||||
|
|||||||
@@ -134,6 +134,8 @@ class RecoveryUI {
|
|||||||
|
|
||||||
// --- menu display ---
|
// --- menu display ---
|
||||||
|
|
||||||
|
virtual void SetTitle(const std::vector<std::string>& lines) = 0;
|
||||||
|
|
||||||
// Displays a menu with the given 'headers' and 'items'. The supplied 'key_handler' callback,
|
// Displays a menu with the given 'headers' and 'items'. The supplied 'key_handler' callback,
|
||||||
// which is typically bound to Device::HandleMenuKey(), should return the expected action for the
|
// which is typically bound to Device::HandleMenuKey(), should return the expected action for the
|
||||||
// given key code and menu visibility (e.g. to move the cursor or to select an item). Caller sets
|
// given key code and menu visibility (e.g. to move the cursor or to select an item). Caller sets
|
||||||
|
|||||||
Reference in New Issue
Block a user