DO NOT MERGE: Always return non null from getGpsStatus
Even though getGpsStatus is marked Nullable, some applications expect it to always return non-null. Bug: 161311411 Test: presubmits Change-Id: I8d58621588253af1dc917711e230cfd176afec37
This commit is contained in:
@@ -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() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user