From 0bc88de7aabaec09fb2408ce008bbed41b56cfa5 Mon Sep 17 00:00:00 2001 From: Tao Bao Date: Tue, 31 Jul 2018 14:53:16 -0700 Subject: ui: Read custom recovery UI values via system property. The matching change to build system now writes these values as build properties for recovery image. This allows us dropping the dependency on Android.mk (as well as having more flexibility to do UI customization). Also rename a few constant names, as the naming doesn't fully follow the style guide (which reads "whose value is fixed for the duration of the program"). Bug: 110380063 Test: Build and flash recovery image on taimen, which uses custom margin height. Check the UI and choose `Run graphics test`. Change-Id: I2c50326123639cb36022f51b62cdeed925d77ba7 --- vr_ui.cpp | 39 +++++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 16 deletions(-) (limited to 'vr_ui.cpp') diff --git a/vr_ui.cpp b/vr_ui.cpp index b1ef646c9..a131a27a7 100644 --- a/vr_ui.cpp +++ b/vr_ui.cpp @@ -16,9 +16,15 @@ #include "vr_ui.h" -#include +#include -VrRecoveryUI::VrRecoveryUI() : kStereoOffset(RECOVERY_UI_VR_STEREO_OFFSET) {} +#include "minui/minui.h" + +constexpr int kDefaultStereoOffset = 0; + +VrRecoveryUI::VrRecoveryUI() + : stereo_offset_( + android::base::GetIntProperty("ro.recovery.ui.stereo_offset", kDefaultStereoOffset)) {} int VrRecoveryUI::ScreenWidth() const { return gr_fb_width() / 2; @@ -30,36 +36,37 @@ int VrRecoveryUI::ScreenHeight() const { void VrRecoveryUI::DrawSurface(GRSurface* surface, int sx, int sy, int w, int h, int dx, int dy) const { - gr_blit(surface, sx, sy, w, h, dx + kStereoOffset, dy); - gr_blit(surface, sx, sy, w, h, dx - kStereoOffset + ScreenWidth(), dy); + gr_blit(surface, sx, sy, w, h, dx + stereo_offset_, dy); + gr_blit(surface, sx, sy, w, h, dx - stereo_offset_ + ScreenWidth(), dy); } void VrRecoveryUI::DrawTextIcon(int x, int y, GRSurface* surface) const { - gr_texticon(x + kStereoOffset, y, surface); - gr_texticon(x - kStereoOffset + ScreenWidth(), y, surface); + gr_texticon(x + stereo_offset_, y, surface); + gr_texticon(x - stereo_offset_ + ScreenWidth(), y, surface); } int VrRecoveryUI::DrawTextLine(int x, int y, const std::string& line, bool bold) const { - gr_text(gr_sys_font(), x + kStereoOffset, y, line.c_str(), bold); - gr_text(gr_sys_font(), x - kStereoOffset + ScreenWidth(), y, line.c_str(), bold); + gr_text(gr_sys_font(), x + stereo_offset_, y, line.c_str(), bold); + gr_text(gr_sys_font(), x - stereo_offset_ + ScreenWidth(), y, line.c_str(), bold); return char_height_ + 4; } int VrRecoveryUI::DrawHorizontalRule(int y) const { y += 4; - gr_fill(kMarginWidth + kStereoOffset, y, ScreenWidth() - kMarginWidth + kStereoOffset, y + 2); - gr_fill(ScreenWidth() + kMarginWidth - kStereoOffset, y, - gr_fb_width() - kMarginWidth - kStereoOffset, y + 2); + gr_fill(margin_width_ + stereo_offset_, y, ScreenWidth() - margin_width_ + stereo_offset_, y + 2); + gr_fill(ScreenWidth() + margin_width_ - stereo_offset_, y, + gr_fb_width() - margin_width_ - stereo_offset_, y + 2); return y + 4; } void VrRecoveryUI::DrawHighlightBar(int /* x */, int y, int /* width */, int height) const { - gr_fill(kMarginWidth + kStereoOffset, y, ScreenWidth() - kMarginWidth + kStereoOffset, y + height); - gr_fill(ScreenWidth() + kMarginWidth - kStereoOffset, y, - gr_fb_width() - kMarginWidth - kStereoOffset, y + height); + gr_fill(margin_width_ + stereo_offset_, y, ScreenWidth() - margin_width_ + stereo_offset_, + y + height); + gr_fill(ScreenWidth() + margin_width_ - stereo_offset_, y, + gr_fb_width() - margin_width_ - stereo_offset_, y + height); } void VrRecoveryUI::DrawFill(int x, int y, int w, int h) const { - gr_fill(x + kStereoOffset, y, w, h); - gr_fill(x - kStereoOffset + ScreenWidth(), y, w, h); + gr_fill(x + stereo_offset_, y, w, h); + gr_fill(x - stereo_offset_ + ScreenWidth(), y, w, h); } -- cgit v1.2.3