Add a config to control split-screen task dimming

In split-screen when a task is the IME target, the other one is dimmed.
Add a config to enable/disable this functionality.

Test: Manual
Bug: 229090560
Change-Id: If41d89744acd6dcba27085755b6cd3947ee3ad62
This commit is contained in:
Jerry Chang
2022-05-11 01:47:04 +00:00
parent 56043e3d57
commit fb9f47fd4f
2 changed files with 9 additions and 2 deletions

View File

@@ -100,4 +100,7 @@
<!-- The default gravity for the picture-in-picture window.
Currently, this maps to Gravity.BOTTOM | Gravity.RIGHT -->
<integer name="config_defaultPictureInPictureGravity">0x55</integer>
<!-- Whether to dim a split-screen task when the other is the IME target -->
<bool name="config_dimNonImeAttachedSide">true</bool>
</resources>

View File

@@ -107,6 +107,8 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange
private int mOrientation;
private int mRotation;
private final boolean mDimNonImeSide;
public SplitLayout(String windowName, Context context, Configuration configuration,
SplitLayoutHandler splitLayoutHandler,
SplitWindowManager.ParentContainerCallbacks parentContainerCallbacks,
@@ -131,6 +133,8 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange
mRootBounds.set(configuration.windowConfiguration.getBounds());
mDividerSnapAlgorithm = getSnapAlgorithm(mContext, mRootBounds, null);
resetDividerPosition();
mDimNonImeSide = resources.getBoolean(R.bool.config_dimNonImeAttachedSide);
}
private int getDividerInsets(Resources resources, Display display) {
@@ -860,10 +864,10 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange
// Update target dim values
mLastDim1 = mDimValue1;
mTargetDim1 = imeTargetPosition == SPLIT_POSITION_BOTTOM_OR_RIGHT && mImeShown
? ADJUSTED_NONFOCUS_DIM : 0.0f;
&& mDimNonImeSide ? ADJUSTED_NONFOCUS_DIM : 0.0f;
mLastDim2 = mDimValue2;
mTargetDim2 = imeTargetPosition == SPLIT_POSITION_TOP_OR_LEFT && mImeShown
? ADJUSTED_NONFOCUS_DIM : 0.0f;
&& mDimNonImeSide ? ADJUSTED_NONFOCUS_DIM : 0.0f;
// Calculate target bounds offset for IME
mLastYOffset = mYOffsetForIme;