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