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:
@@ -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()])));
|
||||||
|
Reference in New Issue
Block a user