diff --git a/src/com/android/settings/network/helper/SubscriptionAnnotation.java b/src/com/android/settings/network/helper/SubscriptionAnnotation.java index 29d4fb5b900..79fbf68b6d9 100644 --- a/src/com/android/settings/network/helper/SubscriptionAnnotation.java +++ b/src/com/android/settings/network/helper/SubscriptionAnnotation.java @@ -90,16 +90,15 @@ public class SubscriptionAnnotation { mOrderWithinList = subInfoIndex; mType = mSubInfo.isEmbedded() ? TYPE_ESIM : TYPE_PSIM; + mIsExisted = true; if (mType == TYPE_ESIM) { int cardId = mSubInfo.getCardId(); - mIsExisted = eSimCardId.contains(cardId); mIsActive = activeSimSlotIndexList.contains(mSubInfo.getSimSlotIndex()); mIsAllowToDisplay = (cardId < 0) // always allow when eSIM not in slot || isDisplayAllowed(context); return; } - mIsExisted = true; mIsActive = (mSubInfo.getSimSlotIndex() > SubscriptionManager.INVALID_SIM_SLOT_INDEX) && activeSimSlotIndexList.contains(mSubInfo.getSimSlotIndex()); mIsAllowToDisplay = isDisplayAllowed(context); diff --git a/src/com/android/settings/network/helper/SubscriptionGrouping.java b/src/com/android/settings/network/helper/SubscriptionGrouping.java index cfb5ea92650..c4e0fd71bb8 100644 --- a/src/com/android/settings/network/helper/SubscriptionGrouping.java +++ b/src/com/android/settings/network/helper/SubscriptionGrouping.java @@ -16,6 +16,7 @@ package com.android.settings.network.helper; import android.os.ParcelUuid; +import android.util.Log; import androidx.annotation.Keep; import androidx.annotation.VisibleForTesting; @@ -44,9 +45,12 @@ import java.util.stream.Collectors; */ public class SubscriptionGrouping implements UnaryOperator> { + private static final String LOG_TAG = "SubscriptionGrouping"; // implementation of UnaryOperator public List apply(List listOfSubscriptions) { + Log.d(LOG_TAG, "Grouping " + listOfSubscriptions); + // group by GUID Map> groupedSubInfoList = listOfSubscriptions.stream() @@ -89,8 +93,8 @@ public class SubscriptionGrouping annoSelector = annoSelector // eSIM in front of pSIM .thenComparingInt(anno -> -anno.getType()) - // subscription ID in reverse order - .thenComparingInt(anno -> -anno.getSubscriptionId()); + // maintain the ordering given within constructor + .thenComparingInt(anno -> annoList.indexOf(anno)); return annoList.stream().sorted(annoSelector).findFirst().orElse(null); } } diff --git a/tests/unit/src/com/android/settings/network/helper/SubscriptionGroupingTest.java b/tests/unit/src/com/android/settings/network/helper/SubscriptionGroupingTest.java index 97bdb7433a7..bea720939a3 100644 --- a/tests/unit/src/com/android/settings/network/helper/SubscriptionGroupingTest.java +++ b/tests/unit/src/com/android/settings/network/helper/SubscriptionGroupingTest.java @@ -68,7 +68,7 @@ public class SubscriptionGroupingTest { List result = mTarget .apply(Arrays.asList(subAnno2, subAnno1, subAnno3)); assertThat(result.size()).isEqualTo(1); - assertThat(result.get(0)).isEqualTo(subAnno3); + assertThat(result.get(0)).isEqualTo(subAnno1); } @Test