From e2bd876043c3f26ad4712c2aad62b320368ad815 Mon Sep 17 00:00:00 2001 From: Luke Song Date: Mon, 12 Jun 2017 16:08:33 -0700 Subject: Introduce VR recovery ui A version of screen ui with specific adjustments for vr device compatibility. (cherrypick of a44dba7f4e7296077f65fd571232e8a61aed9418 to AOSP) Bug: 37779982 Test: "adb reboot recovery" to view Change-Id: If6b0f26c1b587f8d0176060685b5efb6c67593b1 --- vr_ui.cpp | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 vr_ui.cpp (limited to 'vr_ui.cpp') diff --git a/vr_ui.cpp b/vr_ui.cpp new file mode 100644 index 000000000..b2c65e3af --- /dev/null +++ b/vr_ui.cpp @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "vr_ui.h" + +#include + +VrRecoveryUI::VrRecoveryUI() : + x_offset(400), + y_offset(400), + stereo_offset(100) { +} + +bool VrRecoveryUI::InitTextParams() { + if (gr_init() < 0) { + return false; + } + + gr_font_size(gr_sys_font(), &char_width_, &char_height_); + int mid_divide = gr_fb_width() / 2; + text_rows_ = (gr_fb_height() - 2 * y_offset) / char_height_; + text_cols_ = (mid_divide - x_offset - stereo_offset) / char_width_; + log_bottom_offset_ = gr_fb_height() - 2 * y_offset; + return true; +} + +void VrRecoveryUI::DrawHorizontalRule(int* y) { + SetColor(MENU); + *y += 4; + gr_fill(0, *y + y_offset, gr_fb_width(), *y + y_offset + 2); + *y += 4; +} + +void VrRecoveryUI::DrawHighlightBar(int x, int y, int width, int height) const { + gr_fill(x, y + y_offset, x + width, y + y_offset + height); +} + +void VrRecoveryUI::DrawTextLine(int x, int* y, const char* line, bool bold) const { + int mid_divide = gr_fb_width() / 2; + gr_text(gr_sys_font(), x + x_offset + stereo_offset, *y + y_offset, line, bold); + gr_text(gr_sys_font(), x + x_offset - stereo_offset + mid_divide, *y + y_offset, line, bold); + *y += char_height_ + 4; +} -- cgit v1.2.3 From 9d4839c60fc51068ba8a389545b2751a7c5a14b0 Mon Sep 17 00:00:00 2001 From: Luke Song Date: Fri, 23 Jun 2017 14:33:46 -0700 Subject: Restructure vr_ui Get rid of pixel offset variables, and use makefile variables in BoardConfigs. Bug: 37779982 Test: Verified vr ui has same behavior. Change-Id: Ifbf44e27d7101aedbe3c0e6db4b8181d56efadfd (cherry picked from commit 81a8e4cab2a20fd1b1a4716563d4d2586bd1e1de) --- vr_ui.cpp | 31 +++++-------------------------- 1 file changed, 5 insertions(+), 26 deletions(-) (limited to 'vr_ui.cpp') diff --git a/vr_ui.cpp b/vr_ui.cpp index b2c65e3af..8b8261e35 100644 --- a/vr_ui.cpp +++ b/vr_ui.cpp @@ -18,39 +18,18 @@ #include -VrRecoveryUI::VrRecoveryUI() : - x_offset(400), - y_offset(400), - stereo_offset(100) { -} +VrRecoveryUI::VrRecoveryUI() : kStereoOffset(RECOVERY_UI_VR_STEREO_OFFSET) {} bool VrRecoveryUI::InitTextParams() { - if (gr_init() < 0) { - return false; - } - - gr_font_size(gr_sys_font(), &char_width_, &char_height_); + if (!ScreenRecoveryUI::InitTextParams()) return false; int mid_divide = gr_fb_width() / 2; - text_rows_ = (gr_fb_height() - 2 * y_offset) / char_height_; - text_cols_ = (mid_divide - x_offset - stereo_offset) / char_width_; - log_bottom_offset_ = gr_fb_height() - 2 * y_offset; + text_cols_ = (mid_divide - kMarginWidth - kStereoOffset) / char_width_; return true; } -void VrRecoveryUI::DrawHorizontalRule(int* y) { - SetColor(MENU); - *y += 4; - gr_fill(0, *y + y_offset, gr_fb_width(), *y + y_offset + 2); - *y += 4; -} - -void VrRecoveryUI::DrawHighlightBar(int x, int y, int width, int height) const { - gr_fill(x, y + y_offset, x + width, y + y_offset + height); -} - void VrRecoveryUI::DrawTextLine(int x, int* y, const char* line, bool bold) const { int mid_divide = gr_fb_width() / 2; - gr_text(gr_sys_font(), x + x_offset + stereo_offset, *y + y_offset, line, bold); - gr_text(gr_sys_font(), x + x_offset - stereo_offset + mid_divide, *y + y_offset, line, bold); + gr_text(gr_sys_font(), x + kStereoOffset, *y, line, bold); + gr_text(gr_sys_font(), x - kStereoOffset + mid_divide, *y, line, bold); *y += char_height_ + 4; } -- cgit v1.2.3 From ea78d86b44661c69fcb740b9d40b47af821dbd57 Mon Sep 17 00:00:00 2001 From: Tao Bao Date: Wed, 28 Jun 2017 14:52:17 -0700 Subject: Update ScreenRecoveryUI::Draw* function signatures. Move away from taking int* for the Y-offset. Change it to int and return the offset instead. Test: Check the recovery menu and 'Wipe data' menu. Change-Id: Ib15e070a0d576a0f8f66f35605cb8479e7071f26 --- vr_ui.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'vr_ui.cpp') diff --git a/vr_ui.cpp b/vr_ui.cpp index 8b8261e35..125167268 100644 --- a/vr_ui.cpp +++ b/vr_ui.cpp @@ -27,9 +27,9 @@ bool VrRecoveryUI::InitTextParams() { return true; } -void VrRecoveryUI::DrawTextLine(int x, int* y, const char* line, bool bold) const { +int VrRecoveryUI::DrawTextLine(int x, int y, const char* line, bool bold) const { int mid_divide = gr_fb_width() / 2; - gr_text(gr_sys_font(), x + kStereoOffset, *y, line, bold); - gr_text(gr_sys_font(), x - kStereoOffset + mid_divide, *y, line, bold); - *y += char_height_ + 4; + gr_text(gr_sys_font(), x + kStereoOffset, y, line, bold); + gr_text(gr_sys_font(), x - kStereoOffset + mid_divide, y, line, bold); + return char_height_ + 4; } -- cgit v1.2.3