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());