Allow settingIgnored for DBH request if inEmergency
Bug: 150232136 Test: on device Change-Id: Ia987418a591d716b787d406d725338a8563a55dd
This commit is contained in:
@@ -79,7 +79,7 @@ class GnssConfiguration {
|
||||
|
||||
// Represents an HAL interface version. Instances of this class are created in the JNI layer
|
||||
// and returned through native methods.
|
||||
private static class HalInterfaceVersion {
|
||||
static class HalInterfaceVersion {
|
||||
final int mMajor;
|
||||
final int mMinor;
|
||||
|
||||
@@ -205,6 +205,10 @@ class GnssConfiguration {
|
||||
native_set_satellite_blacklist(constellations, svids);
|
||||
}
|
||||
|
||||
HalInterfaceVersion getHalInterfaceVersion() {
|
||||
return native_get_gnss_configuration_version();
|
||||
}
|
||||
|
||||
interface SetCarrierProperty {
|
||||
boolean set(int value);
|
||||
}
|
||||
@@ -231,8 +235,7 @@ class GnssConfiguration {
|
||||
|
||||
logConfigurations();
|
||||
|
||||
final HalInterfaceVersion gnssConfigurationIfaceVersion =
|
||||
native_get_gnss_configuration_version();
|
||||
final HalInterfaceVersion gnssConfigurationIfaceVersion = getHalInterfaceVersion();
|
||||
if (gnssConfigurationIfaceVersion != null) {
|
||||
// Set to a range checked value.
|
||||
if (isConfigEsExtensionSecSupported(gnssConfigurationIfaceVersion)
|
||||
|
||||
@@ -772,10 +772,15 @@ public class GnssLocationProvider extends AbstractLocationProvider implements
|
||||
|
||||
locationRequest.setProvider(provider);
|
||||
|
||||
// Ignore location settings if in emergency mode.
|
||||
if (isUserEmergency && mNIHandler.getInEmergency()) {
|
||||
locationRequest.setLocationSettingsIgnored(true);
|
||||
durationMillis *= EMERGENCY_LOCATION_UPDATE_DURATION_MULTIPLIER;
|
||||
// Ignore location settings if in emergency mode. This is only allowed for
|
||||
// isUserEmergency request (introduced in HAL v2.0), or DBH request in HAL v1.1.
|
||||
if (mNIHandler.getInEmergency()) {
|
||||
GnssConfiguration.HalInterfaceVersion halVersion =
|
||||
mGnssConfiguration.getHalInterfaceVersion();
|
||||
if (isUserEmergency || (halVersion.mMajor < 2 && !independentFromGnss)) {
|
||||
locationRequest.setLocationSettingsIgnored(true);
|
||||
durationMillis *= EMERGENCY_LOCATION_UPDATE_DURATION_MULTIPLIER;
|
||||
}
|
||||
}
|
||||
|
||||
Log.i(TAG,
|
||||
|
||||
Reference in New Issue
Block a user