Merge "Defer ending launcher power mode hint until after transient transition" into udc-dev
This commit is contained in:
@@ -3212,6 +3212,10 @@ class RootWindowContainer extends WindowContainer<DisplayContent>
|
|||||||
+ "not idle", rootTask.getRootTaskId(), resumedActivity);
|
+ "not idle", rootTask.getRootTaskId(), resumedActivity);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
if (mTransitionController.isTransientLaunch(resumedActivity)) {
|
||||||
|
// Not idle if the transient transition animation is running.
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// End power mode launch when idle.
|
// End power mode launch when idle.
|
||||||
mService.endLaunchPowerMode(ActivityTaskManagerService.POWER_MODE_REASON_START_ACTIVITY);
|
mService.endLaunchPowerMode(ActivityTaskManagerService.POWER_MODE_REASON_START_ACTIVITY);
|
||||||
|
|||||||
@@ -61,6 +61,7 @@ import static org.mockito.ArgumentMatchers.any;
|
|||||||
import static org.mockito.ArgumentMatchers.anyBoolean;
|
import static org.mockito.ArgumentMatchers.anyBoolean;
|
||||||
import static org.mockito.ArgumentMatchers.anyInt;
|
import static org.mockito.ArgumentMatchers.anyInt;
|
||||||
import static org.mockito.ArgumentMatchers.eq;
|
import static org.mockito.ArgumentMatchers.eq;
|
||||||
|
import static org.mockito.Mockito.doAnswer;
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.spy;
|
import static org.mockito.Mockito.spy;
|
||||||
import static org.mockito.Mockito.times;
|
import static org.mockito.Mockito.times;
|
||||||
@@ -1425,6 +1426,15 @@ public class TransitionTests extends WindowTestsBase {
|
|||||||
// No need to wait for the activity in transient hide task.
|
// No need to wait for the activity in transient hide task.
|
||||||
assertEquals(WindowContainer.SYNC_STATE_NONE, activity1.mSyncState);
|
assertEquals(WindowContainer.SYNC_STATE_NONE, activity1.mSyncState);
|
||||||
|
|
||||||
|
// An active transient launch overrides idle state to avoid clearing power mode before the
|
||||||
|
// transition is finished.
|
||||||
|
spyOn(mRootWindowContainer.mTransitionController);
|
||||||
|
doAnswer(invocation -> controller.isTransientLaunch(invocation.getArgument(0))).when(
|
||||||
|
mRootWindowContainer.mTransitionController).isTransientLaunch(any());
|
||||||
|
activity2.getTask().setResumedActivity(activity2, "test");
|
||||||
|
activity2.idle = true;
|
||||||
|
assertFalse(mRootWindowContainer.allResumedActivitiesIdle());
|
||||||
|
|
||||||
activity1.setVisibleRequested(false);
|
activity1.setVisibleRequested(false);
|
||||||
activity2.setVisibleRequested(true);
|
activity2.setVisibleRequested(true);
|
||||||
activity2.setVisible(true);
|
activity2.setVisible(true);
|
||||||
|
|||||||
Reference in New Issue
Block a user