Add Authentication Type field to the APN settings.
Bug: 1817100
This commit is contained in:
@@ -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>
|
||||
|
@@ -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"
|
||||
|
@@ -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 {
|
||||
|
||||
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);
|
||||
|
Reference in New Issue
Block a user