Loading res/values/config.xml +4 −0 Original line number Diff line number Diff line Loading @@ -808,4 +808,8 @@ <!-- Array of carrier id to allow the pSIM conversion--> <integer-array name="config_psim_conversion_menu_enabled_carrier" translatable="false"> </integer-array> <!-- Array of carrier id that uses reusable activation code--> <integer-array name="config_carrier_use_rac" translatable="false"> </integer-array> </resources> src/com/android/settings/network/SubscriptionUtil.java +13 −3 Original line number Diff line number Diff line Loading @@ -49,9 +49,11 @@ import com.android.settings.flags.Flags; import com.android.settings.network.helper.SelectableSubscriptions; import com.android.settings.network.helper.SubscriptionAnnotation; import com.android.settings.network.telephony.DeleteEuiccSubscriptionDialogActivity; import com.android.settings.network.telephony.EuiccRacConnectivityDialogActivity; import com.android.settings.network.telephony.ToggleSubscriptionDialogActivity; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; Loading Loading @@ -557,14 +559,22 @@ public class SubscriptionUtil { * @param context {@code Context} * @param subId The id of subscription need to be deleted. */ public static void startDeleteEuiccSubscriptionDialogActivity(Context context, int subId) { public static void startDeleteEuiccSubscriptionDialogActivity(Context context, int subId, int carrierId) { if (!SubscriptionManager.isUsableSubscriptionId(subId)) { Log.i(TAG, "Unable to delete subscription due to invalid subscription ID."); return; } // TODO(b/325693582): Add verification if carrier is RAC and logic for new dialog final int[] carriersThatUseRAC = context.getResources().getIntArray( R.array.config_carrier_use_rac); boolean isCarrierRac = Arrays.stream(carriersThatUseRAC).anyMatch(cid -> cid == carrierId); if (isCarrierRac && !isConnectedToWifiOrDifferentSubId(context, subId)) { context.startActivity(EuiccRacConnectivityDialogActivity.getIntent(context, subId)); } else { context.startActivity(DeleteEuiccSubscriptionDialogActivity.getIntent(context, subId)); } } /** * Finds and returns a subscription with a specific subscription ID. Loading src/com/android/settings/network/telephony/DeleteSimProfilePreferenceController.kt +6 −1 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ import com.android.settingslib.spa.framework.util.collectLatestWithLifecycle class DeleteSimProfilePreferenceController(context: Context, preferenceKey: String) : BasePreferenceController(context, preferenceKey) { private var subscriptionId: Int = SubscriptionManager.INVALID_SUBSCRIPTION_ID private var carrierId: Int = TelephonyManager.UNKNOWN_CARRIER_ID private var subscriptionInfo: SubscriptionInfo? = null private lateinit var preference: Preference Loading @@ -40,6 +41,9 @@ class DeleteSimProfilePreferenceController(context: Context, preferenceKey: Stri this.subscriptionId = subscriptionId subscriptionInfo = SubscriptionUtil.getAvailableSubscriptions(mContext) .find { it.subscriptionId == subscriptionId && it.isEmbedded } subscriptionInfo?.let { carrierId = it.carrierId } } override fun getAvailabilityStatus() = when (subscriptionInfo) { Loading Loading @@ -67,7 +71,8 @@ class DeleteSimProfilePreferenceController(context: Context, preferenceKey: Stri } private fun deleteSim() { SubscriptionUtil.startDeleteEuiccSubscriptionDialogActivity(mContext, subscriptionId) SubscriptionUtil.startDeleteEuiccSubscriptionDialogActivity(mContext, subscriptionId, carrierId) // result handled in MobileNetworkSettings } } Loading
res/values/config.xml +4 −0 Original line number Diff line number Diff line Loading @@ -808,4 +808,8 @@ <!-- Array of carrier id to allow the pSIM conversion--> <integer-array name="config_psim_conversion_menu_enabled_carrier" translatable="false"> </integer-array> <!-- Array of carrier id that uses reusable activation code--> <integer-array name="config_carrier_use_rac" translatable="false"> </integer-array> </resources>
src/com/android/settings/network/SubscriptionUtil.java +13 −3 Original line number Diff line number Diff line Loading @@ -49,9 +49,11 @@ import com.android.settings.flags.Flags; import com.android.settings.network.helper.SelectableSubscriptions; import com.android.settings.network.helper.SubscriptionAnnotation; import com.android.settings.network.telephony.DeleteEuiccSubscriptionDialogActivity; import com.android.settings.network.telephony.EuiccRacConnectivityDialogActivity; import com.android.settings.network.telephony.ToggleSubscriptionDialogActivity; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; Loading Loading @@ -557,14 +559,22 @@ public class SubscriptionUtil { * @param context {@code Context} * @param subId The id of subscription need to be deleted. */ public static void startDeleteEuiccSubscriptionDialogActivity(Context context, int subId) { public static void startDeleteEuiccSubscriptionDialogActivity(Context context, int subId, int carrierId) { if (!SubscriptionManager.isUsableSubscriptionId(subId)) { Log.i(TAG, "Unable to delete subscription due to invalid subscription ID."); return; } // TODO(b/325693582): Add verification if carrier is RAC and logic for new dialog final int[] carriersThatUseRAC = context.getResources().getIntArray( R.array.config_carrier_use_rac); boolean isCarrierRac = Arrays.stream(carriersThatUseRAC).anyMatch(cid -> cid == carrierId); if (isCarrierRac && !isConnectedToWifiOrDifferentSubId(context, subId)) { context.startActivity(EuiccRacConnectivityDialogActivity.getIntent(context, subId)); } else { context.startActivity(DeleteEuiccSubscriptionDialogActivity.getIntent(context, subId)); } } /** * Finds and returns a subscription with a specific subscription ID. Loading
src/com/android/settings/network/telephony/DeleteSimProfilePreferenceController.kt +6 −1 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ import com.android.settingslib.spa.framework.util.collectLatestWithLifecycle class DeleteSimProfilePreferenceController(context: Context, preferenceKey: String) : BasePreferenceController(context, preferenceKey) { private var subscriptionId: Int = SubscriptionManager.INVALID_SUBSCRIPTION_ID private var carrierId: Int = TelephonyManager.UNKNOWN_CARRIER_ID private var subscriptionInfo: SubscriptionInfo? = null private lateinit var preference: Preference Loading @@ -40,6 +41,9 @@ class DeleteSimProfilePreferenceController(context: Context, preferenceKey: Stri this.subscriptionId = subscriptionId subscriptionInfo = SubscriptionUtil.getAvailableSubscriptions(mContext) .find { it.subscriptionId == subscriptionId && it.isEmbedded } subscriptionInfo?.let { carrierId = it.carrierId } } override fun getAvailabilityStatus() = when (subscriptionInfo) { Loading Loading @@ -67,7 +71,8 @@ class DeleteSimProfilePreferenceController(context: Context, preferenceKey: Stri } private fun deleteSim() { SubscriptionUtil.startDeleteEuiccSubscriptionDialogActivity(mContext, subscriptionId) SubscriptionUtil.startDeleteEuiccSubscriptionDialogActivity(mContext, subscriptionId, carrierId) // result handled in MobileNetworkSettings } }