Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ac439e57 authored by Craig Mautner's avatar Craig Mautner
Browse files

Eliminate potential for NPE in WindowAnimator.

Fixes bug 7209850.

Change-Id: I8c8751ab240ea389a2a779c94c05fe786ca8762a
parent ced8d21f
Loading
Loading
Loading
Loading
+12 −8
Original line number Diff line number Diff line
@@ -139,10 +139,8 @@ public class WindowAnimator {
    }

    void addDisplayLocked(final int displayId) {
        DisplayContentsAnimator displayAnimator = getDisplayContentsAnimatorLocked(displayId);
        displayAnimator.mWindowAnimationBackgroundSurface =
                new DimSurface(mService.mFxSession, displayId);
        displayAnimator.mDimAnimator = new DimAnimator(mService.mFxSession, displayId);
        // Create the DisplayContentsAnimator object by retrieving it.
        getDisplayContentsAnimatorLocked(displayId);
        if (displayId == Display.DEFAULT_DISPLAY) {
            mInitialized = true;
        }
@@ -787,7 +785,7 @@ public class WindowAnimator {
    private DisplayContentsAnimator getDisplayContentsAnimatorLocked(int displayId) {
        DisplayContentsAnimator displayAnimator = mDisplayContentsAnimators.get(displayId);
        if (displayAnimator == null) {
            displayAnimator = new DisplayContentsAnimator();
            displayAnimator = new DisplayContentsAnimator(displayId);
            mDisplayContentsAnimators.put(displayId, displayAnimator);
        }
        return displayAnimator;
@@ -801,11 +799,17 @@ public class WindowAnimator {
        return getDisplayContentsAnimatorLocked(displayId).mScreenRotationAnimation;
    }

    private static class DisplayContentsAnimator {
    private class DisplayContentsAnimator {
        WinAnimatorList mWinAnimators = new WinAnimatorList();
        DimAnimator mDimAnimator = null;
        final DimAnimator mDimAnimator;
        DimAnimator.Parameters mDimParams = null;
        DimSurface mWindowAnimationBackgroundSurface = null;
        final DimSurface mWindowAnimationBackgroundSurface;
        ScreenRotationAnimation mScreenRotationAnimation = null;

        public DisplayContentsAnimator(int displayId) {
            mDimAnimator = new DimAnimator(mService.mFxSession, displayId);
            mWindowAnimationBackgroundSurface =
                    new DimSurface(mService.mFxSession, displayId);
        }
    }
}