diff options
3 files changed, 18 insertions, 4 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/pip/phone/PipMenuActivity.java b/packages/SystemUI/src/com/android/systemui/pip/phone/PipMenuActivity.java index 2f9c3fc3368a..36360e735c70 100644 --- a/packages/SystemUI/src/com/android/systemui/pip/phone/PipMenuActivity.java +++ b/packages/SystemUI/src/com/android/systemui/pip/phone/PipMenuActivity.java @@ -268,7 +268,10 @@ public class PipMenuActivity extends Activity { mMenuContainerAnimator.addUpdateListener(mMenuBgUpdateListener); mMenuContainerAnimator.start(); } else { + // If we are already visible, then just start the delayed dismiss and unregister any + // existing input consumers from the previous drag repostDelayedFinish(POST_INTERACTION_DISMISS_DELAY); + notifyUnregisterInputConsumer(); } } @@ -416,6 +419,12 @@ public class PipMenuActivity extends Activity { sendMessage(m, "Could not notify controller to register input consumer"); } + private void notifyUnregisterInputConsumer() { + Message m = Message.obtain(); + m.what = PipMenuActivityController.MESSAGE_UNREGISTER_INPUT_CONSUMER; + sendMessage(m, "Could not notify controller to unregister input consumer"); + } + private void notifyMenuVisibility(boolean visible) { mMenuVisible = visible; Message m = Message.obtain(); diff --git a/packages/SystemUI/src/com/android/systemui/pip/phone/PipMenuActivityController.java b/packages/SystemUI/src/com/android/systemui/pip/phone/PipMenuActivityController.java index 7dc455bd0d2c..724f45347f5d 100644 --- a/packages/SystemUI/src/com/android/systemui/pip/phone/PipMenuActivityController.java +++ b/packages/SystemUI/src/com/android/systemui/pip/phone/PipMenuActivityController.java @@ -63,6 +63,7 @@ public class PipMenuActivityController { public static final int MESSAGE_DISMISS_PIP = 103; public static final int MESSAGE_UPDATE_ACTIVITY_CALLBACK = 104; public static final int MESSAGE_REGISTER_INPUT_CONSUMER = 105; + public static final int MESSAGE_UNREGISTER_INPUT_CONSUMER = 106; /** * A listener interface to receive notification on changes in PIP. @@ -135,6 +136,10 @@ public class PipMenuActivityController { mInputConsumerController.registerInputConsumer(); break; } + case MESSAGE_UNREGISTER_INPUT_CONSUMER: { + mInputConsumerController.unregisterInputConsumer(); + break; + } case MESSAGE_UPDATE_ACTIVITY_CALLBACK: { mToActivityMessenger = msg.replyTo; mStartActivityRequested = false; diff --git a/packages/SystemUI/src/com/android/systemui/pip/phone/PipTouchHandler.java b/packages/SystemUI/src/com/android/systemui/pip/phone/PipTouchHandler.java index c52fc3e87b0e..f70d5b41ac3e 100644 --- a/packages/SystemUI/src/com/android/systemui/pip/phone/PipTouchHandler.java +++ b/packages/SystemUI/src/com/android/systemui/pip/phone/PipTouchHandler.java @@ -504,8 +504,8 @@ public class PipTouchHandler { return false; } - try { - if (ENABLE_DISMISS_DRAG_TO_TARGET) { + if (ENABLE_DISMISS_DRAG_TO_TARGET) { + try { mHandler.removeCallbacks(mShowDismissAffordance); PointF vel = mTouchState.getVelocity(); final float velocity = PointF.length(vel.x, vel.y); @@ -520,9 +520,9 @@ public class PipTouchHandler { return true; } } + } finally { + mDismissViewController.destroyDismissTarget(); } - } finally { - mDismissViewController.destroyDismissTarget(); } if (touchState.isDragging()) { |