Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 565161fb authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Use ArrayMap to cache active subscriptions" into main am: 29ee5744

parents 71814b35 29ee5744
Loading
Loading
Loading
Loading
+8 −19
Original line number Diff line number Diff line
@@ -223,7 +223,7 @@ public class WifiConfigController2 implements TextWatcher,
    private final WifiManager mWifiManager;
    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,
            int mode) {
@@ -703,7 +703,7 @@ public class WifiConfigController2 implements TextWatcher,
                if (config.enterpriseConfig.isAuthenticationSimBased()
                        && mActiveSubscriptionInfos.size() > 0) {
                    config.carrierId = mActiveSubscriptionInfos
                            .get(mEapSimSpinner.getSelectedItemPosition()).getCarrierId();
                            .valueAt(mEapSimSpinner.getSelectedItemPosition()).getCarrierId();
                }

                String caCert = (String) mEapCaCertSpinner.getSelectedItem();
@@ -1114,11 +1114,9 @@ public class WifiConfigController2 implements TextWatcher,
            }

            if (enterpriseConfig.isAuthenticationSimBased()) {
                for (int i = 0; i < mActiveSubscriptionInfos.size(); i++) {
                    if (wifiConfig.carrierId == mActiveSubscriptionInfos.get(i).getCarrierId()) {
                        mEapSimSpinner.setSelection(i);
                        break;
                    }
                int index = mActiveSubscriptionInfos.indexOfKey(wifiConfig.carrierId);
                if (index > -1) {
                    mEapSimSpinner.setSelection(index);
                }
            }

@@ -1476,18 +1474,8 @@ public class WifiConfigController2 implements TextWatcher,
        }
        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.
        if (mActiveSubscriptionInfos.size() == 0) {
        if (activeSubscriptionInfos.isEmpty()) {
            final String[] noSim = new String[]{mContext.getString(R.string.wifi_no_sim_card)};
            mEapSimSpinner.setAdapter(getSpinnerAdapter(noSim));
            mEapSimSpinner.setSelection(0 /* position */);
@@ -1498,7 +1486,7 @@ public class WifiConfigController2 implements TextWatcher,
        // Shows display name of each active subscription.
        ArrayMap<Integer, CharSequence> displayNames = new ArrayMap<>();
        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
            // displayed.
            if (displayNames.containsKey(activeSubInfo.getCarrierId())
@@ -1507,6 +1495,7 @@ public class WifiConfigController2 implements TextWatcher,
            }
            displayNames.put(activeSubInfo.getCarrierId(),
                    SubscriptionUtil.getUniqueSubscriptionDisplayName(activeSubInfo, mContext));
            mActiveSubscriptionInfos.put(activeSubInfo.getCarrierId(), activeSubInfo);
        }
        mEapSimSpinner.setAdapter(
                getSpinnerAdapter(displayNames.values().toArray(new String[displayNames.size()])));