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

Commit ed8f41b5 authored by Schneider Victor-tulias's avatar Schneider Victor-tulias Committed by Android (Google) Code Review
Browse files

Merge "Add method to pause expensive view updates during the app launch aimation" into tm-dev

parents f4f6be60 789a6a95
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -579,8 +579,8 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener
                }
            }

            // Pause page indicator animations as they lead to layer trashing.
            mLauncher.getWorkspace().getPageIndicator().pauseAnimations();
            // Pause expensive view updates as they can lead to layer thrashing and skipped frames.
            mLauncher.pauseExpensiveViewUpdates();

            endListener = () -> {
                viewsToAnimate.forEach(view -> {
@@ -590,7 +590,7 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener
                if (scrimEnabled) {
                    mLauncher.getScrimView().setBackgroundColor(Color.TRANSPARENT);
                }
                mLauncher.getWorkspace().getPageIndicator().skipAnimationsToEnd();
                mLauncher.resumeExpensiveViewUpdates();
            };
        }

+11 −0
Original line number Diff line number Diff line
@@ -3192,4 +3192,15 @@ public class Launcher extends StatefulActivity<LauncherState> implements Launche
    public ArrowPopup<?> getOptionsPopup() {
        return findViewById(R.id.popup_container);
    }

    /** Pauses view updates that should not be run during the app launch animation. */
    public void pauseExpensiveViewUpdates() {
        // Pause page indicator animations as they lead to layer trashing.
        getWorkspace().getPageIndicator().pauseAnimations();
    }

    /** Resumes view updates at the end of the app launch animation. */
    public void resumeExpensiveViewUpdates() {
        getWorkspace().getPageIndicator().skipAnimationsToEnd();
    }
}