Merge "Handle invalid subIds in Enable2gPreferenceController." into sc-dev
This commit is contained in:
@@ -72,7 +72,7 @@ public class Enable2gPreferenceController extends TelephonyTogglePreferenceContr
|
|||||||
public int getAvailabilityStatus(int subId) {
|
public int getAvailabilityStatus(int subId) {
|
||||||
final PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(subId);
|
final PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(subId);
|
||||||
boolean visible =
|
boolean visible =
|
||||||
subId != SubscriptionManager.INVALID_SUBSCRIPTION_ID
|
SubscriptionManager.isUsableSubscriptionId(subId)
|
||||||
&& carrierConfig != null
|
&& carrierConfig != null
|
||||||
&& !carrierConfig.getBoolean(CarrierConfigManager.KEY_HIDE_ENABLE_2G)
|
&& !carrierConfig.getBoolean(CarrierConfigManager.KEY_HIDE_ENABLE_2G)
|
||||||
&& mTelephonyManager.isRadioInterfaceCapabilitySupported(
|
&& mTelephonyManager.isRadioInterfaceCapabilitySupported(
|
||||||
@@ -89,6 +89,9 @@ public class Enable2gPreferenceController extends TelephonyTogglePreferenceContr
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean setChecked(boolean isChecked) {
|
public boolean setChecked(boolean isChecked) {
|
||||||
|
if (!SubscriptionManager.isUsableSubscriptionId(mSubId)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
long currentlyAllowedNetworkTypes = mTelephonyManager.getAllowedNetworkTypesForReason(
|
long currentlyAllowedNetworkTypes = mTelephonyManager.getAllowedNetworkTypesForReason(
|
||||||
mTelephonyManager.ALLOWED_NETWORK_TYPES_REASON_ENABLE_2G);
|
mTelephonyManager.ALLOWED_NETWORK_TYPES_REASON_ENABLE_2G);
|
||||||
boolean enabled = (currentlyAllowedNetworkTypes & BITMASK_2G) != 0;
|
boolean enabled = (currentlyAllowedNetworkTypes & BITMASK_2G) != 0;
|
||||||
|
@@ -48,6 +48,8 @@ public final class Enable2gPreferenceControllerTest {
|
|||||||
@Mock
|
@Mock
|
||||||
private TelephonyManager mTelephonyManager;
|
private TelephonyManager mTelephonyManager;
|
||||||
@Mock
|
@Mock
|
||||||
|
private TelephonyManager mInvalidTelephonyManager;
|
||||||
|
@Mock
|
||||||
private CarrierConfigManager mCarrierConfigManager;
|
private CarrierConfigManager mCarrierConfigManager;
|
||||||
|
|
||||||
private PersistableBundle mPersistableBundle;
|
private PersistableBundle mPersistableBundle;
|
||||||
@@ -65,6 +67,8 @@ public final class Enable2gPreferenceControllerTest {
|
|||||||
.thenReturn(mCarrierConfigManager);
|
.thenReturn(mCarrierConfigManager);
|
||||||
|
|
||||||
doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID);
|
doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID);
|
||||||
|
doReturn(mInvalidTelephonyManager).when(mTelephonyManager).createForSubscriptionId(
|
||||||
|
SubscriptionManager.INVALID_SUBSCRIPTION_ID);
|
||||||
|
|
||||||
mPersistableBundle = new PersistableBundle();
|
mPersistableBundle = new PersistableBundle();
|
||||||
doReturn(mPersistableBundle).when(mCarrierConfigManager).getConfigForSubId(SUB_ID);
|
doReturn(mPersistableBundle).when(mCarrierConfigManager).getConfigForSubId(SUB_ID);
|
||||||
@@ -120,6 +124,18 @@ public final class Enable2gPreferenceControllerTest {
|
|||||||
assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
|
assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void setChecked_invalidSubIdAndIsCheckedTrue_returnFalse() {
|
||||||
|
mController.init(SubscriptionManager.INVALID_SUBSCRIPTION_ID);
|
||||||
|
assertThat(mController.setChecked(true)).isFalse();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void setChecked_invalidSubIdAndIsCheckedFalse_returnFalse() {
|
||||||
|
mController.init(SubscriptionManager.INVALID_SUBSCRIPTION_ID);
|
||||||
|
assertThat(mController.setChecked(false)).isFalse();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void onPreferenceChange_update() {
|
public void onPreferenceChange_update() {
|
||||||
// Set "Enable 2G" flag to "on"
|
// Set "Enable 2G" flag to "on"
|
||||||
|
Reference in New Issue
Block a user