Merge "Ignore cropping taskbar for top app in split portrait" into tm-qpr-dev am: d424d7a00b

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

Change-Id: Id82d9144e68620ed5cb048913a4690fa4fee4bf6
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Vinit Nayak
2022-12-01 19:47:32 +00:00
committed by Automerger Merge Worker

View File

@@ -39,6 +39,7 @@ public class PreviewPositionHelper {
private boolean mIsOrientationChanged; private boolean mIsOrientationChanged;
private SplitBounds mSplitBounds; private SplitBounds mSplitBounds;
private int mDesiredStagePosition; private int mDesiredStagePosition;
private boolean mTaskbarInApp;
public Matrix getMatrix() { public Matrix getMatrix() {
return mMatrix; return mMatrix;
@@ -57,6 +58,10 @@ public class PreviewPositionHelper {
mDesiredStagePosition = desiredStagePosition; mDesiredStagePosition = desiredStagePosition;
} }
public void setTaskbarInApp(boolean taskbarInApp) {
mTaskbarInApp = taskbarInApp;
}
/** /**
* Updates the matrix based on the provided parameters * Updates the matrix based on the provided parameters
*/ */
@@ -83,8 +88,18 @@ public class PreviewPositionHelper {
? mSplitBounds.topTaskPercent ? mSplitBounds.topTaskPercent
: (1 - (mSplitBounds.topTaskPercent + mSplitBounds.dividerHeightPercent)); : (1 - (mSplitBounds.topTaskPercent + mSplitBounds.dividerHeightPercent));
// Scale portrait height to that of (actual screen - taskbar inset) // Scale portrait height to that of (actual screen - taskbar inset)
fullscreenTaskHeight = (screenHeightPx - taskbarSize) * taskPercent; fullscreenTaskHeight = (screenHeightPx) * taskPercent;
canvasScreenRatio = canvasHeight / fullscreenTaskHeight; if (mTaskbarInApp) {
canvasScreenRatio = canvasHeight / fullscreenTaskHeight;
} else {
if (mDesiredStagePosition == STAGE_POSITION_TOP_OR_LEFT) {
// Top app isn't cropped at all by taskbar
canvasScreenRatio = 0;
} else {
// Same as fullscreen ratio
canvasScreenRatio = (float) canvasWidth / screenWidthPx;
}
}
} else { } else {
// For landscape, scale the width // For landscape, scale the width
taskPercent = mDesiredStagePosition == STAGE_POSITION_TOP_OR_LEFT taskPercent = mDesiredStagePosition == STAGE_POSITION_TOP_OR_LEFT