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

This commit is contained in:
Schneider Victor-tulias
2022-03-08 18:41:04 +00:00
committed by Android (Google) Code Review
2 changed files with 14 additions and 3 deletions
@@ -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
View File
@@ -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();
}
}