[MEP] Refactor SlotSidecar API for all of sim page.

remove the SlotSidecar's run() and using new run() with port id
information.

Bug: 218439715
Test: manual test for UI
Change-Id: I81479a0c514f2b8f58b9167b31d357f017732482
This commit is contained in:
SongFerngWang
2022-02-08 16:37:43 +08:00
parent 387566c7d3
commit 4d0749febd
5 changed files with 14 additions and 38 deletions

View File

@@ -69,20 +69,15 @@ public class SwitchToEuiccSubscriptionSidecar extends EuiccOperationSidecar {
} }
} }
/** Starts calling EuiccManager#switchToSubscription to enable/disable the eSIM profile. */
// ToDo: delete this api and refactor the related code.
public void run(int subscriptionId) {
setState(State.RUNNING, Substate.UNUSED);
mCallbackIntent = createCallbackIntent();
mEuiccManager.switchToSubscription(subscriptionId, mCallbackIntent);
}
/** /**
* Starts calling EuiccManager#switchToSubscription to enable/disable the eSIM profile. * Starts calling EuiccManager#switchToSubscription to enable/disable the eSIM profile.
* *
* @param subscriptionId the esim's subscriptionId. * @param subscriptionId the esim's subscriptionId.
* @param port the esim's portId. If user wants to inactivate esim, then user must to assign the * @param port the esim's portId. If user wants to inactivate esim, then user must to assign
* the port. If user wants to activate esim, then the port can be -1. * the corresponding port. If user wants to activate esim, then the port can be
* {@link UiccSlotUtil#INVALID_PORT_ID}. When it is
* {@link UiccSlotUtil#INVALID_PORT_ID}, the system will reassign a corresponding
* port id.
* @param removedSubInfo if the all of slots have sims, it should remove the one of active sim. * @param removedSubInfo if the all of slots have sims, it should remove the one of active sim.
* If the removedSubInfo is null, then use the default value. * If the removedSubInfo is null, then use the default value.
* The default value is the esim slot and portId 0. * The default value is the esim slot and portId 0.

View File

@@ -80,29 +80,6 @@ public class SwitchToRemovableSlotSidecar extends EuiccOperationSidecar
} }
} }
/**
* Starts switching to the removable slot. It disables the active eSIM profile before switching
* if there is one.
*
* @param physicalSlotId removable physical SIM slot ID.
*/
// ToDo: delete this api and refactor the related code.
public void run(int physicalSlotId) {
mPhysicalSlotId = physicalSlotId;
SubscriptionManager subscriptionManager =
getContext().getSystemService(SubscriptionManager.class);
if (SubscriptionUtil.getActiveSubscriptions(subscriptionManager).stream()
.anyMatch(SubscriptionInfo::isEmbedded)) {
// In SS mode, the esim is active, then inactivate the esim.
Log.i(TAG, "There is an active eSIM profile. Disable the profile first.");
// Use INVALID_SUBSCRIPTION_ID to disable the only active profile.
mSwitchToSubscriptionSidecar.run(SubscriptionManager.INVALID_SUBSCRIPTION_ID, 0, null);
} else {
Log.i(TAG, "There is no active eSIM profiles. Start to switch to removable slot.");
mSwitchSlotSidecar.runSwitchToRemovableSlot(mPhysicalSlotId, null);
}
}
/** /**
* Starts switching to the removable slot. * Starts switching to the removable slot.
* *

View File

@@ -159,11 +159,12 @@ public class ChooseSimActivity extends Activity
mSelectedItemIndex = subItem.getId(); mSelectedItemIndex = subItem.getId();
if (mSelectedItemIndex == INDEX_PSIM) { if (mSelectedItemIndex == INDEX_PSIM) {
Log.i(TAG, "Ready to switch to pSIM slot."); Log.i(TAG, "Ready to switch to pSIM slot.");
mSwitchToRemovableSlotSidecar.run(UiccSlotUtil.INVALID_PHYSICAL_SLOT_ID); mSwitchToRemovableSlotSidecar.run(UiccSlotUtil.INVALID_PHYSICAL_SLOT_ID, null);
} else { } else {
Log.i(TAG, "Ready to switch to eSIM subscription with index: " + mSelectedItemIndex); Log.i(TAG, "Ready to switch to eSIM subscription with index: " + mSelectedItemIndex);
mSwitchToEuiccSubscriptionSidecar.run( mSwitchToEuiccSubscriptionSidecar.run(
mEmbeddedSubscriptions.get(mSelectedItemIndex).getSubscriptionId()); mEmbeddedSubscriptions.get(mSelectedItemIndex).getSubscriptionId(),
UiccSlotUtil.INVALID_PORT_ID, null);
} }
} }

View File

@@ -23,6 +23,7 @@ import android.util.Log;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.SidecarFragment; import com.android.settings.SidecarFragment;
import com.android.settings.network.SwitchToEuiccSubscriptionSidecar; import com.android.settings.network.SwitchToEuiccSubscriptionSidecar;
import com.android.settings.network.UiccSlotUtil;
import com.android.settings.network.telephony.AlertDialogFragment; import com.android.settings.network.telephony.AlertDialogFragment;
import com.android.settings.network.telephony.ConfirmDialogFragment; import com.android.settings.network.telephony.ConfirmDialogFragment;
import com.android.settings.network.telephony.SubscriptionActionDialogActivity; import com.android.settings.network.telephony.SubscriptionActionDialogActivity;
@@ -110,7 +111,8 @@ public class SwitchToEsimConfirmDialogActivity extends SubscriptionActionDialogA
return; return;
} }
Log.i(TAG, "User confirmed to switch to embedded slot."); Log.i(TAG, "User confirmed to switch to embedded slot.");
mSwitchToEuiccSubscriptionSidecar.run(mSubToEnabled.getSubscriptionId()); mSwitchToEuiccSubscriptionSidecar.run(mSubToEnabled.getSubscriptionId(),
UiccSlotUtil.INVALID_PORT_ID, null);
showProgressDialog( showProgressDialog(
getString( getString(
R.string.sim_action_switch_sub_dialog_progress, R.string.sim_action_switch_sub_dialog_progress,

View File

@@ -210,10 +210,11 @@ public class SimSlotChangeHandler {
} }
List<SubscriptionInfo> groupedEmbeddedSubscriptions = getGroupedEmbeddedSubscriptions(); List<SubscriptionInfo> groupedEmbeddedSubscriptions = getGroupedEmbeddedSubscriptions();
if (groupedEmbeddedSubscriptions.size() == 0 || !removableSlotInfo.getPorts().stream() if (groupedEmbeddedSubscriptions.size() == 0 || !removableSlotInfo.getPorts().stream()
.findFirst().get().isActive()) { .findFirst().get().isActive()) {
Log.i(TAG, "eSIM slot is active or no subscriptions exist. Do nothing."); Log.i(TAG, "eSIM slot is active or no subscriptions exist. Do nothing."
+ " The removableSlotInfo: " + removableSlotInfo
+ ", groupedEmbeddedSubscriptions: " + groupedEmbeddedSubscriptions);
return; return;
} }