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

Commit 6226e6f9 authored by Anil Admal's avatar Anil Admal Committed by Android (Google) Code Review
Browse files

Merge "Non-framework location access visibility and control (HAL)"

parents 09ade873 4d739e72
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ hidl_interface {
    ],
    interfaces: [
        "android.hardware.gnss.measurement_corrections@1.0",
        "android.hardware.gnss.visibility_control@1.0",
        "android.hardware.gnss@1.0",
        "android.hardware.gnss@1.1",
        "android.hidl.base@1.0",
+19 −3
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package android.hardware.gnss@2.0;

import android.hardware.gnss.measurement_corrections@1.0::IMeasurementCorrections;
import android.hardware.gnss.visibility_control@1.0::IGnssVisibilityControl;
import @1.1::IGnss;

import IGnssCallback;
@@ -25,7 +26,15 @@ import IGnssMeasurement;
import IAGnss;
import IAGnssRil;

/** Represents the standard GNSS (Global Navigation Satellite System) interface. */
/**
 * Represents the standard GNSS (Global Navigation Satellite System) interface.
 *
 * Due to the introduction of new GNSS HAL package android.hardware.gnss.visibility_control@1.0
 * the interface @1.0::IGnssNi.hal and @1.0::IGnssNiCallback.hal are deprecated in this version
 * and are not supported by the framework. The GNSS HAL implementation of this interface
 * must return nullptr for the following @1.0::IGnss method.
 *      getExtensionGnssNi() generates (IGnssNi gnssNiIface);
 */
interface IGnss extends @1.1::IGnss {
    /**
     * Opens the interface and provides the callback routines to the implementation of this
@@ -78,4 +87,11 @@ interface IGnss extends @1.1::IGnss {
     */
    getExtensionMeasurementCorrections()
            generates (IMeasurementCorrections measurementCorrectionsIface);

    /**
     * This method returns the IGnssVisibilityControl interface.
     *
     * @return visibilityControlIface Handle to the IGnssVisibilityControl interface.
     */
    getExtensionVisibilityControl() generates (IGnssVisibilityControl visibilityControlIface);
};
 No newline at end of file
+2 −0
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ cc_binary {
        "AGnssRil.cpp",
        "Gnss.cpp",
        "GnssMeasurement.cpp",
        "GnssVisibilityControl.cpp",
        "service.cpp"
    ],
    shared_libs: [
@@ -35,6 +36,7 @@ cc_binary {
        "liblog",
        "android.hardware.gnss@2.0",
        "android.hardware.gnss.measurement_corrections@1.0",
        "android.hardware.gnss.visibility_control@1.0",
        "android.hardware.gnss@1.0",
        "android.hardware.gnss@1.1",
    ],
+9 −2
Original line number Diff line number Diff line
@@ -22,8 +22,10 @@
#include "AGnssRil.h"
#include "GnssConfiguration.h"
#include "GnssMeasurement.h"
#include "GnssVisibilityControl.h"

using ::android::hardware::Status;
using ::android::hardware::gnss::visibility_control::V1_0::implementation::GnssVisibilityControl;

namespace android {
namespace hardware {
@@ -93,8 +95,8 @@ Return<sp<V1_0::IAGnss>> Gnss::getExtensionAGnss() {
}

Return<sp<V1_0::IGnssNi>> Gnss::getExtensionGnssNi() {
    // TODO implement
    return sp<V1_0::IGnssNi>{};
    // The IGnssNi.hal interface is deprecated in 2.0.
    return nullptr;
}

Return<sp<V1_0::IGnssMeasurement>> Gnss::getExtensionGnssMeasurement() {
@@ -205,6 +207,11 @@ Gnss::getExtensionMeasurementCorrections() {
    return sp<measurement_corrections::V1_0::IMeasurementCorrections>{};
}

Return<sp<visibility_control::V1_0::IGnssVisibilityControl>> Gnss::getExtensionVisibilityControl() {
    ALOGD("Gnss::getExtensionVisibilityControl");
    return new GnssVisibilityControl();
}

Return<bool> Gnss::setCallback_2_0(const sp<V2_0::IGnssCallback>& callback) {
    ALOGD("Gnss::setCallback_2_0");
    if (callback == nullptr) {
+2 −0
Original line number Diff line number Diff line
@@ -79,6 +79,8 @@ struct Gnss : public IGnss {
    Return<bool> setCallback_2_0(const sp<V2_0::IGnssCallback>& callback) override;
    Return<sp<measurement_corrections::V1_0::IMeasurementCorrections>>
    getExtensionMeasurementCorrections() override;
    Return<sp<visibility_control::V1_0::IGnssVisibilityControl>> getExtensionVisibilityControl()
            override;

   private:
    static sp<V2_0::IGnssCallback> sGnssCallback_2_0;
Loading