Merge "pre-provide the mvno data of the edited apn" into jb-mr2-dev
diff --git a/src/com/android/settings/ApnEditor.java b/src/com/android/settings/ApnEditor.java
index f34abfa..2da2d76 100644
--- a/src/com/android/settings/ApnEditor.java
+++ b/src/com/android/settings/ApnEditor.java
@@ -94,6 +94,7 @@
     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 @@
         mCursor = managedQuery(mUri, sProjection, null, null);
         mCursor.moveToFirst();
 
+        mTelephonyManager = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
+
         fillUi();
     }
 
@@ -359,18 +362,30 @@
         }
     }
 
-    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];