Merge "Add disable pSIM option in Settings"
This commit is contained in:
committed by
Android (Google) Code Review
commit
1d8158fc0b
@@ -117,6 +117,8 @@ public class MobileNetworkListController extends AbstractPreferenceController im
|
||||
} else {
|
||||
if (mSubscriptionManager.isActiveSubscriptionId(subId)) {
|
||||
pref.setSummary(R.string.mobile_network_active_sim);
|
||||
} else if (SubscriptionUtil.showToggleForPhysicalSim(mSubscriptionManager)) {
|
||||
pref.setSummary(mContext.getString(R.string.mobile_network_inactive_sim));
|
||||
} else {
|
||||
pref.setSummary(mContext.getString(R.string.mobile_network_tap_to_activate,
|
||||
SubscriptionUtil.getDisplayName(info)));
|
||||
@@ -124,7 +126,8 @@ public class MobileNetworkListController extends AbstractPreferenceController im
|
||||
}
|
||||
|
||||
pref.setOnPreferenceClickListener(clickedPref -> {
|
||||
if (!info.isEmbedded() && !mSubscriptionManager.isActiveSubscriptionId(subId)) {
|
||||
if (!info.isEmbedded() && !mSubscriptionManager.isActiveSubscriptionId(subId)
|
||||
&& !SubscriptionUtil.showToggleForPhysicalSim(mSubscriptionManager)) {
|
||||
mSubscriptionManager.setSubscriptionEnabled(subId, true);
|
||||
} else {
|
||||
final Intent intent = new Intent(mContext, MobileNetworkActivity.class);
|
||||
|
||||
@@ -110,7 +110,8 @@ public class MobileNetworkSummaryController extends AbstractPreferenceController
|
||||
} else if (subs.size() == 1) {
|
||||
final SubscriptionInfo info = subs.get(0);
|
||||
final int subId = info.getSubscriptionId();
|
||||
if (!info.isEmbedded() && !mSubscriptionManager.isActiveSubscriptionId(subId)) {
|
||||
if (!info.isEmbedded() && !mSubscriptionManager.isActiveSubscriptionId(subId)
|
||||
&& !SubscriptionUtil.showToggleForPhysicalSim(mSubscriptionManager)) {
|
||||
return mContext.getString(R.string.mobile_network_tap_to_activate,
|
||||
SubscriptionUtil.getDisplayName(info));
|
||||
} else {
|
||||
@@ -163,7 +164,8 @@ public class MobileNetworkSummaryController extends AbstractPreferenceController
|
||||
mPreference.setOnPreferenceClickListener((Preference pref) -> {
|
||||
final SubscriptionInfo info = subs.get(0);
|
||||
final int subId = info.getSubscriptionId();
|
||||
if (!info.isEmbedded() && !mSubscriptionManager.isActiveSubscriptionId(subId)) {
|
||||
if (!info.isEmbedded() && !mSubscriptionManager.isActiveSubscriptionId(subId)
|
||||
&& !SubscriptionUtil.showToggleForPhysicalSim(mSubscriptionManager)) {
|
||||
mSubscriptionManager.setSubscriptionEnabled(subId, true);
|
||||
} else {
|
||||
final Intent intent = new Intent(mContext, MobileNetworkActivity.class);
|
||||
|
||||
@@ -113,4 +113,11 @@ public class SubscriptionUtil {
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether Settings should show a "Use SIM" toggle in pSIM detailed page.
|
||||
*/
|
||||
public static boolean showToggleForPhysicalSim(SubscriptionManager subMgr) {
|
||||
return subMgr.canDisablePhysicalSubscription();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,7 +19,6 @@ package com.android.settings.network.telephony;
|
||||
import android.content.Context;
|
||||
import android.telephony.SubscriptionInfo;
|
||||
import android.telephony.SubscriptionManager;
|
||||
import android.telephony.TelephonyManager;
|
||||
|
||||
import com.android.settings.core.BasePreferenceController;
|
||||
import com.android.settings.network.SubscriptionUtil;
|
||||
@@ -41,9 +40,11 @@ public class DisableSimFooterPreferenceController extends BasePreferenceControll
|
||||
if (mSubId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
|
||||
return CONDITIONALLY_UNAVAILABLE;
|
||||
}
|
||||
|
||||
SubscriptionManager subManager = mContext.getSystemService(SubscriptionManager.class);
|
||||
for (SubscriptionInfo info : SubscriptionUtil.getAvailableSubscriptions(mContext)) {
|
||||
if (info.getSubscriptionId() == mSubId) {
|
||||
if (info.isEmbedded()) {
|
||||
if (info.isEmbedded() || SubscriptionUtil.showToggleForPhysicalSim(subManager)) {
|
||||
return CONDITIONALLY_UNAVAILABLE;
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -99,14 +99,13 @@ public class MobileNetworkSwitchController extends BasePreferenceController impl
|
||||
}
|
||||
}
|
||||
|
||||
// For eSIM, we always want the toggle. The telephony stack doesn't currently support
|
||||
// disabling a pSIM directly (b/133379187), so we for now we don't include this on pSIM.
|
||||
if (subInfo == null || !subInfo.isEmbedded()) {
|
||||
// For eSIM, we always want the toggle. If telephony stack support disabling a pSIM
|
||||
// directly, we show the toggle.
|
||||
if (subInfo == null || (!subInfo.isEmbedded() && !SubscriptionUtil.showToggleForPhysicalSim(
|
||||
mSubscriptionManager))) {
|
||||
mSwitchBar.hide();
|
||||
} else {
|
||||
mSwitchBar.show();
|
||||
// TODO b/135222940: re-evaluate whether to use
|
||||
// mSubscriptionManager#isSubscriptionEnabled
|
||||
mSwitchBar.setChecked(mSubscriptionManager.isActiveSubId(mSubId));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user