Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f42d5e7e authored by David Brown's avatar David Brown
Browse files

Fix 2520977: NPE in com.android.settings.deviceinfo.Status

In normal operation, Phone.getLine1Number() returns an empty string if the
device doesn't know its own phone number for some reason.  However the
monkey caught a case where it was returning null, which crashed the
Settings -> About Phone -> Status app.

However the javadoc for Phone.getLine1Number() *does* clearly say "May
return null if not available or the SIM is not ready", so the Status app
*should* gracefully handle this.

Now it does.  (We display this case as "Unknown", just like if we get an
empty string.)

FWIW I grepped thru the rest of the code base for other uses of
getLine1Number(), and everybody else *does* handle null gracefully except
for one case in apps/Mms, which I'll open a separate bug about.

Bug: 2520977
Change-Id: I173561f903f116dbdc2b7c32b8011b59a9eb29d7
parent 05d35416
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -222,7 +222,13 @@ public class Status extends PreferenceActivity {
            }
        }

        setSummaryText("number", PhoneNumberUtils.formatNumber(mPhone.getLine1Number()));
        String rawNumber = mPhone.getLine1Number();  // may be null or empty
        String formattedNumber = null;
        if (!TextUtils.isEmpty(rawNumber)) {
            formattedNumber = PhoneNumberUtils.formatNumber(rawNumber);
        }
        // If formattedNumber is null or empty, it'll display as "Unknown".
        setSummaryText("number", formattedNumber);

        mPhoneStateReceiver = new PhoneStateIntentReceiver(this, mHandler);
        mPhoneStateReceiver.notifySignalStrength(EVENT_SIGNAL_STRENGTH_CHANGED);