Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2e43cfc6 authored by Lucas Dupin's avatar Lucas Dupin
Browse files

Reload flags whenever doze state changes

Test: atest CollapsedStatusBarFragmentTest
Test: manually wake up the device
Change-Id: I64e54111f8bbaae6b667d63688d4a6ab208af68b
Fixes: 119114169
parent 4e7b7c1a
Loading
Loading
Loading
Loading
+14 −1
Original line number Diff line number Diff line
@@ -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 */);
    }
}
+27 −4
Original line number Diff line number Diff line
@@ -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));
    }
}