Loading packages/SystemUI/src/com/android/systemui/pip/phone/PipTouchHandler.java +18 −8 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import android.content.Context; import android.graphics.Point; import android.graphics.PointF; import android.graphics.Rect; import android.graphics.RectF; import android.os.Handler; import android.os.RemoteException; import android.util.Log; Loading Loading @@ -401,7 +402,7 @@ public class PipTouchHandler { /** * Updates the appearance of the menu and scrim on top of the PiP while dismissing. */ void updateDismissFraction() { private void updateDismissFraction() { if (mMenuController != null) { Rect bounds = mMotionHelper.getBounds(); final float target = mMovementBounds.bottom + bounds.height(); Loading @@ -427,7 +428,7 @@ public class PipTouchHandler { /** * Sets the minimized state. */ void setMinimizedStateInternal(boolean isMinimized) { private void setMinimizedStateInternal(boolean isMinimized) { if (!ENABLE_MINIMIZE) { return; } Loading Loading @@ -466,7 +467,7 @@ public class PipTouchHandler { /** * Sets the menu visibility. */ void setMenuState(int menuState, boolean resize) { private void setMenuState(int menuState, boolean resize) { if (menuState == MENU_STATE_FULL) { // Save the current snap fraction and if we do not drag or move the PiP, then // we store back to this snap fraction. Otherwise, we'll reset the snap Loading Loading @@ -534,7 +535,8 @@ public class PipTouchHandler { private PipTouchGesture mDefaultMovementGesture = new PipTouchGesture() { // Whether the PiP was on the left side of the screen at the start of the gesture private boolean mStartedOnLeft; private Point mStartPosition; private final Point mStartPosition = new Point(); private final PointF mDelta = new PointF(); @Override public void onDown(PipTouchState touchState) { Loading @@ -543,7 +545,8 @@ public class PipTouchHandler { } Rect bounds = mMotionHelper.getBounds(); mStartPosition = new Point(bounds.left, bounds.top); mDelta.set(0f, 0f); mStartPosition.set(bounds.left, bounds.top); mStartedOnLeft = bounds.left < mMovementBounds.centerX(); mMovementWithinMinimize = true; mMovementWithinDismiss = touchState.getDownTouchPosition().y >= mMovementBounds.bottom; Loading Loading @@ -577,10 +580,11 @@ public class PipTouchHandler { if (touchState.isDragging()) { // Move the pinned stack freely mTmpBounds.set(mMotionHelper.getBounds()); final PointF lastDelta = touchState.getLastTouchDelta(); float left = mTmpBounds.left + lastDelta.x; float top = mTmpBounds.top + lastDelta.y; float lastX = mStartPosition.x + mDelta.x; float lastY = mStartPosition.y + mDelta.y; float left = lastX + lastDelta.x; float top = lastY + lastDelta.y; if (!touchState.allowDraggingOffscreen() || !ENABLE_MINIMIZE) { left = Math.max(mMovementBounds.left, Math.min(mMovementBounds.right, left)); } Loading @@ -590,6 +594,12 @@ public class PipTouchHandler { } else { top = Math.max(mMovementBounds.top, Math.min(mMovementBounds.bottom, top)); } // Add to the cumulative delta after bounding the position mDelta.x += left - lastX; mDelta.y += top - lastY; mTmpBounds.set(mMotionHelper.getBounds()); mTmpBounds.offsetTo((int) left, (int) top); mMotionHelper.movePip(mTmpBounds); Loading packages/SystemUI/src/com/android/systemui/pip/phone/PipTouchState.java +1 −1 Original line number Diff line number Diff line Loading @@ -61,7 +61,7 @@ public class PipTouchState { } /** * Processess a given touch event and updates the state. * Processes a given touch event and updates the state. */ public void onTouchEvent(MotionEvent ev) { switch (ev.getAction()) { Loading Loading
packages/SystemUI/src/com/android/systemui/pip/phone/PipTouchHandler.java +18 −8 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import android.content.Context; import android.graphics.Point; import android.graphics.PointF; import android.graphics.Rect; import android.graphics.RectF; import android.os.Handler; import android.os.RemoteException; import android.util.Log; Loading Loading @@ -401,7 +402,7 @@ public class PipTouchHandler { /** * Updates the appearance of the menu and scrim on top of the PiP while dismissing. */ void updateDismissFraction() { private void updateDismissFraction() { if (mMenuController != null) { Rect bounds = mMotionHelper.getBounds(); final float target = mMovementBounds.bottom + bounds.height(); Loading @@ -427,7 +428,7 @@ public class PipTouchHandler { /** * Sets the minimized state. */ void setMinimizedStateInternal(boolean isMinimized) { private void setMinimizedStateInternal(boolean isMinimized) { if (!ENABLE_MINIMIZE) { return; } Loading Loading @@ -466,7 +467,7 @@ public class PipTouchHandler { /** * Sets the menu visibility. */ void setMenuState(int menuState, boolean resize) { private void setMenuState(int menuState, boolean resize) { if (menuState == MENU_STATE_FULL) { // Save the current snap fraction and if we do not drag or move the PiP, then // we store back to this snap fraction. Otherwise, we'll reset the snap Loading Loading @@ -534,7 +535,8 @@ public class PipTouchHandler { private PipTouchGesture mDefaultMovementGesture = new PipTouchGesture() { // Whether the PiP was on the left side of the screen at the start of the gesture private boolean mStartedOnLeft; private Point mStartPosition; private final Point mStartPosition = new Point(); private final PointF mDelta = new PointF(); @Override public void onDown(PipTouchState touchState) { Loading @@ -543,7 +545,8 @@ public class PipTouchHandler { } Rect bounds = mMotionHelper.getBounds(); mStartPosition = new Point(bounds.left, bounds.top); mDelta.set(0f, 0f); mStartPosition.set(bounds.left, bounds.top); mStartedOnLeft = bounds.left < mMovementBounds.centerX(); mMovementWithinMinimize = true; mMovementWithinDismiss = touchState.getDownTouchPosition().y >= mMovementBounds.bottom; Loading Loading @@ -577,10 +580,11 @@ public class PipTouchHandler { if (touchState.isDragging()) { // Move the pinned stack freely mTmpBounds.set(mMotionHelper.getBounds()); final PointF lastDelta = touchState.getLastTouchDelta(); float left = mTmpBounds.left + lastDelta.x; float top = mTmpBounds.top + lastDelta.y; float lastX = mStartPosition.x + mDelta.x; float lastY = mStartPosition.y + mDelta.y; float left = lastX + lastDelta.x; float top = lastY + lastDelta.y; if (!touchState.allowDraggingOffscreen() || !ENABLE_MINIMIZE) { left = Math.max(mMovementBounds.left, Math.min(mMovementBounds.right, left)); } Loading @@ -590,6 +594,12 @@ public class PipTouchHandler { } else { top = Math.max(mMovementBounds.top, Math.min(mMovementBounds.bottom, top)); } // Add to the cumulative delta after bounding the position mDelta.x += left - lastX; mDelta.y += top - lastY; mTmpBounds.set(mMotionHelper.getBounds()); mTmpBounds.offsetTo((int) left, (int) top); mMotionHelper.movePip(mTmpBounds); Loading
packages/SystemUI/src/com/android/systemui/pip/phone/PipTouchState.java +1 −1 Original line number Diff line number Diff line Loading @@ -61,7 +61,7 @@ public class PipTouchState { } /** * Processess a given touch event and updates the state. * Processes a given touch event and updates the state. */ public void onTouchEvent(MotionEvent ev) { switch (ev.getAction()) { Loading