[SIM Dialog Migration] Enable SIM operation dialog in Settings
Change Settings to not call SubscriptionManager#setSubscriptionEnabled. Instead, make Settings call EuiccManager APIs directly. Design: https://docs.google.com/document/d/1wb5_hoBkZVbkXGNWHbx4Jf61swjfxsJzkytiTzJosYo/edit?usp=sharing Bug: 160819390 Test: Manually tested eSIM profile enabling. Change-Id: I56bbcbb9ccb886b0f9249e67c5a6a6444bb7dd45
This commit is contained in:
@@ -128,7 +128,7 @@ public class MobileNetworkListController extends AbstractPreferenceController im
|
||||
pref.setOnPreferenceClickListener(clickedPref -> {
|
||||
if (!info.isEmbedded() && !mSubscriptionManager.isActiveSubscriptionId(subId)
|
||||
&& !SubscriptionUtil.showToggleForPhysicalSim(mSubscriptionManager)) {
|
||||
mSubscriptionManager.setSubscriptionEnabled(subId, true);
|
||||
SubscriptionUtil.startToggleSubscriptionDialogActivity(mContext, subId, true);
|
||||
} else {
|
||||
final Intent intent = new Intent(mContext, MobileNetworkActivity.class);
|
||||
intent.putExtra(Settings.EXTRA_SUB_ID, info.getSubscriptionId());
|
||||
|
@@ -189,7 +189,8 @@ public class MobileNetworkSummaryController extends AbstractPreferenceController
|
||||
final int subId = info.getSubscriptionId();
|
||||
if (!info.isEmbedded() && !mSubscriptionManager.isActiveSubscriptionId(subId)
|
||||
&& !SubscriptionUtil.showToggleForPhysicalSim(mSubscriptionManager)) {
|
||||
mSubscriptionManager.setSubscriptionEnabled(subId, true);
|
||||
SubscriptionUtil.startToggleSubscriptionDialogActivity(
|
||||
mContext, subId, true);
|
||||
} else {
|
||||
final Intent intent = new Intent(mContext, MobileNetworkActivity.class);
|
||||
intent.putExtra(Settings.EXTRA_SUB_ID, subs.get(0).getSubscriptionId());
|
||||
|
@@ -28,6 +28,7 @@ import android.telephony.SubscriptionInfo;
|
||||
import android.telephony.SubscriptionManager;
|
||||
import android.telephony.TelephonyManager;
|
||||
import android.telephony.UiccSlotInfo;
|
||||
import android.util.Log;
|
||||
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
|
||||
@@ -284,14 +285,31 @@ public class SubscriptionUtil {
|
||||
}
|
||||
}
|
||||
|
||||
/** Starts a dialog activity to handle SIM enabling/disabling. */
|
||||
/**
|
||||
* Starts a dialog activity to handle SIM enabling/disabling.
|
||||
* @param context {@code Context}
|
||||
* @param subId The id of subscription need to be enabled or disabled.
|
||||
* @param enable Whether the subscription with {@code subId} should be enabled or disabled.
|
||||
*/
|
||||
public static void startToggleSubscriptionDialogActivity(
|
||||
Context context, int subId, boolean enable) {
|
||||
if (!SubscriptionManager.isUsableSubscriptionId(subId)) {
|
||||
Log.i(TAG, "Unable to toggle subscription due to invalid subscription ID.");
|
||||
return;
|
||||
}
|
||||
context.startActivity(ToggleSubscriptionDialogActivity.getIntent(context, subId, enable));
|
||||
}
|
||||
|
||||
/** Starts a dialog activity to handle eSIM deletion. */
|
||||
/**
|
||||
* Starts a dialog activity to handle eSIM deletion.
|
||||
* @param context {@code Context}
|
||||
* @param subId The id of subscription need to be deleted.
|
||||
*/
|
||||
public static void startDeleteEuiccSubscriptionDialogActivity(Context context, int subId) {
|
||||
if (!SubscriptionManager.isUsableSubscriptionId(subId)) {
|
||||
Log.i(TAG, "Unable to delete subscription due to invalid subscription ID.");
|
||||
return;
|
||||
}
|
||||
context.startActivity(DeleteEuiccSubscriptionDialogActivity.getIntent(context, subId));
|
||||
}
|
||||
|
||||
|
@@ -78,8 +78,8 @@ public class MobileNetworkSwitchController extends BasePreferenceController impl
|
||||
mSwitchBar.getSwitch().setOnBeforeCheckedChangeListener((toggleSwitch, isChecked) -> {
|
||||
// TODO b/135222940: re-evaluate whether to use
|
||||
// mSubscriptionManager#isSubscriptionEnabled
|
||||
if (mSubscriptionManager.isActiveSubscriptionId(mSubId) != isChecked
|
||||
&& (!mSubscriptionManager.setSubscriptionEnabled(mSubId, isChecked))) {
|
||||
if (mSubscriptionManager.isActiveSubscriptionId(mSubId) != isChecked) {
|
||||
SubscriptionUtil.startToggleSubscriptionDialogActivity(mContext, mSubId, isChecked);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
@@ -27,6 +27,7 @@ import android.telephony.UiccSlotInfo;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
|
||||
import com.android.internal.annotations.VisibleForTesting;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.SidecarFragment;
|
||||
import com.android.settings.network.EnableMultiSimSidecar;
|
||||
@@ -45,7 +46,8 @@ public class ToggleSubscriptionDialogActivity extends SubscriptionActionDialogAc
|
||||
|
||||
private static final String TAG = "ToggleSubscriptionDialogActivity";
|
||||
// Arguments
|
||||
private static final String ARG_enable = "enable";
|
||||
@VisibleForTesting
|
||||
public static final String ARG_enable = "enable";
|
||||
// Dialog tags
|
||||
private static final int DIALOG_TAG_DISABLE_SIM_CONFIRMATION = 1;
|
||||
private static final int DIALOG_TAG_ENABLE_SIM_CONFIRMATION = 2;
|
||||
|
Reference in New Issue
Block a user