diff options
| -rw-r--r-- | services/accessibility/java/com/android/server/accessibility/ScreenMagnifier.java | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/services/accessibility/java/com/android/server/accessibility/ScreenMagnifier.java b/services/accessibility/java/com/android/server/accessibility/ScreenMagnifier.java index b4613d6d811a..a8e27a809e73 100644 --- a/services/accessibility/java/com/android/server/accessibility/ScreenMagnifier.java +++ b/services/accessibility/java/com/android/server/accessibility/ScreenMagnifier.java @@ -372,6 +372,9 @@ public final class ScreenMagnifier implements WindowManagerInternal.Magnificatio @Override public void onDestroy() { + if (mMagnificationController != null) { + mMagnificationController.cancelAnimation(); + } mScreenStateObserver.destroy(); mWindowManager.setMagnificationCallbacks(null); } @@ -988,10 +991,14 @@ public final class ScreenMagnifier implements WindowManagerInternal.Magnificatio return mCurrentMagnificationSpec.scale > 1.0f; } - public void reset(boolean animate) { + public void cancelAnimation() { if (mTransformationAnimator.isRunning()) { mTransformationAnimator.cancel(); } + } + + public void reset(boolean animate) { + cancelAnimation(); mCurrentMagnificationSpec.clear(); if (animate) { animateMangificationSpec(mSentMagnificationSpec, @@ -1056,9 +1063,7 @@ public final class ScreenMagnifier implements WindowManagerInternal.Magnificatio centerY) == 0) { return; } - if (mTransformationAnimator.isRunning()) { - mTransformationAnimator.cancel(); - } + cancelAnimation(); if (DEBUG_MAGNIFICATION_CONTROLLER) { Slog.i(LOG_TAG, "scale: " + scale + " offsetX: " + centerX + " offsetY: " + centerY); |