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

Commit d6fb1c63 authored by Tao Bao's avatar Tao Bao Committed by Gerrit Code Review
Browse files

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

parents 8e7db8f4 99b2d774
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;