Check ServiceState when showing dialog
When showing the dialog the first time cellular data is turned off from QS, check if the data network is in service. If it's not, do not believe the carrier name and use a generic string instead. Test: atest NetworkControllerDataTest Bug: 156238588 Change-Id: Iee8091921ecdaba0c18f67080348240b8b8f67a7
This commit is contained in:
@@ -130,7 +130,8 @@ public class CellularTile extends QSTileImpl<SignalState> {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
String carrierName = mController.getMobileDataNetworkName();
|
String carrierName = mController.getMobileDataNetworkName();
|
||||||
if (TextUtils.isEmpty(carrierName)) {
|
boolean isInService = mController.isMobileDataNetworkInService();
|
||||||
|
if (TextUtils.isEmpty(carrierName) || !isInService) {
|
||||||
carrierName = mContext.getString(R.string.mobile_data_disable_message_default_carrier);
|
carrierName = mContext.getString(R.string.mobile_data_disable_message_default_carrier);
|
||||||
}
|
}
|
||||||
AlertDialog dialog = new Builder(mContext)
|
AlertDialog dialog = new Builder(mContext)
|
||||||
|
|||||||
@@ -418,6 +418,10 @@ public class MobileSignalController extends SignalController<
|
|||||||
return (mServiceState != null && mServiceState.isEmergencyOnly());
|
return (mServiceState != null && mServiceState.isEmergencyOnly());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isInService() {
|
||||||
|
return Utils.isInService(mServiceState);
|
||||||
|
}
|
||||||
|
|
||||||
private boolean isRoaming() {
|
private boolean isRoaming() {
|
||||||
// During a carrier change, roaming indications need to be supressed.
|
// During a carrier change, roaming indications need to be supressed.
|
||||||
if (isCarrierNetworkChangeActive()) {
|
if (isCarrierNetworkChangeActive()) {
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ public interface NetworkController extends CallbackController<SignalCallback>, D
|
|||||||
DataUsageController getMobileDataController();
|
DataUsageController getMobileDataController();
|
||||||
DataSaverController getDataSaverController();
|
DataSaverController getDataSaverController();
|
||||||
String getMobileDataNetworkName();
|
String getMobileDataNetworkName();
|
||||||
|
boolean isMobileDataNetworkInService();
|
||||||
int getNumberSubscriptions();
|
int getNumberSubscriptions();
|
||||||
|
|
||||||
boolean hasVoiceCallingFeature();
|
boolean hasVoiceCallingFeature();
|
||||||
|
|||||||
@@ -459,6 +459,12 @@ public class NetworkControllerImpl extends BroadcastReceiver
|
|||||||
return controller != null ? controller.getState().networkNameData : "";
|
return controller != null ? controller.getState().networkNameData : "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isMobileDataNetworkInService() {
|
||||||
|
MobileSignalController controller = getDataController();
|
||||||
|
return controller != null && controller.isInService();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getNumberSubscriptions() {
|
public int getNumberSubscriptions() {
|
||||||
return mMobileSignalControllers.size();
|
return mMobileSignalControllers.size();
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ package com.android.systemui.statusbar.policy;
|
|||||||
import static android.telephony.AccessNetworkConstants.TRANSPORT_TYPE_WWAN;
|
import static android.telephony.AccessNetworkConstants.TRANSPORT_TYPE_WWAN;
|
||||||
import static android.telephony.NetworkRegistrationInfo.DOMAIN_PS;
|
import static android.telephony.NetworkRegistrationInfo.DOMAIN_PS;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertFalse;
|
||||||
|
import static org.junit.Assert.assertTrue;
|
||||||
import static org.mockito.Matchers.anyInt;
|
import static org.mockito.Matchers.anyInt;
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
@@ -10,6 +12,7 @@ import static org.mockito.Mockito.when;
|
|||||||
import android.net.NetworkCapabilities;
|
import android.net.NetworkCapabilities;
|
||||||
import android.os.Looper;
|
import android.os.Looper;
|
||||||
import android.telephony.NetworkRegistrationInfo;
|
import android.telephony.NetworkRegistrationInfo;
|
||||||
|
import android.telephony.ServiceState;
|
||||||
import android.telephony.TelephonyManager;
|
import android.telephony.TelephonyManager;
|
||||||
import android.test.suitebuilder.annotation.SmallTest;
|
import android.test.suitebuilder.annotation.SmallTest;
|
||||||
import android.testing.AndroidTestingRunner;
|
import android.testing.AndroidTestingRunner;
|
||||||
@@ -259,6 +262,25 @@ public class NetworkControllerDataTest extends NetworkControllerBaseTest {
|
|||||||
assertDataNetworkNameEquals(newDataName);
|
assertDataNetworkNameEquals(newDataName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testIsDataInService_true() {
|
||||||
|
setupDefaultSignal();
|
||||||
|
assertTrue(mNetworkController.isMobileDataNetworkInService());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testIsDataInService_noSignal_false() {
|
||||||
|
assertFalse(mNetworkController.isMobileDataNetworkInService());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testIsDataInService_notInService_false() {
|
||||||
|
setupDefaultSignal();
|
||||||
|
setVoiceRegState(ServiceState.STATE_OUT_OF_SERVICE);
|
||||||
|
setDataRegState(ServiceState.STATE_OUT_OF_SERVICE);
|
||||||
|
assertFalse(mNetworkController.isMobileDataNetworkInService());
|
||||||
|
}
|
||||||
|
|
||||||
private void testDataActivity(int direction, boolean in, boolean out) {
|
private void testDataActivity(int direction, boolean in, boolean out) {
|
||||||
updateDataActivity(direction);
|
updateDataActivity(direction);
|
||||||
|
|
||||||
|
|||||||
@@ -94,6 +94,11 @@ public class FakeNetworkController extends BaseLeakChecker<SignalCallback>
|
|||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isMobileDataNetworkInService() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getNumberSubscriptions() {
|
public int getNumberSubscriptions() {
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user