Merge "Add method to pause expensive view updates during the app launch aimation" into tm-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
ed8f41b5e2
@@ -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();
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user