Fix the NullPointerException in Status Info.
Fix bug 1964037 Phone states activity fail. It only happens in Zaku build. Zaku build overlay the device_info_status.xml under vendor/docomo and don't have CDMA related preference. Status.java will hit the NullPointerException when trying to remove the non-exist preferences.
modified: src/com/android/settings/deviceinfo/Status.java
diff --git a/src/com/android/settings/deviceinfo/Status.java b/src/com/android/settings/deviceinfo/Status.java
index a165754..7d22d91 100644
--- a/src/com/android/settings/deviceinfo/Status.java
+++ b/src/com/android/settings/deviceinfo/Status.java
@@ -162,6 +162,7 @@
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
+ Preference removablePref;
mHandler = new MyHandler(this);
@@ -188,8 +189,15 @@
setSummaryText("prl_version", mPhone.getCdmaPrlVersion());
// device is not GSM/UMTS, do not display GSM/UMTS features
- getPreferenceScreen().removePreference(findPreference("imei"));
- getPreferenceScreen().removePreference(findPreference("imei_sv"));
+ // check Null in case no specified preference in overlay xml
+ removablePref = findPreference("imei");
+ if (removablePref != null) {
+ getPreferenceScreen().removePreference(removablePref);
+ }
+ removablePref = findPreference("imei_sv");
+ if (removablePref != null) {
+ getPreferenceScreen().removePreference(removablePref);
+ }
} else {
setSummaryText("imei", mPhone.getDeviceId());
@@ -198,9 +206,19 @@
.getDeviceSoftwareVersion());
// device is not CDMA, do not display CDMA features
- getPreferenceScreen().removePreference(findPreference("prl_version"));
- getPreferenceScreen().removePreference(findPreference("meid_number"));
- getPreferenceScreen().removePreference(findPreference("min_number"));
+ // check Null in case no specified preference in overlay xml
+ removablePref = findPreference("prl_version");
+ if (removablePref != null) {
+ getPreferenceScreen().removePreference(removablePref);
+ }
+ removablePref = findPreference("meid_number");
+ if (removablePref != null) {
+ getPreferenceScreen().removePreference(removablePref);
+ }
+ removablePref = findPreference("min_number");
+ if (removablePref != null) {
+ getPreferenceScreen().removePreference(removablePref);
+ }
}
setSummaryText("number", mPhone.getLine1Number());