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

Commit 195bc434 authored by Jaikumar Ganesh's avatar Jaikumar Ganesh
Browse files

Add Authentication Type field to the APN settings.

Bug: 1817100
parent b3735744
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -291,4 +291,23 @@
        <item>中文 (繁體)</item>
    </string-array>

    <!-- Authentication Types used in APN editor -->
    <string-array name="apn_auth_entries">
        <item>None</item>
        <item>PAP</item>
        <item>CHAP</item>
        <item>PAP or CHAP</item>
    </string-array>

    <string-array translatable="false" name="apn_auth_values">
        <!-- Do not translate. -->
        <item>0</item>
        <!-- Do not translate. -->
        <item>1</item>
        <!-- Do not translate. -->
        <item>2</item>
        <!-- Do not translate. -->
        <item>3</item>
    </string-array>

</resources>
+6 −0
Original line number Diff line number Diff line
@@ -101,6 +101,12 @@
        android:singleLine="true"
        android:inputType="number"
        />
    <ListPreference
        android:title="@string/apn_auth_type"
        android:key="auth_type"
        android:entries="@array/apn_auth_entries"
        android:entryValues="@array/apn_auth_values"
        />
    <EditTextPreference
        android:title="@string/apn_type"
        android:dialogTitle="@string/apn_type"
+90 −41
Original line number Diff line number Diff line
@@ -27,23 +27,26 @@ import android.net.Uri;
import android.os.Bundle;
import android.os.SystemProperties;
import android.preference.EditTextPreference;
import android.preference.ListPreference;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.provider.Telephony;
import com.android.internal.telephony.TelephonyProperties;
import android.util.Log;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;

import com.android.internal.telephony.TelephonyProperties;

public class ApnEditor extends PreferenceActivity 
        implements SharedPreferences.OnSharedPreferenceChangeListener {

public class ApnEditor extends PreferenceActivity
        implements SharedPreferences.OnSharedPreferenceChangeListener,
                    Preference.OnPreferenceChangeListener {

    private final static String TAG = ApnEditor.class.getSimpleName();

    private final static String SAVED_POS = "pos";
    private final static String KEY_AUTH_TYPE = "auth_type";

    private static final int MENU_DELETE = Menu.FIRST;
    private static final int MENU_SAVE = Menu.FIRST + 1;
@@ -62,7 +65,9 @@ public class ApnEditor extends PreferenceActivity
    private EditTextPreference mMnc;
    private EditTextPreference mMmsProxy;
    private EditTextPreference mMmsPort;
    private ListPreference mAuthType;
    private EditTextPreference mApnType;

    private String mCurMnc;
    private String mCurMcc;

@@ -90,7 +95,8 @@ public class ApnEditor extends PreferenceActivity
            Telephony.Carriers.NUMERIC, // 11
            Telephony.Carriers.MMSPROXY,// 12
            Telephony.Carriers.MMSPORT, // 13
            Telephony.Carriers.TYPE, // 14
            Telephony.Carriers.AUTH_TYPE, // 14
            Telephony.Carriers.TYPE, // 15
    };

    private static final int ID_INDEX = 0;
@@ -106,7 +112,9 @@ public class ApnEditor extends PreferenceActivity
    private static final int MNC_INDEX = 10;
    private static final int MMSPROXY_INDEX = 12;
    private static final int MMSPORT_INDEX = 13;
    private static final int TYPE_INDEX = 14;
    private static final int AUTH_TYPE_INDEX = 14;
    private static final int TYPE_INDEX = 15;


    @Override
    protected void onCreate(Bundle icicle) {
@@ -129,6 +137,9 @@ public class ApnEditor extends PreferenceActivity
        mMnc = (EditTextPreference) findPreference("apn_mnc");
        mApnType = (EditTextPreference) findPreference("apn_type");

        mAuthType = (ListPreference) findPreference("auth_type");
        mAuthType.setOnPreferenceChangeListener(this);

        mRes = getResources();

        final Intent intent = getIntent();
@@ -216,6 +227,11 @@ public class ApnEditor extends PreferenceActivity
                    mCurMcc = mcc;
                }
            }
            int authVal = mCursor.getInt(AUTH_TYPE_INDEX);
            if (authVal != -1) {
                mAuthType.setValueIndex(authVal);
            }

        }

        mName.setSummary(checkNull(mName.getText()));
@@ -231,6 +247,33 @@ public class ApnEditor extends PreferenceActivity
        mMcc.setSummary(checkNull(mMcc.getText()));
        mMnc.setSummary(checkNull(mMnc.getText()));
        mApnType.setSummary(checkNull(mApnType.getText()));

        String authVal = mAuthType.getValue();
        if (authVal != null) {
            int authValIndex = Integer.parseInt(authVal);
            mAuthType.setValueIndex(authValIndex);

            String []values = mRes.getStringArray(R.array.apn_auth_entries);
            mAuthType.setSummary(values[authValIndex]);
        } else {
            mAuthType.setSummary(sNotSet);
        }
    }

    public boolean onPreferenceChange(Preference preference, Object newValue) {
        String key = preference.getKey();
        if (KEY_AUTH_TYPE.equals(key)) {
            try {
                int index = Integer.parseInt((String) newValue);
                mAuthType.setValueIndex(index);

                String []values = mRes.getStringArray(R.array.apn_auth_entries);
                mAuthType.setSummary(values[index]);
            } catch (NumberFormatException e) {
                return false;
            }
        }
        return true;
    }

    @Override
@@ -335,6 +378,12 @@ public class ApnEditor extends PreferenceActivity
        values.put(Telephony.Carriers.SERVER, checkNotSet(mServer.getText()));
        values.put(Telephony.Carriers.PASSWORD, checkNotSet(mPassword.getText()));
        values.put(Telephony.Carriers.MMSC, checkNotSet(mMmsc.getText()));

        String authVal = mAuthType.getValue();
        if (authVal != null) {
            values.put(Telephony.Carriers.AUTH_TYPE, Integer.parseInt(authVal));
        }

        values.put(Telephony.Carriers.TYPE, checkNotSet(mApnType.getText()));

        values.put(Telephony.Carriers.MCC, mcc);