diff options
author | sandeepjs <sandeepjs@google.com> | 2022-07-22 09:00:19 +0000 |
---|---|---|
committer | Sandeep Jawalkar <sandeepjs@google.com> | 2022-08-08 09:17:35 +0000 |
commit | 8c82993ebca22ced40d44e352a0595399f4e7d6c (patch) | |
tree | 86a1cd12b1c7a3e5b9cd02d6dd261924c5a82e75 /src/java/com/android/internal/telephony/uicc | |
parent | aa65ef1ce64c27a5362f9e12347c73179f693dc6 (diff) | |
download | telephony-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.java | 3 |
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, |