Merge "Use ArrayMap to cache active subscriptions" into main am: 29ee574493 am: 565161fb1a am: 47f8568209 am: fc02a337f8 am: 7e297c494a

Original change: https://android-review.googlesource.com/c/platform/packages/apps/Settings/+/2704973

Change-Id: Ifda23786d9102042d4beb2ce09b4bfd24f911cbc
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Treehugger Robot
2023-08-17 02:32:50 +00:00
committed by Automerger Merge Worker

View File

@@ -227,7 +227,7 @@ public class WifiConfigController2 implements TextWatcher,
private final WifiManager mWifiManager; private final WifiManager mWifiManager;
private boolean mIsTrustOnFirstUseSupported; private boolean mIsTrustOnFirstUseSupported;
private final List<SubscriptionInfo> mActiveSubscriptionInfos = new ArrayList<>(); private final ArrayMap<Integer, SubscriptionInfo> mActiveSubscriptionInfos = new ArrayMap<>();
public WifiConfigController2(WifiConfigUiBase2 parent, View view, WifiEntry wifiEntry, public WifiConfigController2(WifiConfigUiBase2 parent, View view, WifiEntry wifiEntry,
int mode) { int mode) {
@@ -716,7 +716,7 @@ public class WifiConfigController2 implements TextWatcher,
if (config.enterpriseConfig.isAuthenticationSimBased() if (config.enterpriseConfig.isAuthenticationSimBased()
&& mActiveSubscriptionInfos.size() > 0) { && mActiveSubscriptionInfos.size() > 0) {
config.carrierId = mActiveSubscriptionInfos config.carrierId = mActiveSubscriptionInfos
.get(mEapSimSpinner.getSelectedItemPosition()).getCarrierId(); .valueAt(mEapSimSpinner.getSelectedItemPosition()).getCarrierId();
} }
String caCert = (String) mEapCaCertSpinner.getSelectedItem(); String caCert = (String) mEapCaCertSpinner.getSelectedItem();
@@ -1137,11 +1137,9 @@ public class WifiConfigController2 implements TextWatcher,
} }
if (enterpriseConfig.isAuthenticationSimBased()) { if (enterpriseConfig.isAuthenticationSimBased()) {
for (int i = 0; i < mActiveSubscriptionInfos.size(); i++) { int index = mActiveSubscriptionInfos.indexOfKey(wifiConfig.carrierId);
if (wifiConfig.carrierId == mActiveSubscriptionInfos.get(i).getCarrierId()) { if (index > -1) {
mEapSimSpinner.setSelection(i); mEapSimSpinner.setSelection(index);
break;
}
} }
} }
@@ -1517,18 +1515,8 @@ public class WifiConfigController2 implements TextWatcher,
} }
mActiveSubscriptionInfos.clear(); mActiveSubscriptionInfos.clear();
// De-duplicates active subscriptions and caches in mActiveSubscriptionInfos.
for (SubscriptionInfo newInfo : activeSubscriptionInfos) {
for (SubscriptionInfo cachedInfo : mActiveSubscriptionInfos) {
if (newInfo.getCarrierId() == cachedInfo.getCarrierId()) {
continue;
}
}
mActiveSubscriptionInfos.add(newInfo);
}
// Shows disabled 'No SIM' when there is no active subscription. // Shows disabled 'No SIM' when there is no active subscription.
if (mActiveSubscriptionInfos.size() == 0) { if (activeSubscriptionInfos.isEmpty()) {
final String[] noSim = new String[]{mContext.getString(R.string.wifi_no_sim_card)}; final String[] noSim = new String[]{mContext.getString(R.string.wifi_no_sim_card)};
mEapSimSpinner.setAdapter(getSpinnerAdapter(noSim)); mEapSimSpinner.setAdapter(getSpinnerAdapter(noSim));
mEapSimSpinner.setSelection(0 /* position */); mEapSimSpinner.setSelection(0 /* position */);
@@ -1539,7 +1527,7 @@ public class WifiConfigController2 implements TextWatcher,
// Shows display name of each active subscription. // Shows display name of each active subscription.
ArrayMap<Integer, CharSequence> displayNames = new ArrayMap<>(); ArrayMap<Integer, CharSequence> displayNames = new ArrayMap<>();
int defaultDataSubscriptionId = SubscriptionManager.getDefaultDataSubscriptionId(); int defaultDataSubscriptionId = SubscriptionManager.getDefaultDataSubscriptionId();
for (SubscriptionInfo activeSubInfo : mActiveSubscriptionInfos) { for (SubscriptionInfo activeSubInfo : activeSubscriptionInfos) {
// If multiple SIMs have the same carrier id, only the first or default data SIM is // If multiple SIMs have the same carrier id, only the first or default data SIM is
// displayed. // displayed.
if (displayNames.containsKey(activeSubInfo.getCarrierId()) if (displayNames.containsKey(activeSubInfo.getCarrierId())
@@ -1548,6 +1536,7 @@ public class WifiConfigController2 implements TextWatcher,
} }
displayNames.put(activeSubInfo.getCarrierId(), displayNames.put(activeSubInfo.getCarrierId(),
SubscriptionUtil.getUniqueSubscriptionDisplayName(activeSubInfo, mContext)); SubscriptionUtil.getUniqueSubscriptionDisplayName(activeSubInfo, mContext));
mActiveSubscriptionInfos.put(activeSubInfo.getCarrierId(), activeSubInfo);
} }
mEapSimSpinner.setAdapter( mEapSimSpinner.setAdapter(
getSpinnerAdapter(displayNames.values().toArray(new String[displayNames.size()]))); getSpinnerAdapter(displayNames.values().toArray(new String[displayNames.size()])));