Loading minui/graphics.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -503,6 +503,10 @@ void gr_rotate(GRRotation rot) { rotation = rot; } GRRotation gr_get_rotation() { return rotation; } bool gr_has_multiple_connectors() { return gr_backend->HasMultipleConnectors(); } minui/include/minui/minui.h +3 −0 Original line number Diff line number Diff line Loading @@ -153,6 +153,9 @@ unsigned int gr_get_height(const GRSurface* surface); // Sets rotation, flips gr_fb_width/height if 90 degree rotation difference void gr_rotate(GRRotation rotation); // Get current rotation GRRotation gr_get_rotation(); // Returns the current PixelFormat being used. PixelFormat gr_pixel_format(); Loading recovery_ui/include/recovery_ui/wear_ui.h +2 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,8 @@ class WearRecoveryUI : public ScreenRecoveryUI { public: WearRecoveryUI(); bool Init(const std::string& locale) override; void SetStage(int current, int max) override; protected: Loading recovery_ui/ui.cpp +21 −1 Original line number Diff line number Diff line Loading @@ -197,8 +197,23 @@ bool RecoveryUI::Init(const std::string& /* locale */) { return true; } enum SwipeDirection { UP, DOWN, RIGHT, LEFT }; static SwipeDirection FlipSwipeDirection(SwipeDirection direction) { switch (direction) { case UP: return SwipeDirection::DOWN; case DOWN: return SwipeDirection::UP; case RIGHT: return SwipeDirection::LEFT; case LEFT: return SwipeDirection::RIGHT; } } void RecoveryUI::OnTouchDetected(int dx, int dy) { enum SwipeDirection { UP, DOWN, RIGHT, LEFT } direction; SwipeDirection direction; // We only consider a valid swipe if: // - the delta along one axis is below touch_low_threshold_; Loading @@ -219,6 +234,11 @@ void RecoveryUI::OnTouchDetected(int dx, int dy) { return; } // Flip swipe direction if screen is rotated upside down if (gr_get_rotation() == GRRotation::DOWN) { direction = FlipSwipeDirection(direction); } LOG(DEBUG) << "Swipe direction=" << direction; switch (direction) { case SwipeDirection::UP: Loading recovery_ui/wear_ui.cpp +45 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ #include <string> #include <vector> #include <android-base/logging.h> #include <android-base/properties.h> #include <android-base/strings.h> Loading @@ -44,6 +45,50 @@ WearRecoveryUI::WearRecoveryUI() touch_screen_allowed_ = true; } static void FlipOrientation() { auto rotation = gr_get_rotation(); if (rotation == GRRotation::NONE) { gr_rotate(GRRotation::DOWN); } else if (rotation == GRRotation::DOWN) { gr_rotate(GRRotation::NONE); } else { LOG(WARNING) << "Unsupported rotation for wrist orientation" << static_cast<int>(rotation); } } // Match values in // frameworks/opt/wear/src/com/android/clockwork/wristorientation/WristOrientationService.java enum class WristOrientation : unsigned { LEFT_WRIST_ROTATION_0 = 0, LEFT_WRIST_ROTATION_180 = 1, RIGHT_WRIST_ROTATION_0 = 2, RIGHT_WRIST_ROTATION_180 = 3, }; static void InitWristOrientation() { auto prop = android::base::GetUintProperty("ro.boot.wrist_orientation", 0u); WristOrientation orientation{ prop }; if (orientation == WristOrientation::LEFT_WRIST_ROTATION_180 || orientation == WristOrientation::RIGHT_WRIST_ROTATION_180) { LOG(INFO) << "InitWristOrientation(): flipping orientation because, 'ro.boot.wrist_orientation'=" << prop; FlipOrientation(); } } bool WearRecoveryUI::Init(const std::string& locale) { auto result = ScreenRecoveryUI::Init(locale); auto wrist_orientation_enabled = android::base::GetBoolProperty("config.enable_wristorientation", false); LOG(INFO) << "WearRecoveryUI::Init(): enable_wristorientation=" << wrist_orientation_enabled; if (wrist_orientation_enabled) { InitWristOrientation(); } return result; } // Draw background frame on the screen. Does not flip pages. // Should only be called with updateMutex locked. // TODO merge drawing routines with screen_ui Loading Loading
minui/graphics.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -503,6 +503,10 @@ void gr_rotate(GRRotation rot) { rotation = rot; } GRRotation gr_get_rotation() { return rotation; } bool gr_has_multiple_connectors() { return gr_backend->HasMultipleConnectors(); }
minui/include/minui/minui.h +3 −0 Original line number Diff line number Diff line Loading @@ -153,6 +153,9 @@ unsigned int gr_get_height(const GRSurface* surface); // Sets rotation, flips gr_fb_width/height if 90 degree rotation difference void gr_rotate(GRRotation rotation); // Get current rotation GRRotation gr_get_rotation(); // Returns the current PixelFormat being used. PixelFormat gr_pixel_format(); Loading
recovery_ui/include/recovery_ui/wear_ui.h +2 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,8 @@ class WearRecoveryUI : public ScreenRecoveryUI { public: WearRecoveryUI(); bool Init(const std::string& locale) override; void SetStage(int current, int max) override; protected: Loading
recovery_ui/ui.cpp +21 −1 Original line number Diff line number Diff line Loading @@ -197,8 +197,23 @@ bool RecoveryUI::Init(const std::string& /* locale */) { return true; } enum SwipeDirection { UP, DOWN, RIGHT, LEFT }; static SwipeDirection FlipSwipeDirection(SwipeDirection direction) { switch (direction) { case UP: return SwipeDirection::DOWN; case DOWN: return SwipeDirection::UP; case RIGHT: return SwipeDirection::LEFT; case LEFT: return SwipeDirection::RIGHT; } } void RecoveryUI::OnTouchDetected(int dx, int dy) { enum SwipeDirection { UP, DOWN, RIGHT, LEFT } direction; SwipeDirection direction; // We only consider a valid swipe if: // - the delta along one axis is below touch_low_threshold_; Loading @@ -219,6 +234,11 @@ void RecoveryUI::OnTouchDetected(int dx, int dy) { return; } // Flip swipe direction if screen is rotated upside down if (gr_get_rotation() == GRRotation::DOWN) { direction = FlipSwipeDirection(direction); } LOG(DEBUG) << "Swipe direction=" << direction; switch (direction) { case SwipeDirection::UP: Loading
recovery_ui/wear_ui.cpp +45 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ #include <string> #include <vector> #include <android-base/logging.h> #include <android-base/properties.h> #include <android-base/strings.h> Loading @@ -44,6 +45,50 @@ WearRecoveryUI::WearRecoveryUI() touch_screen_allowed_ = true; } static void FlipOrientation() { auto rotation = gr_get_rotation(); if (rotation == GRRotation::NONE) { gr_rotate(GRRotation::DOWN); } else if (rotation == GRRotation::DOWN) { gr_rotate(GRRotation::NONE); } else { LOG(WARNING) << "Unsupported rotation for wrist orientation" << static_cast<int>(rotation); } } // Match values in // frameworks/opt/wear/src/com/android/clockwork/wristorientation/WristOrientationService.java enum class WristOrientation : unsigned { LEFT_WRIST_ROTATION_0 = 0, LEFT_WRIST_ROTATION_180 = 1, RIGHT_WRIST_ROTATION_0 = 2, RIGHT_WRIST_ROTATION_180 = 3, }; static void InitWristOrientation() { auto prop = android::base::GetUintProperty("ro.boot.wrist_orientation", 0u); WristOrientation orientation{ prop }; if (orientation == WristOrientation::LEFT_WRIST_ROTATION_180 || orientation == WristOrientation::RIGHT_WRIST_ROTATION_180) { LOG(INFO) << "InitWristOrientation(): flipping orientation because, 'ro.boot.wrist_orientation'=" << prop; FlipOrientation(); } } bool WearRecoveryUI::Init(const std::string& locale) { auto result = ScreenRecoveryUI::Init(locale); auto wrist_orientation_enabled = android::base::GetBoolProperty("config.enable_wristorientation", false); LOG(INFO) << "WearRecoveryUI::Init(): enable_wristorientation=" << wrist_orientation_enabled; if (wrist_orientation_enabled) { InitWristOrientation(); } return result; } // Draw background frame on the screen. Does not flip pages. // Should only be called with updateMutex locked. // TODO merge drawing routines with screen_ui Loading