diff options
author | Doug Zongker <dougz@google.com> | 2012-09-04 14:28:25 -0700 |
---|---|---|
committer | Doug Zongker <dougz@google.com> | 2012-09-04 14:28:25 -0700 |
commit | 52eeea4fa59c15ecb09c32b8e05653f4e55f5188 (patch) | |
tree | d26dc6dc861c69c8f80ae9aac9a13b14bee3381b /screen_ui.cpp | |
parent | f4c6ec84c24611856374353bdef87baca5694cc0 (diff) | |
download | bootable_recovery-52eeea4fa59c15ecb09c32b8e05653f4e55f5188.zip bootable_recovery-52eeea4fa59c15ecb09c32b8e05653f4e55f5188.tar.gz bootable_recovery-52eeea4fa59c15ecb09c32b8e05653f4e55f5188.tar.bz2 |
minor recovery fixes
- protect against missing/malformed bitmaps: fail to display them but
don't crash.
- don't draw animation overlays until the overlay offset is computed.
- logging cleanup
Change-Id: Ieb1c155cfbb11e643000bdb5d1a57900c8757739
Diffstat (limited to 'screen_ui.cpp')
-rw-r--r-- | screen_ui.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/screen_ui.cpp b/screen_ui.cpp index 1f2471a..0b34375 100644 --- a/screen_ui.cpp +++ b/screen_ui.cpp @@ -78,7 +78,9 @@ ScreenRecoveryUI::ScreenRecoveryUI() : indeterminate_frames(16), installing_frames(48), install_overlay_offset_x(65), - install_overlay_offset_y(106) { + install_overlay_offset_y(106), + overlay_offset_x(-1), + overlay_offset_y(-1) { pthread_mutex_init(&updateMutex, NULL); self = this; } @@ -89,7 +91,7 @@ ScreenRecoveryUI::ScreenRecoveryUI() : // animation. Does nothing if no overlay animation is defined. // Should only be called with updateMutex locked. void ScreenRecoveryUI::draw_install_overlay_locked(int frame) { - if (installationOverlay == NULL) return; + if (installationOverlay == NULL || overlay_offset_x < 0) return; gr_surface surface = installationOverlay[frame]; int iconWidth = gr_get_width(surface); int iconHeight = gr_get_height(surface); @@ -361,8 +363,6 @@ void ScreenRecoveryUI::Init() void ScreenRecoveryUI::SetBackground(Icon icon) { pthread_mutex_lock(&updateMutex); - currentIcon = icon; - update_screen_locked(); // Adjust the offset to account for the positioning of the // base image on the screen. @@ -374,6 +374,9 @@ void ScreenRecoveryUI::SetBackground(Icon icon) (gr_fb_height() - (gr_get_height(bg) + gr_get_height(text) + 40)) / 2; } + currentIcon = icon; + update_screen_locked(); + pthread_mutex_unlock(&updateMutex); } |