Show ICCID in SIM status, if CarrierConfigManager allows.

Bug: 27574058
Change-Id: I5c08d31b5e8ea3c3ad79361e660256b070ff7284
This commit is contained in:
Meng Wang
2016-03-14 10:03:30 -07:00
parent 0bd0bb04b2
commit dcd0bf72b8
3 changed files with 27 additions and 0 deletions

View File

@@ -2302,6 +2302,8 @@
<string name="status_imei">IMEI</string>
<!-- Do not translate. About phone, status item title -->
<string name="status_imei_sv">IMEI SV</string>
<!-- Do not translate. About phone, status item title -->
<string name="status_iccid">ICCID</string>
<!-- About tablet, status item title. The Mobile Directory Number [CHAR LIMIT=30] -->
<string name="status_number" product="tablet">MDN</string>
<!-- About phone, status item title. The phone number of the current device [CHAR LIMIT=30] -->

View File

@@ -87,4 +87,11 @@
android:summary="@string/device_info_not_available"
android:persistent="false" />
<Preference android:key="iccid"
android:enabled="false"
android:shouldDisableView="false"
android:title="@string/status_iccid"
android:summary="@string/device_info_not_available"
android:persistent="false" />
</PreferenceScreen>

View File

@@ -23,6 +23,7 @@ import android.content.IntentFilter;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.res.Resources;
import android.os.Bundle;
import android.os.PersistableBundle;
import android.os.UserHandle;
import android.os.UserManager;
import android.support.v7.preference.Preference;
@@ -34,6 +35,7 @@ import android.telephony.SignalStrength;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import android.telephony.CarrierConfigManager;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
@@ -78,6 +80,7 @@ public class SimStatus extends InstrumentedPreferenceActivity {
private static final String KEY_SIGNAL_STRENGTH = "signal_strength";
private static final String KEY_IMEI = "imei";
private static final String KEY_IMEI_SV = "imei_sv";
private static final String KEY_ICCID = "iccid";
private static final String COUNTRY_ABBREVIATION_BRAZIL = "br";
static final String CB_AREA_INFO_RECEIVED_ACTION =
@@ -92,11 +95,13 @@ public class SimStatus extends InstrumentedPreferenceActivity {
private TelephonyManager mTelephonyManager;
private CarrierConfigManager mCarrierConfigManager;
private Phone mPhone = null;
private Resources mRes;
private Preference mSignalStrength;
private SubscriptionInfo mSir;
private boolean mShowLatestAreaInfo;
private boolean mShowICCID;
// Default summary for items
private String mDefaultText;
@@ -129,6 +134,7 @@ public class SimStatus extends InstrumentedPreferenceActivity {
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
mTelephonyManager = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
mCarrierConfigManager = (CarrierConfigManager) getSystemService(CARRIER_CONFIG_SERVICE);
mSelectableSubInfos = SubscriptionManager.from(this).getActiveSubscriptionInfoList();
@@ -356,6 +362,10 @@ public class SimStatus extends InstrumentedPreferenceActivity {
mShowLatestAreaInfo = true;
}
}
PersistableBundle carrierConfig = mCarrierConfigManager.getConfig(
mSir.getSubscriptionId());
mShowICCID = carrierConfig.getBoolean(
CarrierConfigManager.KEY_SHOW_ICCID_IN_SIM_STATUS_BOOL);
String rawNumber = mTelephonyManager.getLine1Number(mSir.getSubscriptionId());
String formattedNumber = null;
@@ -367,6 +377,14 @@ public class SimStatus extends InstrumentedPreferenceActivity {
setSummaryText(KEY_IMEI, mPhone.getImei());
setSummaryText(KEY_IMEI_SV, mPhone.getDeviceSvn());
if (!mShowICCID) {
removePreferenceFromScreen(KEY_ICCID);
} else {
// Get ICCID, which is SIM serial number
String iccid = mTelephonyManager.getSimSerialNumber(mSir.getSubscriptionId());
setSummaryText(KEY_ICCID, iccid);
}
if (!mShowLatestAreaInfo) {
removePreferenceFromScreen(KEY_LATEST_AREA_INFO);
}