Merge "Ensure that handles are hidden and stay hidden when not fully awake" into qt-qpr1-dev

This commit is contained in:
TreeHugger Robot
2019-09-20 17:27:27 +00:00
committed by Android (Google) Code Review
3 changed files with 216 additions and 39 deletions

View File

@@ -22,6 +22,7 @@ import androidx.annotation.Nullable;
import com.android.systemui.assist.AssistHandleBehaviorController.BehaviorController;
import com.android.systemui.keyguard.WakefulnessLifecycle;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.recents.OverviewProxyService;
import com.android.systemui.shared.system.QuickStepContract;
@@ -39,26 +40,33 @@ import dagger.Lazy;
@Singleton
final class AssistHandleLikeHomeBehavior implements BehaviorController {
private final StatusBarStateController.StateListener mStatusBarStateListener =
new StatusBarStateController.StateListener() {
@Override
public void onDozingChanged(boolean isDozing) {
handleDozingChanged(isDozing);
}
};
private final WakefulnessLifecycle.Observer mWakefulnessLifecycleObserver =
new WakefulnessLifecycle.Observer() {
@Override
public void onStartedWakingUp() {
handleDozingChanged(/* isDozing = */ true);
handleWakefullnessChanged(/* isAwake = */ false);
}
@Override
public void onFinishedWakingUp() {
handleDozingChanged(/* isDozing = */ false);
handleWakefullnessChanged(/* isAwake = */ true);
}
@Override
public void onStartedGoingToSleep() {
handleDozingChanged(/* isDozing = */ true);
handleWakefullnessChanged(/* isAwake = */ false);
}
@Override
public void onFinishedGoingToSleep() {
handleDozingChanged(/* isDozing = */ true);
handleWakefullnessChanged(/* isAwake = */ false);
}
};
private final OverviewProxyService.OverviewProxyListener mOverviewProxyListener =
@@ -69,19 +77,22 @@ final class AssistHandleLikeHomeBehavior implements BehaviorController {
}
};
private final Lazy<StatusBarStateController> mStatusBarStateController;
private final Lazy<WakefulnessLifecycle> mWakefulnessLifecycle;
private final Lazy<OverviewProxyService> mOverviewProxyService;
private boolean mIsDozing;
private boolean mIsAwake;
private boolean mIsHomeHandleHiding;
@Nullable private AssistHandleCallbacks mAssistHandleCallbacks;
@Inject
AssistHandleLikeHomeBehavior(
Lazy<StatusBarStateController> statusBarStateController,
Lazy<WakefulnessLifecycle> wakefulnessLifecycle,
Lazy<OverviewProxyService> overviewProxyService) {
mStatusBarStateController = statusBarStateController;
mWakefulnessLifecycle = wakefulnessLifecycle;
mOverviewProxyService = overviewProxyService;
}
@@ -89,8 +100,10 @@ final class AssistHandleLikeHomeBehavior implements BehaviorController {
@Override
public void onModeActivated(Context context, AssistHandleCallbacks callbacks) {
mAssistHandleCallbacks = callbacks;
mIsDozing = mWakefulnessLifecycle.get().getWakefulness()
!= WakefulnessLifecycle.WAKEFULNESS_AWAKE;
mIsDozing = mStatusBarStateController.get().isDozing();
mStatusBarStateController.get().addCallback(mStatusBarStateListener);
mIsAwake = mWakefulnessLifecycle.get().getWakefulness()
== WakefulnessLifecycle.WAKEFULNESS_AWAKE;
mWakefulnessLifecycle.get().addObserver(mWakefulnessLifecycleObserver);
mOverviewProxyService.get().addCallback(mOverviewProxyListener);
callbackForCurrentState();
@@ -99,6 +112,7 @@ final class AssistHandleLikeHomeBehavior implements BehaviorController {
@Override
public void onModeDeactivated() {
mAssistHandleCallbacks = null;
mStatusBarStateController.get().removeCallback(mStatusBarStateListener);
mWakefulnessLifecycle.get().removeObserver(mWakefulnessLifecycleObserver);
mOverviewProxyService.get().removeCallback(mOverviewProxyListener);
}
@@ -116,6 +130,15 @@ final class AssistHandleLikeHomeBehavior implements BehaviorController {
callbackForCurrentState();
}
private void handleWakefullnessChanged(boolean isAwake) {
if (mIsAwake == isAwake) {
return;
}
mIsAwake = isAwake;
callbackForCurrentState();
}
private void handleSystemUiStateChange(int sysuiStateFlags) {
boolean isHomeHandleHiding = isHomeHandleHiding(sysuiStateFlags);
if (mIsHomeHandleHiding == isHomeHandleHiding) {
@@ -131,18 +154,23 @@ final class AssistHandleLikeHomeBehavior implements BehaviorController {
return;
}
if (mIsHomeHandleHiding || mIsDozing) {
if (mIsHomeHandleHiding || !isFullyAwake()) {
mAssistHandleCallbacks.hide();
} else {
mAssistHandleCallbacks.showAndStay();
}
}
private boolean isFullyAwake() {
return mIsAwake && !mIsDozing;
}
@Override
public void dump(PrintWriter pw, String prefix) {
pw.println("Current AssistHandleLikeHomeBehavior State:");
pw.println(prefix + "Current AssistHandleLikeHomeBehavior State:");
pw.println(prefix + " mIsDozing=" + mIsDozing);
pw.println(prefix + " mIsAwake=" + mIsAwake);
pw.println(prefix + " mIsHomeHandleHiding=" + mIsHomeHandleHiding);
}
}

View File

@@ -93,6 +93,11 @@ final class AssistHandleReminderExpBehavior implements BehaviorController {
public void onStateChanged(int newState) {
handleStatusBarStateChanged(newState);
}
@Override
public void onDozingChanged(boolean isDozing) {
handleDozingChanged(isDozing);
}
};
private final TaskStackChangeListener mTaskStackChangeListener =
new TaskStackChangeListener() {
@@ -120,16 +125,26 @@ final class AssistHandleReminderExpBehavior implements BehaviorController {
};
private final WakefulnessLifecycle.Observer mWakefulnessLifecycleObserver =
new WakefulnessLifecycle.Observer() {
@Override
public void onStartedWakingUp() {
handleWakefullnessChanged(/* isAwake = */ false);
}
@Override
public void onFinishedWakingUp() {
handleDozingChanged(false);
handleWakefullnessChanged(/* isAwake = */ true);
}
@Override
public void onStartedGoingToSleep() {
handleDozingChanged(true);
handleWakefullnessChanged(/* isAwake = */ false);
}
};
@Override
public void onFinishedGoingToSleep() {
handleWakefullnessChanged(/* isAwake = */ false);
}
};
private final BroadcastReceiver mDefaultHomeBroadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
@@ -150,6 +165,7 @@ final class AssistHandleReminderExpBehavior implements BehaviorController {
private boolean mOnLockscreen;
private boolean mIsDozing;
private boolean mIsAwake;
private int mRunningTaskId;
private boolean mIsNavBarHidden;
private boolean mIsLauncherShowing;
@@ -200,14 +216,15 @@ final class AssistHandleReminderExpBehavior implements BehaviorController {
mDefaultHome = getCurrentDefaultHome();
context.registerReceiver(mDefaultHomeBroadcastReceiver, mDefaultHomeIntentFilter);
mOnLockscreen = onLockscreen(mStatusBarStateController.get().getState());
mIsDozing = mStatusBarStateController.get().isDozing();
mStatusBarStateController.get().addCallback(mStatusBarStateListener);
ActivityManager.RunningTaskInfo runningTaskInfo =
mActivityManagerWrapper.get().getRunningTask();
mRunningTaskId = runningTaskInfo == null ? 0 : runningTaskInfo.taskId;
mActivityManagerWrapper.get().registerTaskStackListener(mTaskStackChangeListener);
mOverviewProxyService.get().addCallback(mOverviewProxyListener);
mIsDozing = mWakefulnessLifecycle.get().getWakefulness()
!= WakefulnessLifecycle.WAKEFULNESS_AWAKE;
mIsAwake = mWakefulnessLifecycle.get().getWakefulness()
== WakefulnessLifecycle.WAKEFULNESS_AWAKE;
mWakefulnessLifecycle.get().addObserver(mWakefulnessLifecycleObserver);
mLearningTimeElapsed = Settings.Secure.getLong(
@@ -249,7 +266,10 @@ final class AssistHandleReminderExpBehavior implements BehaviorController {
@Override
public void onAssistHandlesRequested() {
if (mAssistHandleCallbacks != null && !mIsDozing && !mIsNavBarHidden && !mOnLockscreen) {
if (mAssistHandleCallbacks != null
&& isFullyAwake()
&& !mIsNavBarHidden
&& !mOnLockscreen) {
mAssistHandleCallbacks.showAndGo();
}
}
@@ -296,6 +316,16 @@ final class AssistHandleReminderExpBehavior implements BehaviorController {
callbackForCurrentState(/* justUnlocked = */ false);
}
private void handleWakefullnessChanged(boolean isAwake) {
if (mIsAwake == isAwake) {
return;
}
resetConsecutiveTaskSwitches();
mIsAwake = isAwake;
callbackForCurrentState(/* justUnlocked = */ false);
}
private void handleTaskStackTopChanged(int taskId, @Nullable ComponentName taskComponentName) {
if (mRunningTaskId == taskId || taskComponentName == null) {
return;
@@ -349,7 +379,7 @@ final class AssistHandleReminderExpBehavior implements BehaviorController {
return;
}
if (mIsDozing || mIsNavBarHidden || mOnLockscreen || !getShowWhenTaught()) {
if (!isFullyAwake() || mIsNavBarHidden || mOnLockscreen || !getShowWhenTaught()) {
mAssistHandleCallbacks.hide();
} else if (justUnlocked) {
long currentEpochDay = LocalDate.now().toEpochDay();
@@ -371,7 +401,7 @@ final class AssistHandleReminderExpBehavior implements BehaviorController {
return;
}
if (mIsDozing || mIsNavBarHidden || isSuppressed()) {
if (!isFullyAwake() || mIsNavBarHidden || isSuppressed()) {
mAssistHandleCallbacks.hide();
} else if (mOnLockscreen) {
mAssistHandleCallbacks.showAndStay();
@@ -422,6 +452,10 @@ final class AssistHandleReminderExpBehavior implements BehaviorController {
mHandler.postDelayed(mResetConsecutiveTaskSwitches, getShowAndGoDelayResetTimeoutMs());
}
private boolean isFullyAwake() {
return mIsAwake && !mIsDozing;
}
private long getLearningTimeMs() {
return mPhenotypeHelper.getLong(
SystemUiDeviceConfigFlags.ASSIST_HANDLES_LEARN_TIME_MS,
@@ -481,6 +515,7 @@ final class AssistHandleReminderExpBehavior implements BehaviorController {
pw.println(prefix + "Current AssistHandleReminderExpBehavior State:");
pw.println(prefix + " mOnLockscreen=" + mOnLockscreen);
pw.println(prefix + " mIsDozing=" + mIsDozing);
pw.println(prefix + " mIsAwake=" + mIsAwake);
pw.println(prefix + " mRunningTaskId=" + mRunningTaskId);
pw.println(prefix + " mDefaultHome=" + mDefaultHome);
pw.println(prefix + " mIsNavBarHidden=" + mIsNavBarHidden);

View File

@@ -30,6 +30,7 @@ import androidx.test.filters.SmallTest;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.keyguard.WakefulnessLifecycle;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.recents.OverviewProxyService;
import com.android.systemui.shared.system.QuickStepContract;
@@ -47,6 +48,7 @@ public class AssistHandleLikeHomeBehaviorTest extends SysuiTestCase {
private AssistHandleLikeHomeBehavior mAssistHandleLikeHomeBehavior;
@Mock private StatusBarStateController mMockStatusBarStateController;
@Mock private WakefulnessLifecycle mMockWakefulnessLifecycle;
@Mock private OverviewProxyService mMockOverviewProxyService;
@Mock private AssistHandleCallbacks mMockAssistHandleCallbacks;
@@ -55,7 +57,9 @@ public class AssistHandleLikeHomeBehaviorTest extends SysuiTestCase {
public void setup() {
MockitoAnnotations.initMocks(this);
mAssistHandleLikeHomeBehavior = new AssistHandleLikeHomeBehavior(
() -> mMockWakefulnessLifecycle, () -> mMockOverviewProxyService);
() -> mMockStatusBarStateController,
() -> mMockWakefulnessLifecycle,
() -> mMockOverviewProxyService);
}
@Test
@@ -66,6 +70,9 @@ public class AssistHandleLikeHomeBehaviorTest extends SysuiTestCase {
mAssistHandleLikeHomeBehavior.onModeActivated(mContext, mMockAssistHandleCallbacks);
// Assert
verify(mMockStatusBarStateController).isDozing();
verify(mMockStatusBarStateController).addCallback(
any(StatusBarStateController.StateListener.class));
verify(mMockWakefulnessLifecycle).getWakefulness();
verify(mMockWakefulnessLifecycle).addObserver(any(WakefulnessLifecycle.Observer.class));
verify(mMockOverviewProxyService).addCallback(any(
@@ -74,8 +81,9 @@ public class AssistHandleLikeHomeBehaviorTest extends SysuiTestCase {
}
@Test
public void onModeActivated_showsHandlesWhenAwake() {
public void onModeActivated_showsHandlesWhenFullyAwake() {
// Arrange
when(mMockStatusBarStateController.isDozing()).thenReturn(false);
when(mMockWakefulnessLifecycle.getWakefulness())
.thenReturn(WakefulnessLifecycle.WAKEFULNESS_AWAKE);
@@ -90,6 +98,7 @@ public class AssistHandleLikeHomeBehaviorTest extends SysuiTestCase {
@Test
public void onModeActivated_hidesHandlesWhenNotAwake() {
// Arrange
when(mMockStatusBarStateController.isDozing()).thenReturn(true);
when(mMockWakefulnessLifecycle.getWakefulness())
.thenReturn(WakefulnessLifecycle.WAKEFULNESS_ASLEEP);
@@ -101,73 +110,140 @@ public class AssistHandleLikeHomeBehaviorTest extends SysuiTestCase {
verifyNoMoreInteractions(mMockAssistHandleCallbacks);
}
@Test
public void onModeActivated_hidesHandlesWhenDozing() {
// Arrange
when(mMockStatusBarStateController.isDozing()).thenReturn(true);
when(mMockWakefulnessLifecycle.getWakefulness())
.thenReturn(WakefulnessLifecycle.WAKEFULNESS_AWAKE);
// Act
mAssistHandleLikeHomeBehavior.onModeActivated(mContext, mMockAssistHandleCallbacks);
// Assert
verify(mMockAssistHandleCallbacks).hide();
verifyNoMoreInteractions(mMockAssistHandleCallbacks);
}
@Test
public void onModeDeactivated_stopsObserving() {
// Arrange
mAssistHandleLikeHomeBehavior.onModeActivated(mContext, mMockAssistHandleCallbacks);
ArgumentCaptor<StatusBarStateController.StateListener> stateListener =
ArgumentCaptor.forClass(StatusBarStateController.StateListener.class);
ArgumentCaptor<WakefulnessLifecycle.Observer> observer =
ArgumentCaptor.forClass(WakefulnessLifecycle.Observer.class);
ArgumentCaptor<OverviewProxyService.OverviewProxyListener> overviewProxyListener =
ArgumentCaptor.forClass(OverviewProxyService.OverviewProxyListener.class);
verify(mMockStatusBarStateController).addCallback(stateListener.capture());
verify(mMockWakefulnessLifecycle).addObserver(observer.capture());
verify(mMockOverviewProxyService).addCallback(overviewProxyListener.capture());
reset(mMockWakefulnessLifecycle, mMockOverviewProxyService, mMockAssistHandleCallbacks);
reset(
mMockStatusBarStateController,
mMockWakefulnessLifecycle,
mMockOverviewProxyService,
mMockAssistHandleCallbacks);
// Act
mAssistHandleLikeHomeBehavior.onModeDeactivated();
// Assert
verify(mMockStatusBarStateController).removeCallback(eq(stateListener.getValue()));
verify(mMockWakefulnessLifecycle).removeObserver(eq(observer.getValue()));
verify(mMockOverviewProxyService).removeCallback(eq(overviewProxyListener.getValue()));
verifyNoMoreInteractions(
mMockWakefulnessLifecycle, mMockOverviewProxyService, mMockAssistHandleCallbacks);
mMockStatusBarStateController,
mMockWakefulnessLifecycle,
mMockOverviewProxyService,
mMockAssistHandleCallbacks);
}
@Test
public void onAssistantGesturePerformed_doesNothing() {
// Arrange
mAssistHandleLikeHomeBehavior.onModeActivated(mContext, mMockAssistHandleCallbacks);
reset(mMockWakefulnessLifecycle, mMockOverviewProxyService, mMockAssistHandleCallbacks);
reset(
mMockStatusBarStateController,
mMockWakefulnessLifecycle,
mMockOverviewProxyService,
mMockAssistHandleCallbacks);
// Act
mAssistHandleLikeHomeBehavior.onAssistantGesturePerformed();
// Assert
verifyNoMoreInteractions(
mMockWakefulnessLifecycle, mMockOverviewProxyService, mMockAssistHandleCallbacks);
mMockStatusBarStateController,
mMockWakefulnessLifecycle,
mMockOverviewProxyService,
mMockAssistHandleCallbacks);
}
@Test
public void onAssistHandlesRequested_doesNothing() {
// Arrange
mAssistHandleLikeHomeBehavior.onModeActivated(mContext, mMockAssistHandleCallbacks);
reset(mMockWakefulnessLifecycle, mMockOverviewProxyService, mMockAssistHandleCallbacks);
reset(
mMockStatusBarStateController,
mMockWakefulnessLifecycle,
mMockOverviewProxyService,
mMockAssistHandleCallbacks);
// Act
mAssistHandleLikeHomeBehavior.onAssistHandlesRequested();
// Assert
verifyNoMoreInteractions(
mMockWakefulnessLifecycle, mMockOverviewProxyService, mMockAssistHandleCallbacks);
mMockStatusBarStateController,
mMockWakefulnessLifecycle,
mMockOverviewProxyService,
mMockAssistHandleCallbacks);
}
@Test
public void onWake_handlesShow() {
public void onBothAwakeAndUnDoze_handlesShow() {
// Arrange
when(mMockStatusBarStateController.isDozing()).thenReturn(true);
when(mMockWakefulnessLifecycle.getWakefulness())
.thenReturn(WakefulnessLifecycle.WAKEFULNESS_ASLEEP);
ArgumentCaptor<StatusBarStateController.StateListener> stateListener =
ArgumentCaptor.forClass(StatusBarStateController.StateListener.class);
ArgumentCaptor<WakefulnessLifecycle.Observer> observer =
ArgumentCaptor.forClass(WakefulnessLifecycle.Observer.class);
mAssistHandleLikeHomeBehavior.onModeActivated(mContext, mMockAssistHandleCallbacks);
verify(mMockStatusBarStateController).addCallback(stateListener.capture());
verify(mMockWakefulnessLifecycle).addObserver(observer.capture());
reset(mMockWakefulnessLifecycle, mMockOverviewProxyService, mMockAssistHandleCallbacks);
reset(
mMockStatusBarStateController,
mMockWakefulnessLifecycle,
mMockOverviewProxyService,
mMockAssistHandleCallbacks);
// Act
observer.getValue().onStartedWakingUp();
observer.getValue().onFinishedWakingUp();
// Assert
verify(mMockAssistHandleCallbacks).hide();
verifyNoMoreInteractions(
mMockWakefulnessLifecycle, mMockOverviewProxyService, mMockAssistHandleCallbacks);
mMockStatusBarStateController,
mMockWakefulnessLifecycle,
mMockOverviewProxyService,
mMockAssistHandleCallbacks);
// Arrange
observer.getValue().onFinishedGoingToSleep();
reset(mMockAssistHandleCallbacks);
// Act
stateListener.getValue().onDozingChanged(false);
// Assert
verify(mMockAssistHandleCallbacks).hide();
verifyNoMoreInteractions(
mMockStatusBarStateController,
mMockWakefulnessLifecycle,
mMockOverviewProxyService,
mMockAssistHandleCallbacks);
// Act
observer.getValue().onFinishedWakingUp();
@@ -175,19 +251,30 @@ public class AssistHandleLikeHomeBehaviorTest extends SysuiTestCase {
// Assert
verify(mMockAssistHandleCallbacks).showAndStay();
verifyNoMoreInteractions(
mMockWakefulnessLifecycle, mMockOverviewProxyService, mMockAssistHandleCallbacks);
mMockStatusBarStateController,
mMockWakefulnessLifecycle,
mMockOverviewProxyService,
mMockAssistHandleCallbacks);
}
@Test
public void onSleep_handlesHide() {
public void onSleepOrDoze_handlesHide() {
// Arrange
when(mMockStatusBarStateController.isDozing()).thenReturn(false);
when(mMockWakefulnessLifecycle.getWakefulness())
.thenReturn(WakefulnessLifecycle.WAKEFULNESS_AWAKE);
ArgumentCaptor<StatusBarStateController.StateListener> stateListener =
ArgumentCaptor.forClass(StatusBarStateController.StateListener.class);
ArgumentCaptor<WakefulnessLifecycle.Observer> observer =
ArgumentCaptor.forClass(WakefulnessLifecycle.Observer.class);
mAssistHandleLikeHomeBehavior.onModeActivated(mContext, mMockAssistHandleCallbacks);
verify(mMockStatusBarStateController).addCallback(stateListener.capture());
verify(mMockWakefulnessLifecycle).addObserver(observer.capture());
reset(mMockWakefulnessLifecycle, mMockOverviewProxyService, mMockAssistHandleCallbacks);
reset(
mMockStatusBarStateController,
mMockWakefulnessLifecycle,
mMockOverviewProxyService,
mMockAssistHandleCallbacks);
// Act
observer.getValue().onStartedGoingToSleep();
@@ -195,26 +282,42 @@ public class AssistHandleLikeHomeBehaviorTest extends SysuiTestCase {
// Assert
verify(mMockAssistHandleCallbacks).hide();
verifyNoMoreInteractions(
mMockWakefulnessLifecycle, mMockOverviewProxyService, mMockAssistHandleCallbacks);
mMockStatusBarStateController,
mMockWakefulnessLifecycle,
mMockOverviewProxyService,
mMockAssistHandleCallbacks);
// Arrange
observer.getValue().onFinishedWakingUp();
reset(mMockAssistHandleCallbacks);
// Act
observer.getValue().onFinishedGoingToSleep();
stateListener.getValue().onDozingChanged(true);
// Assert
verify(mMockAssistHandleCallbacks).hide();
verifyNoMoreInteractions(
mMockWakefulnessLifecycle, mMockOverviewProxyService, mMockAssistHandleCallbacks);
mMockStatusBarStateController,
mMockWakefulnessLifecycle,
mMockOverviewProxyService,
mMockAssistHandleCallbacks);
}
@Test
public void onHomeHandleHide_handlesHide() {
// Arrange
when(mMockStatusBarStateController.isDozing()).thenReturn(false);
when(mMockWakefulnessLifecycle.getWakefulness())
.thenReturn(WakefulnessLifecycle.WAKEFULNESS_AWAKE);
ArgumentCaptor<OverviewProxyService.OverviewProxyListener> sysUiStateCallback =
ArgumentCaptor.forClass(OverviewProxyService.OverviewProxyListener.class);
mAssistHandleLikeHomeBehavior.onModeActivated(mContext, mMockAssistHandleCallbacks);
verify(mMockOverviewProxyService).addCallback(sysUiStateCallback.capture());
reset(mMockWakefulnessLifecycle, mMockOverviewProxyService, mMockAssistHandleCallbacks);
reset(
mMockStatusBarStateController,
mMockWakefulnessLifecycle,
mMockOverviewProxyService,
mMockAssistHandleCallbacks);
// Act
sysUiStateCallback.getValue().onSystemUiStateChanged(
@@ -223,12 +326,16 @@ public class AssistHandleLikeHomeBehaviorTest extends SysuiTestCase {
// Assert
verify(mMockAssistHandleCallbacks).hide();
verifyNoMoreInteractions(
mMockWakefulnessLifecycle, mMockOverviewProxyService, mMockAssistHandleCallbacks);
mMockStatusBarStateController,
mMockWakefulnessLifecycle,
mMockOverviewProxyService,
mMockAssistHandleCallbacks);
}
@Test
public void onHomeHandleUnhide_handlesShow() {
// Arrange
when(mMockStatusBarStateController.isDozing()).thenReturn(false);
when(mMockWakefulnessLifecycle.getWakefulness())
.thenReturn(WakefulnessLifecycle.WAKEFULNESS_AWAKE);
ArgumentCaptor<OverviewProxyService.OverviewProxyListener> sysUiStateCallback =
@@ -237,7 +344,11 @@ public class AssistHandleLikeHomeBehaviorTest extends SysuiTestCase {
verify(mMockOverviewProxyService).addCallback(sysUiStateCallback.capture());
sysUiStateCallback.getValue().onSystemUiStateChanged(
QuickStepContract.SYSUI_STATE_NAV_BAR_HIDDEN);
reset(mMockWakefulnessLifecycle, mMockOverviewProxyService, mMockAssistHandleCallbacks);
reset(
mMockStatusBarStateController,
mMockWakefulnessLifecycle,
mMockOverviewProxyService,
mMockAssistHandleCallbacks);
// Act
sysUiStateCallback.getValue().onSystemUiStateChanged(
@@ -246,6 +357,9 @@ public class AssistHandleLikeHomeBehaviorTest extends SysuiTestCase {
// Assert
verify(mMockAssistHandleCallbacks).showAndStay();
verifyNoMoreInteractions(
mMockWakefulnessLifecycle, mMockOverviewProxyService, mMockAssistHandleCallbacks);
mMockStatusBarStateController,
mMockWakefulnessLifecycle,
mMockOverviewProxyService,
mMockAssistHandleCallbacks);
}
}