OSDN Git Service

Fix the NullPointerException in Status Info.
authorJohn Wang <johnwang@google.com>
Fri, 31 Jul 2009 01:22:58 +0000 (18:22 -0700)
committerJohn Wang <johnwang@google.com>
Fri, 31 Jul 2009 01:50:36 +0000 (18:50 -0700)
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

src/com/android/settings/deviceinfo/Status.java

index a165754..7d22d91 100644 (file)
@@ -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());