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

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

Merge "Allow user to specify EAP-SIM under PEAP" into oc-dev

parents e4c73c24 9b26496d
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -388,6 +388,21 @@
        <item>GTC</item>
    </string-array>

    <!-- Type of EAP method when EAP SIM, AKA, AKA' are supported -->
    <string-array name="wifi_peap_phase2_entries_with_sim_auth">
        <item>None</item>
        <!-- Do not translate. -->
        <item>MSCHAPV2</item>
        <!-- Do not translate. -->
        <item>GTC</item>
        <!-- Do not translate. -->
        <item>SIM</item>
        <!-- Do not translate. -->
        <item>AKA</item>
        <!-- Do not translate. -->
        <item>AKA\'</item>
    </string-array>

    <!-- Phase 2 options for rest of EAP methods -->
    <string-array name="wifi_phase2_entries">
        <item>None</item>
+54 −5
Original line number Diff line number Diff line
@@ -106,6 +106,9 @@ public class WifiConfigController implements TextWatcher,
    public static final int WIFI_PEAP_PHASE2_NONE       = 0;
    public static final int WIFI_PEAP_PHASE2_MSCHAPV2   = 1;
    public static final int WIFI_PEAP_PHASE2_GTC        = 2;
    public static final int WIFI_PEAP_PHASE2_SIM        = 3;
    public static final int WIFI_PEAP_PHASE2_AKA        = 4;
    public static final int WIFI_PEAP_PHASE2_AKA_PRIME  = 5;

    /* Phase2 methods supported by PEAP are limited */
    private final ArrayAdapter<String> mPhase2PeapAdapter;
@@ -176,9 +179,16 @@ public class WifiConfigController implements TextWatcher,
        final Resources res = mContext.getResources();

        mLevels = res.getStringArray(R.array.wifi_signal);
        if (Utils.isWifiOnly(mContext) || !mContext.getResources().getBoolean(
                com.android.internal.R.bool.config_eap_sim_based_auth_supported)) {
            mPhase2PeapAdapter = new ArrayAdapter<String>(
                    mContext, android.R.layout.simple_spinner_item,
                    res.getStringArray(R.array.wifi_peap_phase2_entries));
        } else {
            mPhase2PeapAdapter = new ArrayAdapter<String>(
                    mContext, android.R.layout.simple_spinner_item,
                    res.getStringArray(R.array.wifi_peap_phase2_entries_with_sim_auth));
        }
        mPhase2PeapAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

        mPhase2FullAdapter = new ArrayAdapter<String>(
@@ -532,6 +542,15 @@ public class WifiConfigController implements TextWatcher,
                            case WIFI_PEAP_PHASE2_GTC:
                                config.enterpriseConfig.setPhase2Method(Phase2.GTC);
                                break;
                            case WIFI_PEAP_PHASE2_SIM:
                                config.enterpriseConfig.setPhase2Method(Phase2.SIM);
                                break;
                            case WIFI_PEAP_PHASE2_AKA:
                                config.enterpriseConfig.setPhase2Method(Phase2.AKA);
                                break;
                            case WIFI_PEAP_PHASE2_AKA_PRIME:
                                config.enterpriseConfig.setPhase2Method(Phase2.AKA_PRIME);
                                break;
                            default:
                                Log.e(TAG, "Unknown phase2 method" + phase2Method);
                                break;
@@ -795,6 +814,7 @@ public class WifiConfigController implements TextWatcher,
                mEapMethodSpinner.setAdapter(spinnerAdapter);
            }
            mPhase2Spinner = (Spinner) mView.findViewById(R.id.phase2);
            mPhase2Spinner.setOnItemSelectedListener(this);
            mEapCaCertSpinner = (Spinner) mView.findViewById(R.id.ca_cert);
            mEapCaCertSpinner.setOnItemSelectedListener(this);
            mEapDomainView = (TextView) mView.findViewById(R.id.domain);
@@ -836,6 +856,15 @@ public class WifiConfigController implements TextWatcher,
                            case Phase2.GTC:
                                mPhase2Spinner.setSelection(WIFI_PEAP_PHASE2_GTC);
                                break;
                            case Phase2.SIM:
                                mPhase2Spinner.setSelection(WIFI_PEAP_PHASE2_SIM);
                                break;
                            case Phase2.AKA:
                                mPhase2Spinner.setSelection(WIFI_PEAP_PHASE2_AKA);
                                break;
                            case Phase2.AKA_PRIME:
                                mPhase2Spinner.setSelection(WIFI_PEAP_PHASE2_AKA_PRIME);
                                break;
                            default:
                                Log.e(TAG, "Invalid phase 2 method " + phase2Method);
                                break;
@@ -874,6 +903,7 @@ public class WifiConfigController implements TextWatcher,
                mEapIdentityView.setText(enterpriseConfig.getIdentity());
                mEapAnonymousView.setText(enterpriseConfig.getAnonymousIdentity());
            } else {
                mPhase2Spinner = (Spinner) mView.findViewById(R.id.phase2);
                showEapFieldsByMethod(mEapMethodSpinner.getSelectedItemPosition());
            }
        } else {
@@ -886,11 +916,11 @@ public class WifiConfigController implements TextWatcher,
     *   identity
     *   password
     * EAP-PEAP valid fields include
     *   phase2: MSCHAPV2, GTC
     *   phase2: MSCHAPV2, GTC, SIM, AKA, AKA'
     *   ca_cert
     *   identity
     *   anonymous_identity
     *   password
     *   password (not required for SIM, AKA, AKA')
     * EAP-TLS valid fields include
     *   user_cert
     *   ca_cert
@@ -938,6 +968,7 @@ public class WifiConfigController implements TextWatcher,
                }
                mView.findViewById(R.id.l_phase2).setVisibility(View.VISIBLE);
                mView.findViewById(R.id.l_anonymous).setVisibility(View.VISIBLE);
                showPeapFields();
                setUserCertInvisible();
                break;
            case WIFI_EAP_METHOD_TTLS:
@@ -974,6 +1005,21 @@ public class WifiConfigController implements TextWatcher,
        }
    }

    private void showPeapFields() {
        int phase2Method = mPhase2Spinner.getSelectedItemPosition();
        if (phase2Method == WIFI_PEAP_PHASE2_SIM || phase2Method == WIFI_PEAP_PHASE2_AKA
                 || phase2Method == WIFI_PEAP_PHASE2_AKA_PRIME) {
            mEapIdentityView.setText("");
            mView.findViewById(R.id.l_identity).setVisibility(View.GONE);
            setPasswordInvisible();
        } else {
            mView.findViewById(R.id.l_identity).setVisibility(View.VISIBLE);
            mView.findViewById(R.id.l_anonymous).setVisibility(View.VISIBLE);
            mView.findViewById(R.id.password_layout).setVisibility(View.VISIBLE);
            mView.findViewById(R.id.show_password_layout).setVisibility(View.VISIBLE);
        }
    }

    private void setIdentityInvisible() {
        mView.findViewById(R.id.l_identity).setVisibility(View.GONE);
        mPhase2Spinner.setSelection(Phase2.NONE);
@@ -1239,6 +1285,9 @@ public class WifiConfigController implements TextWatcher,
            showSecurityFields();
        } else if (parent == mEapMethodSpinner || parent == mEapCaCertSpinner) {
            showSecurityFields();
        } else if (parent == mPhase2Spinner
                && mEapMethodSpinner.getSelectedItemPosition() == WIFI_EAP_METHOD_PEAP) {
            showPeapFields();
        } else if (parent == mProxySettingsSpinner) {
            showProxyFields();
        } else {