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

Commit 0e9cf515 authored by Colin Cross's avatar Colin Cross Committed by Android (Google) Code Review
Browse files

Merge "Revert "This CL introduces new member variable on...

Merge "Revert "This CL introduces new member variable on android.location.Location (see api/current.txt).""
parents 9c57ba20 cef1e803
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -22858,7 +22858,6 @@ package android.location {
    method public float getBearing();
    method public float getBearingAccuracyDegrees();
    method public long getElapsedRealtimeNanos();
    method public long getElapsedRealtimeUncertaintyNanos();
    method public android.os.Bundle getExtras();
    method public double getLatitude();
    method public double getLongitude();
@@ -22871,7 +22870,6 @@ package android.location {
    method public boolean hasAltitude();
    method public boolean hasBearing();
    method public boolean hasBearingAccuracy();
    method public boolean hasElapsedRealtimeUncertaintyNanos();
    method public boolean hasSpeed();
    method public boolean hasSpeedAccuracy();
    method public boolean hasVerticalAccuracy();
@@ -22887,7 +22885,6 @@ package android.location {
    method public void setBearing(float);
    method public void setBearingAccuracyDegrees(float);
    method public void setElapsedRealtimeNanos(long);
    method public void setElapsedRealtimeUncertaintyNanos(long);
    method public void setExtras(android.os.Bundle);
    method public void setLatitude(double);
    method public void setLongitude(double);
+0 −46
Original line number Diff line number Diff line
@@ -113,10 +113,6 @@ public class Location implements Parcelable {
     * Bit mask for mFieldsMask indicating the presence of mBearingAccuracy.
     */
    private static final int HAS_BEARING_ACCURACY_MASK = 128;
    /**
     * Bit mask for mFieldsMask indicating the presence of mElapsedRealtimeUncertaintyNanos.
     */
    private static final int HAS_ELAPSED_REALTIME_UNCERTAINTY_MASK = 256;

    // Cached data to make bearing/distance computations more efficient for the case
    // where distanceTo and bearingTo are called in sequence.  Assume this typically happens
@@ -134,9 +130,6 @@ public class Location implements Parcelable {
    private long mTime = 0;
    @UnsupportedAppUsage
    private long mElapsedRealtimeNanos = 0;
    // Estimate of the relative precision of the alignment of this SystemClock
    // timestamp, with the reported measurements in nanoseconds (68% confidence).
    private long mElapsedRealtimeUncertaintyNanos = 0;
    private double mLatitude = 0.0;
    private double mLongitude = 0.0;
    private double mAltitude = 0.0f;
@@ -178,7 +171,6 @@ public class Location implements Parcelable {
        mProvider = l.mProvider;
        mTime = l.mTime;
        mElapsedRealtimeNanos = l.mElapsedRealtimeNanos;
        mElapsedRealtimeUncertaintyNanos = l.mElapsedRealtimeUncertaintyNanos;
        mFieldsMask = l.mFieldsMask;
        mLatitude = l.mLatitude;
        mLongitude = l.mLongitude;
@@ -199,7 +191,6 @@ public class Location implements Parcelable {
        mProvider = null;
        mTime = 0;
        mElapsedRealtimeNanos = 0;
        mElapsedRealtimeUncertaintyNanos = 0;
        mFieldsMask = 0;
        mLatitude = 0;
        mLongitude = 0;
@@ -594,37 +585,6 @@ public class Location implements Parcelable {
        mElapsedRealtimeNanos = time;
    }

    /**
     * Get estimate of the relative precision of the alignment of the
     * ElapsedRealtimeNanos timestamp, with the reported measurements in
     * nanoseconds (68% confidence).
     *
     * @return uncertainty of elapsed real-time of fix, in nanoseconds.
     */
    public long getElapsedRealtimeUncertaintyNanos() {
        return mElapsedRealtimeUncertaintyNanos;
    }

    /**
     * Set estimate of the relative precision of the alignment of the
     * ElapsedRealtimeNanos timestamp, with the reported measurements in
     * nanoseconds (68% confidence).
     *
     * @param time uncertainty of the elapsed real-time of fix, in nanoseconds.
     */
    public void setElapsedRealtimeUncertaintyNanos(long time) {
        mElapsedRealtimeUncertaintyNanos = time;
        mFieldsMask |= HAS_ELAPSED_REALTIME_UNCERTAINTY_MASK;
    }

    /**
     * True if this location has a elapsed realtime accuracy.
     */
    public boolean hasElapsedRealtimeUncertaintyNanos() {
        return (mFieldsMask & HAS_ELAPSED_REALTIME_UNCERTAINTY_MASK) != 0;
    }


    /**
     * Get the latitude, in degrees.
     *
@@ -1102,10 +1062,6 @@ public class Location implements Parcelable {
            s.append(" et=");
            TimeUtils.formatDuration(mElapsedRealtimeNanos / 1000000L, s);
        }
        if (hasElapsedRealtimeUncertaintyNanos()) {
            s.append(" etAcc=");
            TimeUtils.formatDuration(mElapsedRealtimeUncertaintyNanos / 1000000L, s);
        }
        if (hasAltitude()) s.append(" alt=").append(mAltitude);
        if (hasSpeed()) s.append(" vel=").append(mSpeed);
        if (hasBearing()) s.append(" bear=").append(mBearing);
@@ -1136,7 +1092,6 @@ public class Location implements Parcelable {
            Location l = new Location(provider);
            l.mTime = in.readLong();
            l.mElapsedRealtimeNanos = in.readLong();
            l.mElapsedRealtimeUncertaintyNanos = in.readLong();
            l.mFieldsMask = in.readByte();
            l.mLatitude = in.readDouble();
            l.mLongitude = in.readDouble();
@@ -1167,7 +1122,6 @@ public class Location implements Parcelable {
        parcel.writeString(mProvider);
        parcel.writeLong(mTime);
        parcel.writeLong(mElapsedRealtimeNanos);
        parcel.writeLong(mElapsedRealtimeUncertaintyNanos);
        parcel.writeByte(mFieldsMask);
        parcel.writeDouble(mLatitude);
        parcel.writeDouble(mLongitude);
+3 −8
Original line number Diff line number Diff line
@@ -142,7 +142,6 @@ public class GnssLocationProvider extends AbstractLocationProvider implements

    // these need to match ElapsedRealtimeFlags enum in types.hal
    private static final int ELAPSED_REALTIME_HAS_TIMESTAMP_NS = 1;
    private static final int ELAPSED_REALTIME_HAS_TIME_UNCERTAINTY_NS = 2;

    // IMPORTANT - the GPS_DELETE_* symbols here must match GnssAidingData enum in IGnss.hal
    private static final int GPS_DELETE_EPHEMERIS = 0x0001;
@@ -769,18 +768,15 @@ public class GnssLocationProvider extends AbstractLocationProvider implements
        float bearingAccuracyDegrees = location.getBearingAccuracyDegrees();
        long timestamp = location.getTime();

        int elapsedRealtimeFlags = ELAPSED_REALTIME_HAS_TIMESTAMP_NS
                | (location.hasElapsedRealtimeUncertaintyNanos()
                        ? ELAPSED_REALTIME_HAS_TIME_UNCERTAINTY_NS : 0);
        int elapsedRealtimeFlags = ELAPSED_REALTIME_HAS_TIMESTAMP_NS;
        long elapsedRealtimeNanos = location.getElapsedRealtimeNanos();
        long elapsedRealtimeUncertaintyNanos = location.getElapsedRealtimeUncertaintyNanos();

        native_inject_best_location(
                gnssLocationFlags, latitudeDegrees, longitudeDegrees,
                altitudeMeters, speedMetersPerSec, bearingDegrees,
                horizontalAccuracyMeters, verticalAccuracyMeters,
                speedAccuracyMetersPerSecond, bearingAccuracyDegrees, timestamp,
                elapsedRealtimeFlags, elapsedRealtimeNanos, elapsedRealtimeUncertaintyNanos);
                elapsedRealtimeFlags, elapsedRealtimeNanos);
    }

    /** Returns true if the location request is too frequent. */
@@ -2174,8 +2170,7 @@ public class GnssLocationProvider extends AbstractLocationProvider implements
            double altitudeMeters, float speedMetersPerSec, float bearingDegrees,
            float horizontalAccuracyMeters, float verticalAccuracyMeters,
            float speedAccuracyMetersPerSecond, float bearingAccuracyDegrees,
            long timestamp, int elapsedRealtimeFlags, long elapsedRealtimeNanos,
            long elapsedRealtimeUncertaintyNanos);
            long timestamp, int elapsedRealtimeFlags, long elapsedRealtimeNanos);

    private native void native_inject_location(double latitude, double longitude, float accuracy);

+4 −12
Original line number Diff line number Diff line
@@ -491,10 +491,6 @@ static jobject translateGnssLocation(JNIEnv* env,
        SET(ElapsedRealtimeNanos, location.elapsedRealtime.timestampNs);
    }

    if (flags & ElapsedRealtimeFlags::HAS_TIME_UNCERTAINTY_NS) {
        SET(ElapsedUncertaintyRealtimeNanos, location.elapsedRealtime.timeUncertaintyNs);
    }

    return object.get();
}

@@ -525,8 +521,7 @@ static GnssLocation_V2_0 createGnssLocation_V2_0(
        jdouble altitudeMeters, jfloat speedMetersPerSec, jfloat bearingDegrees,
        jfloat horizontalAccuracyMeters, jfloat verticalAccuracyMeters,
        jfloat speedAccuracyMetersPerSecond, jfloat bearingAccuracyDegrees,
        jlong timestamp, jint elapsedRealtimeFlags, jlong elapsedRealtimeNanos,
        jlong elapsedRealtimeUncertaintyNanos) {
        jlong timestamp, jint elapsedRealtimeFlags, jlong elapsedRealtimeNanos) {
    GnssLocation_V2_0 location;
    location.v1_0 = createGnssLocation_V1_0(
            gnssLocationFlags, latitudeDegrees, longitudeDegrees, altitudeMeters,
@@ -536,7 +531,6 @@ static GnssLocation_V2_0 createGnssLocation_V2_0(

    location.elapsedRealtime.flags = static_cast<uint16_t>(elapsedRealtimeFlags);
    location.elapsedRealtime.timestampNs = static_cast<uint64_t>(elapsedRealtimeNanos);
    location.elapsedRealtime.timeUncertaintyNs = static_cast<uint64_t>(elapsedRealtimeUncertaintyNanos);

    return location;
}
@@ -1893,8 +1887,7 @@ static void android_location_GnssLocationProvider_inject_best_location(
        jfloat bearingAccuracyDegrees,
        jlong timestamp,
        jint elapsedRealtimeFlags,
        jlong elapsedRealtimeNanos,
        jlong elapsedRealtimeUncertaintyNanos) {
        jlong elapsedRealtimeNanos) {
    if (gnssHal_V2_0 != nullptr) {
        GnssLocation_V2_0 location = createGnssLocation_V2_0(
                gnssLocationFlags,
@@ -1909,8 +1902,7 @@ static void android_location_GnssLocationProvider_inject_best_location(
                bearingAccuracyDegrees,
                timestamp,
                elapsedRealtimeFlags,
                elapsedRealtimeNanos,
                elapsedRealtimeUncertaintyNanos);
                elapsedRealtimeNanos);
        auto result = gnssHal_V2_0->injectBestLocation_2_0(location);

        if (!result.isOk() || !result) {
@@ -2821,7 +2813,7 @@ static const JNINativeMethod sMethods[] = {
            android_location_GnssLocationProvider_read_nmea)},
    {"native_inject_time", "(JJI)V", reinterpret_cast<void *>(
            android_location_GnssLocationProvider_inject_time)},
    {"native_inject_best_location", "(IDDDFFFFFFJIJJ)V", reinterpret_cast<void *>(
    {"native_inject_best_location", "(IDDDFFFFFFJIJ)V", reinterpret_cast<void *>(
            android_location_GnssLocationProvider_inject_best_location)},
    {"native_inject_location", "(DDF)V", reinterpret_cast<void *>(
            android_location_GnssLocationProvider_inject_location)},