aboutsummaryrefslogtreecommitdiffstats
path: root/screen_ui.h
diff options
context:
space:
mode:
authorDoug Zongker <dougz@google.com>2013-11-25 13:53:25 -0800
committerDoug Zongker <dougz@google.com>2013-11-26 15:46:57 -0800
commitc87bab101893e8322b49d7c8600e3367b20ab50a (patch)
tree7fb05cb6389b181776b4ae818e2c0883dd1a9a79 /screen_ui.h
parentc64e76c75088b951f61a7f7bacf8af6eccd2ccfa (diff)
downloadbootable_recovery-c87bab101893e8322b49d7c8600e3367b20ab50a.zip
bootable_recovery-c87bab101893e8322b49d7c8600e3367b20ab50a.tar.gz
bootable_recovery-c87bab101893e8322b49d7c8600e3367b20ab50a.tar.bz2
add the functions for multi-stage packages to updater
In order to support multi-stage recovery packages, we add the set_stage() and get_stage() functions, which store a short string somewhere it can be accessed across invocations of recovery. We also add reboot_now() which updater can invoke to immediately reboot the device, without doing normal recovery cleanup. (It can also choose whether to boot off the boot or recovery partition.) If the stage string is of the form "#/#", recovery's UI will be augmented with a simple indicator of what stage you're in, so it doesn't look like a reboot loop. Change-Id: I62f7ff0bc802b549c9bcf3cc154a6bad99f94603
Diffstat (limited to 'screen_ui.h')
-rw-r--r--screen_ui.h12
1 files changed, 9 insertions, 3 deletions
diff --git a/screen_ui.h b/screen_ui.h
index fc35d95..5c4366d 100644
--- a/screen_ui.h
+++ b/screen_ui.h
@@ -39,6 +39,8 @@ class ScreenRecoveryUI : public RecoveryUI {
void ShowProgress(float portion, float seconds);
void SetProgress(float fraction);
+ void SetStage(int current, int max);
+
// text log
void ShowText(bool visible);
bool IsTextVisible();
@@ -58,9 +60,6 @@ class ScreenRecoveryUI : public RecoveryUI {
enum UIElement { HEADER, MENU, MENU_SEL_BG, MENU_SEL_FG, LOG, TEXT_FILL };
virtual void SetColor(UIElement e);
- protected:
- int install_overlay_offset_x, install_overlay_offset_y;
-
private:
Icon currentIcon;
int installingFrame;
@@ -73,6 +72,8 @@ class ScreenRecoveryUI : public RecoveryUI {
gr_surface *progressBarIndeterminate;
gr_surface progressBarEmpty;
gr_surface progressBarFill;
+ gr_surface stageMarkerEmpty;
+ gr_surface stageMarkerFill;
ProgressType progressBarType;
@@ -102,8 +103,13 @@ class ScreenRecoveryUI : public RecoveryUI {
int animation_fps;
int indeterminate_frames;
int installing_frames;
+ protected:
+ int install_overlay_offset_x, install_overlay_offset_y;
+ private:
int overlay_offset_x, overlay_offset_y;
+ int stage, max_stage;
+
void draw_install_overlay_locked(int frame);
void draw_background_locked(Icon icon);
void draw_progress_locked();