mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-03-04 18:06:48 +00:00
Ensure RecentsOrientedState.mRecentsRotation is up to date on swipe up
- Updates RecentsOrientedState.mRecentsRotation after launcher is started, as it's not updated when RecentsView is in foreground when device rotates e.g. inside another app - No longer calls updateOrientationHandler in onConfigurationChanged, as updateOrientationHandler is already called in setInsets, which get called on rotation Bug: 181550945 Test: Swipe up to enter overview, launch app, rotate, then swipe up again Test: Swipe up to enter overview from landscape only app, while holding device in portrait Change-Id: I268093617d51333678e510c910ed15275706f984
This commit is contained in:
@@ -393,6 +393,9 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
|
||||
if (mStateCallback.hasStates(STATE_HANDLER_INVALIDATED)) {
|
||||
return;
|
||||
}
|
||||
// RecentsView never updates the display rotation until swipe-up, force update
|
||||
// RecentsOrientedState before passing to TaskViewSimulator.
|
||||
mRecentsView.updateRecentsRotation();
|
||||
mTaskViewSimulator.setOrientationState(mRecentsView.getPagedViewOrientedState());
|
||||
|
||||
// If we've already ended the gesture and are going home, don't prepare recents UI,
|
||||
|
||||
@@ -2618,19 +2618,20 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
||||
if (LIVE_TILE.get() && mEnableDrawingLiveTile && newConfig.orientation != mOrientation) {
|
||||
switchToScreenshot(
|
||||
() -> finishRecentsAnimation(true /* toRecents */,
|
||||
this::onConfigurationChangedInternal));
|
||||
this::updateRecentsRotation));
|
||||
mEnableDrawingLiveTile = false;
|
||||
} else {
|
||||
onConfigurationChangedInternal();
|
||||
updateRecentsRotation();
|
||||
}
|
||||
mOrientation = newConfig.orientation;
|
||||
}
|
||||
|
||||
private void onConfigurationChangedInternal() {
|
||||
/**
|
||||
* Updates {@link RecentsOrientedState}'s cached RecentsView rotation.
|
||||
*/
|
||||
public void updateRecentsRotation() {
|
||||
final int rotation = mActivity.getDisplay().getRotation();
|
||||
if (mOrientationState.setRecentsRotation(rotation)) {
|
||||
updateOrientationHandler();
|
||||
}
|
||||
mOrientationState.setRecentsRotation(rotation);
|
||||
}
|
||||
|
||||
public void setLayoutRotation(int touchRotation, int displayRotation) {
|
||||
|
||||
Reference in New Issue
Block a user