[SIM Dialog Migration] Migrate eSIM erase dialog

Bug: 160819390
Test: Manually tested eSIM profile disabling.
Design: https://docs.google.com/document/d/1wb5_hoBkZVbkXGNWHbx4Jf61swjfxsJzkytiTzJosYo/edit?usp=sharing
Change-Id: I9523ee5dbab5b6a5ea020647a20992ac0b1aea86
This commit is contained in:
Jiashen Wang
2020-10-01 18:36:20 -07:00
parent 7e04453c74
commit ff311a2107
7 changed files with 286 additions and 3 deletions

View File

@@ -31,12 +31,15 @@ import android.telephony.UiccSlotInfo;
import androidx.annotation.VisibleForTesting;
import com.android.settings.network.telephony.DeleteEuiccSubscriptionDialogActivity;
import com.android.settings.network.telephony.ToggleSubscriptionDialogActivity;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class SubscriptionUtil {
private static final String TAG = "SubscriptionUtil";
@@ -287,6 +290,11 @@ public class SubscriptionUtil {
context.startActivity(ToggleSubscriptionDialogActivity.getIntent(context, subId, enable));
}
/** Starts a dialog activity to handle eSIM deletion. */
public static void startDeleteEuiccSubscriptionDialogActivity(Context context, int subId) {
context.startActivity(DeleteEuiccSubscriptionDialogActivity.getIntent(context, subId));
}
/**
* Finds and returns a subscription with a specific subscription ID.
* @param subscriptionManager The ProxySubscriptionManager for accessing subscription
@@ -332,4 +340,33 @@ public class SubscriptionUtil {
|| subscriptionManager.canManageSubscription(info);
return hasCarrierPrivilegePermission;
}
/**
* Finds all the available subscriptions having the same group uuid as {@code subscriptionInfo}.
* @param subscriptionManager The SubscriptionManager for accessing subscription information
* @param subId The id of subscription
* @return a list of {@code SubscriptionInfo} which have the same group UUID.
*/
public static List<SubscriptionInfo> findAllSubscriptionsInGroup(
SubscriptionManager subscriptionManager, int subId) {
SubscriptionInfo subscription = getSubById(subscriptionManager, subId);
if (subscription == null) {
return Collections.emptyList();
}
ParcelUuid groupUuid = subscription.getGroupUuid();
List<SubscriptionInfo> availableSubscriptions =
subscriptionManager.getAvailableSubscriptionInfoList();
if (availableSubscriptions == null
|| availableSubscriptions.isEmpty()
|| groupUuid == null) {
return Collections.singletonList(subscription);
}
return availableSubscriptions
.stream()
.filter(sub -> sub.isEmbedded() && groupUuid.equals(sub.getGroupUuid()))
.collect(Collectors.toList());
}
}