Merge "Show wipe data confirmation text in recovery mode"
This commit is contained in:
+8
-2
@@ -369,7 +369,14 @@ static bool yes_no(Device* device, const char* question1, const char* question2)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static bool ask_to_wipe_data(Device* device) {
|
static bool ask_to_wipe_data(Device* device) {
|
||||||
return yes_no(device, "Wipe all user data?", " THIS CAN NOT BE UNDONE!");
|
std::vector<std::string> headers{ "Wipe all user data?", " THIS CAN NOT BE UNDONE!" };
|
||||||
|
std::vector<std::string> items{ " Cancel", " Factory data reset" };
|
||||||
|
|
||||||
|
size_t chosen_item = ui->ShowPromptWipeDataConfirmationMenu(
|
||||||
|
headers, items,
|
||||||
|
std::bind(&Device::HandleMenuKey, device, std::placeholders::_1, std::placeholders::_2));
|
||||||
|
|
||||||
|
return (chosen_item == 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Return true on success.
|
// Return true on success.
|
||||||
@@ -420,7 +427,6 @@ static InstallResult prompt_and_wipe_data(Device* device) {
|
|||||||
return INSTALL_SUCCESS; // Just reboot, no wipe; not a failure, user asked for it
|
return INSTALL_SUCCESS; // Just reboot, no wipe; not a failure, user asked for it
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO(xunchang) localize the confirmation texts also.
|
|
||||||
if (ask_to_wipe_data(device)) {
|
if (ask_to_wipe_data(device)) {
|
||||||
if (wipe_data(device)) {
|
if (wipe_data(device)) {
|
||||||
return INSTALL_SUCCESS;
|
return INSTALL_SUCCESS;
|
||||||
|
|||||||
+20
-2
@@ -844,9 +844,13 @@ bool ScreenRecoveryUI::InitTextParams() {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO(xunchang) load localized text icons for the menu. (Init for screenRecoveryUI but
|
|
||||||
// not wearRecoveryUI).
|
|
||||||
bool ScreenRecoveryUI::LoadWipeDataMenuText() {
|
bool ScreenRecoveryUI::LoadWipeDataMenuText() {
|
||||||
|
// Ignores the errors since the member variables will stay as nullptr.
|
||||||
|
cancel_wipe_data_text_ = LoadLocalizedBitmap("cancel_wipe_data_text");
|
||||||
|
factory_data_reset_text_ = LoadLocalizedBitmap("factory_data_reset_text");
|
||||||
|
try_again_text_ = LoadLocalizedBitmap("try_again_text");
|
||||||
|
wipe_data_confirmation_text_ = LoadLocalizedBitmap("wipe_data_confirmation_text");
|
||||||
|
wipe_data_menu_header_text_ = LoadLocalizedBitmap("wipe_data_menu_header_text");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1250,6 +1254,20 @@ size_t ScreenRecoveryUI::ShowPromptWipeDataMenu(const std::vector<std::string>&
|
|||||||
return ShowMenu(std::move(wipe_data_menu), true, key_handler);
|
return ShowMenu(std::move(wipe_data_menu), true, key_handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
size_t ScreenRecoveryUI::ShowPromptWipeDataConfirmationMenu(
|
||||||
|
const std::vector<std::string>& backup_headers, const std::vector<std::string>& backup_items,
|
||||||
|
const std::function<int(int, bool)>& key_handler) {
|
||||||
|
auto confirmation_menu =
|
||||||
|
CreateMenu(wipe_data_confirmation_text_.get(),
|
||||||
|
{ cancel_wipe_data_text_.get(), factory_data_reset_text_.get() }, backup_headers,
|
||||||
|
backup_items, 0);
|
||||||
|
if (confirmation_menu == nullptr) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return ShowMenu(std::move(confirmation_menu), true, key_handler);
|
||||||
|
}
|
||||||
|
|
||||||
bool ScreenRecoveryUI::IsTextVisible() {
|
bool ScreenRecoveryUI::IsTextVisible() {
|
||||||
std::lock_guard<std::mutex> lg(updateMutex);
|
std::lock_guard<std::mutex> lg(updateMutex);
|
||||||
int visible = show_text;
|
int visible = show_text;
|
||||||
|
|||||||
+9
-2
@@ -240,6 +240,11 @@ class ScreenRecoveryUI : public RecoveryUI, public DrawInterface {
|
|||||||
const std::vector<std::string>& backup_items,
|
const std::vector<std::string>& backup_items,
|
||||||
const std::function<int(int, bool)>& key_handler) override;
|
const std::function<int(int, bool)>& key_handler) override;
|
||||||
|
|
||||||
|
// Displays the localized wipe data confirmation menu.
|
||||||
|
size_t ShowPromptWipeDataConfirmationMenu(
|
||||||
|
const std::vector<std::string>& backup_headers, const std::vector<std::string>& backup_items,
|
||||||
|
const std::function<int(int, bool)>& key_handler) override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
static constexpr int kMenuIndent = 4;
|
static constexpr int kMenuIndent = 4;
|
||||||
|
|
||||||
@@ -334,9 +339,11 @@ class ScreenRecoveryUI : public RecoveryUI, public DrawInterface {
|
|||||||
std::unique_ptr<GRSurface> no_command_text_;
|
std::unique_ptr<GRSurface> no_command_text_;
|
||||||
|
|
||||||
// Localized text images for the wipe data menu.
|
// Localized text images for the wipe data menu.
|
||||||
std::unique_ptr<GRSurface> wipe_data_menu_header_text_;
|
std::unique_ptr<GRSurface> cancel_wipe_data_text_;
|
||||||
std::unique_ptr<GRSurface> try_again_text_;
|
|
||||||
std::unique_ptr<GRSurface> factory_data_reset_text_;
|
std::unique_ptr<GRSurface> factory_data_reset_text_;
|
||||||
|
std::unique_ptr<GRSurface> try_again_text_;
|
||||||
|
std::unique_ptr<GRSurface> wipe_data_confirmation_text_;
|
||||||
|
std::unique_ptr<GRSurface> wipe_data_menu_header_text_;
|
||||||
|
|
||||||
// current_icon_ points to one of the frames in intro_frames_ or loop_frames_, indexed by
|
// current_icon_ points to one of the frames in intro_frames_ or loop_frames_, indexed by
|
||||||
// current_frame_, or error_icon_.
|
// current_frame_, or error_icon_.
|
||||||
|
|||||||
@@ -74,6 +74,13 @@ class StubRecoveryUI : public RecoveryUI {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
size_t ShowPromptWipeDataConfirmationMenu(
|
||||||
|
const std::vector<std::string>& /* backup_headers */,
|
||||||
|
const std::vector<std::string>& /* backup_items */,
|
||||||
|
const std::function<int(int, bool)>& /* key_handle */) override {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
void SetTitle(const std::vector<std::string>& /* lines */) override {}
|
void SetTitle(const std::vector<std::string>& /* lines */) override {}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -169,6 +169,13 @@ class RecoveryUI {
|
|||||||
const std::vector<std::string>& backup_items,
|
const std::vector<std::string>& backup_items,
|
||||||
const std::function<int(int, bool)>& key_handler) = 0;
|
const std::function<int(int, bool)>& key_handler) = 0;
|
||||||
|
|
||||||
|
// Displays the localized wipe data confirmation menu with pre-generated images. Falls back to
|
||||||
|
// the text strings upon failures. The initial selection is the 0th item, which returns to the
|
||||||
|
// upper level menu.
|
||||||
|
virtual size_t ShowPromptWipeDataConfirmationMenu(
|
||||||
|
const std::vector<std::string>& backup_headers, const std::vector<std::string>& backup_items,
|
||||||
|
const std::function<int(int, bool)>& key_handler) = 0;
|
||||||
|
|
||||||
// Resets the key interrupt status.
|
// Resets the key interrupt status.
|
||||||
void ResetKeyInterruptStatus() {
|
void ResetKeyInterruptStatus() {
|
||||||
key_interrupted_ = false;
|
key_interrupted_ = false;
|
||||||
|
|||||||
Reference in New Issue
Block a user