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

Commit 97e162d6 authored by Yu-Han Yang's avatar Yu-Han Yang
Browse files

Allow settingIgnored for DBH request if inEmergency

Bug: 150232136

Test: on device
Change-Id: Ia987418a591d716b787d406d725338a8563a55dd
parent b8960726
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -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)
+9 −4
Original line number Diff line number Diff line
@@ -772,11 +772,16 @@ public class GnssLocationProvider extends AbstractLocationProvider implements

        locationRequest.setProvider(provider);

        // Ignore location settings if in emergency mode.
        if (isUserEmergency && mNIHandler.getInEmergency()) {
        // 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,
                String.format(