DO NOT MERGE: Always return non null from getGpsStatus am: d9df33d1c0 am: e2c8878455

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/12160606

Change-Id: Id902f43f219ecc94fa054db611914f6ddc5b225f
This commit is contained in:
Soonil Nagarkar
2020-07-15 23:35:54 +00:00
committed by Automerger Merge Worker
2 changed files with 14 additions and 0 deletions

View File

@@ -151,6 +151,15 @@ public final class GpsStatus {
return status; return status;
} }
/**
* Builds an empty GpsStatus.
*
* @hide
*/
static GpsStatus createEmpty() {
return new GpsStatus();
}
private GpsStatus() { private GpsStatus() {
} }

View File

@@ -1922,12 +1922,17 @@ public class LocationManager {
GnssStatus gnssStatus = mGnssStatusListenerManager.getGnssStatus(); GnssStatus gnssStatus = mGnssStatusListenerManager.getGnssStatus();
int ttff = mGnssStatusListenerManager.getTtff(); int ttff = mGnssStatusListenerManager.getTtff();
// even though this method is marked nullable, there are legacy applications that expect
// this to never return null, so avoid breaking those apps
if (gnssStatus != null) { if (gnssStatus != null) {
if (status == null) { if (status == null) {
status = GpsStatus.create(gnssStatus, ttff); status = GpsStatus.create(gnssStatus, ttff);
} else { } else {
status.setStatus(gnssStatus, ttff); status.setStatus(gnssStatus, ttff);
} }
} else if (status == null) {
status = GpsStatus.createEmpty();
} }
return status; return status;
} }