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:
@@ -100,4 +100,7 @@
|
|||||||
<!-- The default gravity for the picture-in-picture window.
|
<!-- The default gravity for the picture-in-picture window.
|
||||||
Currently, this maps to Gravity.BOTTOM | Gravity.RIGHT -->
|
Currently, this maps to Gravity.BOTTOM | Gravity.RIGHT -->
|
||||||
<integer name="config_defaultPictureInPictureGravity">0x55</integer>
|
<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>
|
</resources>
|
||||||
|
|||||||
@@ -107,6 +107,8 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange
|
|||||||
private int mOrientation;
|
private int mOrientation;
|
||||||
private int mRotation;
|
private int mRotation;
|
||||||
|
|
||||||
|
private final boolean mDimNonImeSide;
|
||||||
|
|
||||||
public SplitLayout(String windowName, Context context, Configuration configuration,
|
public SplitLayout(String windowName, Context context, Configuration configuration,
|
||||||
SplitLayoutHandler splitLayoutHandler,
|
SplitLayoutHandler splitLayoutHandler,
|
||||||
SplitWindowManager.ParentContainerCallbacks parentContainerCallbacks,
|
SplitWindowManager.ParentContainerCallbacks parentContainerCallbacks,
|
||||||
@@ -131,6 +133,8 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange
|
|||||||
mRootBounds.set(configuration.windowConfiguration.getBounds());
|
mRootBounds.set(configuration.windowConfiguration.getBounds());
|
||||||
mDividerSnapAlgorithm = getSnapAlgorithm(mContext, mRootBounds, null);
|
mDividerSnapAlgorithm = getSnapAlgorithm(mContext, mRootBounds, null);
|
||||||
resetDividerPosition();
|
resetDividerPosition();
|
||||||
|
|
||||||
|
mDimNonImeSide = resources.getBoolean(R.bool.config_dimNonImeAttachedSide);
|
||||||
}
|
}
|
||||||
|
|
||||||
private int getDividerInsets(Resources resources, Display display) {
|
private int getDividerInsets(Resources resources, Display display) {
|
||||||
@@ -860,10 +864,10 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange
|
|||||||
// Update target dim values
|
// Update target dim values
|
||||||
mLastDim1 = mDimValue1;
|
mLastDim1 = mDimValue1;
|
||||||
mTargetDim1 = imeTargetPosition == SPLIT_POSITION_BOTTOM_OR_RIGHT && mImeShown
|
mTargetDim1 = imeTargetPosition == SPLIT_POSITION_BOTTOM_OR_RIGHT && mImeShown
|
||||||
? ADJUSTED_NONFOCUS_DIM : 0.0f;
|
&& mDimNonImeSide ? ADJUSTED_NONFOCUS_DIM : 0.0f;
|
||||||
mLastDim2 = mDimValue2;
|
mLastDim2 = mDimValue2;
|
||||||
mTargetDim2 = imeTargetPosition == SPLIT_POSITION_TOP_OR_LEFT && mImeShown
|
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
|
// Calculate target bounds offset for IME
|
||||||
mLastYOffset = mYOffsetForIme;
|
mLastYOffset = mYOffsetForIme;
|
||||||
|
|||||||
Reference in New Issue
Block a user