Loading services/core/java/com/android/server/wm/DragState.java +23 −4 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import android.view.animation.Animation; import android.view.animation.AnimationSet; import android.view.animation.DecelerateInterpolator; import android.view.animation.Interpolator; import android.view.animation.ScaleAnimation; import android.view.animation.Transformation; import android.view.animation.TranslateAnimation; import com.android.server.input.InputApplicationHandle; Loading Loading @@ -324,6 +325,13 @@ class DragState { cleanUpDragLw(); } void cancelDragLw() { if (mAnimation != null) { return; } mAnimation = createCancelAnimationLocked(); mService.scheduleAnimationLocked(); } private void cleanUpDragLw() { broadcastDragEndedLw(); Loading Loading @@ -525,11 +533,11 @@ class DragState { return false; } mTransformation.getMatrix().postTranslate( mCurrentX - mThumbOffsetX, mCurrentY - mThumbOffsetY); final float tmpFloats[] = mService.mTmpFloats; mTransformation.getMatrix().getValues(tmpFloats); mSurfaceControl.setPosition( tmpFloats[Matrix.MTRANS_X] - mThumbOffsetX, tmpFloats[Matrix.MTRANS_Y] - mThumbOffsetY); mSurfaceControl.setPosition(tmpFloats[Matrix.MTRANS_X], tmpFloats[Matrix.MTRANS_Y]); mSurfaceControl.setAlpha(mTransformation.getAlpha()); mSurfaceControl.setMatrix(tmpFloats[Matrix.MSCALE_X], tmpFloats[Matrix.MSKEW_Y], tmpFloats[Matrix.MSKEW_X], tmpFloats[Matrix.MSCALE_Y]); Loading @@ -539,7 +547,7 @@ class DragState { private Animation createReturnAnimationLocked() { final AnimationSet set = new AnimationSet(false); set.addAnimation(new TranslateAnimation( mCurrentX, mOriginalX, mCurrentY, mOriginalY)); 0, mOriginalX - mCurrentX, 0, mOriginalY - mCurrentY)); set.addAnimation(new AlphaAnimation(mOriginalAlpha, mOriginalAlpha / 2)); set.setDuration(ANIMATION_DURATION_MS); set.setInterpolator(mCubicEaseOutInterpolator); Loading @@ -547,4 +555,15 @@ class DragState { set.start(); // Will start on the first call to getTransformation. return set; } private Animation createCancelAnimationLocked() { final AnimationSet set = new AnimationSet(false); set.addAnimation(new ScaleAnimation(1, 0, 1, 0, mThumbOffsetX, mThumbOffsetY)); set.addAnimation(new AlphaAnimation(mOriginalAlpha, 0)); set.setDuration(ANIMATION_DURATION_MS); set.setInterpolator(mCubicEaseOutInterpolator); set.initialize(0, 0, 0, 0); set.start(); // Will start on the first call to getTransformation. return set; } } No newline at end of file services/core/java/com/android/server/wm/Session.java +1 −1 Original line number Diff line number Diff line Loading @@ -420,7 +420,7 @@ final class Session extends IWindowSession.Stub } mService.mDragState.mDragResult = false; mService.mDragState.endDragLw(); mService.mDragState.cancelDragLw(); } finally { Binder.restoreCallingIdentity(ident); } Loading Loading
services/core/java/com/android/server/wm/DragState.java +23 −4 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import android.view.animation.Animation; import android.view.animation.AnimationSet; import android.view.animation.DecelerateInterpolator; import android.view.animation.Interpolator; import android.view.animation.ScaleAnimation; import android.view.animation.Transformation; import android.view.animation.TranslateAnimation; import com.android.server.input.InputApplicationHandle; Loading Loading @@ -324,6 +325,13 @@ class DragState { cleanUpDragLw(); } void cancelDragLw() { if (mAnimation != null) { return; } mAnimation = createCancelAnimationLocked(); mService.scheduleAnimationLocked(); } private void cleanUpDragLw() { broadcastDragEndedLw(); Loading Loading @@ -525,11 +533,11 @@ class DragState { return false; } mTransformation.getMatrix().postTranslate( mCurrentX - mThumbOffsetX, mCurrentY - mThumbOffsetY); final float tmpFloats[] = mService.mTmpFloats; mTransformation.getMatrix().getValues(tmpFloats); mSurfaceControl.setPosition( tmpFloats[Matrix.MTRANS_X] - mThumbOffsetX, tmpFloats[Matrix.MTRANS_Y] - mThumbOffsetY); mSurfaceControl.setPosition(tmpFloats[Matrix.MTRANS_X], tmpFloats[Matrix.MTRANS_Y]); mSurfaceControl.setAlpha(mTransformation.getAlpha()); mSurfaceControl.setMatrix(tmpFloats[Matrix.MSCALE_X], tmpFloats[Matrix.MSKEW_Y], tmpFloats[Matrix.MSKEW_X], tmpFloats[Matrix.MSCALE_Y]); Loading @@ -539,7 +547,7 @@ class DragState { private Animation createReturnAnimationLocked() { final AnimationSet set = new AnimationSet(false); set.addAnimation(new TranslateAnimation( mCurrentX, mOriginalX, mCurrentY, mOriginalY)); 0, mOriginalX - mCurrentX, 0, mOriginalY - mCurrentY)); set.addAnimation(new AlphaAnimation(mOriginalAlpha, mOriginalAlpha / 2)); set.setDuration(ANIMATION_DURATION_MS); set.setInterpolator(mCubicEaseOutInterpolator); Loading @@ -547,4 +555,15 @@ class DragState { set.start(); // Will start on the first call to getTransformation. return set; } private Animation createCancelAnimationLocked() { final AnimationSet set = new AnimationSet(false); set.addAnimation(new ScaleAnimation(1, 0, 1, 0, mThumbOffsetX, mThumbOffsetY)); set.addAnimation(new AlphaAnimation(mOriginalAlpha, 0)); set.setDuration(ANIMATION_DURATION_MS); set.setInterpolator(mCubicEaseOutInterpolator); set.initialize(0, 0, 0, 0); set.start(); // Will start on the first call to getTransformation. return set; } } No newline at end of file
services/core/java/com/android/server/wm/Session.java +1 −1 Original line number Diff line number Diff line Loading @@ -420,7 +420,7 @@ final class Session extends IWindowSession.Stub } mService.mDragState.mDragResult = false; mService.mDragState.endDragLw(); mService.mDragState.cancelDragLw(); } finally { Binder.restoreCallingIdentity(ident); } Loading