diff --git a/src/com/android/settings/ApnEditor.java b/src/com/android/settings/ApnEditor.java index f34abfa672a..2da2d76f84f 100644 --- a/src/com/android/settings/ApnEditor.java +++ b/src/com/android/settings/ApnEditor.java @@ -94,6 +94,7 @@ public class ApnEditor extends PreferenceActivity private boolean mNewApn; private boolean mFirstTime; private Resources mRes; + private TelephonyManager mTelephonyManager; /** * Standard projection for the interesting columns of a normal note. @@ -224,6 +225,8 @@ public class ApnEditor extends PreferenceActivity mCursor = managedQuery(mUri, sProjection, null, null); mCursor.moveToFirst(); + mTelephonyManager = (TelephonyManager) getSystemService(TELEPHONY_SERVICE); + fillUi(); } @@ -359,18 +362,30 @@ public class ApnEditor extends PreferenceActivity } } - private String mvnoDescription(String raw) { - int mvnoIndex = mMvnoType.findIndexOfValue(raw); + private String mvnoDescription(String newValue) { + int mvnoIndex = mMvnoType.findIndexOfValue(newValue); + String oldValue = mMvnoType.getValue(); + if (mvnoIndex == -1) { return null; } else { String[] values = mRes.getStringArray(R.array.mvno_type_entries); if (values[mvnoIndex].equals("None")) { mMvnoMatchData.setEnabled(false); - mMvnoMatchData.setText(""); } else { mMvnoMatchData.setEnabled(true); } + if (newValue != null && newValue.equals(oldValue) == false) { + if (values[mvnoIndex].equals("SPN")) { + mMvnoMatchData.setText(mTelephonyManager.getSimOperatorName()); + } else if (values[mvnoIndex].equals("IMSI")) { + String numeric = + SystemProperties.get(TelephonyProperties.PROPERTY_ICC_OPERATOR_NUMERIC); + mMvnoMatchData.setText(numeric + "x"); + } else if (values[mvnoIndex].equals("GID")) { + mMvnoMatchData.setText(mTelephonyManager.getGroupIdLevel1()); + } + } try { return values[mvnoIndex];