Using new API setDataEnabledForReason for setDataEnabled

Bug: 318310357
Bug: 298898436
Bug: 298891941
Test: atest MobileNetworkUtilsTest
Change-Id: I30b56247370ebaa5896bec3205ddce3e5c92c7d0
This commit is contained in:
SongFerngWang
2024-01-24 12:35:52 +08:00
committed by SongFerng Wang
parent 96d8953e15
commit 533e045598
2 changed files with 18 additions and 9 deletions

View File

@@ -358,7 +358,8 @@ public class MobileNetworkUtils {
.createForSubscriptionId(subId);
final SubscriptionManager subscriptionManager = context.getSystemService(
SubscriptionManager.class).createForAllUserProfiles();
telephonyManager.setDataEnabled(enabled);
telephonyManager.setDataEnabledForReason(TelephonyManager.DATA_ENABLED_REASON_USER,
enabled);
if (disableOtherSubscriptions) {
final List<SubscriptionInfo> subInfoList =
@@ -367,8 +368,10 @@ public class MobileNetworkUtils {
for (SubscriptionInfo subInfo : subInfoList) {
// We never disable mobile data for opportunistic subscriptions.
if (subInfo.getSubscriptionId() != subId && !subInfo.isOpportunistic()) {
context.getSystemService(TelephonyManager.class).createForSubscriptionId(
subInfo.getSubscriptionId()).setDataEnabled(false);
context.getSystemService(TelephonyManager.class)
.createForSubscriptionId(subInfo.getSubscriptionId())
.setDataEnabledForReason(TelephonyManager.DATA_ENABLED_REASON_USER,
false);
}
}
}

View File

@@ -148,24 +148,30 @@ public class MobileNetworkUtilsTest {
public void setMobileDataEnabled_setEnabled_enabled() {
MobileNetworkUtils.setMobileDataEnabled(mContext, SUB_ID_1, true, false);
verify(mTelephonyManager).setDataEnabled(true);
verify(mTelephonyManager2, never()).setDataEnabled(anyBoolean());
verify(mTelephonyManager)
.setDataEnabledForReason(TelephonyManager.DATA_ENABLED_REASON_USER, true);
verify(mTelephonyManager2, never())
.setDataEnabledForReason(anyInt(), anyBoolean());
}
@Test
public void setMobileDataEnabled_setDisabled_disabled() {
MobileNetworkUtils.setMobileDataEnabled(mContext, SUB_ID_2, true, false);
verify(mTelephonyManager2).setDataEnabled(true);
verify(mTelephonyManager, never()).setDataEnabled(anyBoolean());
verify(mTelephonyManager2)
.setDataEnabledForReason(TelephonyManager.DATA_ENABLED_REASON_USER, true);
verify(mTelephonyManager, never())
.setDataEnabledForReason(anyInt(), anyBoolean());
}
@Test
public void setMobileDataEnabled_disableOtherSubscriptions() {
MobileNetworkUtils.setMobileDataEnabled(mContext, SUB_ID_1, true, true);
verify(mTelephonyManager).setDataEnabled(true);
verify(mTelephonyManager2).setDataEnabled(false);
verify(mTelephonyManager)
.setDataEnabledForReason(TelephonyManager.DATA_ENABLED_REASON_USER, true);
verify(mTelephonyManager2)
.setDataEnabledForReason(TelephonyManager.DATA_ENABLED_REASON_USER, false);
}
@Test