aboutsummaryrefslogtreecommitdiff
path: root/src/java/com/android/internal/telephony/uicc
diff options
context:
space:
mode:
authorsandeepjs <sandeepjs@google.com>2022-07-22 09:00:19 +0000
committerSandeep Jawalkar <sandeepjs@google.com>2022-08-08 09:17:35 +0000
commit8c82993ebca22ced40d44e352a0595399f4e7d6c (patch)
tree86a1cd12b1c7a3e5b9cd02d6dd261924c5a82e75 /src/java/com/android/internal/telephony/uicc
parentaa65ef1ce64c27a5362f9e12347c73179f693dc6 (diff)
downloadtelephony-8c82993ebca22ced40d44e352a0595399f4e7d6c.tar.gz
Replace HashMap with LinkedHashMap to guarantee the order
We are using HashMap in UiccCard to map portIndex <-> UiccPort. During download process, we expect card.getUiccPortList()[0] inside getFirstActiveEuiccPort API to always return the same UiccPort for each call. mUiccPorts.values() returns collection of unordered so the order is not guaranteed which causes card.getUiccPortList()[0] problem. So we have replaced HashMap with LinkedHashMap to guarantee the order. Test: Manual, added debug logs in getFirstActiveEuiccPort and verified it always returns same port in E+E mode Bug: 237560274 Change-Id: I722a222d2b122da873e8bb9e9d604e09a6793c7f
Diffstat (limited to 'src/java/com/android/internal/telephony/uicc')
-rw-r--r--src/java/com/android/internal/telephony/uicc/UiccCard.java3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/java/com/android/internal/telephony/uicc/UiccCard.java b/src/java/com/android/internal/telephony/uicc/UiccCard.java
index 03a1257392..54324b98c5 100644
--- a/src/java/com/android/internal/telephony/uicc/UiccCard.java
+++ b/src/java/com/android/internal/telephony/uicc/UiccCard.java
@@ -31,6 +31,7 @@ import com.android.telephony.Rlog;
import java.io.FileDescriptor;
import java.io.PrintWriter;
import java.util.HashMap;
+import java.util.LinkedHashMap;
/**
* {@hide}
@@ -51,7 +52,7 @@ public class UiccCard {
protected String mCardId;
protected boolean mIsSupportsMultipleEnabledProfiles;
- protected HashMap<Integer, UiccPort> mUiccPorts = new HashMap<>();
+ protected LinkedHashMap<Integer, UiccPort> mUiccPorts = new LinkedHashMap<>();
private HashMap<Integer, Integer> mPhoneIdToPortIdx = new HashMap<>();
public UiccCard(Context c, CommandsInterface ci, IccCardStatus ics, int phoneId, Object lock,