Reload flags whenever doze state changes

Test: atest CollapsedStatusBarFragmentTest
Test: manually wake up the device
Change-Id: I64e54111f8bbaae6b667d63688d4a6ab208af68b
Fixes: 119114169
This commit is contained in:
Lucas Dupin
2018-11-12 14:07:18 -08:00
parent 4e7b7c1abd
commit 2e43cfc61d
2 changed files with 41 additions and 5 deletions

View File

@@ -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 */);
}
}

View File

@@ -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));
}
}