Clean up displayId and layerStack usage.

Make better use of Display object by saving it in DisplayContent.
Only use layerStack when referring to Surfaces. Get displayId from
default Display or default DisplayContent. Remove warnings.

Fixes bug 7038151.

Change-Id: Ie493f0f5e755dc9b91ee969ff561c2a098283ead
diff --git a/services/java/com/android/server/wm/WindowAnimator.java b/services/java/com/android/server/wm/WindowAnimator.java
index 1defa49..580f00d 100644
--- a/services/java/com/android/server/wm/WindowAnimator.java
+++ b/services/java/com/android/server/wm/WindowAnimator.java
@@ -103,6 +103,8 @@
     /** Do not modify unless holding mService.mWindowMap or this and mAnimToLayout in that order */
     final AnimatorToLayoutParams mAnimToLayout = new AnimatorToLayoutParams();
 
+    boolean mInitialized = false;
+
     WindowAnimator(final WindowManagerService service) {
         mService = service;
         mContext = service.mContext;
@@ -121,10 +123,13 @@
                 }
             }
         };
+    }
 
+    void initializeLocked(final int layerStack) {
         mWindowAnimationBackgroundSurface =
-                new DimSurface(mService.mFxSession, Display.DEFAULT_DISPLAY);
-        mDimAnimator = new DimAnimator(mService.mFxSession, Display.DEFAULT_DISPLAY);
+                new DimSurface(mService.mFxSession, layerStack);
+        mDimAnimator = new DimAnimator(mService.mFxSession, layerStack);
+        mInitialized = true;
     }
 
     /** Locked on mAnimToLayout */
@@ -563,6 +568,9 @@
     // TODO(cmautner): Change the following comment when no longer locked on mWindowMap */
     /** Locked on mService.mWindowMap and this. */
     private void animateLocked() {
+        if (!mInitialized) {
+            return;
+        }
         for (int i = mWinAnimatorLists.size() - 1; i >= 0; i--) {
             animateLocked(mWinAnimatorLists.get(i));
         }