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

Commit 5b71fcca authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "[Wi-Fi] Fix transition mode problems" into qt-qpr1-dev

parents 84722799 be02f16b
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -310,7 +310,7 @@ public class NetworkRequestDialogFragment extends InstrumentedDialogFragment imp
        mHandler.sendEmptyMessageDelayed(MESSAGE_STOP_SCAN_WIFI_LIST, DELAY_TIME_STOP_SCAN_MS);

        if (mFilterWifiTracker == null) {
            mFilterWifiTracker = new FilterWifiTracker(getActivity(), getSettingsLifecycle());
            mFilterWifiTracker = new FilterWifiTracker(getContext(), getSettingsLifecycle());
        }
        mFilterWifiTracker.onResume();
    }
@@ -476,11 +476,13 @@ public class NetworkRequestDialogFragment extends InstrumentedDialogFragment imp
    private final class FilterWifiTracker {
        private final List<String> mAccessPointKeys;
        private final WifiTracker mWifiTracker;
        private final Context mContext;

        public FilterWifiTracker(Context context, Lifecycle lifecycle) {
            mWifiTracker = WifiTrackerFactory.create(context, mWifiListener,
                    lifecycle, /* includeSaved */ true, /* includeScans */ true);
            mAccessPointKeys = new ArrayList<>();
            mContext = context;
        }

        /**
@@ -489,7 +491,7 @@ public class NetworkRequestDialogFragment extends InstrumentedDialogFragment imp
         */
        public void updateKeys(List<ScanResult> scanResults) {
            for (ScanResult scanResult : scanResults) {
                final String key = AccessPoint.getKey(scanResult);
                final String key = AccessPoint.getKey(mContext, scanResult);
                if (!mAccessPointKeys.contains(key)) {
                    mAccessPointKeys.add(key);
                }
+1 −33
Original line number Diff line number Diff line
@@ -583,35 +583,6 @@ public class WifiConfigController implements TextWatcher,
        }
    }

    /**
     * Special handling for WPA2/WPA3 and OWE in Transition mode: The key
     * SECURITY_PSK_SAE_TRANSITION and SECURITY_OWE_TRANSITION are pseudo keys which result by the
     * scan results, but never appears in the saved networks.
     * A saved network is either WPA3 for supporting devices or WPA2 for non-supporting devices,
     * or, OWE for supporting devices or Open for non-supporting devices.
     *
     * @param accessPointSecurity Access point current security type
     * @return Converted security type (if required)
     */
    private int convertSecurityTypeForMatching(int accessPointSecurity) {
        if (accessPointSecurity == AccessPoint.SECURITY_PSK_SAE_TRANSITION) {
            if (mWifiManager.isWpa3SaeSupported()) {
                return AccessPoint.SECURITY_SAE;
            } else {
                return AccessPoint.SECURITY_PSK;
            }
        }
        if (accessPointSecurity == AccessPoint.SECURITY_OWE_TRANSITION) {
            if (mWifiManager.isEnhancedOpenSupported()) {
                return AccessPoint.SECURITY_OWE;
            } else {
                return AccessPoint.SECURITY_NONE;
            }
        }

        return accessPointSecurity;
    }

    public WifiConfiguration getConfig() {
        if (mMode == WifiConfigUiBase.MODE_VIEW) {
            return null;
@@ -634,8 +605,6 @@ public class WifiConfigController implements TextWatcher,

        config.shared = mSharedCheckBox.isChecked();

        mAccessPointSecurity = convertSecurityTypeForMatching(mAccessPointSecurity);

        switch (mAccessPointSecurity) {
            case AccessPoint.SECURITY_NONE:
                config.allowedKeyManagement.set(KeyMgmt.NONE);
@@ -960,8 +929,7 @@ public class WifiConfigController implements TextWatcher,

    private void showSecurityFields(boolean refreshEapMethods, boolean refreshCertificates) {
        if (mAccessPointSecurity == AccessPoint.SECURITY_NONE ||
                mAccessPointSecurity == AccessPoint.SECURITY_OWE ||
                mAccessPointSecurity == AccessPoint.SECURITY_OWE_TRANSITION) {
                mAccessPointSecurity == AccessPoint.SECURITY_OWE) {
            mView.findViewById(R.id.security_fields).setVisibility(View.GONE);
            return;
        }
+2 −5
Original line number Diff line number Diff line
@@ -494,9 +494,7 @@ public class WifiSettings extends RestrictedSettingsFragment
                if (isSavedNetwork) {
                    connect(mSelectedAccessPoint.getConfig(), isSavedNetwork);
                } else if ((mSelectedAccessPoint.getSecurity() == AccessPoint.SECURITY_NONE) ||
                        (mSelectedAccessPoint.getSecurity() == AccessPoint.SECURITY_OWE) ||
                        (mSelectedAccessPoint.getSecurity()
                                == AccessPoint.SECURITY_OWE_TRANSITION)) {
                        (mSelectedAccessPoint.getSecurity() == AccessPoint.SECURITY_OWE)) {
                    /** Bypass dialog for unsecured networks */
                    mSelectedAccessPoint.generateOpenNetworkConfig();
                    connect(mSelectedAccessPoint.getConfig(), isSavedNetwork);
@@ -750,8 +748,7 @@ public class WifiSettings extends RestrictedSettingsFragment
                preference.setOrder(index);
                if (mOpenSsid != null && mOpenSsid.equals(accessPoint.getSsidStr())
                        && (accessPoint.getSecurity() != AccessPoint.SECURITY_NONE &&
                        accessPoint.getSecurity() != AccessPoint.SECURITY_OWE &&
                        accessPoint.getSecurity() != AccessPoint.SECURITY_OWE_TRANSITION)) {
                        accessPoint.getSecurity() != AccessPoint.SECURITY_OWE)) {
                    if (!accessPoint.isSaved() || isDisabledByWrongPassword(accessPoint)) {
                        onPreferenceTreeClick(preference);
                        mOpenSsid = null;
+1 −2
Original line number Diff line number Diff line
@@ -268,8 +268,7 @@ public class WifiUtils {
        if (accessPoint.isOsuProvider()) {
            return CONNECT_TYPE_OSU_PROVISION;
        } else if ((accessPoint.getSecurity() == AccessPoint.SECURITY_NONE) ||
                (accessPoint.getSecurity() == AccessPoint.SECURITY_OWE) ||
                (accessPoint.getSecurity() == AccessPoint.SECURITY_OWE_TRANSITION)) {
                (accessPoint.getSecurity() == AccessPoint.SECURITY_OWE)) {
            return CONNECT_TYPE_OPEN_NETWORK;
        } else if (accessPoint.isSaved() && config != null
                && config.getNetworkSelectionStatus() != null
+1 −4
Original line number Diff line number Diff line
@@ -206,7 +206,7 @@ public class WifiDppUtils {
        setConfiguratorIntentExtra(intent, wifiManager, wifiConfiguration);

        // For a transition mode Wi-Fi AP, creates a QR code that's compatible with more devices
        if (accessPoint.getSecurity() == AccessPoint.SECURITY_PSK_SAE_TRANSITION) {
        if (accessPoint.isPskSaeTransitionMode()) {
            intent.putExtra(EXTRA_WIFI_SECURITY, WifiQrCode.SECURITY_WPA_PSK);
        }

@@ -406,7 +406,6 @@ public class WifiDppUtils {
                }
                break;
            case AccessPoint.SECURITY_PSK:
            case AccessPoint.SECURITY_PSK_SAE_TRANSITION:
                return true;
            default:
        }
@@ -419,8 +418,6 @@ public class WifiDppUtils {
            case AccessPoint.SECURITY_PSK:
            case AccessPoint.SECURITY_WEP:
            case AccessPoint.SECURITY_NONE:
            case AccessPoint.SECURITY_PSK_SAE_TRANSITION:
            case AccessPoint.SECURITY_OWE_TRANSITION:
                return true;
            case AccessPoint.SECURITY_SAE:
                if (wifiManager.isWpa3SaeSupported()) {