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

Commit c5130bb7 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Fix touchable region calculation in NavigationBarController (2nd)" into...

Merge "Fix touchable region calculation in NavigationBarController (2nd)" into tm-dev am: baae0bcf am: dd35e6b5

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/17951295



Change-Id: I546c35796c3be67096ac7de42c9f098695f11629
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 7c92c9e5 dd35e6b5
Loading
Loading
Loading
Loading
+13 −5
Original line number Diff line number Diff line
@@ -152,6 +152,7 @@ final class NavigationBarController {
        private boolean mDrawLegacyNavigationBarBackground;

        private final Rect mTempRect = new Rect();
        private final int[] mTempPos = new int[2];

        Impl(@NonNull InputMethodService inputMethodService) {
            mService = inputMethodService;
@@ -259,21 +260,28 @@ final class NavigationBarController {
                switch (originalInsets.touchableInsets) {
                    case ViewTreeObserver.InternalInsetsInfo.TOUCHABLE_INSETS_FRAME:
                        if (inputFrame.getVisibility() == View.VISIBLE) {
                            inputFrame.getBoundsOnScreen(mTempRect);
                            inputFrame.getLocationInWindow(mTempPos);
                            mTempRect.set(mTempPos[0], mTempPos[1],
                                    mTempPos[0] + inputFrame.getWidth(),
                                    mTempPos[1] + inputFrame.getHeight());
                            touchableRegion = new Region(mTempRect);
                        }
                        break;
                    case ViewTreeObserver.InternalInsetsInfo.TOUCHABLE_INSETS_CONTENT:
                        if (inputFrame.getVisibility() == View.VISIBLE) {
                            inputFrame.getBoundsOnScreen(mTempRect);
                            mTempRect.top = originalInsets.contentTopInsets;
                            inputFrame.getLocationInWindow(mTempPos);
                            mTempRect.set(mTempPos[0], originalInsets.contentTopInsets,
                                    mTempPos[0] + inputFrame.getWidth() ,
                                    mTempPos[1] + inputFrame.getHeight());
                            touchableRegion = new Region(mTempRect);
                        }
                        break;
                    case ViewTreeObserver.InternalInsetsInfo.TOUCHABLE_INSETS_VISIBLE:
                        if (inputFrame.getVisibility() == View.VISIBLE) {
                            inputFrame.getBoundsOnScreen(mTempRect);
                            mTempRect.top = originalInsets.visibleTopInsets;
                            inputFrame.getLocationInWindow(mTempPos);
                            mTempRect.set(mTempPos[0], originalInsets.visibleTopInsets,
                                    mTempPos[0] + inputFrame.getWidth(),
                                    mTempPos[1] + inputFrame.getHeight());
                            touchableRegion = new Region(mTempRect);
                        }
                        break;