System crash fixed when turn off MagnificationGesture
Symptom: WindowManagerService throws exception and system crashes. Root cause: When the MagnificationGesture is turned off during animation of scale up/down, WindowManagerService.mAccessibilityController can be null so exception is thrown. Solution: Cancel ongoing animation before turning off MagnificationGesture. Change-Id: I469d84e024bdd453e3729a69229398233ed2eb61
This commit is contained in:
committed by
Zoran Jovanovic
parent
7abb36599d
commit
5b6d99e87a
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user