diff options
| author | 2018-11-12 14:07:18 -0800 | |
|---|---|---|
| committer | 2018-11-12 14:13:29 -0800 | |
| commit | 2e43cfc61d437cfefb220a69f56075ea22c1613c (patch) | |
| tree | e98d5bf6da06d1c729c4cd500b74a23fccc24ff5 | |
| parent | 4e7b7c1abd3f42c9e3518845051f75e3db73f1f1 (diff) | |
Reload flags whenever doze state changes
Test: atest CollapsedStatusBarFragmentTest
Test: manually wake up the device
Change-Id: I64e54111f8bbaae6b667d63688d4a6ab208af68b
Fixes: 119114169
2 files changed, 41 insertions, 5 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragment.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragment.java index d4de8fce3750..3b13fe96fe42 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragment.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragment.java @@ -46,7 +46,8 @@ import com.android.systemui.statusbar.policy.NetworkController.SignalCallback; * and keyguard state. Also manages lifecycle to make sure the views it contains are being * updated by the StatusBarIconController and DarkIconManager while it is attached. */ -public class CollapsedStatusBarFragment extends Fragment implements CommandQueue.Callbacks { +public class CollapsedStatusBarFragment extends Fragment implements CommandQueue.Callbacks, + StatusBarStateController.StateListener { public static final String TAG = "CollapsedStatusBarFragment"; private static final String EXTRA_PANEL_STATE = "panel_state"; @@ -120,12 +121,14 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue public void onResume() { super.onResume(); mCommandQueue.addCallbacks(this); + mStatusBarStateController.addListener(this); } @Override public void onPause() { super.onPause(); mCommandQueue.removeCallbacks(this); + mStatusBarStateController.removeListener(this); } @Override @@ -351,4 +354,14 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue mOperatorNameFrame = stub.inflate(); } } + + @Override + public void onStateChanged(int newState) { + + } + + @Override + public void onDozingChanged(boolean isDozing) { + disable(mDisabled1, mDisabled1, false /* animate */); + } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragmentTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragmentTest.java index 231cdf5e8e7d..93d8aad4e0d6 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragmentTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragmentTest.java @@ -18,24 +18,25 @@ import static org.junit.Assert.assertEquals; import static org.mockito.Matchers.eq; import static org.mockito.Mockito.atLeast; import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.reset; import static org.mockito.Mockito.when; import android.app.StatusBarManager; import android.support.test.filters.SmallTest; +import android.testing.AndroidTestingRunner; +import android.testing.TestableLooper.RunWithLooper; import android.view.View; import android.view.ViewPropertyAnimator; import com.android.systemui.R; -import android.testing.AndroidTestingRunner; - import com.android.systemui.SysuiBaseFragmentTest; import com.android.systemui.statusbar.CommandQueue; +import com.android.systemui.statusbar.StatusBarStateController; import com.android.systemui.tuner.TunerService; -import android.testing.TestableLooper.RunWithLooper; import org.junit.Before; -import org.junit.runner.RunWith; import org.junit.Test; +import org.junit.runner.RunWith; import org.mockito.Mockito; @RunWith(AndroidTestingRunner.class) @@ -45,6 +46,7 @@ public class CollapsedStatusBarFragmentTest extends SysuiBaseFragmentTest { private NotificationIconAreaController mMockNotificiationAreaController; private View mNotificationAreaInner; + private StatusBarStateController mStatusBarStateController; public CollapsedStatusBarFragmentTest() { super(CollapsedStatusBarFragment.class); @@ -55,6 +57,8 @@ public class CollapsedStatusBarFragmentTest extends SysuiBaseFragmentTest { mSysuiContext.putComponent(CommandQueue.class, mock(CommandQueue.class)); mSysuiContext.putComponent(StatusBar.class, mock(StatusBar.class)); mSysuiContext.putComponent(TunerService.class, mock(TunerService.class)); + mStatusBarStateController = mDependency + .injectMockDependency(StatusBarStateController.class); injectLeakCheckedDependencies(ALL_SUPPORTED_CLASSES); mMockNotificiationAreaController = mock(NotificationIconAreaController.class); mNotificationAreaInner = mock(View.class); @@ -127,4 +131,23 @@ public class CollapsedStatusBarFragmentTest extends SysuiBaseFragmentTest { assertEquals(View.VISIBLE, mFragment.getView().findViewById(R.id.clock).getVisibility()); } + + @Test + public void testOnDozingChanged() throws Exception { + mFragments.dispatchResume(); + processAllMessages(); + + CollapsedStatusBarFragment fragment = (CollapsedStatusBarFragment) mFragment; + fragment.initNotificationIconArea(mMockNotificiationAreaController); + fragment.disable(StatusBarManager.DISABLE_NOTIFICATION_ICONS, 0, false); + + Mockito.verify(mNotificationAreaInner).setVisibility(eq(View.INVISIBLE)); + + reset(mStatusBarStateController); + when(mStatusBarStateController.isDozing()).thenReturn(true); + fragment.onDozingChanged(true); + + Mockito.verify(mStatusBarStateController).isDozing(); + Mockito.verify(mNotificationAreaInner, atLeast(1)).setVisibility(eq(View.VISIBLE)); + } } |