Fix incorrect mapping to get subscriptioninfo

getActiveSubscriptionInfoList() returns a list of active subscription.
It doesn't 1:1 mapping with slotId. So it is not correct to use slotId
as index to get subscriptioninfo from list.
Use framework interface getActiveSubscriptionInfoForSimSlotIndex() to
get subscriptioninfo per slotid instead.

Bug: 131123246
Test: Test with dual SIM device and atest SimStatusDialogControllerTest
pass

Change-Id: If7140f602571a5cb8dcdfff939bd84ccff0b482f
This commit is contained in:
andychou
2019-04-24 23:12:09 +08:00
parent 4d03377901
commit 6185e381e0

View File

@@ -406,13 +406,7 @@ public class SimStatusDialogController implements LifecycleObserver, OnResume, O
} }
private SubscriptionInfo getPhoneSubscriptionInfo(int slotId) { private SubscriptionInfo getPhoneSubscriptionInfo(int slotId) {
final List<SubscriptionInfo> subscriptionInfoList = SubscriptionManager.from( return SubscriptionManager.from(mContext).getActiveSubscriptionInfoForSimSlotIndex(slotId);
mContext).getActiveSubscriptionInfoList(true);
if (subscriptionInfoList != null && subscriptionInfoList.size() > slotId) {
return subscriptionInfoList.get(slotId);
} else {
return null;
}
} }
@VisibleForTesting @VisibleForTesting