Merge "Dismiss staged split after folded the device" into sc-v2-dev am: 4048fa7a26
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14700845 Change-Id: Icd0fc9969d2b6a0552c8aea89aefe61e04f36f01
This commit is contained in:
@@ -44,6 +44,7 @@ import android.annotation.Nullable;
|
|||||||
import android.app.ActivityManager;
|
import android.app.ActivityManager;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
|
import android.hardware.devicestate.DeviceStateManager;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
@@ -158,6 +159,10 @@ class StageCoordinator implements SplitLayout.SplitLayoutHandler,
|
|||||||
mSurfaceSession);
|
mSurfaceSession);
|
||||||
mDisplayImeController = displayImeController;
|
mDisplayImeController = displayImeController;
|
||||||
mRootTDAOrganizer.registerListener(displayId, this);
|
mRootTDAOrganizer.registerListener(displayId, this);
|
||||||
|
final DeviceStateManager deviceStateManager =
|
||||||
|
mContext.getSystemService(DeviceStateManager.class);
|
||||||
|
deviceStateManager.registerCallback(taskOrganizer.getExecutor(),
|
||||||
|
new DeviceStateManager.FoldStateListener(mContext, this::onFoldedStateChanged));
|
||||||
mSplitTransitions = new SplitScreenTransitions(transactionPool, transitions,
|
mSplitTransitions = new SplitScreenTransitions(transactionPool, transitions,
|
||||||
mOnTransitionAnimationComplete);
|
mOnTransitionAnimationComplete);
|
||||||
transitions.addHandler(this);
|
transitions.addHandler(this);
|
||||||
@@ -599,6 +604,12 @@ class StageCoordinator implements SplitLayout.SplitLayoutHandler,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void onFoldedStateChanged(boolean folded) {
|
||||||
|
if (folded && mMainStage.isActive()) {
|
||||||
|
exitSplitScreen();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private Rect getSideStageBounds() {
|
private Rect getSideStageBounds() {
|
||||||
return mSideStagePosition == SPLIT_POSITION_TOP_OR_LEFT
|
return mSideStagePosition == SPLIT_POSITION_TOP_OR_LEFT
|
||||||
? mSplitLayout.getBounds1() : mSplitLayout.getBounds2();
|
? mSplitLayout.getBounds1() : mSplitLayout.getBounds2();
|
||||||
|
|||||||
Reference in New Issue
Block a user