Skip to content

Commit 9921d84

Browse files
Craig MautnerAndroid (Google) Code Review
authored andcommitted
Merge "Eliminate potential for NPE in WindowAnimator." into jb-mr1-dev
2 parents 61d3704 + ac439e5 commit 9921d84

File tree

1 file changed

+12
-8
lines changed

1 file changed

+12
-8
lines changed

services/java/com/android/server/wm/WindowAnimator.java

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -139,10 +139,8 @@ public void run() {
139139
}
140140

141141
void addDisplayLocked(final int displayId) {
142-
DisplayContentsAnimator displayAnimator = getDisplayContentsAnimatorLocked(displayId);
143-
displayAnimator.mWindowAnimationBackgroundSurface =
144-
new DimSurface(mService.mFxSession, displayId);
145-
displayAnimator.mDimAnimator = new DimAnimator(mService.mFxSession, displayId);
142+
// Create the DisplayContentsAnimator object by retrieving it.
143+
getDisplayContentsAnimatorLocked(displayId);
146144
if (displayId == Display.DEFAULT_DISPLAY) {
147145
mInitialized = true;
148146
}
@@ -787,7 +785,7 @@ void setAppLayoutChanges(final AppWindowAnimator appAnimator, final int changes,
787785
private DisplayContentsAnimator getDisplayContentsAnimatorLocked(int displayId) {
788786
DisplayContentsAnimator displayAnimator = mDisplayContentsAnimators.get(displayId);
789787
if (displayAnimator == null) {
790-
displayAnimator = new DisplayContentsAnimator();
788+
displayAnimator = new DisplayContentsAnimator(displayId);
791789
mDisplayContentsAnimators.put(displayId, displayAnimator);
792790
}
793791
return displayAnimator;
@@ -801,11 +799,17 @@ ScreenRotationAnimation getScreenRotationAnimationLocked(int displayId) {
801799
return getDisplayContentsAnimatorLocked(displayId).mScreenRotationAnimation;
802800
}
803801

804-
private static class DisplayContentsAnimator {
802+
private class DisplayContentsAnimator {
805803
WinAnimatorList mWinAnimators = new WinAnimatorList();
806-
DimAnimator mDimAnimator = null;
804+
final DimAnimator mDimAnimator;
807805
DimAnimator.Parameters mDimParams = null;
808-
DimSurface mWindowAnimationBackgroundSurface = null;
806+
final DimSurface mWindowAnimationBackgroundSurface;
809807
ScreenRotationAnimation mScreenRotationAnimation = null;
808+
809+
public DisplayContentsAnimator(int displayId) {
810+
mDimAnimator = new DimAnimator(mService.mFxSession, displayId);
811+
mWindowAnimationBackgroundSurface =
812+
new DimSurface(mService.mFxSession, displayId);
813+
}
810814
}
811815
}

0 commit comments

Comments
 (0)