Use phone number as summary for 'About Phone'.

Bug: 28419411
Change-Id: I3ac57a770bf4d7416459dadedf91c3d6cefbc6b4
diff --git a/src/com/android/settings/DeviceInfoSettings.java b/src/com/android/settings/DeviceInfoSettings.java
index dd8064f..7befbc2 100644
--- a/src/com/android/settings/DeviceInfoSettings.java
+++ b/src/com/android/settings/DeviceInfoSettings.java
@@ -32,6 +32,8 @@
 import android.support.v7.preference.Preference;
 import android.support.v7.preference.PreferenceGroup;
 import android.telephony.CarrierConfigManager;
+import android.telephony.SubscriptionInfo;
+import android.telephony.SubscriptionManager;
 import android.text.TextUtils;
 import android.util.Log;
 import android.widget.Toast;
@@ -377,17 +379,39 @@
 
         private final Context mContext;
         private final SummaryLoader mSummaryLoader;
+        private final SubscriptionManager mSubscriptionManager;
+        private final SubscriptionChangeListener mSubscriptionChangeListener;
 
         public SummaryProvider(Context context, SummaryLoader summaryLoader) {
             mContext = context;
             mSummaryLoader = summaryLoader;
+            mSubscriptionManager = SubscriptionManager.from(mContext);
+            mSubscriptionChangeListener = new SubscriptionChangeListener();
         }
 
         @Override
         public void setListening(boolean listening) {
             if (listening) {
-                mSummaryLoader.setSummary(this, mContext.getString(R.string.about_summary,
-                        Build.VERSION.RELEASE));
+                updateSummary();
+                mSubscriptionManager.addOnSubscriptionsChangedListener(mSubscriptionChangeListener);
+            } else {
+                mSubscriptionManager.removeOnSubscriptionsChangedListener(
+                        mSubscriptionChangeListener);
+            }
+        }
+
+        private void updateSummary() {
+            final String formattedPhoneNumbers = DeviceInfoUtils.getFormattedPhoneNumbers(
+                    mContext, mSubscriptionManager.getActiveSubscriptionInfoList());
+            mSummaryLoader.setSummary(SummaryProvider.this, formattedPhoneNumbers);
+        }
+
+        private final class SubscriptionChangeListener
+                extends SubscriptionManager.OnSubscriptionsChangedListener {
+
+            @Override
+            public void onSubscriptionsChanged() {
+                updateSummary();
             }
         }
     }
diff --git a/src/com/android/settings/deviceinfo/SimStatus.java b/src/com/android/settings/deviceinfo/SimStatus.java
index ba14e13..4569131 100644
--- a/src/com/android/settings/deviceinfo/SimStatus.java
+++ b/src/com/android/settings/deviceinfo/SimStatus.java
@@ -16,9 +16,6 @@
 
 package com.android.settings.deviceinfo;
 
-import static android.content.Context.CARRIER_CONFIG_SERVICE;
-import static android.content.Context.TELEPHONY_SERVICE;
-
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
@@ -32,7 +29,6 @@
 import android.support.v7.preference.Preference;
 import android.telephony.CarrierConfigManager;
 import android.telephony.CellBroadcastMessage;
-import android.telephony.PhoneNumberUtils;
 import android.telephony.PhoneStateListener;
 import android.telephony.ServiceState;
 import android.telephony.SignalStrength;
@@ -58,9 +54,13 @@
 import com.android.settings.R;
 import com.android.settings.SettingsPreferenceFragment;
 import com.android.settings.Utils;
+import com.android.settingslib.DeviceInfoUtils;
 
 import java.util.List;
 
+import static android.content.Context.CARRIER_CONFIG_SERVICE;
+import static android.content.Context.TELEPHONY_SERVICE;
+
 
 /**
  * Display the following information
@@ -393,13 +393,10 @@
         mShowICCID = carrierConfig.getBoolean(
                 CarrierConfigManager.KEY_SHOW_ICCID_IN_SIM_STATUS_BOOL);
 
-        String rawNumber = mTelephonyManager.getLine1Number(mSir.getSubscriptionId());
-        String formattedNumber = null;
-        if (!TextUtils.isEmpty(rawNumber)) {
-            formattedNumber = PhoneNumberUtils.formatNumber(rawNumber);
-        }
+
         // If formattedNumber is null or empty, it'll display as "Unknown".
-        setSummaryText(KEY_PHONE_NUMBER, formattedNumber);
+        setSummaryText(KEY_PHONE_NUMBER,
+                DeviceInfoUtils.getFormattedPhoneNumber(getContext(), mSir));
         setSummaryText(KEY_IMEI, mPhone.getImei());
         setSummaryText(KEY_IMEI_SV, mPhone.getDeviceSvn());