Merge "Remove 'x' policy for non-default DSDS SIM" into qt-qpr1-dev

am: ccb430008e

Change-Id: I900eb7024f7c909c9217248888e42da2be229253
This commit is contained in:
Evan Laird
2019-09-20 13:36:26 -07:00
committed by android-build-merger
3 changed files with 49 additions and 9 deletions

View File

@@ -294,7 +294,8 @@ public class MobileSignalController extends SignalController<
} }
boolean dataDisabled = mCurrentState.userSetup boolean dataDisabled = mCurrentState.userSetup
&& (mCurrentState.iconGroup == TelephonyIcons.DATA_DISABLED && (mCurrentState.iconGroup == TelephonyIcons.DATA_DISABLED
|| mCurrentState.iconGroup == TelephonyIcons.NOT_DEFAULT_DATA); || (mCurrentState.iconGroup == TelephonyIcons.NOT_DEFAULT_DATA
&& mCurrentState.defaultDataOff));
boolean noInternet = mCurrentState.inetCondition == 0; boolean noInternet = mCurrentState.inetCondition == 0;
boolean cutOut = dataDisabled || noInternet; boolean cutOut = dataDisabled || noInternet;
return SignalDrawable.getState(level, getNumLevels(), cutOut); return SignalDrawable.getState(level, getNumLevels(), cutOut);
@@ -320,7 +321,7 @@ public class MobileSignalController extends SignalController<
dataContentDescription = mContext.getString(R.string.data_connection_no_internet); dataContentDescription = mContext.getString(R.string.data_connection_no_internet);
} }
final boolean dataDisabled = (mCurrentState.iconGroup == TelephonyIcons.DATA_DISABLED final boolean dataDisabled = (mCurrentState.iconGroup == TelephonyIcons.DATA_DISABLED
|| mCurrentState.iconGroup == TelephonyIcons.NOT_DEFAULT_DATA) || (mCurrentState.iconGroup == TelephonyIcons.NOT_DEFAULT_DATA))
&& mCurrentState.userSetup; && mCurrentState.userSetup;
// Show icon in QS when we are connected or data is disabled. // Show icon in QS when we are connected or data is disabled.
@@ -484,6 +485,7 @@ public class MobileSignalController extends SignalController<
Log.d(mTag, "updateTelephonySignalStrength: hasService=" + Log.d(mTag, "updateTelephonySignalStrength: hasService=" +
Utils.isInService(mServiceState) + " ss=" + mSignalStrength); Utils.isInService(mServiceState) + " ss=" + mSignalStrength);
} }
checkDefaultData();
mCurrentState.connected = Utils.isInService(mServiceState) mCurrentState.connected = Utils.isInService(mServiceState)
&& mSignalStrength != null; && mSignalStrength != null;
if (mCurrentState.connected) { if (mCurrentState.connected) {
@@ -541,6 +543,23 @@ public class MobileSignalController extends SignalController<
notifyListenersIfNecessary(); notifyListenersIfNecessary();
} }
/**
* If we are controlling the NOT_DEFAULT_DATA icon, check the status of the other one
*/
private void checkDefaultData() {
if (mCurrentState.iconGroup != TelephonyIcons.NOT_DEFAULT_DATA) {
mCurrentState.defaultDataOff = false;
return;
}
mCurrentState.defaultDataOff = mNetworkController.isDataControllerDisabled();
}
void onMobileDataChanged() {
checkDefaultData();
notifyListenersIfNecessary();
}
private MobileIconGroup getNr5GIconGroup() { private MobileIconGroup getNr5GIconGroup() {
if (mServiceState == null) return null; if (mServiceState == null) return null;
@@ -617,7 +636,7 @@ public class MobileSignalController extends SignalController<
return candidateIconGroup; return candidateIconGroup;
} }
private boolean isDataDisabled() { boolean isDataDisabled() {
return !mPhone.isDataCapable(); return !mPhone.isDataCapable();
} }
@@ -750,6 +769,7 @@ public class MobileSignalController extends SignalController<
boolean isDefault; boolean isDefault;
boolean userSetup; boolean userSetup;
boolean roaming; boolean roaming;
boolean defaultDataOff; // Tracks the on/off state of the defaultDataSubscription
@Override @Override
public void copyFrom(State s) { public void copyFrom(State s) {
@@ -765,6 +785,7 @@ public class MobileSignalController extends SignalController<
carrierNetworkChangeMode = state.carrierNetworkChangeMode; carrierNetworkChangeMode = state.carrierNetworkChangeMode;
userSetup = state.userSetup; userSetup = state.userSetup;
roaming = state.roaming; roaming = state.roaming;
defaultDataOff = state.defaultDataOff;
} }
@Override @Override
@@ -781,7 +802,8 @@ public class MobileSignalController extends SignalController<
builder.append("airplaneMode=").append(airplaneMode).append(','); builder.append("airplaneMode=").append(airplaneMode).append(',');
builder.append("carrierNetworkChangeMode=").append(carrierNetworkChangeMode) builder.append("carrierNetworkChangeMode=").append(carrierNetworkChangeMode)
.append(','); .append(',');
builder.append("userSetup=").append(userSetup); builder.append("userSetup=").append(userSetup).append(',');
builder.append("defaultDataOff=").append(defaultDataOff);
} }
@Override @Override
@@ -796,7 +818,8 @@ public class MobileSignalController extends SignalController<
&& ((MobileState) o).carrierNetworkChangeMode == carrierNetworkChangeMode && ((MobileState) o).carrierNetworkChangeMode == carrierNetworkChangeMode
&& ((MobileState) o).userSetup == userSetup && ((MobileState) o).userSetup == userSetup
&& ((MobileState) o).isDefault == isDefault && ((MobileState) o).isDefault == isDefault
&& ((MobileState) o).roaming == roaming; && ((MobileState) o).roaming == roaming
&& ((MobileState) o).defaultDataOff == defaultDataOff;
} }
} }
} }

