From: John Wang Date: Fri, 31 Jul 2009 01:22:58 +0000 (-0700) Subject: Fix the NullPointerException in Status Info. X-Git-Tag: android-x86-1.6~14^2 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=ed47f1e497abf5ad31b1c7035ae04478e9932986;p=android-x86%2Fpackages-apps-Settings.git 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 a165754104..7d22d913a8 100644 --- a/src/com/android/settings/deviceinfo/Status.java +++ b/src/com/android/settings/deviceinfo/Status.java @@ -162,6 +162,7 @@ public class Status extends PreferenceActivity { @Override protected void onCreate(Bundle icicle) { super.onCreate(icicle); + Preference removablePref; mHandler = new MyHandler(this); @@ -188,8 +189,15 @@ public class Status extends PreferenceActivity { 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 @@ public class Status extends PreferenceActivity { .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());