Merge "Fix issue with" into rvc-dev am: a1596ea543
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11933639 Change-Id: I87f35d36107373e5e50d8fbf048ce5b5882d99cb
This commit is contained in:
@@ -41,6 +41,7 @@ import android.window.WindowContainerTransaction;
|
||||
import com.android.systemui.Dependency;
|
||||
import com.android.systemui.UiOffloadThread;
|
||||
import com.android.systemui.broadcast.BroadcastDispatcher;
|
||||
import com.android.systemui.model.SysUiState;
|
||||
import com.android.systemui.pip.BasePipManager;
|
||||
import com.android.systemui.pip.PipBoundsHandler;
|
||||
import com.android.systemui.pip.PipSnapAlgorithm;
|
||||
@@ -229,7 +230,8 @@ public class PipManager implements BasePipManager, PipTaskOrganizer.PipTransitio
|
||||
DeviceConfigProxy deviceConfig,
|
||||
PipBoundsHandler pipBoundsHandler,
|
||||
PipSnapAlgorithm pipSnapAlgorithm,
|
||||
PipTaskOrganizer pipTaskOrganizer) {
|
||||
PipTaskOrganizer pipTaskOrganizer,
|
||||
SysUiState sysUiState) {
|
||||
mContext = context;
|
||||
mActivityManager = ActivityManager.getService();
|
||||
|
||||
@@ -250,7 +252,7 @@ public class PipManager implements BasePipManager, PipTaskOrganizer.PipTransitio
|
||||
mInputConsumerController);
|
||||
mTouchHandler = new PipTouchHandler(context, mActivityManager,
|
||||
mMenuController, mInputConsumerController, mPipBoundsHandler, mPipTaskOrganizer,
|
||||
floatingContentCoordinator, deviceConfig, pipSnapAlgorithm);
|
||||
floatingContentCoordinator, deviceConfig, pipSnapAlgorithm, sysUiState);
|
||||
mAppOpsListener = new PipAppOpsListener(context, mActivityManager,
|
||||
mTouchHandler.getMotionHelper());
|
||||
displayController.addDisplayChangingController(mRotationController);
|
||||
|
||||
@@ -21,6 +21,13 @@ import static com.android.internal.policy.TaskResizingAlgorithm.CTRL_LEFT;
|
||||
import static com.android.internal.policy.TaskResizingAlgorithm.CTRL_NONE;
|
||||
import static com.android.internal.policy.TaskResizingAlgorithm.CTRL_RIGHT;
|
||||
import static com.android.internal.policy.TaskResizingAlgorithm.CTRL_TOP;
|
||||
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_BOUNCER_SHOWING;
|
||||
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_BUBBLES_EXPANDED;
|
||||
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_GLOBAL_ACTIONS_SHOWING;
|
||||
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_NOTIFICATION_PANEL_EXPANDED;
|
||||
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_QUICK_SETTINGS_EXPANDED;
|
||||
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING;
|
||||
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING_OCCLUDED;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
@@ -43,6 +50,7 @@ import android.view.ViewConfiguration;
|
||||
|
||||
import com.android.internal.policy.TaskResizingAlgorithm;
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.model.SysUiState;
|
||||
import com.android.systemui.pip.PipBoundsHandler;
|
||||
import com.android.systemui.pip.PipTaskOrganizer;
|
||||
import com.android.systemui.util.DeviceConfigProxy;
|
||||
@@ -58,11 +66,21 @@ public class PipResizeGestureHandler {
|
||||
|
||||
private static final String TAG = "PipResizeGestureHandler";
|
||||
|
||||
private static final int INVALID_SYSUI_STATE_MASK =
|
||||
SYSUI_STATE_GLOBAL_ACTIONS_SHOWING
|
||||
| SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING
|
||||
| SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING_OCCLUDED
|
||||
| SYSUI_STATE_BOUNCER_SHOWING
|
||||
| SYSUI_STATE_NOTIFICATION_PANEL_EXPANDED
|
||||
| SYSUI_STATE_BUBBLES_EXPANDED
|
||||
| SYSUI_STATE_QUICK_SETTINGS_EXPANDED;
|
||||
|
||||
private final Context mContext;
|
||||
private final PipBoundsHandler mPipBoundsHandler;
|
||||
private final PipMotionHelper mMotionHelper;
|
||||
private final int mDisplayId;
|
||||
private final Executor mMainExecutor;
|
||||
private final SysUiState mSysUiState;
|
||||
private final Region mTmpRegion = new Region();
|
||||
|
||||
private final PointF mDownPoint = new PointF();
|
||||
@@ -96,7 +114,7 @@ public class PipResizeGestureHandler {
|
||||
public PipResizeGestureHandler(Context context, PipBoundsHandler pipBoundsHandler,
|
||||
PipMotionHelper motionHelper, DeviceConfigProxy deviceConfig,
|
||||
PipTaskOrganizer pipTaskOrganizer, Supplier<Rect> movementBoundsSupplier,
|
||||
Runnable updateMovementBoundsRunnable) {
|
||||
Runnable updateMovementBoundsRunnable, SysUiState sysUiState) {
|
||||
mContext = context;
|
||||
mDisplayId = context.getDisplayId();
|
||||
mMainExecutor = context.getMainExecutor();
|
||||
@@ -105,6 +123,7 @@ public class PipResizeGestureHandler {
|
||||
mPipTaskOrganizer = pipTaskOrganizer;
|
||||
mMovementBoundsSupplier = movementBoundsSupplier;
|
||||
mUpdateMovementBoundsRunnable = updateMovementBoundsRunnable;
|
||||
mSysUiState = sysUiState;
|
||||
|
||||
context.getDisplay().getRealSize(mMaxSize);
|
||||
reloadResources();
|
||||
@@ -258,13 +277,17 @@ public class PipResizeGestureHandler {
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isInValidSysUiState() {
|
||||
return (mSysUiState.getFlags() & INVALID_SYSUI_STATE_MASK) == 0;
|
||||
}
|
||||
|
||||
private void onMotionEvent(MotionEvent ev) {
|
||||
int action = ev.getActionMasked();
|
||||
float x = ev.getX();
|
||||
float y = ev.getY();
|
||||
if (action == MotionEvent.ACTION_DOWN) {
|
||||
mLastResizeBounds.setEmpty();
|
||||
mAllowGesture = isWithinTouchRegion((int) x, (int) y);
|
||||
mAllowGesture = isInValidSysUiState() && isWithinTouchRegion((int) x, (int) y);
|
||||
if (mAllowGesture) {
|
||||
setCtrlType((int) x, (int) y);
|
||||
mDownPoint.set(x, y);
|
||||
|
||||
@@ -57,6 +57,7 @@ import androidx.dynamicanimation.animation.SpringForce;
|
||||
import com.android.internal.annotations.VisibleForTesting;
|
||||
import com.android.internal.os.logging.MetricsLoggerWrapper;
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.model.SysUiState;
|
||||
import com.android.systemui.pip.PipAnimationController;
|
||||
import com.android.systemui.pip.PipBoundsHandler;
|
||||
import com.android.systemui.pip.PipSnapAlgorithm;
|
||||
@@ -222,7 +223,8 @@ public class PipTouchHandler {
|
||||
PipTaskOrganizer pipTaskOrganizer,
|
||||
FloatingContentCoordinator floatingContentCoordinator,
|
||||
DeviceConfigProxy deviceConfig,
|
||||
PipSnapAlgorithm pipSnapAlgorithm) {
|
||||
PipSnapAlgorithm pipSnapAlgorithm,
|
||||
SysUiState sysUiState) {
|
||||
// Initialize the Pip input consumer
|
||||
mContext = context;
|
||||
mActivityManager = activityManager;
|
||||
@@ -237,7 +239,7 @@ public class PipTouchHandler {
|
||||
mPipResizeGestureHandler =
|
||||
new PipResizeGestureHandler(context, pipBoundsHandler, mMotionHelper,
|
||||
deviceConfig, pipTaskOrganizer, this::getMovementBounds,
|
||||
this::updateMovementBounds);
|
||||
this::updateMovementBounds, sysUiState);
|
||||
mTouchState = new PipTouchState(ViewConfiguration.get(context), mHandler,
|
||||
() -> mMenuController.showMenuWithDelay(MENU_STATE_FULL, mMotionHelper.getBounds(),
|
||||
true /* allowMenuTimeout */, willResizeMenu(), shouldShowResizeHandle()));
|
||||
|
||||
@@ -23,7 +23,6 @@ import static org.mockito.Mockito.times;
|
||||
import static org.mockito.Mockito.verify;
|
||||
|
||||
import android.app.IActivityManager;
|
||||
import android.app.IActivityTaskManager;
|
||||
import android.graphics.Point;
|
||||
import android.graphics.Rect;
|
||||
import android.testing.AndroidTestingRunner;
|
||||
@@ -34,6 +33,7 @@ import androidx.test.filters.SmallTest;
|
||||
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.SysuiTestCase;
|
||||
import com.android.systemui.model.SysUiState;
|
||||
import com.android.systemui.pip.PipBoundsHandler;
|
||||
import com.android.systemui.pip.PipSnapAlgorithm;
|
||||
import com.android.systemui.pip.PipTaskOrganizer;
|
||||
@@ -82,6 +82,9 @@ public class PipTouchHandlerTest extends SysuiTestCase {
|
||||
@Mock
|
||||
private DeviceConfigProxy mDeviceConfigProxy;
|
||||
|
||||
@Mock
|
||||
private SysUiState mSysUiState;
|
||||
|
||||
private PipSnapAlgorithm mPipSnapAlgorithm;
|
||||
private PipMotionHelper mMotionHelper;
|
||||
private PipResizeGestureHandler mPipResizeGestureHandler;
|
||||
@@ -101,7 +104,7 @@ public class PipTouchHandlerTest extends SysuiTestCase {
|
||||
mPipTouchHandler = new PipTouchHandler(mContext, mActivityManager,
|
||||
mPipMenuActivityController, mInputConsumerController, mPipBoundsHandler,
|
||||
mPipTaskOrganizer, mFloatingContentCoordinator, mDeviceConfigProxy,
|
||||
mPipSnapAlgorithm);
|
||||
mPipSnapAlgorithm, mSysUiState);
|
||||
mMotionHelper = Mockito.spy(mPipTouchHandler.getMotionHelper());
|
||||
mPipResizeGestureHandler = Mockito.spy(mPipTouchHandler.getPipResizeGestureHandler());
|
||||
mPipTouchHandler.setPipMotionHelper(mMotionHelper);
|
||||
|
||||
Reference in New Issue
Block a user