Merge "Update nav bar insets when in extractView" into udc-dev am: 8a192565d0 am: 585a84622b
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23371157 Change-Id: Ia1caefb43eba104668146fcc878cd6bbc1df0f28 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -246,8 +246,7 @@ final class NavigationBarController {
|
|||||||
@Override
|
@Override
|
||||||
public void updateTouchableInsets(@NonNull InputMethodService.Insets originalInsets,
|
public void updateTouchableInsets(@NonNull InputMethodService.Insets originalInsets,
|
||||||
@NonNull ViewTreeObserver.InternalInsetsInfo dest) {
|
@NonNull ViewTreeObserver.InternalInsetsInfo dest) {
|
||||||
if (!mImeDrawsImeNavBar || mNavigationBarFrame == null
|
if (!mImeDrawsImeNavBar || mNavigationBarFrame == null) {
|
||||||
|| mService.isExtractViewShown()) {
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -255,6 +254,10 @@ final class NavigationBarController {
|
|||||||
if (systemInsets != null) {
|
if (systemInsets != null) {
|
||||||
final Window window = mService.mWindow.getWindow();
|
final Window window = mService.mWindow.getWindow();
|
||||||
final View decor = window.getDecorView();
|
final View decor = window.getDecorView();
|
||||||
|
|
||||||
|
// If the extract view is shown, everything is touchable, so no need to update
|
||||||
|
// touchable insets, but we still update normal insets below.
|
||||||
|
if (!mService.isExtractViewShown()) {
|
||||||
Region touchableRegion = null;
|
Region touchableRegion = null;
|
||||||
final View inputFrame = mService.mInputFrame;
|
final View inputFrame = mService.mInputFrame;
|
||||||
switch (originalInsets.touchableInsets) {
|
switch (originalInsets.touchableInsets) {
|
||||||
@@ -271,7 +274,7 @@ final class NavigationBarController {
|
|||||||
if (inputFrame.getVisibility() == View.VISIBLE) {
|
if (inputFrame.getVisibility() == View.VISIBLE) {
|
||||||
inputFrame.getLocationInWindow(mTempPos);
|
inputFrame.getLocationInWindow(mTempPos);
|
||||||
mTempRect.set(mTempPos[0], originalInsets.contentTopInsets,
|
mTempRect.set(mTempPos[0], originalInsets.contentTopInsets,
|
||||||
mTempPos[0] + inputFrame.getWidth() ,
|
mTempPos[0] + inputFrame.getWidth(),
|
||||||
mTempPos[1] + inputFrame.getHeight());
|
mTempPos[1] + inputFrame.getHeight());
|
||||||
touchableRegion = new Region(mTempRect);
|
touchableRegion = new Region(mTempRect);
|
||||||
}
|
}
|
||||||
@@ -302,6 +305,7 @@ final class NavigationBarController {
|
|||||||
dest.touchableRegion.set(touchableRegion);
|
dest.touchableRegion.set(touchableRegion);
|
||||||
dest.setTouchableInsets(
|
dest.setTouchableInsets(
|
||||||
ViewTreeObserver.InternalInsetsInfo.TOUCHABLE_INSETS_REGION);
|
ViewTreeObserver.InternalInsetsInfo.TOUCHABLE_INSETS_REGION);
|
||||||
|
}
|
||||||
|
|
||||||
// TODO(b/215443343): See if we can use View#OnLayoutChangeListener().
|
// TODO(b/215443343): See if we can use View#OnLayoutChangeListener().
|
||||||
// TODO(b/215443343): See if we can replace DecorView#mNavigationColorViewState.view
|
// TODO(b/215443343): See if we can replace DecorView#mNavigationColorViewState.view
|
||||||
|
|||||||
Reference in New Issue
Block a user