Loading packages/SystemUI/multivalentTests/src/com/android/systemui/dreams/DreamOverlayStatusBarViewControllerTest.java +12 −97 Original line number Diff line number Diff line Loading @@ -36,11 +36,8 @@ import android.app.AlarmManager; import android.content.Context; import android.content.res.Resources; import android.hardware.SensorPrivacyManager; import android.net.ConnectivityManager; import android.net.Network; import android.net.NetworkCapabilities; import android.net.NetworkRequest; import android.provider.Settings; import android.testing.TestableLooper; import android.view.View; import androidx.test.ext.junit.runners.AndroidJUnit4; Loading @@ -51,6 +48,7 @@ import com.android.systemui.log.LogBuffer; import com.android.systemui.log.core.FakeLogBuffer; import com.android.systemui.res.R; import com.android.systemui.settings.UserTracker; import com.android.systemui.statusbar.pipeline.wifi.data.repository.FakeWifiRepository; import com.android.systemui.statusbar.policy.IndividualSensorPrivacyController; import com.android.systemui.statusbar.policy.NextAlarmController; import com.android.systemui.statusbar.policy.ZenModeController; Loading @@ -72,6 +70,7 @@ import java.util.Optional; import java.util.concurrent.Executor; @SmallTest @TestableLooper.RunWithLooper(setAsMainLooper = true) @RunWith(AndroidJUnit4.class) public class DreamOverlayStatusBarViewControllerTest extends SysuiTestCase { private static final String NOTIFICATION_INDICATOR_FORMATTER_STRING = Loading @@ -80,12 +79,6 @@ public class DreamOverlayStatusBarViewControllerTest extends SysuiTestCase { @Mock MockDreamOverlayStatusBarView mView; @Mock ConnectivityManager mConnectivityManager; @Mock NetworkCapabilities mNetworkCapabilities; @Mock Network mNetwork; @Mock TouchInsetManager.TouchInsetSession mTouchSession; @Mock Resources mResources; Loading Loading @@ -121,6 +114,8 @@ public class DreamOverlayStatusBarViewControllerTest extends SysuiTestCase { private final Executor mMainExecutor = Runnable::run; private final FakeWifiRepository mWifiRepository = new FakeWifiRepository(); DreamOverlayStatusBarViewController mController; @Before Loading @@ -137,7 +132,6 @@ public class DreamOverlayStatusBarViewControllerTest extends SysuiTestCase { mView, mResources, mMainExecutor, mConnectivityManager, mTouchSession, mAlarmManager, mNextAlarmController, Loading @@ -149,6 +143,7 @@ public class DreamOverlayStatusBarViewControllerTest extends SysuiTestCase { mDreamOverlayStatusBarItemsProvider, mDreamOverlayStateController, mUserTracker, mWifiRepository, mLogBuffer); } Loading @@ -164,39 +159,21 @@ public class DreamOverlayStatusBarViewControllerTest extends SysuiTestCase { } @Test public void testOnViewAttachedRegistersNetworkCallback() { public void testWifiIconShownWhenWifiUnavailable() { mController.onViewAttached(); verify(mConnectivityManager) .registerNetworkCallback(any(NetworkRequest.class), any( ConnectivityManager.NetworkCallback.class)); } mController.updateWifiUnavailableStatusIcon(false); @Test public void testOnViewAttachedShowsWifiIconWhenWifiUnavailable() { when(mNetworkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) .thenReturn(false); when(mConnectivityManager.getNetworkCapabilities(any())).thenReturn(mNetworkCapabilities); mController.onViewAttached(); verify(mView).showIcon( DreamOverlayStatusBarView.STATUS_ICON_WIFI_UNAVAILABLE, true, null); } @Test public void testOnViewAttachedHidesWifiIconWhenWifiAvailable() { when(mNetworkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) .thenReturn(true); when(mConnectivityManager.getNetworkCapabilities(any())).thenReturn(mNetworkCapabilities); public void testWifiIconHiddenWhenWifiAvailable() { mController.onViewAttached(); verify(mView).showIcon( DreamOverlayStatusBarView.STATUS_ICON_WIFI_UNAVAILABLE, false, null); } mController.updateWifiUnavailableStatusIcon(true); @Test public void testOnViewAttachedShowsWifiIconWhenNetworkCapabilitiesUnavailable() { when(mConnectivityManager.getNetworkCapabilities(any())).thenReturn(null); mController.onViewAttached(); verify(mView).showIcon( DreamOverlayStatusBarView.STATUS_ICON_WIFI_UNAVAILABLE, true, null); DreamOverlayStatusBarView.STATUS_ICON_WIFI_UNAVAILABLE, false, null); } @Test Loading Loading @@ -282,7 +259,6 @@ public class DreamOverlayStatusBarViewControllerTest extends SysuiTestCase { mView, mResources, mMainExecutor, mConnectivityManager, mTouchSession, mAlarmManager, mNextAlarmController, Loading @@ -294,6 +270,7 @@ public class DreamOverlayStatusBarViewControllerTest extends SysuiTestCase { mDreamOverlayStatusBarItemsProvider, mDreamOverlayStateController, mUserTracker, mWifiRepository, mLogBuffer); controller.onViewAttached(); verify(mView, never()).showIcon( Loading @@ -318,13 +295,6 @@ public class DreamOverlayStatusBarViewControllerTest extends SysuiTestCase { DreamOverlayStatusBarView.STATUS_ICON_PRIORITY_MODE_ON, false, null); } @Test public void testOnViewDetachedUnregistersNetworkCallback() { mController.onViewDetached(); verify(mConnectivityManager) .unregisterNetworkCallback(any(ConnectivityManager.NetworkCallback.class)); } @Test public void testOnViewDetachedRemovesCallbacks() { mController.onViewDetached(); Loading @@ -342,61 +312,6 @@ public class DreamOverlayStatusBarViewControllerTest extends SysuiTestCase { verify(mView).removeAllExtraStatusBarItemViews(); } @Test public void testWifiIconHiddenWhenWifiBecomesAvailable() { // Make sure wifi starts out unavailable when onViewAttached is called, and then returns // true on the second query. when(mNetworkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) .thenReturn(false).thenReturn(true); when(mConnectivityManager.getNetworkCapabilities(any())).thenReturn(mNetworkCapabilities); mController.onViewAttached(); final ArgumentCaptor<ConnectivityManager.NetworkCallback> callbackCapture = ArgumentCaptor.forClass(ConnectivityManager.NetworkCallback.class); verify(mConnectivityManager).registerNetworkCallback(any(), callbackCapture.capture()); callbackCapture.getValue().onAvailable(mNetwork); verify(mView).showIcon( DreamOverlayStatusBarView.STATUS_ICON_WIFI_UNAVAILABLE, false, null); } @Test public void testWifiIconShownWhenWifiBecomesUnavailable() { // Make sure wifi starts out available when onViewAttached is called, then returns false // on the second query. when(mNetworkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) .thenReturn(true).thenReturn(false); when(mConnectivityManager.getNetworkCapabilities(any())).thenReturn(mNetworkCapabilities); mController.onViewAttached(); final ArgumentCaptor<ConnectivityManager.NetworkCallback> callbackCapture = ArgumentCaptor.forClass(ConnectivityManager.NetworkCallback.class); verify(mConnectivityManager).registerNetworkCallback(any(), callbackCapture.capture()); callbackCapture.getValue().onLost(mNetwork); verify(mView).showIcon( DreamOverlayStatusBarView.STATUS_ICON_WIFI_UNAVAILABLE, true, null); } @Test public void testWifiIconHiddenWhenCapabilitiesChange() { // Make sure wifi starts out unavailable when onViewAttached is called. when(mNetworkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) .thenReturn(false); when(mConnectivityManager.getNetworkCapabilities(any())).thenReturn(mNetworkCapabilities); mController.onViewAttached(); final ArgumentCaptor<ConnectivityManager.NetworkCallback> callbackCapture = ArgumentCaptor.forClass(ConnectivityManager.NetworkCallback.class); verify(mConnectivityManager).registerNetworkCallback(any(), callbackCapture.capture()); when(mNetworkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) .thenReturn(true); callbackCapture.getValue().onCapabilitiesChanged(mNetwork, mNetworkCapabilities); verify(mView).showIcon( DreamOverlayStatusBarView.STATUS_ICON_WIFI_UNAVAILABLE, false, null); } @Test public void testNotificationsIconShownWhenNotificationAdded() { mController.onViewAttached(); Loading packages/SystemUI/src/com/android/systemui/dreams/DreamOverlayStatusBarViewController.java +16 −40 Original line number Diff line number Diff line Loading @@ -16,30 +16,30 @@ package com.android.systemui.dreams; import static com.android.systemui.util.kotlin.JavaAdapterKt.collectFlow; import android.app.AlarmManager; import android.app.StatusBarManager; import android.content.res.Resources; import android.hardware.SensorPrivacyManager; import android.net.ConnectivityManager; import android.net.ConnectivityManager.NetworkCallback; import android.net.Network; import android.net.NetworkCapabilities; import android.net.NetworkRequest; import android.provider.Settings; import android.text.format.DateFormat; import android.util.PluralsMessageFormatter; import android.view.View; import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import com.android.systemui.res.R; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.dreams.DreamOverlayStatusBarItemsProvider.StatusBarItem; import com.android.systemui.dreams.dagger.DreamOverlayComponent; import com.android.systemui.log.LogBuffer; import com.android.systemui.log.dagger.DreamLog; import com.android.systemui.res.R; import com.android.systemui.settings.UserTracker; import com.android.systemui.statusbar.CrossFadeHelper; import com.android.systemui.statusbar.pipeline.wifi.data.repository.WifiRepository; import com.android.systemui.statusbar.pipeline.wifi.shared.model.WifiNetworkModel; import com.android.systemui.statusbar.policy.IndividualSensorPrivacyController; import com.android.systemui.statusbar.policy.NextAlarmController; import com.android.systemui.statusbar.policy.ZenModeController; Loading @@ -65,7 +65,6 @@ import javax.inject.Inject; public class DreamOverlayStatusBarViewController extends ViewController<DreamOverlayStatusBarView> { private static final String TAG = "DreamStatusBarCtrl"; private final ConnectivityManager mConnectivityManager; private final TouchInsetManager.TouchInsetSession mTouchInsetSession; private final NextAlarmController mNextAlarmController; private final AlarmManager mAlarmManager; Loading @@ -77,6 +76,7 @@ public class DreamOverlayStatusBarViewController extends ViewController<DreamOve private final ZenModeController mZenModeController; private final DreamOverlayStateController mDreamOverlayStateController; private final UserTracker mUserTracker; private final WifiRepository mWifiRepository; private final StatusBarWindowStateController mStatusBarWindowStateController; private final DreamOverlayStatusBarItemsProvider mStatusBarItemsProvider; private final Executor mMainExecutor; Loading @@ -89,28 +89,6 @@ public class DreamOverlayStatusBarViewController extends ViewController<DreamOve // Whether dream entry animations are finished. private boolean mEntryAnimationsFinished = false; private final NetworkRequest mNetworkRequest = new NetworkRequest.Builder() .clearCapabilities() .addTransportType(NetworkCapabilities.TRANSPORT_WIFI).build(); private final NetworkCallback mNetworkCallback = new NetworkCallback() { @Override public void onCapabilitiesChanged( Network network, NetworkCapabilities networkCapabilities) { updateWifiUnavailableStatusIcon(); } @Override public void onAvailable(Network network) { updateWifiUnavailableStatusIcon(); } @Override public void onLost(Network network) { updateWifiUnavailableStatusIcon(); } }; private final DreamOverlayStateController.Callback mDreamOverlayStateCallback = new DreamOverlayStateController.Callback() { @Override Loading Loading @@ -151,7 +129,6 @@ public class DreamOverlayStatusBarViewController extends ViewController<DreamOve DreamOverlayStatusBarView view, @Main Resources resources, @Main Executor mainExecutor, ConnectivityManager connectivityManager, TouchInsetManager.TouchInsetSession touchInsetSession, AlarmManager alarmManager, NextAlarmController nextAlarmController, Loading @@ -163,11 +140,11 @@ public class DreamOverlayStatusBarViewController extends ViewController<DreamOve DreamOverlayStatusBarItemsProvider statusBarItemsProvider, DreamOverlayStateController dreamOverlayStateController, UserTracker userTracker, WifiRepository wifiRepository, @DreamLog LogBuffer logBuffer) { super(view); mResources = resources; mMainExecutor = mainExecutor; mConnectivityManager = connectivityManager; mTouchInsetSession = touchInsetSession; mAlarmManager = alarmManager; mNextAlarmController = nextAlarmController; Loading @@ -179,6 +156,7 @@ public class DreamOverlayStatusBarViewController extends ViewController<DreamOve mZenModeController = zenModeController; mDreamOverlayStateController = dreamOverlayStateController; mUserTracker = userTracker; mWifiRepository = wifiRepository; mLogger = new DreamLogger(logBuffer, TAG); // Register to receive show/hide updates for the system status bar. Our custom status bar Loading @@ -190,8 +168,11 @@ public class DreamOverlayStatusBarViewController extends ViewController<DreamOve protected void onViewAttached() { mIsAttached = true; mConnectivityManager.registerNetworkCallback(mNetworkRequest, mNetworkCallback); updateWifiUnavailableStatusIcon(); collectFlow( mView, mWifiRepository.getWifiNetwork(), network -> updateWifiUnavailableStatusIcon( network instanceof WifiNetworkModel.Active)); mNextAlarmController.addCallback(mNextAlarmCallback); updateAlarmStatusIcon(); Loading @@ -215,7 +196,6 @@ public class DreamOverlayStatusBarViewController extends ViewController<DreamOve mZenModeController.removeCallback(mZenModeCallback); mSensorPrivacyController.removeCallback(mSensorCallback); mNextAlarmController.removeCallback(mNextAlarmCallback); mConnectivityManager.unregisterNetworkCallback(mNetworkCallback); mDreamOverlayNotificationCountProvider.ifPresent( provider -> provider.removeCallback(mNotificationCountCallback)); mStatusBarItemsProvider.removeCallback(mStatusBarItemsProviderCallback); Loading Loading @@ -258,12 +238,8 @@ public class DreamOverlayStatusBarViewController extends ViewController<DreamOve && !mStatusBarWindowStateController.windowIsShowing(); } private void updateWifiUnavailableStatusIcon() { final NetworkCapabilities capabilities = mConnectivityManager.getNetworkCapabilities( mConnectivityManager.getActiveNetwork()); final boolean available = capabilities != null && capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI); @VisibleForTesting void updateWifiUnavailableStatusIcon(boolean available) { showIcon(DreamOverlayStatusBarView.STATUS_ICON_WIFI_UNAVAILABLE, !available, R.string.wifi_unavailable_dream_overlay_content_description); } Loading Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/dreams/DreamOverlayStatusBarViewControllerTest.java +12 −97 Original line number Diff line number Diff line Loading @@ -36,11 +36,8 @@ import android.app.AlarmManager; import android.content.Context; import android.content.res.Resources; import android.hardware.SensorPrivacyManager; import android.net.ConnectivityManager; import android.net.Network; import android.net.NetworkCapabilities; import android.net.NetworkRequest; import android.provider.Settings; import android.testing.TestableLooper; import android.view.View; import androidx.test.ext.junit.runners.AndroidJUnit4; Loading @@ -51,6 +48,7 @@ import com.android.systemui.log.LogBuffer; import com.android.systemui.log.core.FakeLogBuffer; import com.android.systemui.res.R; import com.android.systemui.settings.UserTracker; import com.android.systemui.statusbar.pipeline.wifi.data.repository.FakeWifiRepository; import com.android.systemui.statusbar.policy.IndividualSensorPrivacyController; import com.android.systemui.statusbar.policy.NextAlarmController; import com.android.systemui.statusbar.policy.ZenModeController; Loading @@ -72,6 +70,7 @@ import java.util.Optional; import java.util.concurrent.Executor; @SmallTest @TestableLooper.RunWithLooper(setAsMainLooper = true) @RunWith(AndroidJUnit4.class) public class DreamOverlayStatusBarViewControllerTest extends SysuiTestCase { private static final String NOTIFICATION_INDICATOR_FORMATTER_STRING = Loading @@ -80,12 +79,6 @@ public class DreamOverlayStatusBarViewControllerTest extends SysuiTestCase { @Mock MockDreamOverlayStatusBarView mView; @Mock ConnectivityManager mConnectivityManager; @Mock NetworkCapabilities mNetworkCapabilities; @Mock Network mNetwork; @Mock TouchInsetManager.TouchInsetSession mTouchSession; @Mock Resources mResources; Loading Loading @@ -121,6 +114,8 @@ public class DreamOverlayStatusBarViewControllerTest extends SysuiTestCase { private final Executor mMainExecutor = Runnable::run; private final FakeWifiRepository mWifiRepository = new FakeWifiRepository(); DreamOverlayStatusBarViewController mController; @Before Loading @@ -137,7 +132,6 @@ public class DreamOverlayStatusBarViewControllerTest extends SysuiTestCase { mView, mResources, mMainExecutor, mConnectivityManager, mTouchSession, mAlarmManager, mNextAlarmController, Loading @@ -149,6 +143,7 @@ public class DreamOverlayStatusBarViewControllerTest extends SysuiTestCase { mDreamOverlayStatusBarItemsProvider, mDreamOverlayStateController, mUserTracker, mWifiRepository, mLogBuffer); } Loading @@ -164,39 +159,21 @@ public class DreamOverlayStatusBarViewControllerTest extends SysuiTestCase { } @Test public void testOnViewAttachedRegistersNetworkCallback() { public void testWifiIconShownWhenWifiUnavailable() { mController.onViewAttached(); verify(mConnectivityManager) .registerNetworkCallback(any(NetworkRequest.class), any( ConnectivityManager.NetworkCallback.class)); } mController.updateWifiUnavailableStatusIcon(false); @Test public void testOnViewAttachedShowsWifiIconWhenWifiUnavailable() { when(mNetworkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) .thenReturn(false); when(mConnectivityManager.getNetworkCapabilities(any())).thenReturn(mNetworkCapabilities); mController.onViewAttached(); verify(mView).showIcon( DreamOverlayStatusBarView.STATUS_ICON_WIFI_UNAVAILABLE, true, null); } @Test public void testOnViewAttachedHidesWifiIconWhenWifiAvailable() { when(mNetworkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) .thenReturn(true); when(mConnectivityManager.getNetworkCapabilities(any())).thenReturn(mNetworkCapabilities); public void testWifiIconHiddenWhenWifiAvailable() { mController.onViewAttached(); verify(mView).showIcon( DreamOverlayStatusBarView.STATUS_ICON_WIFI_UNAVAILABLE, false, null); } mController.updateWifiUnavailableStatusIcon(true); @Test public void testOnViewAttachedShowsWifiIconWhenNetworkCapabilitiesUnavailable() { when(mConnectivityManager.getNetworkCapabilities(any())).thenReturn(null); mController.onViewAttached(); verify(mView).showIcon( DreamOverlayStatusBarView.STATUS_ICON_WIFI_UNAVAILABLE, true, null); DreamOverlayStatusBarView.STATUS_ICON_WIFI_UNAVAILABLE, false, null); } @Test Loading Loading @@ -282,7 +259,6 @@ public class DreamOverlayStatusBarViewControllerTest extends SysuiTestCase { mView, mResources, mMainExecutor, mConnectivityManager, mTouchSession, mAlarmManager, mNextAlarmController, Loading @@ -294,6 +270,7 @@ public class DreamOverlayStatusBarViewControllerTest extends SysuiTestCase { mDreamOverlayStatusBarItemsProvider, mDreamOverlayStateController, mUserTracker, mWifiRepository, mLogBuffer); controller.onViewAttached(); verify(mView, never()).showIcon( Loading @@ -318,13 +295,6 @@ public class DreamOverlayStatusBarViewControllerTest extends SysuiTestCase { DreamOverlayStatusBarView.STATUS_ICON_PRIORITY_MODE_ON, false, null); } @Test public void testOnViewDetachedUnregistersNetworkCallback() { mController.onViewDetached(); verify(mConnectivityManager) .unregisterNetworkCallback(any(ConnectivityManager.NetworkCallback.class)); } @Test public void testOnViewDetachedRemovesCallbacks() { mController.onViewDetached(); Loading @@ -342,61 +312,6 @@ public class DreamOverlayStatusBarViewControllerTest extends SysuiTestCase { verify(mView).removeAllExtraStatusBarItemViews(); } @Test public void testWifiIconHiddenWhenWifiBecomesAvailable() { // Make sure wifi starts out unavailable when onViewAttached is called, and then returns // true on the second query. when(mNetworkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) .thenReturn(false).thenReturn(true); when(mConnectivityManager.getNetworkCapabilities(any())).thenReturn(mNetworkCapabilities); mController.onViewAttached(); final ArgumentCaptor<ConnectivityManager.NetworkCallback> callbackCapture = ArgumentCaptor.forClass(ConnectivityManager.NetworkCallback.class); verify(mConnectivityManager).registerNetworkCallback(any(), callbackCapture.capture()); callbackCapture.getValue().onAvailable(mNetwork); verify(mView).showIcon( DreamOverlayStatusBarView.STATUS_ICON_WIFI_UNAVAILABLE, false, null); } @Test public void testWifiIconShownWhenWifiBecomesUnavailable() { // Make sure wifi starts out available when onViewAttached is called, then returns false // on the second query. when(mNetworkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) .thenReturn(true).thenReturn(false); when(mConnectivityManager.getNetworkCapabilities(any())).thenReturn(mNetworkCapabilities); mController.onViewAttached(); final ArgumentCaptor<ConnectivityManager.NetworkCallback> callbackCapture = ArgumentCaptor.forClass(ConnectivityManager.NetworkCallback.class); verify(mConnectivityManager).registerNetworkCallback(any(), callbackCapture.capture()); callbackCapture.getValue().onLost(mNetwork); verify(mView).showIcon( DreamOverlayStatusBarView.STATUS_ICON_WIFI_UNAVAILABLE, true, null); } @Test public void testWifiIconHiddenWhenCapabilitiesChange() { // Make sure wifi starts out unavailable when onViewAttached is called. when(mNetworkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) .thenReturn(false); when(mConnectivityManager.getNetworkCapabilities(any())).thenReturn(mNetworkCapabilities); mController.onViewAttached(); final ArgumentCaptor<ConnectivityManager.NetworkCallback> callbackCapture = ArgumentCaptor.forClass(ConnectivityManager.NetworkCallback.class); verify(mConnectivityManager).registerNetworkCallback(any(), callbackCapture.capture()); when(mNetworkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) .thenReturn(true); callbackCapture.getValue().onCapabilitiesChanged(mNetwork, mNetworkCapabilities); verify(mView).showIcon( DreamOverlayStatusBarView.STATUS_ICON_WIFI_UNAVAILABLE, false, null); } @Test public void testNotificationsIconShownWhenNotificationAdded() { mController.onViewAttached(); Loading
packages/SystemUI/src/com/android/systemui/dreams/DreamOverlayStatusBarViewController.java +16 −40 Original line number Diff line number Diff line Loading @@ -16,30 +16,30 @@ package com.android.systemui.dreams; import static com.android.systemui.util.kotlin.JavaAdapterKt.collectFlow; import android.app.AlarmManager; import android.app.StatusBarManager; import android.content.res.Resources; import android.hardware.SensorPrivacyManager; import android.net.ConnectivityManager; import android.net.ConnectivityManager.NetworkCallback; import android.net.Network; import android.net.NetworkCapabilities; import android.net.NetworkRequest; import android.provider.Settings; import android.text.format.DateFormat; import android.util.PluralsMessageFormatter; import android.view.View; import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import com.android.systemui.res.R; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.dreams.DreamOverlayStatusBarItemsProvider.StatusBarItem; import com.android.systemui.dreams.dagger.DreamOverlayComponent; import com.android.systemui.log.LogBuffer; import com.android.systemui.log.dagger.DreamLog; import com.android.systemui.res.R; import com.android.systemui.settings.UserTracker; import com.android.systemui.statusbar.CrossFadeHelper; import com.android.systemui.statusbar.pipeline.wifi.data.repository.WifiRepository; import com.android.systemui.statusbar.pipeline.wifi.shared.model.WifiNetworkModel; import com.android.systemui.statusbar.policy.IndividualSensorPrivacyController; import com.android.systemui.statusbar.policy.NextAlarmController; import com.android.systemui.statusbar.policy.ZenModeController; Loading @@ -65,7 +65,6 @@ import javax.inject.Inject; public class DreamOverlayStatusBarViewController extends ViewController<DreamOverlayStatusBarView> { private static final String TAG = "DreamStatusBarCtrl"; private final ConnectivityManager mConnectivityManager; private final TouchInsetManager.TouchInsetSession mTouchInsetSession; private final NextAlarmController mNextAlarmController; private final AlarmManager mAlarmManager; Loading @@ -77,6 +76,7 @@ public class DreamOverlayStatusBarViewController extends ViewController<DreamOve private final ZenModeController mZenModeController; private final DreamOverlayStateController mDreamOverlayStateController; private final UserTracker mUserTracker; private final WifiRepository mWifiRepository; private final StatusBarWindowStateController mStatusBarWindowStateController; private final DreamOverlayStatusBarItemsProvider mStatusBarItemsProvider; private final Executor mMainExecutor; Loading @@ -89,28 +89,6 @@ public class DreamOverlayStatusBarViewController extends ViewController<DreamOve // Whether dream entry animations are finished. private boolean mEntryAnimationsFinished = false; private final NetworkRequest mNetworkRequest = new NetworkRequest.Builder() .clearCapabilities() .addTransportType(NetworkCapabilities.TRANSPORT_WIFI).build(); private final NetworkCallback mNetworkCallback = new NetworkCallback() { @Override public void onCapabilitiesChanged( Network network, NetworkCapabilities networkCapabilities) { updateWifiUnavailableStatusIcon(); } @Override public void onAvailable(Network network) { updateWifiUnavailableStatusIcon(); } @Override public void onLost(Network network) { updateWifiUnavailableStatusIcon(); } }; private final DreamOverlayStateController.Callback mDreamOverlayStateCallback = new DreamOverlayStateController.Callback() { @Override Loading Loading @@ -151,7 +129,6 @@ public class DreamOverlayStatusBarViewController extends ViewController<DreamOve DreamOverlayStatusBarView view, @Main Resources resources, @Main Executor mainExecutor, ConnectivityManager connectivityManager, TouchInsetManager.TouchInsetSession touchInsetSession, AlarmManager alarmManager, NextAlarmController nextAlarmController, Loading @@ -163,11 +140,11 @@ public class DreamOverlayStatusBarViewController extends ViewController<DreamOve DreamOverlayStatusBarItemsProvider statusBarItemsProvider, DreamOverlayStateController dreamOverlayStateController, UserTracker userTracker, WifiRepository wifiRepository, @DreamLog LogBuffer logBuffer) { super(view); mResources = resources; mMainExecutor = mainExecutor; mConnectivityManager = connectivityManager; mTouchInsetSession = touchInsetSession; mAlarmManager = alarmManager; mNextAlarmController = nextAlarmController; Loading @@ -179,6 +156,7 @@ public class DreamOverlayStatusBarViewController extends ViewController<DreamOve mZenModeController = zenModeController; mDreamOverlayStateController = dreamOverlayStateController; mUserTracker = userTracker; mWifiRepository = wifiRepository; mLogger = new DreamLogger(logBuffer, TAG); // Register to receive show/hide updates for the system status bar. Our custom status bar Loading @@ -190,8 +168,11 @@ public class DreamOverlayStatusBarViewController extends ViewController<DreamOve protected void onViewAttached() { mIsAttached = true; mConnectivityManager.registerNetworkCallback(mNetworkRequest, mNetworkCallback); updateWifiUnavailableStatusIcon(); collectFlow( mView, mWifiRepository.getWifiNetwork(), network -> updateWifiUnavailableStatusIcon( network instanceof WifiNetworkModel.Active)); mNextAlarmController.addCallback(mNextAlarmCallback); updateAlarmStatusIcon(); Loading @@ -215,7 +196,6 @@ public class DreamOverlayStatusBarViewController extends ViewController<DreamOve mZenModeController.removeCallback(mZenModeCallback); mSensorPrivacyController.removeCallback(mSensorCallback); mNextAlarmController.removeCallback(mNextAlarmCallback); mConnectivityManager.unregisterNetworkCallback(mNetworkCallback); mDreamOverlayNotificationCountProvider.ifPresent( provider -> provider.removeCallback(mNotificationCountCallback)); mStatusBarItemsProvider.removeCallback(mStatusBarItemsProviderCallback); Loading Loading @@ -258,12 +238,8 @@ public class DreamOverlayStatusBarViewController extends ViewController<DreamOve && !mStatusBarWindowStateController.windowIsShowing(); } private void updateWifiUnavailableStatusIcon() { final NetworkCapabilities capabilities = mConnectivityManager.getNetworkCapabilities( mConnectivityManager.getActiveNetwork()); final boolean available = capabilities != null && capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI); @VisibleForTesting void updateWifiUnavailableStatusIcon(boolean available) { showIcon(DreamOverlayStatusBarView.STATUS_ICON_WIFI_UNAVAILABLE, !available, R.string.wifi_unavailable_dream_overlay_content_description); } Loading