Merge "Add override specifier and member constness to RecoveryUI classes." am: d6fb1c6367 am: 2e20c11828
am: 57191920e8
Change-Id: I8320f696ca21b14564a3fa38937fdf090eeff4f7
This commit is contained in:
+7
-7
@@ -82,14 +82,14 @@ ScreenRecoveryUI::ScreenRecoveryUI()
|
|||||||
max_stage(-1),
|
max_stage(-1),
|
||||||
updateMutex(PTHREAD_MUTEX_INITIALIZER) {}
|
updateMutex(PTHREAD_MUTEX_INITIALIZER) {}
|
||||||
|
|
||||||
GRSurface* ScreenRecoveryUI::GetCurrentFrame() {
|
GRSurface* ScreenRecoveryUI::GetCurrentFrame() const {
|
||||||
if (currentIcon == INSTALLING_UPDATE || currentIcon == ERASING) {
|
if (currentIcon == INSTALLING_UPDATE || currentIcon == ERASING) {
|
||||||
return intro_done ? loopFrames[current_frame] : introFrames[current_frame];
|
return intro_done ? loopFrames[current_frame] : introFrames[current_frame];
|
||||||
}
|
}
|
||||||
return error_icon;
|
return error_icon;
|
||||||
}
|
}
|
||||||
|
|
||||||
GRSurface* ScreenRecoveryUI::GetCurrentText() {
|
GRSurface* ScreenRecoveryUI::GetCurrentText() const {
|
||||||
switch (currentIcon) {
|
switch (currentIcon) {
|
||||||
case ERASING:
|
case ERASING:
|
||||||
return erasing_text;
|
return erasing_text;
|
||||||
@@ -132,16 +132,16 @@ static constexpr int kLayouts[LAYOUT_MAX][DIMENSION_MAX] = {
|
|||||||
{ 262, 52, 112, }, // LANDSCAPE_LARGE
|
{ 262, 52, 112, }, // LANDSCAPE_LARGE
|
||||||
};
|
};
|
||||||
|
|
||||||
int ScreenRecoveryUI::GetAnimationBaseline() {
|
int ScreenRecoveryUI::GetAnimationBaseline() const {
|
||||||
return GetTextBaseline() - PixelsFromDp(kLayouts[layout_][ICON]) - gr_get_height(loopFrames[0]);
|
return GetTextBaseline() - PixelsFromDp(kLayouts[layout_][ICON]) - gr_get_height(loopFrames[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
int ScreenRecoveryUI::GetTextBaseline() {
|
int ScreenRecoveryUI::GetTextBaseline() const {
|
||||||
return GetProgressBaseline() - PixelsFromDp(kLayouts[layout_][TEXT]) -
|
return GetProgressBaseline() - PixelsFromDp(kLayouts[layout_][TEXT]) -
|
||||||
gr_get_height(installing_text);
|
gr_get_height(installing_text);
|
||||||
}
|
}
|
||||||
|
|
||||||
int ScreenRecoveryUI::GetProgressBaseline() {
|
int ScreenRecoveryUI::GetProgressBaseline() const {
|
||||||
return gr_fb_height() - PixelsFromDp(kLayouts[layout_][PROGRESS]) -
|
return gr_fb_height() - PixelsFromDp(kLayouts[layout_][PROGRESS]) -
|
||||||
gr_get_height(progressBarFill);
|
gr_get_height(progressBarFill);
|
||||||
}
|
}
|
||||||
@@ -224,7 +224,7 @@ void ScreenRecoveryUI::draw_foreground_locked() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScreenRecoveryUI::SetColor(UIElement e) {
|
void ScreenRecoveryUI::SetColor(UIElement e) const {
|
||||||
switch (e) {
|
switch (e) {
|
||||||
case INFO:
|
case INFO:
|
||||||
gr_color(249, 194, 0, 255);
|
gr_color(249, 194, 0, 255);
|
||||||
@@ -254,7 +254,7 @@ void ScreenRecoveryUI::SetColor(UIElement e) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScreenRecoveryUI::DrawHorizontalRule(int* y) {
|
void ScreenRecoveryUI::DrawHorizontalRule(int* y) const {
|
||||||
SetColor(MENU);
|
SetColor(MENU);
|
||||||
*y += 4;
|
*y += 4;
|
||||||
gr_fill(0, *y, gr_fb_width(), *y + 2);
|
gr_fill(0, *y, gr_fb_width(), *y + 2);
|
||||||
|
|||||||
+17
-16
@@ -36,8 +36,8 @@ class ScreenRecoveryUI : public RecoveryUI {
|
|||||||
bool Init(const std::string& locale) override;
|
bool Init(const std::string& locale) override;
|
||||||
|
|
||||||
// overall recovery state ("background image")
|
// overall recovery state ("background image")
|
||||||
void SetBackground(Icon icon);
|
void SetBackground(Icon icon) override;
|
||||||
void SetSystemUpdateText(bool security_update);
|
void SetSystemUpdateText(bool security_update) override;
|
||||||
|
|
||||||
// progress indicator
|
// progress indicator
|
||||||
void SetProgressType(ProgressType type) override;
|
void SetProgressType(ProgressType type) override;
|
||||||
@@ -52,16 +52,17 @@ class ScreenRecoveryUI : public RecoveryUI {
|
|||||||
bool WasTextEverVisible() override;
|
bool WasTextEverVisible() override;
|
||||||
|
|
||||||
// printing messages
|
// printing messages
|
||||||
void Print(const char* fmt, ...) __printflike(2, 3);
|
void Print(const char* fmt, ...) override __printflike(2, 3);
|
||||||
void PrintOnScreenOnly(const char* fmt, ...) __printflike(2, 3);
|
void PrintOnScreenOnly(const char* fmt, ...) override __printflike(2, 3);
|
||||||
void ShowFile(const char* filename);
|
void ShowFile(const char* filename) override;
|
||||||
|
|
||||||
// menu display
|
// menu display
|
||||||
void StartMenu(const char* const* headers, const char* const* items, int initial_selection);
|
void StartMenu(const char* const* headers, const char* const* items,
|
||||||
int SelectMenu(int sel);
|
int initial_selection) override;
|
||||||
void EndMenu();
|
int SelectMenu(int sel) override;
|
||||||
|
void EndMenu() override;
|
||||||
|
|
||||||
void KeyLongPress(int);
|
void KeyLongPress(int) override;
|
||||||
|
|
||||||
void Redraw();
|
void Redraw();
|
||||||
|
|
||||||
@@ -75,7 +76,7 @@ class ScreenRecoveryUI : public RecoveryUI {
|
|||||||
TEXT_FILL,
|
TEXT_FILL,
|
||||||
INFO
|
INFO
|
||||||
};
|
};
|
||||||
void SetColor(UIElement e);
|
void SetColor(UIElement e) const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// The margin that we don't want to use for showing texts (e.g. round screen, or screen with
|
// The margin that we don't want to use for showing texts (e.g. round screen, or screen with
|
||||||
@@ -158,8 +159,8 @@ class ScreenRecoveryUI : public RecoveryUI {
|
|||||||
virtual void update_screen_locked();
|
virtual void update_screen_locked();
|
||||||
virtual void update_progress_locked();
|
virtual void update_progress_locked();
|
||||||
|
|
||||||
GRSurface* GetCurrentFrame();
|
GRSurface* GetCurrentFrame() const;
|
||||||
GRSurface* GetCurrentText();
|
GRSurface* GetCurrentText() const;
|
||||||
|
|
||||||
static void* ProgressThreadStartRoutine(void* data);
|
static void* ProgressThreadStartRoutine(void* data);
|
||||||
void ProgressThreadLoop();
|
void ProgressThreadLoop();
|
||||||
@@ -174,11 +175,11 @@ class ScreenRecoveryUI : public RecoveryUI {
|
|||||||
void LoadLocalizedBitmap(const char* filename, GRSurface** surface);
|
void LoadLocalizedBitmap(const char* filename, GRSurface** surface);
|
||||||
|
|
||||||
int PixelsFromDp(int dp) const;
|
int PixelsFromDp(int dp) const;
|
||||||
virtual int GetAnimationBaseline();
|
virtual int GetAnimationBaseline() const;
|
||||||
virtual int GetProgressBaseline();
|
virtual int GetProgressBaseline() const;
|
||||||
virtual int GetTextBaseline();
|
virtual int GetTextBaseline() const;
|
||||||
|
|
||||||
virtual void DrawHorizontalRule(int* y);
|
virtual void DrawHorizontalRule(int* y) const;
|
||||||
virtual void DrawHighlightBar(int x, int y, int width, int height) const;
|
virtual void DrawHighlightBar(int x, int y, int width, int height) const;
|
||||||
virtual void DrawTextLine(int x, int* y, const char* line, bool bold) const;
|
virtual void DrawTextLine(int x, int* y, const char* line, bool bold) const;
|
||||||
void DrawTextLines(int x, int* y, const char* const* lines) const;
|
void DrawTextLines(int x, int* y, const char* const* lines) const;
|
||||||
|
|||||||
@@ -30,14 +30,14 @@ class RecoveryUI {
|
|||||||
|
|
||||||
virtual ~RecoveryUI() {}
|
virtual ~RecoveryUI() {}
|
||||||
|
|
||||||
// Initialize the object; called before anything else. UI texts will be
|
// Initializes the object; called before anything else. UI texts will be initialized according to
|
||||||
// initialized according to the given locale. Returns true on success.
|
// the given locale. Returns true on success.
|
||||||
virtual bool Init(const std::string& locale);
|
virtual bool Init(const std::string& locale);
|
||||||
|
|
||||||
// Show a stage indicator. Call immediately after Init().
|
// Shows a stage indicator. Called immediately after Init().
|
||||||
virtual void SetStage(int current, int max) = 0;
|
virtual void SetStage(int current, int max) = 0;
|
||||||
|
|
||||||
// Set the overall recovery state ("background image").
|
// Sets the overall recovery state ("background image").
|
||||||
enum Icon { NONE, INSTALLING_UPDATE, ERASING, NO_COMMAND, ERROR };
|
enum Icon { NONE, INSTALLING_UPDATE, ERASING, NO_COMMAND, ERROR };
|
||||||
virtual void SetBackground(Icon icon) = 0;
|
virtual void SetBackground(Icon icon) = 0;
|
||||||
virtual void SetSystemUpdateText(bool security_update) = 0;
|
virtual void SetSystemUpdateText(bool security_update) = 0;
|
||||||
@@ -46,13 +46,13 @@ class RecoveryUI {
|
|||||||
enum ProgressType { EMPTY, INDETERMINATE, DETERMINATE };
|
enum ProgressType { EMPTY, INDETERMINATE, DETERMINATE };
|
||||||
virtual void SetProgressType(ProgressType determinate) = 0;
|
virtual void SetProgressType(ProgressType determinate) = 0;
|
||||||
|
|
||||||
// Show a progress bar and define the scope of the next operation:
|
// Shows a progress bar and define the scope of the next operation:
|
||||||
// portion - fraction of the progress bar the next operation will use
|
// portion - fraction of the progress bar the next operation will use
|
||||||
// seconds - expected time interval (progress bar moves at this minimum rate)
|
// seconds - expected time interval (progress bar moves at this minimum rate)
|
||||||
virtual void ShowProgress(float portion, float seconds) = 0;
|
virtual void ShowProgress(float portion, float seconds) = 0;
|
||||||
|
|
||||||
// Set progress bar position (0.0 - 1.0 within the scope defined
|
// Sets progress bar position (0.0 - 1.0 within the scope defined by the last call to
|
||||||
// by the last call to ShowProgress).
|
// ShowProgress).
|
||||||
virtual void SetProgress(float fraction) = 0;
|
virtual void SetProgress(float fraction) = 0;
|
||||||
|
|
||||||
// --- text log ---
|
// --- text log ---
|
||||||
@@ -63,9 +63,8 @@ class RecoveryUI {
|
|||||||
|
|
||||||
virtual bool WasTextEverVisible() = 0;
|
virtual bool WasTextEverVisible() = 0;
|
||||||
|
|
||||||
// Write a message to the on-screen log (shown if the user has
|
// Writes a message to the on-screen log (shown if the user has toggled on the text display).
|
||||||
// toggled on the text display). Print() will also dump the message
|
// Print() will also dump the message to stdout / log file, while PrintOnScreenOnly() not.
|
||||||
// to stdout / log file, while PrintOnScreenOnly() not.
|
|
||||||
virtual void Print(const char* fmt, ...) __printflike(2, 3) = 0;
|
virtual void Print(const char* fmt, ...) __printflike(2, 3) = 0;
|
||||||
virtual void PrintOnScreenOnly(const char* fmt, ...) __printflike(2, 3) = 0;
|
virtual void PrintOnScreenOnly(const char* fmt, ...) __printflike(2, 3) = 0;
|
||||||
|
|
||||||
@@ -73,54 +72,48 @@ class RecoveryUI {
|
|||||||
|
|
||||||
// --- key handling ---
|
// --- key handling ---
|
||||||
|
|
||||||
// Wait for a key and return it. May return -1 after timeout.
|
// Waits for a key and return it. May return -1 after timeout.
|
||||||
virtual int WaitKey();
|
virtual int WaitKey();
|
||||||
|
|
||||||
virtual bool IsKeyPressed(int key);
|
virtual bool IsKeyPressed(int key);
|
||||||
virtual bool IsLongPress();
|
virtual bool IsLongPress();
|
||||||
|
|
||||||
// Returns true if you have the volume up/down and power trio typical
|
// Returns true if you have the volume up/down and power trio typical of phones and tablets, false
|
||||||
// of phones and tablets, false otherwise.
|
// otherwise.
|
||||||
virtual bool HasThreeButtons();
|
virtual bool HasThreeButtons();
|
||||||
|
|
||||||
// Erase any queued-up keys.
|
// Erases any queued-up keys.
|
||||||
virtual void FlushKeys();
|
virtual void FlushKeys();
|
||||||
|
|
||||||
// Called on each key press, even while operations are in progress.
|
// Called on each key press, even while operations are in progress. Return value indicates whether
|
||||||
// Return value indicates whether an immediate operation should be
|
// an immediate operation should be triggered (toggling the display, rebooting the device), or if
|
||||||
// triggered (toggling the display, rebooting the device), or if
|
|
||||||
// the key should be enqueued for use by the main thread.
|
// the key should be enqueued for use by the main thread.
|
||||||
enum KeyAction { ENQUEUE, TOGGLE, REBOOT, IGNORE };
|
enum KeyAction { ENQUEUE, TOGGLE, REBOOT, IGNORE };
|
||||||
virtual KeyAction CheckKey(int key, bool is_long_press);
|
virtual KeyAction CheckKey(int key, bool is_long_press);
|
||||||
|
|
||||||
// Called when a key is held down long enough to have been a
|
// Called when a key is held down long enough to have been a long-press (but before the key is
|
||||||
// long-press (but before the key is released). This means that
|
// released). This means that if the key is eventually registered (released without any other keys
|
||||||
// if the key is eventually registered (released without any other
|
// being pressed in the meantime), CheckKey will be called with 'is_long_press' true.
|
||||||
// keys being pressed in the meantime), CheckKey will be called with
|
|
||||||
// 'is_long_press' true.
|
|
||||||
virtual void KeyLongPress(int key);
|
virtual void KeyLongPress(int key);
|
||||||
|
|
||||||
// Normally in recovery there's a key sequence that triggers
|
// Normally in recovery there's a key sequence that triggers immediate reboot of the device,
|
||||||
// immediate reboot of the device, regardless of what recovery is
|
// regardless of what recovery is doing (with the default CheckKey implementation, it's pressing
|
||||||
// doing (with the default CheckKey implementation, it's pressing
|
// the power button 7 times in row). Call this to enable or disable that feature. It is enabled by
|
||||||
// the power button 7 times in row). Call this to enable or
|
// default.
|
||||||
// disable that feature. It is enabled by default.
|
|
||||||
virtual void SetEnableReboot(bool enabled);
|
virtual void SetEnableReboot(bool enabled);
|
||||||
|
|
||||||
// --- menu display ---
|
// --- menu display ---
|
||||||
|
|
||||||
// Display some header text followed by a menu of items, which appears
|
// Display some header text followed by a menu of items, which appears at the top of the screen
|
||||||
// at the top of the screen (in place of any scrolling ui_print()
|
// (in place of any scrolling ui_print() output, if necessary).
|
||||||
// output, if necessary).
|
|
||||||
virtual void StartMenu(const char* const* headers, const char* const* items,
|
virtual void StartMenu(const char* const* headers, const char* const* items,
|
||||||
int initial_selection) = 0;
|
int initial_selection) = 0;
|
||||||
|
|
||||||
// Set the menu highlight to the given index, wrapping if necessary.
|
// Sets the menu highlight to the given index, wrapping if necessary. Returns the actual item
|
||||||
// Returns the actual item selected.
|
// selected.
|
||||||
virtual int SelectMenu(int sel) = 0;
|
virtual int SelectMenu(int sel) = 0;
|
||||||
|
|
||||||
// End menu mode, resetting the text overlay so that ui_print()
|
// Ends menu mode, resetting the text overlay so that ui_print() statements will be displayed.
|
||||||
// statements will be displayed.
|
|
||||||
virtual void EndMenu() = 0;
|
virtual void EndMenu() = 0;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
@@ -130,10 +123,9 @@ class RecoveryUI {
|
|||||||
std::string locale_;
|
std::string locale_;
|
||||||
bool rtl_locale_;
|
bool rtl_locale_;
|
||||||
|
|
||||||
// The normal and dimmed brightness percentages (default: 50 and 25, which means 50% and 25%
|
// The normal and dimmed brightness percentages (default: 50 and 25, which means 50% and 25% of
|
||||||
// of the max_brightness). Because the absolute values may vary across devices. These two
|
// the max_brightness). Because the absolute values may vary across devices. These two values can
|
||||||
// values can be configured via subclassing. Setting brightness_normal_ to 0 to disable
|
// be configured via subclassing. Setting brightness_normal_ to 0 to disable screensaver.
|
||||||
// screensaver.
|
|
||||||
unsigned int brightness_normal_;
|
unsigned int brightness_normal_;
|
||||||
unsigned int brightness_dimmed_;
|
unsigned int brightness_dimmed_;
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -61,7 +61,7 @@ WearRecoveryUI::WearRecoveryUI()
|
|||||||
self = this;
|
self = this;
|
||||||
}
|
}
|
||||||
|
|
||||||
int WearRecoveryUI::GetProgressBaseline() {
|
int WearRecoveryUI::GetProgressBaseline() const {
|
||||||
return progress_bar_y;
|
return progress_bar_y;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -47,12 +47,11 @@ class WearRecoveryUI : public ScreenRecoveryUI {
|
|||||||
// outer of window
|
// outer of window
|
||||||
int outer_height, outer_width;
|
int outer_height, outer_width;
|
||||||
|
|
||||||
// Unusable rows when displaying the recovery menu, including the lines
|
// Unusable rows when displaying the recovery menu, including the lines for headers (Android
|
||||||
// for headers (Android Recovery, build id and etc) and the bottom lines
|
// Recovery, build id and etc) and the bottom lines that may otherwise go out of the screen.
|
||||||
// that may otherwise go out of the screen.
|
|
||||||
int menu_unusable_rows;
|
int menu_unusable_rows;
|
||||||
|
|
||||||
int GetProgressBaseline() override;
|
int GetProgressBaseline() const override;
|
||||||
|
|
||||||
bool InitTextParams() override;
|
bool InitTextParams() override;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user