From 6c8553dda8b7fb45adc9f48a294c130b7e283f40 Mon Sep 17 00:00:00 2001 From: Doug Zongker Date: Mon, 24 Sep 2012 10:40:47 -0700 Subject: display error state on OTA failure We need prompt_with_wait() to show either the ERROR or NO_COMMAND state as appropriate. Bug: 7221068 Change-Id: I191526cf12630d08b7a8250a2a81e724a4a5d972 --- recovery.cpp | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'recovery.cpp') diff --git a/recovery.cpp b/recovery.cpp index 3b5813876..5c1e3cd21 100644 --- a/recovery.cpp +++ b/recovery.cpp @@ -668,12 +668,22 @@ wipe_data(int confirm, Device* device) { } static void -prompt_and_wait(Device* device) { +prompt_and_wait(Device* device, int status) { const char* const* headers = prepend_title(device->GetMenuHeaders()); for (;;) { finish_recovery(NULL); - ui->SetBackground(RecoveryUI::NO_COMMAND); + switch (status) { + case INSTALL_SUCCESS: + case INSTALL_NONE: + ui->SetBackground(RecoveryUI::NO_COMMAND); + break; + + case INSTALL_ERROR: + case INSTALL_CORRUPT: + ui->SetBackground(RecoveryUI::ERROR); + break; + } ui->SetProgressType(RecoveryUI::EMPTY); int chosen_item = get_menu_selection(headers, device->GetMenuItems(), 0, 0, device); @@ -683,7 +693,6 @@ prompt_and_wait(Device* device) { // statement below. chosen_item = device->InvokeMenuItem(chosen_item); - int status; int wipe_cache; switch (chosen_item) { case Device::REBOOT: @@ -920,7 +929,7 @@ main(int argc, char **argv) { ui->SetBackground(RecoveryUI::ERROR); } if (status != INSTALL_SUCCESS || ui->IsTextVisible()) { - prompt_and_wait(device); + prompt_and_wait(device, status); } // Otherwise, get ready to boot the main system... -- cgit v1.2.3