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

Commit 34a75df6 authored by Craig Mautner's avatar Craig Mautner Committed by Android (Google) Code Review
Browse files

Merge "Remove single pass actions from display loop." into jb-mr1-dev

parents ed48f9f8 ea3a09a5
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -212,5 +212,12 @@ class DimAnimator {
            mDimHeight = dimHeight;
            mDimTarget = dimTarget;
        }

        Parameters(Parameters o) {
            mDimWinAnimator = o.mDimWinAnimator;
            mDimWidth = o.mDimWidth;
            mDimHeight = o.mDimHeight;
            mDimTarget = o.mDimTarget;
        }
    }
}
+27 −26
Original line number Diff line number Diff line
@@ -176,7 +176,7 @@ public class WindowAnimator {
            // Set the new DimAnimator params.
            DimAnimator.Parameters dimParams = layoutToAnim.mDimParams;
            if (dimParams == null) {
                mDimParams = dimParams;
                mDimParams = null;
            } else {
                final WindowStateAnimator newWinAnimator = dimParams.mDimWinAnimator;

@@ -187,7 +187,7 @@ public class WindowAnimator {
                if (newWinAnimator.mSurfaceShown &&
                        (existingDimWinAnimator == null || !existingDimWinAnimator.mSurfaceShown
                        || existingDimWinAnimator.mAnimLayer < newWinAnimator.mAnimLayer)) {
                    mDimParams = dimParams;
                    mDimParams = new DimAnimator.Parameters(dimParams);
                }
            }

@@ -559,15 +559,6 @@ public class WindowAnimator {
    private void performAnimationsLocked(final WinAnimatorList winAnimatorList) {
        updateWindowsLocked(winAnimatorList);
        updateWallpaperLocked(winAnimatorList);

        for (int i = mPendingLayoutChanges.size() - 1; i >= 0; i--) {
            if ((mPendingLayoutChanges.valueAt(i)
                    & WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER) != 0) {
                mPendingActions |= WALLPAPER_ACTION_PENDING;
            }
        }

        testTokenMayBeDrawnLocked();
    }

    // TODO(cmautner): Change the following comment when no longer locked on mWindowMap */
@@ -576,12 +567,7 @@ public class WindowAnimator {
        if (!mInitialized) {
            return;
        }
        for (int i = mWinAnimatorLists.size() - 1; i >= 0; i--) {
            animateLocked(mWinAnimatorLists.get(i));
        }
    }

    private void animateLocked(final WinAnimatorList winAnimatorList) {
        mPendingLayoutChanges.clear();
        mCurrentTime = SystemClock.uptimeMillis();
        mBulkUpdateParams = SET_ORIENTATION_CHANGE_COMPLETE;
@@ -591,25 +577,31 @@ public class WindowAnimator {
            Slog.i(TAG, "!!! animate: entry time=" + mCurrentTime);
        }

        // Update animations of all applications, including those
        // associated with exiting/removed apps
        if (WindowManagerService.SHOW_TRANSACTIONS) Slog.i(
                TAG, ">>> OPEN TRANSACTION animateLocked");
        Surface.openTransaction();

        try {
            updateWindowsAppsAndRotationAnimationsLocked();

            for (int i = mWinAnimatorLists.size() - 1; i >= 0; i--) {
                final WinAnimatorList winAnimatorList = mWinAnimatorLists.get(i);

                // Update animations of all applications, including those
                // associated with exiting/removed apps
                performAnimationsLocked(winAnimatorList);

            // THIRD LOOP: Update the surfaces of all windows.
                final int N = winAnimatorList.size();
                for (int j = 0; j < N; j++) {
                    winAnimatorList.get(j).prepareSurfaceLocked(true);
                }
            }

            testTokenMayBeDrawnLocked();

            if (mScreenRotationAnimation != null) {
                mScreenRotationAnimation.updateSurfacesInTransaction();
            }

            final int N = winAnimatorList.size();
            for (int i = 0; i < N; i++) {
                winAnimatorList.get(i).prepareSurfaceLocked(true);
            }

            if (mDimParams != null) {
                mDimAnimator.updateParameters(mContext.getResources(), mDimParams, mCurrentTime);
            }
@@ -634,6 +626,15 @@ public class WindowAnimator {
            Log.wtf(TAG, "Unhandled exception in Window Manager", e);
        } finally {
            Surface.closeTransaction();
            if (WindowManagerService.SHOW_TRANSACTIONS) Slog.i(
                    TAG, "<<< CLOSE TRANSACTION animateLocked");
        }

        for (int i = mPendingLayoutChanges.size() - 1; i >= 0; i--) {
            if ((mPendingLayoutChanges.valueAt(i)
                    & WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER) != 0) {
                mPendingActions |= WALLPAPER_ACTION_PENDING;
            }
        }

        if (mBulkUpdateParams != 0 || mPendingLayoutChanges.size() > 0) {