Merge "Fix wrong gesture insets size during rotation" into udc-dev am: dfde2d6346 am: 8433166c0f

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

Change-Id: I8c0b79e0b3f83887b6a842ffa6c535cdf1ab4bb9
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Yunfan Chen
2023-06-02 15:57:27 +00:00
committed by Automerger Merge Worker
2 changed files with 18 additions and 9 deletions

View File

@@ -227,6 +227,10 @@ public class InsetsFrameProvider implements Parcelable {
if (mArbitraryRectangle != null) {
sb.append(", mArbitraryRectangle=").append(mArbitraryRectangle.toShortString());
}
if (mMinimalInsetsSizeInDisplayCutoutSafe != null) {
sb.append(", mMinimalInsetsSizeInDisplayCutoutSafe=")
.append(mMinimalInsetsSizeInDisplayCutoutSafe);
}
sb.append("}");
return sb.toString();
}
@@ -252,6 +256,7 @@ public class InsetsFrameProvider implements Parcelable {
mInsetsSize = in.readTypedObject(Insets.CREATOR);
mInsetsSizeOverrides = in.createTypedArray(InsetsSizeOverride.CREATOR);
mArbitraryRectangle = in.readTypedObject(Rect.CREATOR);
mMinimalInsetsSizeInDisplayCutoutSafe = in.readTypedObject(Insets.CREATOR);
}
@Override
@@ -262,6 +267,7 @@ public class InsetsFrameProvider implements Parcelable {
out.writeTypedObject(mInsetsSize, flags);
out.writeTypedArray(mInsetsSizeOverrides, flags);
out.writeTypedObject(mArbitraryRectangle, flags);
out.writeTypedObject(mMinimalInsetsSizeInDisplayCutoutSafe, flags);
}
public boolean idEquals(InsetsFrameProvider o) {
@@ -280,13 +286,16 @@ public class InsetsFrameProvider implements Parcelable {
return mId == other.mId && mSource == other.mSource && mFlags == other.mFlags
&& Objects.equals(mInsetsSize, other.mInsetsSize)
&& Arrays.equals(mInsetsSizeOverrides, other.mInsetsSizeOverrides)
&& Objects.equals(mArbitraryRectangle, other.mArbitraryRectangle);
&& Objects.equals(mArbitraryRectangle, other.mArbitraryRectangle)
&& Objects.equals(mMinimalInsetsSizeInDisplayCutoutSafe,
other.mMinimalInsetsSizeInDisplayCutoutSafe);
}
@Override
public int hashCode() {
return Objects.hash(mId, mSource, mFlags, mInsetsSize,
Arrays.hashCode(mInsetsSizeOverrides), mArbitraryRectangle);
Arrays.hashCode(mInsetsSizeOverrides), mArbitraryRectangle,
mMinimalInsetsSizeInDisplayCutoutSafe);
}
public static final @NonNull Parcelable.Creator<InsetsFrameProvider> CREATOR =

View File

@@ -76,7 +76,6 @@ import android.telecom.TelecomManager;
import android.text.TextUtils;
import android.util.Log;
import android.view.Display;
import android.view.DisplayCutout;
import android.view.Gravity;
import android.view.HapticFeedbackConstants;
import android.view.InsetsFrameProvider;
@@ -1730,9 +1729,6 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
tappableElementProvider.setInsetsSize(Insets.NONE);
}
final DisplayCutout cutout = userContext.getDisplay().getCutout();
final int safeInsetsLeft = cutout != null ? cutout.getSafeInsetLeft() : 0;
final int safeInsetsRight = cutout != null ? cutout.getSafeInsetRight() : 0;
final int gestureHeight = userContext.getResources().getDimensionPixelSize(
com.android.internal.R.dimen.navigation_bar_gesture_height);
final boolean handlingGesture = mEdgeBackGestureHandler.isHandlingGestures();
@@ -1742,19 +1738,23 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
mandatoryGestureProvider.setInsetsSize(Insets.of(0, 0, 0, gestureHeight));
}
final int gestureInsetsLeft = handlingGesture
? mEdgeBackGestureHandler.getEdgeWidthLeft() + safeInsetsLeft : 0;
? mEdgeBackGestureHandler.getEdgeWidthLeft() : 0;
final int gestureInsetsRight = handlingGesture
? mEdgeBackGestureHandler.getEdgeWidthRight() + safeInsetsRight : 0;
? mEdgeBackGestureHandler.getEdgeWidthRight() : 0;
return new InsetsFrameProvider[] {
navBarProvider,
tappableElementProvider,
mandatoryGestureProvider,
new InsetsFrameProvider(mInsetsSourceOwner, 0, WindowInsets.Type.systemGestures())
.setSource(InsetsFrameProvider.SOURCE_DISPLAY)
.setInsetsSize(Insets.of(gestureInsetsLeft, 0, 0, 0)),
.setInsetsSize(Insets.of(gestureInsetsLeft, 0, 0, 0))
.setMinimalInsetsSizeInDisplayCutoutSafe(
Insets.of(gestureInsetsLeft, 0, 0, 0)),
new InsetsFrameProvider(mInsetsSourceOwner, 1, WindowInsets.Type.systemGestures())
.setSource(InsetsFrameProvider.SOURCE_DISPLAY)
.setInsetsSize(Insets.of(0, 0, gestureInsetsRight, 0))
.setMinimalInsetsSizeInDisplayCutoutSafe(
Insets.of(0, 0, gestureInsetsRight, 0))
};
}