View File

@@ -220,6 +220,7 @@ public class NetworkControllerImpl extends BroadcastReceiver
@Override @Override
public void onMobileDataEnabled(boolean enabled) { public void onMobileDataEnabled(boolean enabled) {
mCallbackHandler.setMobileDataEnabled(enabled); mCallbackHandler.setMobileDataEnabled(enabled);
notifyControllersMobileDataChanged();
} }
}); });
mWifiSignalController = new WifiSignalController(mContext, mHasMobileDataFeature, mWifiSignalController = new WifiSignalController(mContext, mHasMobileDataFeature,
@@ -385,6 +386,22 @@ public class NetworkControllerImpl extends BroadcastReceiver
return mMobileSignalControllers.size(); return mMobileSignalControllers.size();
} }
boolean isDataControllerDisabled() {
MobileSignalController dataController = getDataController();
if (dataController == null) {
return false;
}
return dataController.isDataDisabled();
}
private void notifyControllersMobileDataChanged() {
for (int i = 0; i < mMobileSignalControllers.size(); i++) {
MobileSignalController mobileSignalController = mMobileSignalControllers.valueAt(i);
mobileSignalController.onMobileDataChanged();
}
}
public boolean isEmergencyOnly() { public boolean isEmergencyOnly() {
if (mMobileSignalControllers.size() == 0) { if (mMobileSignalControllers.size() == 0) {
// When there are no active subscriptions, determine emengency state from last // When there are no active subscriptions, determine emengency state from last

View File

@@ -147,7 +147,7 @@ public class NetworkControllerDataTest extends NetworkControllerBaseTest {
} }
@Test @Test
public void testNoInternetIcon_withoutDefaultSub() { public void testNonDefaultSIM_showsFullSignal_connected() {
setupNetworkController(); setupNetworkController();
when(mMockTm.isDataCapable()).thenReturn(false); when(mMockTm.isDataCapable()).thenReturn(false);
setupDefaultSignal(); setupDefaultSignal();
@@ -158,11 +158,11 @@ public class NetworkControllerDataTest extends NetworkControllerBaseTest {
// Verify that a SignalDrawable with a cut out is used to display data disabled. // Verify that a SignalDrawable with a cut out is used to display data disabled.
verifyLastMobileDataIndicators(true, DEFAULT_SIGNAL_STRENGTH, 0, verifyLastMobileDataIndicators(true, DEFAULT_SIGNAL_STRENGTH, 0,
true, DEFAULT_QS_SIGNAL_STRENGTH, 0, false, true, DEFAULT_QS_SIGNAL_STRENGTH, 0, false,
false, true, NOT_DEFAULT_DATA_STRING); false, false, NOT_DEFAULT_DATA_STRING);
} }
@Test @Test
public void testDataDisabledIcon_withoutDefaultSub() { public void testNonDefaultSIM_showsFullSignal_disconnected() {
setupNetworkController(); setupNetworkController();
when(mMockTm.isDataCapable()).thenReturn(false); when(mMockTm.isDataCapable()).thenReturn(false);
setupDefaultSignal(); setupDefaultSignal();
@@ -173,7 +173,7 @@ public class NetworkControllerDataTest extends NetworkControllerBaseTest {
// Verify that a SignalDrawable with a cut out is used to display data disabled. // Verify that a SignalDrawable with a cut out is used to display data disabled.
verifyLastMobileDataIndicators(true, DEFAULT_SIGNAL_STRENGTH, 0, verifyLastMobileDataIndicators(true, DEFAULT_SIGNAL_STRENGTH, 0,
true, DEFAULT_QS_SIGNAL_STRENGTH, 0, false, true, DEFAULT_QS_SIGNAL_STRENGTH, 0, false,
false, true, NOT_DEFAULT_DATA_STRING); false, false, NOT_DEFAULT_DATA_STRING);
} }
@Test @Test