Loading res/values/arrays.xml +19 −0 Original line number Diff line number Diff line Loading @@ -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> res/xml/apn_editor.xml +6 −0 Original line number Diff line number Diff line Loading @@ -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" Loading src/com/android/settings/ApnEditor.java +90 −41 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -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; Loading @@ -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) { Loading @@ -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(); Loading Loading @@ -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())); Loading @@ -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 Loading Loading @@ -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); Loading Loading
res/values/arrays.xml +19 −0 Original line number Diff line number Diff line Loading @@ -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>
res/xml/apn_editor.xml +6 −0 Original line number Diff line number Diff line Loading @@ -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" Loading
src/com/android/settings/ApnEditor.java +90 −41 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -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; Loading @@ -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) { Loading @@ -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(); Loading Loading @@ -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())); Loading @@ -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 Loading Loading @@ -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); Loading