Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8e4ddcce authored by Tao Bao's avatar Tao Bao Committed by android-build-merger
Browse files

Merge "Add override specifier and member constness to RecoveryUI classes." am:...

Merge "Add override specifier and member constness to RecoveryUI classes." am: d6fb1c63 am: 2e20c118
am: 57191920

Change-Id: I8320f696ca21b14564a3fa38937fdf090eeff4f7
parents 43a866cb 57191920
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -82,14 +82,14 @@ ScreenRecoveryUI::ScreenRecoveryUI()
      max_stage(-1),
      updateMutex(PTHREAD_MUTEX_INITIALIZER) {}

GRSurface* ScreenRecoveryUI::GetCurrentFrame() {
GRSurface* ScreenRecoveryUI::GetCurrentFrame() const {
  if (currentIcon == INSTALLING_UPDATE || currentIcon == ERASING) {
    return intro_done ? loopFrames[current_frame] : introFrames[current_frame];
  }
  return error_icon;
}

GRSurface* ScreenRecoveryUI::GetCurrentText() {
GRSurface* ScreenRecoveryUI::GetCurrentText() const {
  switch (currentIcon) {
    case ERASING:
      return erasing_text;
@@ -132,16 +132,16 @@ static constexpr int kLayouts[LAYOUT_MAX][DIMENSION_MAX] = {
  { 262,  52, 112, },  // LANDSCAPE_LARGE
};

int ScreenRecoveryUI::GetAnimationBaseline() {
int ScreenRecoveryUI::GetAnimationBaseline() const {
  return GetTextBaseline() - PixelsFromDp(kLayouts[layout_][ICON]) - gr_get_height(loopFrames[0]);
}

int ScreenRecoveryUI::GetTextBaseline() {
int ScreenRecoveryUI::GetTextBaseline() const {
  return GetProgressBaseline() - PixelsFromDp(kLayouts[layout_][TEXT]) -
         gr_get_height(installing_text);
}

int ScreenRecoveryUI::GetProgressBaseline() {
int ScreenRecoveryUI::GetProgressBaseline() const {
  return gr_fb_height() - PixelsFromDp(kLayouts[layout_][PROGRESS]) -
         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) {
    case INFO:
      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);
  *y += 4;
  gr_fill(0, *y, gr_fb_width(), *y + 2);
+17 −16
Original line number Diff line number Diff line
@@ -36,8 +36,8 @@ class ScreenRecoveryUI : public RecoveryUI {
  bool Init(const std::string& locale) override;

  // overall recovery state ("background image")
  void SetBackground(Icon icon);
  void SetSystemUpdateText(bool security_update);
  void SetBackground(Icon icon) override;
  void SetSystemUpdateText(bool security_update) override;

  // progress indicator
  void SetProgressType(ProgressType type) override;
@@ -52,16 +52,17 @@ class ScreenRecoveryUI : public RecoveryUI {
  bool WasTextEverVisible() override;

  // printing messages
  void Print(const char* fmt, ...) __printflike(2, 3);
  void PrintOnScreenOnly(const char* fmt, ...) __printflike(2, 3);
  void ShowFile(const char* filename);
  void Print(const char* fmt, ...) override __printflike(2, 3);
  void PrintOnScreenOnly(const char* fmt, ...) override __printflike(2, 3);
  void ShowFile(const char* filename) override;

  // menu display
  void StartMenu(const char* const* headers, const char* const* items, int initial_selection);
  int SelectMenu(int sel);
  void EndMenu();
  void StartMenu(const char* const* headers, const char* const* items,
                 int initial_selection) override;
  int SelectMenu(int sel) override;
  void EndMenu() override;

  void KeyLongPress(int);
  void KeyLongPress(int) override;

  void Redraw();

@@ -75,7 +76,7 @@ class ScreenRecoveryUI : public RecoveryUI {
    TEXT_FILL,
    INFO
  };
  void SetColor(UIElement e);
  void SetColor(UIElement e) const;

 protected:
  // 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_progress_locked();

  GRSurface* GetCurrentFrame();
  GRSurface* GetCurrentText();
  GRSurface* GetCurrentFrame() const;
  GRSurface* GetCurrentText() const;

  static void* ProgressThreadStartRoutine(void* data);
  void ProgressThreadLoop();
@@ -174,11 +175,11 @@ class ScreenRecoveryUI : public RecoveryUI {
  void LoadLocalizedBitmap(const char* filename, GRSurface** surface);

  int PixelsFromDp(int dp) const;
  virtual int GetAnimationBaseline();
  virtual int GetProgressBaseline();
  virtual int GetTextBaseline();
  virtual int GetAnimationBaseline() const;
  virtual int GetProgressBaseline() const;
  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 DrawTextLine(int x, int* y, const char* line, bool bold) const;
  void DrawTextLines(int x, int* y, const char* const* lines) const;
+30 −38
Original line number Diff line number Diff line
@@ -30,14 +30,14 @@ class RecoveryUI {

  virtual ~RecoveryUI() {}

  // Initialize the object; called before anything else. UI texts will be
  // initialized according to the given locale. Returns true on success.
  // Initializes the object; called before anything else. UI texts will be initialized according to
  // the given locale. Returns true on success.
  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;

  // Set the overall recovery state ("background image").
  // Sets the overall recovery state ("background image").
  enum Icon { NONE, INSTALLING_UPDATE, ERASING, NO_COMMAND, ERROR };
  virtual void SetBackground(Icon icon) = 0;
  virtual void SetSystemUpdateText(bool security_update) = 0;
@@ -46,13 +46,13 @@ class RecoveryUI {
  enum ProgressType { EMPTY, INDETERMINATE, DETERMINATE };
  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
  //   seconds - expected time interval (progress bar moves at this minimum rate)
  virtual void ShowProgress(float portion, float seconds) = 0;

  // Set progress bar position (0.0 - 1.0 within the scope defined
  // by the last call to ShowProgress).
  // Sets progress bar position (0.0 - 1.0 within the scope defined by the last call to
  // ShowProgress).
  virtual void SetProgress(float fraction) = 0;

  // --- text log ---
@@ -63,9 +63,8 @@ class RecoveryUI {

  virtual bool WasTextEverVisible() = 0;

  // Write a message to the on-screen log (shown if the user has
  // toggled on the text display). Print() will also dump the message
  // to stdout / log file, while PrintOnScreenOnly() not.
  // Writes a message to the on-screen log (shown if the user has toggled on the text display).
  // Print() will also dump the message to stdout / log file, while PrintOnScreenOnly() not.
  virtual void Print(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 ---

  // 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 bool IsKeyPressed(int key);
  virtual bool IsLongPress();

  // Returns true if you have the volume up/down and power trio typical
  // of phones and tablets, false otherwise.
  // Returns true if you have the volume up/down and power trio typical of phones and tablets, false
  // otherwise.
  virtual bool HasThreeButtons();

  // Erase any queued-up keys.
  // Erases any queued-up keys.
  virtual void FlushKeys();

  // Called on each key press, even while operations are in progress.
  // Return value indicates whether an immediate operation should be
  // triggered (toggling the display, rebooting the device), or if
  // Called on each key press, even while operations are in progress. Return value indicates whether
  // an immediate operation should be triggered (toggling the display, rebooting the device), or if
  // the key should be enqueued for use by the main thread.
  enum KeyAction { ENQUEUE, TOGGLE, REBOOT, IGNORE };
  virtual KeyAction CheckKey(int key, bool is_long_press);

  // Called when a key is held down long enough to have been a
  // long-press (but before the key is released).  This means that
  // if the key is eventually registered (released without any other
  // keys being pressed in the meantime), CheckKey will be called with
  // 'is_long_press' true.
  // Called when a key is held down long enough to have been a long-press (but before the key is
  // released). This means that if the key is eventually registered (released without any other keys
  // being pressed in the meantime), CheckKey will be called with 'is_long_press' true.
  virtual void KeyLongPress(int key);

  // Normally in recovery there's a key sequence that triggers
  // immediate reboot of the device, regardless of what recovery is
  // 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 default.
  // Normally in recovery there's a key sequence that triggers immediate reboot of the device,
  // regardless of what recovery is 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
  // default.
  virtual void SetEnableReboot(bool enabled);

  // --- menu display ---

  // Display some header text followed by a menu of items, which appears
  // at the top of the screen (in place of any scrolling ui_print()
  // output, if necessary).
  // Display some header text followed by a menu of items, which appears at the top of the screen
  // (in place of any scrolling ui_print() output, if necessary).
  virtual void StartMenu(const char* const* headers, const char* const* items,
                         int initial_selection) = 0;

  // Set the menu highlight to the given index, wrapping if necessary.
  // Returns the actual item selected.
  // Sets the menu highlight to the given index, wrapping if necessary. Returns the actual item
  // selected.
  virtual int SelectMenu(int sel) = 0;

  // End menu mode, resetting the text overlay so that ui_print()
  // statements will be displayed.
  // Ends menu mode, resetting the text overlay so that ui_print() statements will be displayed.
  virtual void EndMenu() = 0;

 protected:
@@ -130,10 +123,9 @@ class RecoveryUI {
  std::string locale_;
  bool rtl_locale_;

  // The normal and dimmed brightness percentages (default: 50 and 25, which means 50% and 25%
  // of the max_brightness). Because the absolute values may vary across devices. These two
  // values can be configured via subclassing. Setting brightness_normal_ to 0 to disable
  // screensaver.
  // The normal and dimmed brightness percentages (default: 50 and 25, which means 50% and 25% of
  // the max_brightness). Because the absolute values may vary across devices. These two values can
  // be configured via subclassing. Setting brightness_normal_ to 0 to disable screensaver.
  unsigned int brightness_normal_;
  unsigned int brightness_dimmed_;

+1 −1
Original line number Diff line number Diff line
@@ -61,7 +61,7 @@ WearRecoveryUI::WearRecoveryUI()
  self = this;
}

int WearRecoveryUI::GetProgressBaseline() {
int WearRecoveryUI::GetProgressBaseline() const {
  return progress_bar_y;
}

+3 −4
Original line number Diff line number Diff line
@@ -47,12 +47,11 @@ class WearRecoveryUI : public ScreenRecoveryUI {
  // outer of window
  int outer_height, outer_width;

  // Unusable rows when displaying the recovery menu, including the lines
  // for headers (Android Recovery, build id and etc) and the bottom lines
  // that may otherwise go out of the screen.
  // Unusable rows when displaying the recovery menu, including the lines for headers (Android
  // Recovery, build id and etc) and the bottom lines that may otherwise go out of the screen.
  int menu_unusable_rows;

  int GetProgressBaseline() override;
  int GetProgressBaseline() const override;

  bool InitTextParams() override;