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

Commit 7e297c49 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...

Merge "Use ArrayMap to cache active subscriptions" into main am: 29ee5744 am: 565161fb am: 47f85682 am: fc02a337

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



Change-Id: I413aa389f8fee42e7e2d42acb2430034860b170d
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 2f6fc715 fc02a337
Loading
Loading
Loading
Loading
+8 −19
Original line number Diff line number Diff line
@@ -227,7 +227,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) {
@@ -716,7 +716,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();
@@ -1136,11 +1136,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);
                }
            }

@@ -1516,18 +1514,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 */);
@@ -1538,7 +1526,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())
@@ -1547,6 +1535,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()])));