Merge "charger: support screen rotation" am: e72c5c76db am: 07f1804075 am: 88be969602

Original change: https://android-review.googlesource.com/c/platform/system/core/+/1867821

Change-Id: If330fcb43a234c83710a29644b5b7b3a21e6e13c
This commit is contained in:
Treehugger Robot 2022-01-27 12:13:32 +00:00 committed by Automerger Merge Worker
commit 03ecd75a87
3 changed files with 13 additions and 0 deletions

View file

@ -99,6 +99,15 @@ void HealthdDraw::blank_screen(bool blank, int drm) {
gr_fb_blank(blank, drm);
}
/* support screen rotation for foldable phone */
void HealthdDraw::rotate_screen(int drm) {
if (!graphics_available) return;
if (drm == 0)
gr_rotate(GRRotation::RIGHT /* landscape mode */);
else
gr_rotate(GRRotation::NONE /* Portrait mode */);
}
void HealthdDraw::clear_screen(void) {
if (!graphics_available) return;
gr_color(0, 0, 0, 255);

View file

@ -35,6 +35,9 @@ class HealthdDraw {
// Blanks screen if true, unblanks if false.
virtual void blank_screen(bool blank, int drm);
// Rotate screen.
virtual void rotate_screen(int drm);
static std::unique_ptr<HealthdDraw> Create(animation *anim);
protected:

View file

@ -352,6 +352,7 @@ void Charger::UpdateScreenState(int64_t now) {
if (screen_switch_ == SCREEN_SWITCH_ENABLE) {
healthd_draw_->blank_screen(true, 0 /* drm */);
healthd_draw_->blank_screen(true, 1 /* drm */);
healthd_draw_->rotate_screen(static_cast<int>(drm_));
screen_blanked_ = true;
screen_switch_ = SCREEN_SWITCH_DISABLE;
}