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

Commit 01dbb1b1 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Replace future elapsedRealtime with system clock" into main

parents 9f07a2a5 a8376473
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -180,6 +180,12 @@ aconfig_declarations {
    ],
}

cc_aconfig_library {
    name: "android_location_flags_c_lib",
    vendor_available: true,
    aconfig_declarations: "android.location.flags-aconfig",
}

java_aconfig_library {
    name: "android.location.flags-aconfig-java",
    aconfig_declarations: "android.location.flags-aconfig",
@@ -256,7 +262,6 @@ java_aconfig_library {
    defaults: ["framework-minus-apex-aconfig-java-defaults"],
}


// OS
aconfig_declarations {
    name: "android.os.flags-aconfig",
+7 −0
Original line number Diff line number Diff line
@@ -41,3 +41,10 @@ flag {
    description: "Flag for GNSS configuration from resource"
    bug: "317734846"
}

flag {
    name: "replace_future_elapsed_realtime_jni"
    namespace: "location"
    description: "Flag for replacing future elapsedRealtime in JNI"
    bug: "314328533"
}
+1 −0
Original line number Diff line number Diff line
@@ -68,5 +68,6 @@ cc_defaults {
        "android.hardware.gnss@2.1",
        "android.hardware.gnss.measurement_corrections@1.0",
        "android.hardware.gnss.visibility_control@1.0",
        "android_location_flags_c_lib",
    ],
}
+9 −1
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@

#include <android/hardware/gnss/1.0/IGnss.h>
#include <android/hardware/gnss/2.0/IGnss.h>
#include <android_location_flags.h>
#include <utils/SystemClock.h>
/*
 * Save a pointer to JavaVm to attach/detach threads executing
@@ -27,6 +28,8 @@
 */
JavaVM* android::ScopedJniThreadAttach::sJvm;

namespace location_flags = android::location::flags;

namespace android {

namespace {
@@ -194,7 +197,12 @@ jobject translateGnssLocation(JNIEnv* env, const android::hardware::gnss::GnssLo

    flags = static_cast<uint32_t>(location.elapsedRealtime.flags);
    if (flags & android::hardware::gnss::ElapsedRealtime::HAS_TIMESTAMP_NS) {
        if (location_flags::replace_future_elapsed_realtime_jni() &&
            location.elapsedRealtime.timestampNs > android::elapsedRealtimeNano()) {
            SET(ElapsedRealtimeNanos, android::elapsedRealtimeNano());
        } else {
            SET(ElapsedRealtimeNanos, location.elapsedRealtime.timestampNs);
        }
    } else {
        SET(ElapsedRealtimeNanos, android::elapsedRealtimeNano());
    }