diff options
3 files changed, 216 insertions, 38 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/assist/AssistHandleLikeHomeBehavior.java b/packages/SystemUI/src/com/android/systemui/assist/AssistHandleLikeHomeBehavior.java index a0d8b4c58f1a..ccca447ad842 100644 --- a/packages/SystemUI/src/com/android/systemui/assist/AssistHandleLikeHomeBehavior.java +++ b/packages/SystemUI/src/com/android/systemui/assist/AssistHandleLikeHomeBehavior.java @@ -23,6 +23,7 @@ import androidx.annotation.Nullable; import com.android.systemui.assist.AssistHandleBehaviorController.BehaviorController; import com.android.systemui.keyguard.WakefulnessLifecycle; import com.android.systemui.model.SysUiState; +import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.shared.system.QuickStepContract; import java.io.PrintWriter; @@ -39,44 +40,55 @@ 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 SysUiState.SysUiStateCallback mSysUiStateCallback = this::handleSystemUiStateChange; + private final Lazy<StatusBarStateController> mStatusBarStateController; private final Lazy<WakefulnessLifecycle> mWakefulnessLifecycle; private final Lazy<SysUiState> mSysUiFlagContainer; private boolean mIsDozing; + private boolean mIsAwake; private boolean mIsHomeHandleHiding; @Nullable private AssistHandleCallbacks mAssistHandleCallbacks; @Inject AssistHandleLikeHomeBehavior( + Lazy<StatusBarStateController> statusBarStateController, Lazy<WakefulnessLifecycle> wakefulnessLifecycle, Lazy<SysUiState> sysUiFlagContainer) { + mStatusBarStateController = statusBarStateController; mWakefulnessLifecycle = wakefulnessLifecycle; mSysUiFlagContainer = sysUiFlagContainer; } @@ -84,8 +96,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); mSysUiFlagContainer.get().addCallback(mSysUiStateCallback); callbackForCurrentState(); @@ -94,6 +108,7 @@ final class AssistHandleLikeHomeBehavior implements BehaviorController { @Override public void onModeDeactivated() { mAssistHandleCallbacks = null; + mStatusBarStateController.get().removeCallback(mStatusBarStateListener); mWakefulnessLifecycle.get().removeObserver(mWakefulnessLifecycleObserver); mSysUiFlagContainer.get().removeCallback(mSysUiStateCallback); } @@ -111,6 +126,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) { @@ -126,18 +150,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); } } diff --git a/packages/SystemUI/src/com/android/systemui/assist/AssistHandleReminderExpBehavior.java b/packages/SystemUI/src/com/android/systemui/assist/AssistHandleReminderExpBehavior.java index d371dbead42b..3ff1b97c3753 100644 --- a/packages/SystemUI/src/com/android/systemui/assist/AssistHandleReminderExpBehavior.java +++ b/packages/SystemUI/src/com/android/systemui/assist/AssistHandleReminderExpBehavior.java @@ -94,6 +94,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() { @@ -119,15 +124,25 @@ 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) { @@ -149,6 +164,7 @@ final class AssistHandleReminderExpBehavior implements BehaviorController { private boolean mOnLockscreen; private boolean mIsDozing; + private boolean mIsAwake; private int mRunningTaskId; private boolean mIsNavBarHidden; private boolean mIsLauncherShowing; @@ -201,6 +217,7 @@ 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(); @@ -208,8 +225,8 @@ final class AssistHandleReminderExpBehavior implements BehaviorController { mActivityManagerWrapper.get().registerTaskStackListener(mTaskStackChangeListener); mOverviewProxyService.get().addCallback(mOverviewProxyListener); mSysUiFlagContainer.get().addCallback(mSysUiStateCallback); - mIsDozing = mWakefulnessLifecycle.get().getWakefulness() - != WakefulnessLifecycle.WAKEFULNESS_AWAKE; + mIsAwake = mWakefulnessLifecycle.get().getWakefulness() + == WakefulnessLifecycle.WAKEFULNESS_AWAKE; mWakefulnessLifecycle.get().addObserver(mWakefulnessLifecycleObserver); mLearningTimeElapsed = Settings.Secure.getLong( @@ -252,7 +269,10 @@ final class AssistHandleReminderExpBehavior implements BehaviorController { @Override public void onAssistHandlesRequested() { - if (mAssistHandleCallbacks != null && !mIsDozing && !mIsNavBarHidden && !mOnLockscreen) { + if (mAssistHandleCallbacks != null + && isFullyAwake() + && !mIsNavBarHidden + && !mOnLockscreen) { mAssistHandleCallbacks.showAndGo(); } } @@ -299,6 +319,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; @@ -352,7 +382,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(); @@ -374,7 +404,7 @@ final class AssistHandleReminderExpBehavior implements BehaviorController { return; } - if (mIsDozing || mIsNavBarHidden || isSuppressed()) { + if (!isFullyAwake() || mIsNavBarHidden || isSuppressed()) { mAssistHandleCallbacks.hide(); } else if (mOnLockscreen) { mAssistHandleCallbacks.showAndStay(); @@ -425,6 +455,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, @@ -484,6 +518,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); diff --git a/packages/SystemUI/tests/src/com/android/systemui/assist/AssistHandleLikeHomeBehaviorTest.java b/packages/SystemUI/tests/src/com/android/systemui/assist/AssistHandleLikeHomeBehaviorTest.java index c53289c62d94..fe131275afd8 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/assist/AssistHandleLikeHomeBehaviorTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/assist/AssistHandleLikeHomeBehaviorTest.java @@ -31,6 +31,7 @@ import androidx.test.filters.SmallTest; import com.android.systemui.SysuiTestCase; import com.android.systemui.keyguard.WakefulnessLifecycle; import com.android.systemui.model.SysUiState; +import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.shared.system.QuickStepContract; import org.junit.Before; @@ -47,6 +48,7 @@ public class AssistHandleLikeHomeBehaviorTest extends SysuiTestCase { private AssistHandleLikeHomeBehavior mAssistHandleLikeHomeBehavior; + @Mock private StatusBarStateController mMockStatusBarStateController; @Mock private WakefulnessLifecycle mMockWakefulnessLifecycle; @Mock private SysUiState mMockSysUiState; @Mock private AssistHandleCallbacks mMockAssistHandleCallbacks; @@ -55,7 +57,9 @@ public class AssistHandleLikeHomeBehaviorTest extends SysuiTestCase { public void setup() { MockitoAnnotations.initMocks(this); mAssistHandleLikeHomeBehavior = new AssistHandleLikeHomeBehavior( - () -> mMockWakefulnessLifecycle, () -> mMockSysUiState); + () -> mMockStatusBarStateController, + () -> mMockWakefulnessLifecycle, + () -> mMockSysUiState); } @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(mMockSysUiState).addCallback(any(SysUiState.SysUiStateCallback.class)); @@ -73,8 +80,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); @@ -89,6 +97,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,72 +110,139 @@ public class AssistHandleLikeHomeBehaviorTest extends SysuiTestCase { } @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<SysUiState.SysUiStateCallback> sysUiStateCallback = ArgumentCaptor.forClass(SysUiState.SysUiStateCallback.class); + verify(mMockStatusBarStateController).addCallback(stateListener.capture()); verify(mMockWakefulnessLifecycle).addObserver(observer.capture()); verify(mMockSysUiState).addCallback(sysUiStateCallback.capture()); - reset(mMockWakefulnessLifecycle, mMockSysUiState, mMockAssistHandleCallbacks); + reset( + mMockStatusBarStateController, + mMockWakefulnessLifecycle, + mMockSysUiState, + mMockAssistHandleCallbacks); // Act mAssistHandleLikeHomeBehavior.onModeDeactivated(); // Assert + verify(mMockStatusBarStateController).removeCallback(eq(stateListener.getValue())); verify(mMockWakefulnessLifecycle).removeObserver(eq(observer.getValue())); verify(mMockSysUiState).removeCallback(eq(sysUiStateCallback.getValue())); verifyNoMoreInteractions( - mMockWakefulnessLifecycle, mMockSysUiState, mMockAssistHandleCallbacks); + mMockStatusBarStateController, + mMockWakefulnessLifecycle, + mMockSysUiState, + mMockAssistHandleCallbacks); } @Test public void onAssistantGesturePerformed_doesNothing() { // Arrange mAssistHandleLikeHomeBehavior.onModeActivated(mContext, mMockAssistHandleCallbacks); - reset(mMockWakefulnessLifecycle, mMockSysUiState, mMockAssistHandleCallbacks); + reset( + mMockStatusBarStateController, + mMockWakefulnessLifecycle, + mMockSysUiState, + mMockAssistHandleCallbacks); // Act mAssistHandleLikeHomeBehavior.onAssistantGesturePerformed(); // Assert verifyNoMoreInteractions( - mMockWakefulnessLifecycle, mMockSysUiState, mMockAssistHandleCallbacks); + mMockStatusBarStateController, + mMockWakefulnessLifecycle, + mMockSysUiState, + mMockAssistHandleCallbacks); } @Test public void onAssistHandlesRequested_doesNothing() { // Arrange mAssistHandleLikeHomeBehavior.onModeActivated(mContext, mMockAssistHandleCallbacks); - reset(mMockWakefulnessLifecycle, mMockSysUiState, mMockAssistHandleCallbacks); + reset( + mMockStatusBarStateController, + mMockWakefulnessLifecycle, + mMockSysUiState, + mMockAssistHandleCallbacks); // Act mAssistHandleLikeHomeBehavior.onAssistHandlesRequested(); // Assert verifyNoMoreInteractions( - mMockWakefulnessLifecycle, mMockSysUiState, mMockAssistHandleCallbacks); + mMockStatusBarStateController, + mMockWakefulnessLifecycle, + mMockSysUiState, + 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, mMockSysUiState, mMockAssistHandleCallbacks); + reset( + mMockStatusBarStateController, + mMockWakefulnessLifecycle, + mMockSysUiState, + mMockAssistHandleCallbacks); // Act - observer.getValue().onStartedWakingUp(); + observer.getValue().onFinishedWakingUp(); // Assert + verify(mMockAssistHandleCallbacks).hide(); verifyNoMoreInteractions( - mMockWakefulnessLifecycle, mMockSysUiState, mMockAssistHandleCallbacks); + mMockStatusBarStateController, + mMockWakefulnessLifecycle, + mMockSysUiState, + mMockAssistHandleCallbacks); + + // Arrange + observer.getValue().onFinishedGoingToSleep(); + reset(mMockAssistHandleCallbacks); + + // Act + stateListener.getValue().onDozingChanged(false); + + // Assert + verify(mMockAssistHandleCallbacks).hide(); + verifyNoMoreInteractions( + mMockStatusBarStateController, + mMockWakefulnessLifecycle, + mMockSysUiState, + mMockAssistHandleCallbacks); // Act observer.getValue().onFinishedWakingUp(); @@ -174,19 +250,30 @@ public class AssistHandleLikeHomeBehaviorTest extends SysuiTestCase { // Assert verify(mMockAssistHandleCallbacks).showAndStay(); verifyNoMoreInteractions( - mMockWakefulnessLifecycle, mMockSysUiState, mMockAssistHandleCallbacks); + mMockStatusBarStateController, + mMockWakefulnessLifecycle, + mMockSysUiState, + 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, mMockSysUiState, mMockAssistHandleCallbacks); + reset( + mMockStatusBarStateController, + mMockWakefulnessLifecycle, + mMockSysUiState, + mMockAssistHandleCallbacks); // Act observer.getValue().onStartedGoingToSleep(); @@ -194,26 +281,42 @@ public class AssistHandleLikeHomeBehaviorTest extends SysuiTestCase { // Assert verify(mMockAssistHandleCallbacks).hide(); verifyNoMoreInteractions( - mMockWakefulnessLifecycle, mMockSysUiState, mMockAssistHandleCallbacks); + mMockStatusBarStateController, + mMockWakefulnessLifecycle, + mMockSysUiState, + mMockAssistHandleCallbacks); + + // Arrange + observer.getValue().onFinishedWakingUp(); + reset(mMockAssistHandleCallbacks); // Act - observer.getValue().onFinishedGoingToSleep(); + stateListener.getValue().onDozingChanged(true); // Assert + verify(mMockAssistHandleCallbacks).hide(); verifyNoMoreInteractions( - mMockWakefulnessLifecycle, mMockSysUiState, mMockAssistHandleCallbacks); + mMockStatusBarStateController, + mMockWakefulnessLifecycle, + mMockSysUiState, + mMockAssistHandleCallbacks); } @Test public void onHomeHandleHide_handlesHide() { // Arrange + when(mMockStatusBarStateController.isDozing()).thenReturn(false); when(mMockWakefulnessLifecycle.getWakefulness()) .thenReturn(WakefulnessLifecycle.WAKEFULNESS_AWAKE); ArgumentCaptor<SysUiState.SysUiStateCallback> sysUiStateCallback = ArgumentCaptor.forClass(SysUiState.SysUiStateCallback.class); mAssistHandleLikeHomeBehavior.onModeActivated(mContext, mMockAssistHandleCallbacks); verify(mMockSysUiState).addCallback(sysUiStateCallback.capture()); - reset(mMockWakefulnessLifecycle, mMockSysUiState, mMockAssistHandleCallbacks); + reset( + mMockStatusBarStateController, + mMockWakefulnessLifecycle, + mMockSysUiState, + mMockAssistHandleCallbacks); // Act sysUiStateCallback.getValue().onSystemUiStateChanged( @@ -222,12 +325,16 @@ public class AssistHandleLikeHomeBehaviorTest extends SysuiTestCase { // Assert verify(mMockAssistHandleCallbacks).hide(); verifyNoMoreInteractions( - mMockWakefulnessLifecycle, mMockSysUiState, mMockAssistHandleCallbacks); + mMockStatusBarStateController, + mMockWakefulnessLifecycle, + mMockSysUiState, + mMockAssistHandleCallbacks); } @Test public void onHomeHandleUnhide_handlesShow() { // Arrange + when(mMockStatusBarStateController.isDozing()).thenReturn(false); when(mMockWakefulnessLifecycle.getWakefulness()) .thenReturn(WakefulnessLifecycle.WAKEFULNESS_AWAKE); ArgumentCaptor<SysUiState.SysUiStateCallback> sysUiStateCallback = @@ -236,7 +343,11 @@ public class AssistHandleLikeHomeBehaviorTest extends SysuiTestCase { verify(mMockSysUiState).addCallback(sysUiStateCallback.capture()); sysUiStateCallback.getValue().onSystemUiStateChanged( QuickStepContract.SYSUI_STATE_NAV_BAR_HIDDEN); - reset(mMockWakefulnessLifecycle, mMockSysUiState, mMockAssistHandleCallbacks); + reset( + mMockStatusBarStateController, + mMockWakefulnessLifecycle, + mMockSysUiState, + mMockAssistHandleCallbacks); // Act sysUiStateCallback.getValue().onSystemUiStateChanged( @@ -245,6 +356,9 @@ public class AssistHandleLikeHomeBehaviorTest extends SysuiTestCase { // Assert verify(mMockAssistHandleCallbacks).showAndStay(); verifyNoMoreInteractions( - mMockWakefulnessLifecycle, mMockSysUiState, mMockAssistHandleCallbacks); + mMockStatusBarStateController, + mMockWakefulnessLifecycle, + mMockSysUiState, + mMockAssistHandleCallbacks); } } |