diff options
| author | 2017-03-16 18:22:28 +0000 | |
|---|---|---|
| committer | 2017-03-16 18:22:32 +0000 | |
| commit | c8913dac2ec661f7c13a50e3e0ecd004908b5c3d (patch) | |
| tree | a050073e75692478f757bbcca928894337c67486 | |
| parent | 6b2cde6bfc458a481be044087b64ebcbee21afee (diff) | |
| parent | 2824d7c1b32675233221bd30d24b60f2dac2bdd5 (diff) | |
Merge "Ensuring that we remove the input consumer after moving expanded PiP"
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()) { |