Fixes recents entrance animation when launching before onStop happens
If RecentsActivity was launched before its onStop runs then it would have skipped the entrance animation because its launch flags were reset in onStop. To trigger this, going home and immediately pressing recents will bring it back up. To fix this, skip reset launch flags (because it is set before onStop runs) when recents is requested to launch again. Change-Id: I768f48c33fe77ab2e8f6957611930bf7605bc674 Fixes: 65205705 Test: manual - run recents with apps, press home and immediately recents
This commit is contained in:
@@ -65,6 +65,7 @@ import com.android.systemui.recents.events.activity.IterateRecentsEvent;
|
||||
import com.android.systemui.recents.events.activity.LaunchTaskFailedEvent;
|
||||
import com.android.systemui.recents.events.activity.LaunchTaskSucceededEvent;
|
||||
import com.android.systemui.recents.events.activity.MultiWindowStateChangedEvent;
|
||||
import com.android.systemui.recents.events.activity.RecentsActivityStartingEvent;
|
||||
import com.android.systemui.recents.events.activity.ToggleRecentsEvent;
|
||||
import com.android.systemui.recents.events.component.ActivityUnpinnedEvent;
|
||||
import com.android.systemui.recents.events.component.RecentsVisibilityChangedEvent;
|
||||
@@ -119,6 +120,7 @@ public class RecentsActivity extends Activity implements ViewTreeObserver.OnPreD
|
||||
private boolean mFinishedOnStartup;
|
||||
private boolean mIgnoreAltTabRelease;
|
||||
private boolean mIsVisible;
|
||||
private boolean mRecentsStartRequested;
|
||||
private Configuration mLastConfig;
|
||||
|
||||
// Top level views
|
||||
@@ -416,6 +418,7 @@ public class RecentsActivity extends Activity implements ViewTreeObserver.OnPreD
|
||||
launchState.launchedFromHome = false;
|
||||
onEnterAnimationComplete();
|
||||
}
|
||||
mRecentsStartRequested = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -449,7 +452,6 @@ public class RecentsActivity extends Activity implements ViewTreeObserver.OnPreD
|
||||
* Reloads the stack views upon launching Recents.
|
||||
*/
|
||||
private void reloadStackView() {
|
||||
|
||||
// If the Recents component has preloaded a load plan, then use that to prevent
|
||||
// reconstructing the task stack
|
||||
RecentsTaskLoader loader = Recents.getTaskLoader();
|
||||
@@ -572,7 +574,9 @@ public class RecentsActivity extends Activity implements ViewTreeObserver.OnPreD
|
||||
MetricsLogger.hidden(this, MetricsEvent.OVERVIEW_ACTIVITY);
|
||||
Recents.getTaskLoader().getHighResThumbnailLoader().setVisible(false);
|
||||
|
||||
if (!isChangingConfigurations()) {
|
||||
// When recents starts again before onStop, do not reset launch flags so entrance animation
|
||||
// can run
|
||||
if (!isChangingConfigurations() && !mRecentsStartRequested) {
|
||||
// Workaround for b/22542869, if the RecentsActivity is started again, but without going
|
||||
// through SystemUI, we need to reset the config launch flags to ensure that we do not
|
||||
// wait on the system to send a signal that was never queued.
|
||||
@@ -718,6 +722,10 @@ public class RecentsActivity extends Activity implements ViewTreeObserver.OnPreD
|
||||
MetricsLogger.action(this, MetricsEvent.ACTION_OVERVIEW_PAGE);
|
||||
}
|
||||
|
||||
public final void onBusEvent(RecentsActivityStartingEvent event) {
|
||||
mRecentsStartRequested = true;
|
||||
}
|
||||
|
||||
public final void onBusEvent(UserInteractionEvent event) {
|
||||
// Stop the fast-toggle dozer
|
||||
mIterateTrigger.stopDozing();
|
||||
|
||||
Reference in New Issue
Block a user