Loading packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialog.java +1 −6 Original line number Diff line number Diff line Loading @@ -339,12 +339,7 @@ public class InternetDialog extends SystemUIDialog implements private void setOnClickListener() { mMobileNetworkLayout.setOnClickListener(v -> { if (mInternetDialogController.isMobileDataEnabled() && !mInternetDialogController.isDeviceLocked()) { if (!mInternetDialogController.activeNetworkIsCellular()) { mInternetDialogController.connectCarrierNetwork(); } } }); mMobileDataToggle.setOnCheckedChangeListener( (buttonView, isChecked) -> { Loading packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialogController.java +32 −4 Original line number Diff line number Diff line Loading @@ -649,13 +649,41 @@ public class InternetDialogController implements AccessPointController.AccessPoi } void connectCarrierNetwork() { final MergedCarrierEntry mergedCarrierEntry = String errorLogPrefix = "Fail to connect carrier network : "; if (!isMobileDataEnabled()) { if (DEBUG) { Log.d(TAG, errorLogPrefix + "settings OFF"); } return; } if (isDeviceLocked()) { if (DEBUG) { Log.d(TAG, errorLogPrefix + "device locked"); } return; } if (activeNetworkIsCellular()) { Log.d(TAG, errorLogPrefix + "already active"); return; } MergedCarrierEntry mergedCarrierEntry = mAccessPointController.getMergedCarrierEntry(); if (mergedCarrierEntry != null && mergedCarrierEntry.canConnect()) { if (mergedCarrierEntry == null) { Log.e(TAG, errorLogPrefix + "no merged entry"); return; } if (!mergedCarrierEntry.canConnect()) { Log.w(TAG, errorLogPrefix + "merged entry connect state " + mergedCarrierEntry.getConnectedState()); return; } mergedCarrierEntry.connect(null /* ConnectCallback */, false); makeOverlayToast(R.string.wifi_wont_autoconnect_for_now); } } boolean isCarrierNetworkActive() { final MergedCarrierEntry mergedCarrierEntry = Loading packages/SystemUI/tests/src/com/android/systemui/qs/tiles/dialog/InternetDialogControllerTest.java +63 −1 Original line number Diff line number Diff line Loading @@ -25,6 +25,8 @@ import android.content.Intent; import android.graphics.PixelFormat; import android.graphics.drawable.Drawable; import android.net.ConnectivityManager; import android.net.Network; import android.net.NetworkCapabilities; import android.net.wifi.WifiManager; import android.os.Handler; import android.telephony.ServiceState; Loading Loading @@ -85,6 +87,12 @@ public class InternetDialogControllerTest extends SysuiTestCase { @Mock private WifiManager mWifiManager; @Mock private ConnectivityManager mConnectivityManager; @Mock private Network mNetwork; @Mock private NetworkCapabilities mNetworkCapabilities; @Mock private TelephonyManager mTelephonyManager; @Mock private SubscriptionManager mSubscriptionManager; Loading Loading @@ -170,7 +178,7 @@ public class InternetDialogControllerTest extends SysuiTestCase { mInternetDialogController = new InternetDialogController(mContext, mock(UiEventLogger.class), mock(ActivityStarter.class), mAccessPointController, mSubscriptionManager, mTelephonyManager, mWifiManager, mock(ConnectivityManager.class), mHandler, mExecutor, mBroadcastDispatcher, mConnectivityManager, mHandler, mExecutor, mBroadcastDispatcher, mock(KeyguardUpdateMonitor.class), mGlobalSettings, mKeyguardStateController, mWindowManager, mToastFactory, mWorkerHandler, mCarrierConfigTracker, mLocationController, mDialogLaunchAnimator); Loading @@ -184,6 +192,14 @@ public class InternetDialogControllerTest extends SysuiTestCase { @Test public void connectCarrierNetwork_mergedCarrierEntryCanConnect_connectAndCreateSysUiToast() { when(mTelephonyManager.isDataEnabled()).thenReturn(true); when(mKeyguardStateController.isUnlocked()).thenReturn(true); when(mConnectivityManager.getActiveNetwork()).thenReturn(mNetwork); when(mConnectivityManager.getNetworkCapabilities(mNetwork)) .thenReturn(mNetworkCapabilities); when(mNetworkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)) .thenReturn(false); when(mMergedCarrierEntry.canConnect()).thenReturn(true); mTestableResources.addOverride(R.string.wifi_wont_autoconnect_for_now, TOAST_MESSAGE_STRING); Loading @@ -195,6 +211,52 @@ public class InternetDialogControllerTest extends SysuiTestCase { anyInt()); } @Test public void connectCarrierNetwork_mergedCarrierEntryCanConnect_doNothingWhenSettingsOff() { when(mTelephonyManager.isDataEnabled()).thenReturn(false); mTestableResources.addOverride(R.string.wifi_wont_autoconnect_for_now, TOAST_MESSAGE_STRING); mInternetDialogController.connectCarrierNetwork(); verify(mMergedCarrierEntry, never()).connect(null /* callback */, false /* showToast */); verify(mToastFactory, never()).createToast(any(), anyString(), anyString(), anyInt(), anyInt()); } @Test public void connectCarrierNetwork_mergedCarrierEntryCanConnect_doNothingWhenKeyguardLocked() { when(mTelephonyManager.isDataEnabled()).thenReturn(true); when(mKeyguardStateController.isUnlocked()).thenReturn(false); mTestableResources.addOverride(R.string.wifi_wont_autoconnect_for_now, TOAST_MESSAGE_STRING); mInternetDialogController.connectCarrierNetwork(); verify(mMergedCarrierEntry, never()).connect(null /* callback */, false /* showToast */); verify(mToastFactory, never()).createToast(any(), anyString(), anyString(), anyInt(), anyInt()); } @Test public void connectCarrierNetwork_mergedCarrierEntryCanConnect_doNothingWhenMobileIsPrimary() { when(mTelephonyManager.isDataEnabled()).thenReturn(true); when(mKeyguardStateController.isUnlocked()).thenReturn(true); when(mConnectivityManager.getActiveNetwork()).thenReturn(mNetwork); when(mConnectivityManager.getNetworkCapabilities(mNetwork)) .thenReturn(mNetworkCapabilities); when(mNetworkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)) .thenReturn(true); mTestableResources.addOverride(R.string.wifi_wont_autoconnect_for_now, TOAST_MESSAGE_STRING); mInternetDialogController.connectCarrierNetwork(); verify(mMergedCarrierEntry, never()).connect(null /* callback */, false /* showToast */); verify(mToastFactory, never()).createToast(any(), anyString(), anyString(), anyInt(), anyInt()); } @Test public void makeOverlayToast_withGravityFlags_addViewWithLayoutParams() { mTestableResources.addOverride(TOAST_MESSAGE_STRING_ID, TOAST_MESSAGE_STRING); Loading Loading
packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialog.java +1 −6 Original line number Diff line number Diff line Loading @@ -339,12 +339,7 @@ public class InternetDialog extends SystemUIDialog implements private void setOnClickListener() { mMobileNetworkLayout.setOnClickListener(v -> { if (mInternetDialogController.isMobileDataEnabled() && !mInternetDialogController.isDeviceLocked()) { if (!mInternetDialogController.activeNetworkIsCellular()) { mInternetDialogController.connectCarrierNetwork(); } } }); mMobileDataToggle.setOnCheckedChangeListener( (buttonView, isChecked) -> { Loading
packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialogController.java +32 −4 Original line number Diff line number Diff line Loading @@ -649,13 +649,41 @@ public class InternetDialogController implements AccessPointController.AccessPoi } void connectCarrierNetwork() { final MergedCarrierEntry mergedCarrierEntry = String errorLogPrefix = "Fail to connect carrier network : "; if (!isMobileDataEnabled()) { if (DEBUG) { Log.d(TAG, errorLogPrefix + "settings OFF"); } return; } if (isDeviceLocked()) { if (DEBUG) { Log.d(TAG, errorLogPrefix + "device locked"); } return; } if (activeNetworkIsCellular()) { Log.d(TAG, errorLogPrefix + "already active"); return; } MergedCarrierEntry mergedCarrierEntry = mAccessPointController.getMergedCarrierEntry(); if (mergedCarrierEntry != null && mergedCarrierEntry.canConnect()) { if (mergedCarrierEntry == null) { Log.e(TAG, errorLogPrefix + "no merged entry"); return; } if (!mergedCarrierEntry.canConnect()) { Log.w(TAG, errorLogPrefix + "merged entry connect state " + mergedCarrierEntry.getConnectedState()); return; } mergedCarrierEntry.connect(null /* ConnectCallback */, false); makeOverlayToast(R.string.wifi_wont_autoconnect_for_now); } } boolean isCarrierNetworkActive() { final MergedCarrierEntry mergedCarrierEntry = Loading
packages/SystemUI/tests/src/com/android/systemui/qs/tiles/dialog/InternetDialogControllerTest.java +63 −1 Original line number Diff line number Diff line Loading @@ -25,6 +25,8 @@ import android.content.Intent; import android.graphics.PixelFormat; import android.graphics.drawable.Drawable; import android.net.ConnectivityManager; import android.net.Network; import android.net.NetworkCapabilities; import android.net.wifi.WifiManager; import android.os.Handler; import android.telephony.ServiceState; Loading Loading @@ -85,6 +87,12 @@ public class InternetDialogControllerTest extends SysuiTestCase { @Mock private WifiManager mWifiManager; @Mock private ConnectivityManager mConnectivityManager; @Mock private Network mNetwork; @Mock private NetworkCapabilities mNetworkCapabilities; @Mock private TelephonyManager mTelephonyManager; @Mock private SubscriptionManager mSubscriptionManager; Loading Loading @@ -170,7 +178,7 @@ public class InternetDialogControllerTest extends SysuiTestCase { mInternetDialogController = new InternetDialogController(mContext, mock(UiEventLogger.class), mock(ActivityStarter.class), mAccessPointController, mSubscriptionManager, mTelephonyManager, mWifiManager, mock(ConnectivityManager.class), mHandler, mExecutor, mBroadcastDispatcher, mConnectivityManager, mHandler, mExecutor, mBroadcastDispatcher, mock(KeyguardUpdateMonitor.class), mGlobalSettings, mKeyguardStateController, mWindowManager, mToastFactory, mWorkerHandler, mCarrierConfigTracker, mLocationController, mDialogLaunchAnimator); Loading @@ -184,6 +192,14 @@ public class InternetDialogControllerTest extends SysuiTestCase { @Test public void connectCarrierNetwork_mergedCarrierEntryCanConnect_connectAndCreateSysUiToast() { when(mTelephonyManager.isDataEnabled()).thenReturn(true); when(mKeyguardStateController.isUnlocked()).thenReturn(true); when(mConnectivityManager.getActiveNetwork()).thenReturn(mNetwork); when(mConnectivityManager.getNetworkCapabilities(mNetwork)) .thenReturn(mNetworkCapabilities); when(mNetworkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)) .thenReturn(false); when(mMergedCarrierEntry.canConnect()).thenReturn(true); mTestableResources.addOverride(R.string.wifi_wont_autoconnect_for_now, TOAST_MESSAGE_STRING); Loading @@ -195,6 +211,52 @@ public class InternetDialogControllerTest extends SysuiTestCase { anyInt()); } @Test public void connectCarrierNetwork_mergedCarrierEntryCanConnect_doNothingWhenSettingsOff() { when(mTelephonyManager.isDataEnabled()).thenReturn(false); mTestableResources.addOverride(R.string.wifi_wont_autoconnect_for_now, TOAST_MESSAGE_STRING); mInternetDialogController.connectCarrierNetwork(); verify(mMergedCarrierEntry, never()).connect(null /* callback */, false /* showToast */); verify(mToastFactory, never()).createToast(any(), anyString(), anyString(), anyInt(), anyInt()); } @Test public void connectCarrierNetwork_mergedCarrierEntryCanConnect_doNothingWhenKeyguardLocked() { when(mTelephonyManager.isDataEnabled()).thenReturn(true); when(mKeyguardStateController.isUnlocked()).thenReturn(false); mTestableResources.addOverride(R.string.wifi_wont_autoconnect_for_now, TOAST_MESSAGE_STRING); mInternetDialogController.connectCarrierNetwork(); verify(mMergedCarrierEntry, never()).connect(null /* callback */, false /* showToast */); verify(mToastFactory, never()).createToast(any(), anyString(), anyString(), anyInt(), anyInt()); } @Test public void connectCarrierNetwork_mergedCarrierEntryCanConnect_doNothingWhenMobileIsPrimary() { when(mTelephonyManager.isDataEnabled()).thenReturn(true); when(mKeyguardStateController.isUnlocked()).thenReturn(true); when(mConnectivityManager.getActiveNetwork()).thenReturn(mNetwork); when(mConnectivityManager.getNetworkCapabilities(mNetwork)) .thenReturn(mNetworkCapabilities); when(mNetworkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)) .thenReturn(true); mTestableResources.addOverride(R.string.wifi_wont_autoconnect_for_now, TOAST_MESSAGE_STRING); mInternetDialogController.connectCarrierNetwork(); verify(mMergedCarrierEntry, never()).connect(null /* callback */, false /* showToast */); verify(mToastFactory, never()).createToast(any(), anyString(), anyString(), anyInt(), anyInt()); } @Test public void makeOverlayToast_withGravityFlags_addViewWithLayoutParams() { mTestableResources.addOverride(TOAST_MESSAGE_STRING_ID, TOAST_MESSAGE_STRING); Loading