diff options
Diffstat (limited to 'wear_ui.cpp')
-rw-r--r-- | wear_ui.cpp | 42 |
1 files changed, 14 insertions, 28 deletions
diff --git a/wear_ui.cpp b/wear_ui.cpp index 18c30d34a..e4806718d 100644 --- a/wear_ui.cpp +++ b/wear_ui.cpp @@ -18,6 +18,7 @@ #include <errno.h> #include <fcntl.h> +#include <pthread.h> #include <stdarg.h> #include <stdlib.h> #include <string.h> @@ -38,11 +39,6 @@ #include "common.h" #include "device.h" -// There's only (at most) one of these objects, and global callbacks -// (for pthread_create, and the input event system) need to find it, -// so use a global variable. -static WearRecoveryUI* self = NULL; - // Return the current time as a double (including fractions of a second). static double now() { struct timeval tv; @@ -51,18 +47,22 @@ static double now() { } WearRecoveryUI::WearRecoveryUI() - : progress_bar_y(259), outer_height(0), outer_width(0), menu_unusable_rows(0) { + : kProgressBarBaseline(RECOVERY_UI_PROGRESS_BAR_BASELINE), + kMenuUnusableRows(RECOVERY_UI_MENU_UNUSABLE_ROWS) { + // TODO: kMenuUnusableRows should be computed based on the lines in draw_screen_locked(). + + // TODO: The following three variables are likely not needed. The first two are detected + // automatically in ScreenRecoveryUI::LoadAnimation(), based on the actual files seen on device. intro_frames = 22; loop_frames = 60; - animation_fps = 30; - for (size_t i = 0; i < 5; i++) backgroundIcon[i] = NULL; + touch_screen_allowed_ = true; - self = this; + for (size_t i = 0; i < 5; i++) backgroundIcon[i] = NULL; } int WearRecoveryUI::GetProgressBaseline() const { - return progress_bar_y; + return kProgressBarBaseline; } // Draw background frame on the screen. Does not flip pages. @@ -113,8 +113,8 @@ void WearRecoveryUI::draw_screen_locked() { SetColor(TEXT_FILL); gr_fill(0, 0, gr_fb_width(), gr_fb_height()); - int y = outer_height; - int x = outer_width; + int y = kMarginHeight; + int x = kMarginWidth; if (show_menu) { std::string recovery_fingerprint = android::base::GetProperty("ro.bootimage.build.fingerprint", ""); @@ -170,7 +170,7 @@ void WearRecoveryUI::draw_screen_locked() { int ty; int row = (text_top_ + text_rows_ - 1) % text_rows_; size_t count = 0; - for (int ty = gr_fb_height() - char_height_ - outer_height; ty > y + 2 && count < text_rows_; + for (int ty = gr_fb_height() - char_height_ - kMarginHeight; ty > y + 2 && count < text_rows_; ty -= char_height_, ++count) { gr_text(gr_sys_font(), x + 4, ty, text_[row], 0); --row; @@ -185,20 +185,6 @@ void WearRecoveryUI::update_progress_locked() { gr_flip(); } -bool WearRecoveryUI::InitTextParams() { - if (!ScreenRecoveryUI::InitTextParams()) { - return false; - } - - text_cols_ = (gr_fb_width() - (outer_width * 2)) / char_width_; - - if (text_rows_ > kMaxRows) text_rows_ = kMaxRows; - if (text_cols_ > kMaxCols) text_cols_ = kMaxCols; - - visible_text_rows = (gr_fb_height() - (outer_height * 2)) / char_height_; - return true; -} - bool WearRecoveryUI::Init(const std::string& locale) { if (!ScreenRecoveryUI::Init(locale)) { return false; @@ -263,7 +249,7 @@ void WearRecoveryUI::StartMenu(const char* const* headers, const char* const* it show_menu = true; menu_sel = initial_selection; menu_start = 0; - menu_end = visible_text_rows - 1 - menu_unusable_rows; + menu_end = text_rows_ - 1 - kMenuUnusableRows; if (menu_items <= menu_end) menu_end = menu_items; update_screen_locked(); } |