Merge "[MEP] Refactor SlotSidecar API for all of sim page."
diff --git a/src/com/android/settings/network/SwitchToEuiccSubscriptionSidecar.java b/src/com/android/settings/network/SwitchToEuiccSubscriptionSidecar.java
index 9524164..c6d1ea0 100644
--- a/src/com/android/settings/network/SwitchToEuiccSubscriptionSidecar.java
+++ b/src/com/android/settings/network/SwitchToEuiccSubscriptionSidecar.java
@@ -69,20 +69,15 @@
}
}
- /** 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.
*
* @param subscriptionId the esim's subscriptionId.
- * @param port the esim's portId. If user wants to inactivate esim, then user must to assign the
- * the port. If user wants to activate esim, then the port can be -1.
+ * @param port the esim's portId. If user wants to inactivate esim, then user must to assign
+ * 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.
* If the removedSubInfo is null, then use the default value.
* The default value is the esim slot and portId 0.
diff --git a/src/com/android/settings/network/SwitchToRemovableSlotSidecar.java b/src/com/android/settings/network/SwitchToRemovableSlotSidecar.java
index 9b9c0dd..e98b405 100644
--- a/src/com/android/settings/network/SwitchToRemovableSlotSidecar.java
+++ b/src/com/android/settings/network/SwitchToRemovableSlotSidecar.java
@@ -81,29 +81,6 @@
}
/**
- * 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.
*
* @param physicalSlotId removable physical SIM slot ID.
diff --git a/src/com/android/settings/sim/ChooseSimActivity.java b/src/com/android/settings/sim/ChooseSimActivity.java
index d0ccc4c..cebc1ba 100644
--- a/src/com/android/settings/sim/ChooseSimActivity.java
+++ b/src/com/android/settings/sim/ChooseSimActivity.java
@@ -159,11 +159,12 @@
mSelectedItemIndex = subItem.getId();
if (mSelectedItemIndex == INDEX_PSIM) {
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 {
Log.i(TAG, "Ready to switch to eSIM subscription with index: " + mSelectedItemIndex);
mSwitchToEuiccSubscriptionSidecar.run(
- mEmbeddedSubscriptions.get(mSelectedItemIndex).getSubscriptionId());
+ mEmbeddedSubscriptions.get(mSelectedItemIndex).getSubscriptionId(),
+ UiccSlotUtil.INVALID_PORT_ID, null);
}
}
diff --git a/src/com/android/settings/sim/SwitchToEsimConfirmDialogActivity.java b/src/com/android/settings/sim/SwitchToEsimConfirmDialogActivity.java
index be2fa2d..db6e1b4 100644
--- a/src/com/android/settings/sim/SwitchToEsimConfirmDialogActivity.java
+++ b/src/com/android/settings/sim/SwitchToEsimConfirmDialogActivity.java
@@ -23,6 +23,7 @@
import com.android.settings.R;
import com.android.settings.SidecarFragment;
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.ConfirmDialogFragment;
import com.android.settings.network.telephony.SubscriptionActionDialogActivity;
@@ -110,7 +111,8 @@
return;
}
Log.i(TAG, "User confirmed to switch to embedded slot.");
- mSwitchToEuiccSubscriptionSidecar.run(mSubToEnabled.getSubscriptionId());
+ mSwitchToEuiccSubscriptionSidecar.run(mSubToEnabled.getSubscriptionId(),
+ UiccSlotUtil.INVALID_PORT_ID, null);
showProgressDialog(
getString(
R.string.sim_action_switch_sub_dialog_progress,
diff --git a/src/com/android/settings/sim/receivers/SimSlotChangeHandler.java b/src/com/android/settings/sim/receivers/SimSlotChangeHandler.java
index e0bc9cd..8c8964f 100644
--- a/src/com/android/settings/sim/receivers/SimSlotChangeHandler.java
+++ b/src/com/android/settings/sim/receivers/SimSlotChangeHandler.java
@@ -210,10 +210,11 @@
}
List<SubscriptionInfo> groupedEmbeddedSubscriptions = getGroupedEmbeddedSubscriptions();
-
if (groupedEmbeddedSubscriptions.size() == 0 || !removableSlotInfo.getPorts().stream()
.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;
}