Loading packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialog.java +38 −15 Original line number Diff line number Diff line Loading @@ -66,11 +66,13 @@ import com.android.systemui.Prefs; import com.android.systemui.R; import com.android.systemui.accessibility.floatingmenu.AnnotationLinkSpan; import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.dagger.qualifiers.Background; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.statusbar.phone.SystemUIDialog; import com.android.wifitrackerlib.WifiEntry; import java.util.List; import java.util.concurrent.Executor; /** * Dialog for showing mobile network, connected Wi-Fi network and Wi-Fi networks. Loading @@ -84,6 +86,7 @@ public class InternetDialog extends SystemUIDialog implements static final long PROGRESS_DELAY_MS = 2000L; private final Handler mHandler; private final Executor mBackgroundExecutor; private final LinearLayoutManager mLayoutManager; @VisibleForTesting Loading Loading @@ -158,13 +161,14 @@ public class InternetDialog extends SystemUIDialog implements public InternetDialog(Context context, InternetDialogFactory internetDialogFactory, InternetDialogController internetDialogController, boolean canConfigMobileData, boolean canConfigWifi, boolean aboveStatusBar, UiEventLogger uiEventLogger, @Main Handler handler) { @Main Handler handler, @Background Executor executor) { super(context, R.style.Theme_SystemUI_Dialog_Internet); if (DEBUG) { Log.d(TAG, "Init InternetDialog"); } mContext = context; mHandler = handler; mBackgroundExecutor = executor; mInternetDialogFactory = internetDialogFactory; mInternetDialogController = internetDialogController; mSubscriptionManager = mInternetDialogController.getSubscriptionManager(); Loading Loading @@ -299,7 +303,13 @@ public class InternetDialog extends SystemUIDialog implements dismiss(); } void updateDialog() { /** * Update the internet dialog when receiving the callback. * * @param shouldUpdateMobileNetwork {@code true} for update the mobile network layout, * otherwise {@code false}. */ void updateDialog(boolean shouldUpdateMobileNetwork) { if (DEBUG) { Log.d(TAG, "updateDialog"); } Loading @@ -309,8 +319,10 @@ public class InternetDialog extends SystemUIDialog implements mInternetDialogSubTitle.setText(getSubtitleText()); } updateEthernet(); if (shouldUpdateMobileNetwork) { setMobileDataLayout(mInternetDialogController.activeNetworkIsCellular() || mInternetDialogController.isCarrierNetworkActive()); } if (!mCanConfigWifi) { return; Loading Loading @@ -379,7 +391,13 @@ public class InternetDialog extends SystemUIDialog implements } else { mMobileSummaryText.setVisibility(View.GONE); } mSignalIcon.setImageDrawable(getSignalStrengthDrawable()); mBackgroundExecutor.execute(() -> { Drawable drawable = getSignalStrengthDrawable(); mHandler.post(() -> { mSignalIcon.setImageDrawable(drawable); }); }); mMobileTitleText.setTextAppearance(isCarrierNetworkConnected ? R.style.TextAppearance_InternetDialog_Active : R.style.TextAppearance_InternetDialog); Loading Loading @@ -534,52 +552,57 @@ public class InternetDialog extends SystemUIDialog implements @Override public void onRefreshCarrierInfo() { mHandler.post(() -> updateDialog()); mHandler.post(() -> updateDialog(true /* shouldUpdateMobileNetwork */)); } @Override public void onSimStateChanged() { mHandler.post(() -> updateDialog()); mHandler.post(() -> updateDialog(true /* shouldUpdateMobileNetwork */)); } @Override @WorkerThread public void onCapabilitiesChanged(Network network, NetworkCapabilities networkCapabilities) { mHandler.post(() -> updateDialog()); mHandler.post(() -> updateDialog(true /* shouldUpdateMobileNetwork */)); } @Override @WorkerThread public void onLost(Network network) { mHandler.post(() -> updateDialog()); mHandler.post(() -> updateDialog(true /* shouldUpdateMobileNetwork */)); } @Override public void onSubscriptionsChanged(int defaultDataSubId) { mDefaultDataSubId = defaultDataSubId; mTelephonyManager = mTelephonyManager.createForSubscriptionId(mDefaultDataSubId); mHandler.post(() -> updateDialog()); mHandler.post(() -> updateDialog(true /* shouldUpdateMobileNetwork */)); } @Override public void onUserMobileDataStateChanged(boolean enabled) { mHandler.post(() -> updateDialog(true /* shouldUpdateMobileNetwork */)); } @Override public void onServiceStateChanged(ServiceState serviceState) { mHandler.post(() -> updateDialog()); mHandler.post(() -> updateDialog(true /* shouldUpdateMobileNetwork */)); } @Override @WorkerThread public void onDataConnectionStateChanged(int state, int networkType) { mHandler.post(() -> updateDialog()); mHandler.post(() -> updateDialog(true /* shouldUpdateMobileNetwork */)); } @Override public void onSignalStrengthsChanged(SignalStrength signalStrength) { mHandler.post(() -> updateDialog()); mHandler.post(() -> updateDialog(true /* shouldUpdateMobileNetwork */)); } @Override public void onDisplayInfoChanged(TelephonyDisplayInfo telephonyDisplayInfo) { mHandler.post(() -> updateDialog()); mHandler.post(() -> updateDialog(true /* shouldUpdateMobileNetwork */)); } @Override Loading @@ -591,7 +614,7 @@ public class InternetDialog extends SystemUIDialog implements mAdapter.setWifiEntries(wifiEntries, mWifiEntriesCount); mHandler.post(() -> { mAdapter.notifyDataSetChanged(); updateDialog(); updateDialog(false /* shouldUpdateMobileNetwork */); }); } Loading packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialogController.java +13 −6 Original line number Diff line number Diff line Loading @@ -149,6 +149,7 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback, private ConnectivityManager.NetworkCallback mConnectivityManagerNetworkCallback; private WindowManager mWindowManager; private ToastFactory mToastFactory; private SignalDrawable mSignalDrawable; @VisibleForTesting static final float TOAST_PARAMS_HORIZONTAL_WEIGHT = 1.0f; Loading Loading @@ -225,6 +226,7 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback, mConnectivityManagerNetworkCallback = new DataConnectivityListener(); mWindowManager = windowManager; mToastFactory = toastFactory; mSignalDrawable = new SignalDrawable(mContext); } void onStart(@NonNull InternetDialogCallback callback, boolean canConfigWifi) { Loading Loading @@ -431,10 +433,7 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback, Drawable getSignalStrengthIcon(Context context, int level, int numLevels, int iconType, boolean cutOut) { Log.d(TAG, "getSignalStrengthIcon"); final SignalDrawable signalDrawable = new SignalDrawable(context); signalDrawable.setLevel( SignalDrawable.getState(level, numLevels, cutOut)); mSignalDrawable.setLevel(SignalDrawable.getState(level, numLevels, cutOut)); // Make the network type drawable final Drawable networkDrawable = Loading @@ -443,7 +442,7 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback, : context.getResources().getDrawable(iconType, context.getTheme()); // Overlay the two drawables final Drawable[] layers = {networkDrawable, signalDrawable}; final Drawable[] layers = {networkDrawable, mSignalDrawable}; final int iconSize = context.getResources().getDimensionPixelSize(R.dimen.signal_strength_icon_size); Loading Loading @@ -892,7 +891,8 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback, TelephonyCallback.DataConnectionStateListener, TelephonyCallback.DisplayInfoListener, TelephonyCallback.ServiceStateListener, TelephonyCallback.SignalStrengthsListener { TelephonyCallback.SignalStrengthsListener, TelephonyCallback.UserMobileDataStateListener { @Override public void onServiceStateChanged(@NonNull ServiceState serviceState) { Loading @@ -914,6 +914,11 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback, mTelephonyDisplayInfo = telephonyDisplayInfo; mCallback.onDisplayInfoChanged(telephonyDisplayInfo); } @Override public void onUserMobileDataStateChanged(boolean enabled) { mCallback.onUserMobileDataStateChanged(enabled); } } private class InternetOnSubscriptionChangedListener Loading Loading @@ -1018,6 +1023,8 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback, void onSignalStrengthsChanged(SignalStrength signalStrength); void onUserMobileDataStateChanged(boolean enabled); void onDisplayInfoChanged(TelephonyDisplayInfo telephonyDisplayInfo); void dismissDialog(); Loading packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialogFactory.kt +5 −1 Original line number Diff line number Diff line Loading @@ -20,7 +20,9 @@ import android.os.Handler import android.util.Log import com.android.internal.logging.UiEventLogger import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Background; import com.android.systemui.dagger.qualifiers.Main import java.util.concurrent.Executor import javax.inject.Inject private const val TAG = "InternetDialogFactory" Loading @@ -32,6 +34,7 @@ private val DEBUG = Log.isLoggable(TAG, Log.DEBUG) @SysUISingleton class InternetDialogFactory @Inject constructor( @Main private val handler: Handler, @Background private val executor: Executor, private val internetDialogController: InternetDialogController, private val context: Context, private val uiEventLogger: UiEventLogger Loading @@ -49,7 +52,8 @@ class InternetDialogFactory @Inject constructor( return } else { internetDialog = InternetDialog(context, this, internetDialogController, canConfigMobileData, canConfigWifi, aboveStatusBar, uiEventLogger, handler) canConfigMobileData, canConfigWifi, aboveStatusBar, uiEventLogger, handler, executor) internetDialog?.show() } } Loading packages/SystemUI/tests/src/com/android/systemui/qs/tiles/dialog/InternetDialogTest.java +23 −19 Original line number Diff line number Diff line Loading @@ -27,6 +27,8 @@ import androidx.test.filters.SmallTest; import com.android.internal.logging.UiEventLogger; import com.android.systemui.R; import com.android.systemui.SysuiTestCase; import com.android.systemui.util.concurrency.FakeExecutor; import com.android.systemui.util.time.FakeSystemClock; import com.android.wifitrackerlib.WifiEntry; import org.junit.After; Loading Loading @@ -65,6 +67,7 @@ public class InternetDialogTest extends SysuiTestCase { @Mock private InternetDialogController mInternetDialogController; private FakeExecutor mBgExecutor = new FakeExecutor(new FakeSystemClock()); private InternetDialog mInternetDialog; private View mDialogView; private View mSubTitle; Loading Loading @@ -93,7 +96,8 @@ public class InternetDialogTest extends SysuiTestCase { when(mInternetDialogController.getWifiManager()).thenReturn(mWifiManager); mInternetDialog = new InternetDialog(mContext, mock(InternetDialogFactory.class), mInternetDialogController, true, true, true, mock(UiEventLogger.class), mHandler); mInternetDialogController, true, true, true, mock(UiEventLogger.class), mHandler, mBgExecutor); mInternetDialog.mAdapter = mInternetAdapter; mInternetDialog.onAccessPointsChanged(mWifiEntries, mInternetWifiEntry); mInternetDialog.show(); Loading Loading @@ -129,7 +133,7 @@ public class InternetDialogTest extends SysuiTestCase { public void updateDialog_withApmOn_internetDialogSubTitleGone() { when(mInternetDialogController.isAirplaneModeEnabled()).thenReturn(true); mInternetDialog.updateDialog(); mInternetDialog.updateDialog(true); assertThat(mSubTitle.getVisibility()).isEqualTo(View.GONE); } Loading @@ -138,7 +142,7 @@ public class InternetDialogTest extends SysuiTestCase { public void updateDialog_withApmOff_internetDialogSubTitleVisible() { when(mInternetDialogController.isAirplaneModeEnabled()).thenReturn(false); mInternetDialog.updateDialog(); mInternetDialog.updateDialog(true); assertThat(mSubTitle.getVisibility()).isEqualTo(View.VISIBLE); } Loading @@ -148,7 +152,7 @@ public class InternetDialogTest extends SysuiTestCase { when(mInternetDialogController.isAirplaneModeEnabled()).thenReturn(false); when(mInternetDialogController.hasEthernet()).thenReturn(true); mInternetDialog.updateDialog(); mInternetDialog.updateDialog(true); assertThat(mEthernet.getVisibility()).isEqualTo(View.VISIBLE); } Loading @@ -158,7 +162,7 @@ public class InternetDialogTest extends SysuiTestCase { when(mInternetDialogController.isAirplaneModeEnabled()).thenReturn(false); when(mInternetDialogController.hasEthernet()).thenReturn(false); mInternetDialog.updateDialog(); mInternetDialog.updateDialog(true); assertThat(mEthernet.getVisibility()).isEqualTo(View.GONE); } Loading @@ -168,7 +172,7 @@ public class InternetDialogTest extends SysuiTestCase { when(mInternetDialogController.isAirplaneModeEnabled()).thenReturn(true); when(mInternetDialogController.hasEthernet()).thenReturn(true); mInternetDialog.updateDialog(); mInternetDialog.updateDialog(true); assertThat(mEthernet.getVisibility()).isEqualTo(View.VISIBLE); } Loading @@ -178,7 +182,7 @@ public class InternetDialogTest extends SysuiTestCase { when(mInternetDialogController.isAirplaneModeEnabled()).thenReturn(true); when(mInternetDialogController.hasEthernet()).thenReturn(false); mInternetDialog.updateDialog(); mInternetDialog.updateDialog(true); assertThat(mEthernet.getVisibility()).isEqualTo(View.GONE); } Loading @@ -187,7 +191,7 @@ public class InternetDialogTest extends SysuiTestCase { public void updateDialog_withApmOn_mobileDataLayoutGone() { when(mInternetDialogController.isAirplaneModeEnabled()).thenReturn(true); mInternetDialog.updateDialog(); mInternetDialog.updateDialog(true); assertThat(mMobileDataToggle.getVisibility()).isEqualTo(View.GONE); } Loading @@ -197,7 +201,7 @@ public class InternetDialogTest extends SysuiTestCase { // The preconditions WiFi ON and Internet WiFi are already in setUp() doReturn(false).when(mInternetDialogController).activeNetworkIsCellular(); mInternetDialog.updateDialog(); mInternetDialog.updateDialog(false); assertThat(mConnectedWifi.getVisibility()).isEqualTo(View.VISIBLE); } Loading @@ -208,7 +212,7 @@ public class InternetDialogTest extends SysuiTestCase { mInternetDialog.onAccessPointsChanged(mWifiEntries, null /* connectedEntry*/); doReturn(false).when(mInternetDialogController).activeNetworkIsCellular(); mInternetDialog.updateDialog(); mInternetDialog.updateDialog(false); assertThat(mConnectedWifi.getVisibility()).isEqualTo(View.GONE); } Loading @@ -218,7 +222,7 @@ public class InternetDialogTest extends SysuiTestCase { // The precondition WiFi ON is already in setUp() mInternetDialog.onAccessPointsChanged(null /* wifiEntries */, mInternetWifiEntry); mInternetDialog.updateDialog(); mInternetDialog.updateDialog(false); assertThat(mWifiList.getVisibility()).isEqualTo(View.GONE); assertThat(mSeeAll.getVisibility()).isEqualTo(View.GONE); Loading @@ -228,7 +232,7 @@ public class InternetDialogTest extends SysuiTestCase { public void updateDialog_wifiOnAndHasWifiList_showWifiListAndSeeAll() { // The preconditions WiFi ON and WiFi entries are already in setUp() mInternetDialog.updateDialog(); mInternetDialog.updateDialog(false); assertThat(mWifiList.getVisibility()).isEqualTo(View.VISIBLE); assertThat(mSeeAll.getVisibility()).isEqualTo(View.VISIBLE); Loading @@ -239,7 +243,7 @@ public class InternetDialogTest extends SysuiTestCase { // The preconditions WiFi ON and Internet WiFi are already in setUp() when(mInternetDialogController.isDeviceLocked()).thenReturn(true); mInternetDialog.updateDialog(); mInternetDialog.updateDialog(false); assertThat(mWifiToggle.getVisibility()).isEqualTo(View.VISIBLE); assertThat(mWifiToggle.getBackground()).isNotNull(); Loading @@ -250,7 +254,7 @@ public class InternetDialogTest extends SysuiTestCase { // The preconditions WiFi ON and Internet WiFi are already in setUp() when(mInternetDialogController.isDeviceLocked()).thenReturn(true); mInternetDialog.updateDialog(); mInternetDialog.updateDialog(false); assertThat(mConnectedWifi.getVisibility()).isEqualTo(View.GONE); } Loading @@ -260,7 +264,7 @@ public class InternetDialogTest extends SysuiTestCase { // The preconditions WiFi entries are already in setUp() when(mInternetDialogController.isDeviceLocked()).thenReturn(true); mInternetDialog.updateDialog(); mInternetDialog.updateDialog(false); assertThat(mWifiList.getVisibility()).isEqualTo(View.GONE); assertThat(mSeeAll.getVisibility()).isEqualTo(View.GONE); Loading @@ -270,7 +274,7 @@ public class InternetDialogTest extends SysuiTestCase { public void updateDialog_wifiOn_hideWifiScanNotify() { // The preconditions WiFi ON and Internet WiFi are already in setUp() mInternetDialog.updateDialog(); mInternetDialog.updateDialog(false); assertThat(mWifiScanNotify.getVisibility()).isEqualTo(View.GONE); } Loading @@ -280,7 +284,7 @@ public class InternetDialogTest extends SysuiTestCase { when(mWifiManager.isWifiEnabled()).thenReturn(false); when(mWifiManager.isScanAlwaysAvailable()).thenReturn(false); mInternetDialog.updateDialog(); mInternetDialog.updateDialog(false); assertThat(mWifiScanNotify.getVisibility()).isEqualTo(View.GONE); } Loading @@ -291,7 +295,7 @@ public class InternetDialogTest extends SysuiTestCase { when(mWifiManager.isScanAlwaysAvailable()).thenReturn(true); when(mInternetDialogController.isDeviceLocked()).thenReturn(true); mInternetDialog.updateDialog(); mInternetDialog.updateDialog(false); assertThat(mWifiScanNotify.getVisibility()).isEqualTo(View.GONE); } Loading @@ -302,7 +306,7 @@ public class InternetDialogTest extends SysuiTestCase { when(mWifiManager.isScanAlwaysAvailable()).thenReturn(true); when(mInternetDialogController.isDeviceLocked()).thenReturn(false); mInternetDialog.updateDialog(); mInternetDialog.updateDialog(false); assertThat(mWifiScanNotify.getVisibility()).isEqualTo(View.VISIBLE); TextView wifiScanNotifyText = mDialogView.requireViewById(R.id.wifi_scan_notify_text); Loading Loading
packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialog.java +38 −15 Original line number Diff line number Diff line Loading @@ -66,11 +66,13 @@ import com.android.systemui.Prefs; import com.android.systemui.R; import com.android.systemui.accessibility.floatingmenu.AnnotationLinkSpan; import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.dagger.qualifiers.Background; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.statusbar.phone.SystemUIDialog; import com.android.wifitrackerlib.WifiEntry; import java.util.List; import java.util.concurrent.Executor; /** * Dialog for showing mobile network, connected Wi-Fi network and Wi-Fi networks. Loading @@ -84,6 +86,7 @@ public class InternetDialog extends SystemUIDialog implements static final long PROGRESS_DELAY_MS = 2000L; private final Handler mHandler; private final Executor mBackgroundExecutor; private final LinearLayoutManager mLayoutManager; @VisibleForTesting Loading Loading @@ -158,13 +161,14 @@ public class InternetDialog extends SystemUIDialog implements public InternetDialog(Context context, InternetDialogFactory internetDialogFactory, InternetDialogController internetDialogController, boolean canConfigMobileData, boolean canConfigWifi, boolean aboveStatusBar, UiEventLogger uiEventLogger, @Main Handler handler) { @Main Handler handler, @Background Executor executor) { super(context, R.style.Theme_SystemUI_Dialog_Internet); if (DEBUG) { Log.d(TAG, "Init InternetDialog"); } mContext = context; mHandler = handler; mBackgroundExecutor = executor; mInternetDialogFactory = internetDialogFactory; mInternetDialogController = internetDialogController; mSubscriptionManager = mInternetDialogController.getSubscriptionManager(); Loading Loading @@ -299,7 +303,13 @@ public class InternetDialog extends SystemUIDialog implements dismiss(); } void updateDialog() { /** * Update the internet dialog when receiving the callback. * * @param shouldUpdateMobileNetwork {@code true} for update the mobile network layout, * otherwise {@code false}. */ void updateDialog(boolean shouldUpdateMobileNetwork) { if (DEBUG) { Log.d(TAG, "updateDialog"); } Loading @@ -309,8 +319,10 @@ public class InternetDialog extends SystemUIDialog implements mInternetDialogSubTitle.setText(getSubtitleText()); } updateEthernet(); if (shouldUpdateMobileNetwork) { setMobileDataLayout(mInternetDialogController.activeNetworkIsCellular() || mInternetDialogController.isCarrierNetworkActive()); } if (!mCanConfigWifi) { return; Loading Loading @@ -379,7 +391,13 @@ public class InternetDialog extends SystemUIDialog implements } else { mMobileSummaryText.setVisibility(View.GONE); } mSignalIcon.setImageDrawable(getSignalStrengthDrawable()); mBackgroundExecutor.execute(() -> { Drawable drawable = getSignalStrengthDrawable(); mHandler.post(() -> { mSignalIcon.setImageDrawable(drawable); }); }); mMobileTitleText.setTextAppearance(isCarrierNetworkConnected ? R.style.TextAppearance_InternetDialog_Active : R.style.TextAppearance_InternetDialog); Loading Loading @@ -534,52 +552,57 @@ public class InternetDialog extends SystemUIDialog implements @Override public void onRefreshCarrierInfo() { mHandler.post(() -> updateDialog()); mHandler.post(() -> updateDialog(true /* shouldUpdateMobileNetwork */)); } @Override public void onSimStateChanged() { mHandler.post(() -> updateDialog()); mHandler.post(() -> updateDialog(true /* shouldUpdateMobileNetwork */)); } @Override @WorkerThread public void onCapabilitiesChanged(Network network, NetworkCapabilities networkCapabilities) { mHandler.post(() -> updateDialog()); mHandler.post(() -> updateDialog(true /* shouldUpdateMobileNetwork */)); } @Override @WorkerThread public void onLost(Network network) { mHandler.post(() -> updateDialog()); mHandler.post(() -> updateDialog(true /* shouldUpdateMobileNetwork */)); } @Override public void onSubscriptionsChanged(int defaultDataSubId) { mDefaultDataSubId = defaultDataSubId; mTelephonyManager = mTelephonyManager.createForSubscriptionId(mDefaultDataSubId); mHandler.post(() -> updateDialog()); mHandler.post(() -> updateDialog(true /* shouldUpdateMobileNetwork */)); } @Override public void onUserMobileDataStateChanged(boolean enabled) { mHandler.post(() -> updateDialog(true /* shouldUpdateMobileNetwork */)); } @Override public void onServiceStateChanged(ServiceState serviceState) { mHandler.post(() -> updateDialog()); mHandler.post(() -> updateDialog(true /* shouldUpdateMobileNetwork */)); } @Override @WorkerThread public void onDataConnectionStateChanged(int state, int networkType) { mHandler.post(() -> updateDialog()); mHandler.post(() -> updateDialog(true /* shouldUpdateMobileNetwork */)); } @Override public void onSignalStrengthsChanged(SignalStrength signalStrength) { mHandler.post(() -> updateDialog()); mHandler.post(() -> updateDialog(true /* shouldUpdateMobileNetwork */)); } @Override public void onDisplayInfoChanged(TelephonyDisplayInfo telephonyDisplayInfo) { mHandler.post(() -> updateDialog()); mHandler.post(() -> updateDialog(true /* shouldUpdateMobileNetwork */)); } @Override Loading @@ -591,7 +614,7 @@ public class InternetDialog extends SystemUIDialog implements mAdapter.setWifiEntries(wifiEntries, mWifiEntriesCount); mHandler.post(() -> { mAdapter.notifyDataSetChanged(); updateDialog(); updateDialog(false /* shouldUpdateMobileNetwork */); }); } Loading
packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialogController.java +13 −6 Original line number Diff line number Diff line Loading @@ -149,6 +149,7 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback, private ConnectivityManager.NetworkCallback mConnectivityManagerNetworkCallback; private WindowManager mWindowManager; private ToastFactory mToastFactory; private SignalDrawable mSignalDrawable; @VisibleForTesting static final float TOAST_PARAMS_HORIZONTAL_WEIGHT = 1.0f; Loading Loading @@ -225,6 +226,7 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback, mConnectivityManagerNetworkCallback = new DataConnectivityListener(); mWindowManager = windowManager; mToastFactory = toastFactory; mSignalDrawable = new SignalDrawable(mContext); } void onStart(@NonNull InternetDialogCallback callback, boolean canConfigWifi) { Loading Loading @@ -431,10 +433,7 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback, Drawable getSignalStrengthIcon(Context context, int level, int numLevels, int iconType, boolean cutOut) { Log.d(TAG, "getSignalStrengthIcon"); final SignalDrawable signalDrawable = new SignalDrawable(context); signalDrawable.setLevel( SignalDrawable.getState(level, numLevels, cutOut)); mSignalDrawable.setLevel(SignalDrawable.getState(level, numLevels, cutOut)); // Make the network type drawable final Drawable networkDrawable = Loading @@ -443,7 +442,7 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback, : context.getResources().getDrawable(iconType, context.getTheme()); // Overlay the two drawables final Drawable[] layers = {networkDrawable, signalDrawable}; final Drawable[] layers = {networkDrawable, mSignalDrawable}; final int iconSize = context.getResources().getDimensionPixelSize(R.dimen.signal_strength_icon_size); Loading Loading @@ -892,7 +891,8 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback, TelephonyCallback.DataConnectionStateListener, TelephonyCallback.DisplayInfoListener, TelephonyCallback.ServiceStateListener, TelephonyCallback.SignalStrengthsListener { TelephonyCallback.SignalStrengthsListener, TelephonyCallback.UserMobileDataStateListener { @Override public void onServiceStateChanged(@NonNull ServiceState serviceState) { Loading @@ -914,6 +914,11 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback, mTelephonyDisplayInfo = telephonyDisplayInfo; mCallback.onDisplayInfoChanged(telephonyDisplayInfo); } @Override public void onUserMobileDataStateChanged(boolean enabled) { mCallback.onUserMobileDataStateChanged(enabled); } } private class InternetOnSubscriptionChangedListener Loading Loading @@ -1018,6 +1023,8 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback, void onSignalStrengthsChanged(SignalStrength signalStrength); void onUserMobileDataStateChanged(boolean enabled); void onDisplayInfoChanged(TelephonyDisplayInfo telephonyDisplayInfo); void dismissDialog(); Loading
packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialogFactory.kt +5 −1 Original line number Diff line number Diff line Loading @@ -20,7 +20,9 @@ import android.os.Handler import android.util.Log import com.android.internal.logging.UiEventLogger import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Background; import com.android.systemui.dagger.qualifiers.Main import java.util.concurrent.Executor import javax.inject.Inject private const val TAG = "InternetDialogFactory" Loading @@ -32,6 +34,7 @@ private val DEBUG = Log.isLoggable(TAG, Log.DEBUG) @SysUISingleton class InternetDialogFactory @Inject constructor( @Main private val handler: Handler, @Background private val executor: Executor, private val internetDialogController: InternetDialogController, private val context: Context, private val uiEventLogger: UiEventLogger Loading @@ -49,7 +52,8 @@ class InternetDialogFactory @Inject constructor( return } else { internetDialog = InternetDialog(context, this, internetDialogController, canConfigMobileData, canConfigWifi, aboveStatusBar, uiEventLogger, handler) canConfigMobileData, canConfigWifi, aboveStatusBar, uiEventLogger, handler, executor) internetDialog?.show() } } Loading
packages/SystemUI/tests/src/com/android/systemui/qs/tiles/dialog/InternetDialogTest.java +23 −19 Original line number Diff line number Diff line Loading @@ -27,6 +27,8 @@ import androidx.test.filters.SmallTest; import com.android.internal.logging.UiEventLogger; import com.android.systemui.R; import com.android.systemui.SysuiTestCase; import com.android.systemui.util.concurrency.FakeExecutor; import com.android.systemui.util.time.FakeSystemClock; import com.android.wifitrackerlib.WifiEntry; import org.junit.After; Loading Loading @@ -65,6 +67,7 @@ public class InternetDialogTest extends SysuiTestCase { @Mock private InternetDialogController mInternetDialogController; private FakeExecutor mBgExecutor = new FakeExecutor(new FakeSystemClock()); private InternetDialog mInternetDialog; private View mDialogView; private View mSubTitle; Loading Loading @@ -93,7 +96,8 @@ public class InternetDialogTest extends SysuiTestCase { when(mInternetDialogController.getWifiManager()).thenReturn(mWifiManager); mInternetDialog = new InternetDialog(mContext, mock(InternetDialogFactory.class), mInternetDialogController, true, true, true, mock(UiEventLogger.class), mHandler); mInternetDialogController, true, true, true, mock(UiEventLogger.class), mHandler, mBgExecutor); mInternetDialog.mAdapter = mInternetAdapter; mInternetDialog.onAccessPointsChanged(mWifiEntries, mInternetWifiEntry); mInternetDialog.show(); Loading Loading @@ -129,7 +133,7 @@ public class InternetDialogTest extends SysuiTestCase { public void updateDialog_withApmOn_internetDialogSubTitleGone() { when(mInternetDialogController.isAirplaneModeEnabled()).thenReturn(true); mInternetDialog.updateDialog(); mInternetDialog.updateDialog(true); assertThat(mSubTitle.getVisibility()).isEqualTo(View.GONE); } Loading @@ -138,7 +142,7 @@ public class InternetDialogTest extends SysuiTestCase { public void updateDialog_withApmOff_internetDialogSubTitleVisible() { when(mInternetDialogController.isAirplaneModeEnabled()).thenReturn(false); mInternetDialog.updateDialog(); mInternetDialog.updateDialog(true); assertThat(mSubTitle.getVisibility()).isEqualTo(View.VISIBLE); } Loading @@ -148,7 +152,7 @@ public class InternetDialogTest extends SysuiTestCase { when(mInternetDialogController.isAirplaneModeEnabled()).thenReturn(false); when(mInternetDialogController.hasEthernet()).thenReturn(true); mInternetDialog.updateDialog(); mInternetDialog.updateDialog(true); assertThat(mEthernet.getVisibility()).isEqualTo(View.VISIBLE); } Loading @@ -158,7 +162,7 @@ public class InternetDialogTest extends SysuiTestCase { when(mInternetDialogController.isAirplaneModeEnabled()).thenReturn(false); when(mInternetDialogController.hasEthernet()).thenReturn(false); mInternetDialog.updateDialog(); mInternetDialog.updateDialog(true); assertThat(mEthernet.getVisibility()).isEqualTo(View.GONE); } Loading @@ -168,7 +172,7 @@ public class InternetDialogTest extends SysuiTestCase { when(mInternetDialogController.isAirplaneModeEnabled()).thenReturn(true); when(mInternetDialogController.hasEthernet()).thenReturn(true); mInternetDialog.updateDialog(); mInternetDialog.updateDialog(true); assertThat(mEthernet.getVisibility()).isEqualTo(View.VISIBLE); } Loading @@ -178,7 +182,7 @@ public class InternetDialogTest extends SysuiTestCase { when(mInternetDialogController.isAirplaneModeEnabled()).thenReturn(true); when(mInternetDialogController.hasEthernet()).thenReturn(false); mInternetDialog.updateDialog(); mInternetDialog.updateDialog(true); assertThat(mEthernet.getVisibility()).isEqualTo(View.GONE); } Loading @@ -187,7 +191,7 @@ public class InternetDialogTest extends SysuiTestCase { public void updateDialog_withApmOn_mobileDataLayoutGone() { when(mInternetDialogController.isAirplaneModeEnabled()).thenReturn(true); mInternetDialog.updateDialog(); mInternetDialog.updateDialog(true); assertThat(mMobileDataToggle.getVisibility()).isEqualTo(View.GONE); } Loading @@ -197,7 +201,7 @@ public class InternetDialogTest extends SysuiTestCase { // The preconditions WiFi ON and Internet WiFi are already in setUp() doReturn(false).when(mInternetDialogController).activeNetworkIsCellular(); mInternetDialog.updateDialog(); mInternetDialog.updateDialog(false); assertThat(mConnectedWifi.getVisibility()).isEqualTo(View.VISIBLE); } Loading @@ -208,7 +212,7 @@ public class InternetDialogTest extends SysuiTestCase { mInternetDialog.onAccessPointsChanged(mWifiEntries, null /* connectedEntry*/); doReturn(false).when(mInternetDialogController).activeNetworkIsCellular(); mInternetDialog.updateDialog(); mInternetDialog.updateDialog(false); assertThat(mConnectedWifi.getVisibility()).isEqualTo(View.GONE); } Loading @@ -218,7 +222,7 @@ public class InternetDialogTest extends SysuiTestCase { // The precondition WiFi ON is already in setUp() mInternetDialog.onAccessPointsChanged(null /* wifiEntries */, mInternetWifiEntry); mInternetDialog.updateDialog(); mInternetDialog.updateDialog(false); assertThat(mWifiList.getVisibility()).isEqualTo(View.GONE); assertThat(mSeeAll.getVisibility()).isEqualTo(View.GONE); Loading @@ -228,7 +232,7 @@ public class InternetDialogTest extends SysuiTestCase { public void updateDialog_wifiOnAndHasWifiList_showWifiListAndSeeAll() { // The preconditions WiFi ON and WiFi entries are already in setUp() mInternetDialog.updateDialog(); mInternetDialog.updateDialog(false); assertThat(mWifiList.getVisibility()).isEqualTo(View.VISIBLE); assertThat(mSeeAll.getVisibility()).isEqualTo(View.VISIBLE); Loading @@ -239,7 +243,7 @@ public class InternetDialogTest extends SysuiTestCase { // The preconditions WiFi ON and Internet WiFi are already in setUp() when(mInternetDialogController.isDeviceLocked()).thenReturn(true); mInternetDialog.updateDialog(); mInternetDialog.updateDialog(false); assertThat(mWifiToggle.getVisibility()).isEqualTo(View.VISIBLE); assertThat(mWifiToggle.getBackground()).isNotNull(); Loading @@ -250,7 +254,7 @@ public class InternetDialogTest extends SysuiTestCase { // The preconditions WiFi ON and Internet WiFi are already in setUp() when(mInternetDialogController.isDeviceLocked()).thenReturn(true); mInternetDialog.updateDialog(); mInternetDialog.updateDialog(false); assertThat(mConnectedWifi.getVisibility()).isEqualTo(View.GONE); } Loading @@ -260,7 +264,7 @@ public class InternetDialogTest extends SysuiTestCase { // The preconditions WiFi entries are already in setUp() when(mInternetDialogController.isDeviceLocked()).thenReturn(true); mInternetDialog.updateDialog(); mInternetDialog.updateDialog(false); assertThat(mWifiList.getVisibility()).isEqualTo(View.GONE); assertThat(mSeeAll.getVisibility()).isEqualTo(View.GONE); Loading @@ -270,7 +274,7 @@ public class InternetDialogTest extends SysuiTestCase { public void updateDialog_wifiOn_hideWifiScanNotify() { // The preconditions WiFi ON and Internet WiFi are already in setUp() mInternetDialog.updateDialog(); mInternetDialog.updateDialog(false); assertThat(mWifiScanNotify.getVisibility()).isEqualTo(View.GONE); } Loading @@ -280,7 +284,7 @@ public class InternetDialogTest extends SysuiTestCase { when(mWifiManager.isWifiEnabled()).thenReturn(false); when(mWifiManager.isScanAlwaysAvailable()).thenReturn(false); mInternetDialog.updateDialog(); mInternetDialog.updateDialog(false); assertThat(mWifiScanNotify.getVisibility()).isEqualTo(View.GONE); } Loading @@ -291,7 +295,7 @@ public class InternetDialogTest extends SysuiTestCase { when(mWifiManager.isScanAlwaysAvailable()).thenReturn(true); when(mInternetDialogController.isDeviceLocked()).thenReturn(true); mInternetDialog.updateDialog(); mInternetDialog.updateDialog(false); assertThat(mWifiScanNotify.getVisibility()).isEqualTo(View.GONE); } Loading @@ -302,7 +306,7 @@ public class InternetDialogTest extends SysuiTestCase { when(mWifiManager.isScanAlwaysAvailable()).thenReturn(true); when(mInternetDialogController.isDeviceLocked()).thenReturn(false); mInternetDialog.updateDialog(); mInternetDialog.updateDialog(false); assertThat(mWifiScanNotify.getVisibility()).isEqualTo(View.VISIBLE); TextView wifiScanNotifyText = mDialogView.requireViewById(R.id.wifi_scan_notify_text); Loading