Loading services/core/java/com/android/server/location/gnss/GnssLocationProvider.java +1 −1 Original line number Diff line number Diff line Loading @@ -1147,7 +1147,7 @@ public class GnssLocationProvider extends AbstractLocationProvider implements if (DEBUG) { Log.d(TAG, "startBatching " + mFixInterval + " " + batchLengthMs); } if (mGnssNative.startBatch(MILLISECONDS.toNanos(mFixInterval), true)) { if (mGnssNative.startBatch(MILLISECONDS.toNanos(mFixInterval), 0, true)) { mBatchingStarted = true; if (batchSize < getBatchSize()) { Loading services/core/java/com/android/server/location/gnss/hal/GnssNative.java +8 −5 Original line number Diff line number Diff line Loading @@ -817,9 +817,10 @@ public class GnssNative { /** * Start batching. */ public boolean startBatch(long periodNanos, boolean wakeOnFifoFull) { public boolean startBatch(long periodNanos, float minUpdateDistanceMeters, boolean wakeOnFifoFull) { Preconditions.checkState(mRegistered); return mGnssHal.startBatch(periodNanos, wakeOnFifoFull); return mGnssHal.startBatch(periodNanos, minUpdateDistanceMeters, wakeOnFifoFull); } /** Loading Loading @@ -1380,8 +1381,9 @@ public class GnssNative { native_cleanup_batching(); } protected boolean startBatch(long periodNanos, boolean wakeOnFifoFull) { return native_start_batch(periodNanos, wakeOnFifoFull); protected boolean startBatch(long periodNanos, float minUpdateDistanceMeters, boolean wakeOnFifoFull) { return native_start_batch(periodNanos, minUpdateDistanceMeters, wakeOnFifoFull); } protected void flushBatch() { Loading Loading @@ -1539,7 +1541,8 @@ public class GnssNative { private static native void native_cleanup_batching(); private static native boolean native_start_batch(long periodNanos, boolean wakeOnFifoFull); private static native boolean native_start_batch(long periodNanos, float minUpdateDistanceMeters, boolean wakeOnFifoFull); private static native void native_flush_batch(); Loading services/core/jni/com_android_server_location_GnssLocationProvider.cpp +3 −2 Original line number Diff line number Diff line Loading @@ -2273,11 +2273,12 @@ static void android_location_gnss_hal_GnssNative_cleanup_batching(JNIEnv*, jclas } static jboolean android_location_gnss_hal_GnssNative_start_batch(JNIEnv*, jclass, jlong periodNanos, jfloat minUpdateDistanceMeters, jboolean wakeOnFifoFull) { if (gnssBatchingIface == nullptr) { return JNI_FALSE; // batching not supported } return gnssBatchingIface->start(periodNanos, wakeOnFifoFull); return gnssBatchingIface->start(periodNanos, minUpdateDistanceMeters, wakeOnFifoFull); } static void android_location_gnss_hal_GnssNative_flush_batch(JNIEnv*, jclass) { Loading Loading @@ -2367,7 +2368,7 @@ static const JNINativeMethod sBatchingMethods[] = { /* name, signature, funcPtr */ {"native_get_batch_size", "()I", reinterpret_cast<void*>(android_location_gnss_hal_GnssNative_get_batch_size)}, {"native_start_batch", "(JZ)Z", {"native_start_batch", "(JFZ)Z", reinterpret_cast<void*>(android_location_gnss_hal_GnssNative_start_batch)}, {"native_flush_batch", "()V", reinterpret_cast<void*>(android_location_gnss_hal_GnssNative_flush_batch)}, Loading services/core/jni/gnss/GnssBatching.cpp +11 −4 Original line number Diff line number Diff line Loading @@ -47,9 +47,12 @@ jint GnssBatching::getBatchSize() { return size; } jboolean GnssBatching::start(long periodNanos, bool wakeOnFifoFull) { int flags = (wakeOnFifoFull) ? IGnssBatching::WAKEUP_ON_FIFO_FULL : 0; auto status = mIGnssBatching->start(periodNanos, flags); jboolean GnssBatching::start(long periodNanos, float minUpdateDistanceMeters, bool wakeOnFifoFull) { IGnssBatching::Options options; options.flags = (wakeOnFifoFull) ? IGnssBatching::WAKEUP_ON_FIFO_FULL : 0; options.periodNanos = periodNanos; options.minDistanceMeters = minUpdateDistanceMeters; auto status = mIGnssBatching->start(options); return checkAidlStatus(status, "IGnssBatchingAidl start() failed."); } Loading Loading @@ -88,9 +91,13 @@ jint GnssBatching_V1_0::getBatchSize() { return static_cast<jint>(result); } jboolean GnssBatching_V1_0::start(long periodNanos, bool wakeOnFifoFull) { jboolean GnssBatching_V1_0::start(long periodNanos, float minUpdateDistanceMeters, bool wakeOnFifoFull) { IGnssBatching_V1_0::Options options; options.periodNanos = periodNanos; if (minUpdateDistanceMeters > 0) { ALOGW("minUpdateDistanceMeters is not supported in 1.0 GNSS HAL."); } if (wakeOnFifoFull) { options.flags = static_cast<uint8_t>(IGnssBatching_V1_0::Flag::WAKEUP_ON_FIFO_FULL); } else { Loading services/core/jni/gnss/GnssBatching.h +4 −3 Original line number Diff line number Diff line Loading @@ -38,7 +38,8 @@ public: virtual ~GnssBatchingInterface() {} virtual jboolean init(const std::unique_ptr<GnssBatchingCallback>& callback) = 0; virtual jint getBatchSize() = 0; virtual jboolean start(long periodNanos, bool wakeupOnFifoFull) = 0; virtual jboolean start(long periodNanos, float minUpdateDistanceMeters, bool wakeupOnFifoFull) = 0; virtual jboolean stop() = 0; virtual jboolean flush() = 0; virtual jboolean cleanup() = 0; Loading @@ -49,7 +50,7 @@ public: GnssBatching(const sp<android::hardware::gnss::IGnssBatching>& iGnssBatching); jboolean init(const std::unique_ptr<GnssBatchingCallback>& callback) override; jint getBatchSize() override; jboolean start(long periodNanos, bool wakeupOnFifoFull) override; jboolean start(long periodNanos, float minUpdateDistanceMeters, bool wakeupOnFifoFull) override; jboolean stop() override; jboolean flush() override; jboolean cleanup() override; Loading @@ -63,7 +64,7 @@ public: GnssBatching_V1_0(const sp<android::hardware::gnss::V1_0::IGnssBatching>& iGnssBatching); jboolean init(const std::unique_ptr<GnssBatchingCallback>& callback) override; jint getBatchSize() override; jboolean start(long periodNanos, bool wakeupOnFifoFull) override; jboolean start(long periodNanos, float minUpdateDistanceMeters, bool wakeupOnFifoFull) override; jboolean stop() override; jboolean flush() override; jboolean cleanup() override; Loading Loading
services/core/java/com/android/server/location/gnss/GnssLocationProvider.java +1 −1 Original line number Diff line number Diff line Loading @@ -1147,7 +1147,7 @@ public class GnssLocationProvider extends AbstractLocationProvider implements if (DEBUG) { Log.d(TAG, "startBatching " + mFixInterval + " " + batchLengthMs); } if (mGnssNative.startBatch(MILLISECONDS.toNanos(mFixInterval), true)) { if (mGnssNative.startBatch(MILLISECONDS.toNanos(mFixInterval), 0, true)) { mBatchingStarted = true; if (batchSize < getBatchSize()) { Loading
services/core/java/com/android/server/location/gnss/hal/GnssNative.java +8 −5 Original line number Diff line number Diff line Loading @@ -817,9 +817,10 @@ public class GnssNative { /** * Start batching. */ public boolean startBatch(long periodNanos, boolean wakeOnFifoFull) { public boolean startBatch(long periodNanos, float minUpdateDistanceMeters, boolean wakeOnFifoFull) { Preconditions.checkState(mRegistered); return mGnssHal.startBatch(periodNanos, wakeOnFifoFull); return mGnssHal.startBatch(periodNanos, minUpdateDistanceMeters, wakeOnFifoFull); } /** Loading Loading @@ -1380,8 +1381,9 @@ public class GnssNative { native_cleanup_batching(); } protected boolean startBatch(long periodNanos, boolean wakeOnFifoFull) { return native_start_batch(periodNanos, wakeOnFifoFull); protected boolean startBatch(long periodNanos, float minUpdateDistanceMeters, boolean wakeOnFifoFull) { return native_start_batch(periodNanos, minUpdateDistanceMeters, wakeOnFifoFull); } protected void flushBatch() { Loading Loading @@ -1539,7 +1541,8 @@ public class GnssNative { private static native void native_cleanup_batching(); private static native boolean native_start_batch(long periodNanos, boolean wakeOnFifoFull); private static native boolean native_start_batch(long periodNanos, float minUpdateDistanceMeters, boolean wakeOnFifoFull); private static native void native_flush_batch(); Loading
services/core/jni/com_android_server_location_GnssLocationProvider.cpp +3 −2 Original line number Diff line number Diff line Loading @@ -2273,11 +2273,12 @@ static void android_location_gnss_hal_GnssNative_cleanup_batching(JNIEnv*, jclas } static jboolean android_location_gnss_hal_GnssNative_start_batch(JNIEnv*, jclass, jlong periodNanos, jfloat minUpdateDistanceMeters, jboolean wakeOnFifoFull) { if (gnssBatchingIface == nullptr) { return JNI_FALSE; // batching not supported } return gnssBatchingIface->start(periodNanos, wakeOnFifoFull); return gnssBatchingIface->start(periodNanos, minUpdateDistanceMeters, wakeOnFifoFull); } static void android_location_gnss_hal_GnssNative_flush_batch(JNIEnv*, jclass) { Loading Loading @@ -2367,7 +2368,7 @@ static const JNINativeMethod sBatchingMethods[] = { /* name, signature, funcPtr */ {"native_get_batch_size", "()I", reinterpret_cast<void*>(android_location_gnss_hal_GnssNative_get_batch_size)}, {"native_start_batch", "(JZ)Z", {"native_start_batch", "(JFZ)Z", reinterpret_cast<void*>(android_location_gnss_hal_GnssNative_start_batch)}, {"native_flush_batch", "()V", reinterpret_cast<void*>(android_location_gnss_hal_GnssNative_flush_batch)}, Loading
services/core/jni/gnss/GnssBatching.cpp +11 −4 Original line number Diff line number Diff line Loading @@ -47,9 +47,12 @@ jint GnssBatching::getBatchSize() { return size; } jboolean GnssBatching::start(long periodNanos, bool wakeOnFifoFull) { int flags = (wakeOnFifoFull) ? IGnssBatching::WAKEUP_ON_FIFO_FULL : 0; auto status = mIGnssBatching->start(periodNanos, flags); jboolean GnssBatching::start(long periodNanos, float minUpdateDistanceMeters, bool wakeOnFifoFull) { IGnssBatching::Options options; options.flags = (wakeOnFifoFull) ? IGnssBatching::WAKEUP_ON_FIFO_FULL : 0; options.periodNanos = periodNanos; options.minDistanceMeters = minUpdateDistanceMeters; auto status = mIGnssBatching->start(options); return checkAidlStatus(status, "IGnssBatchingAidl start() failed."); } Loading Loading @@ -88,9 +91,13 @@ jint GnssBatching_V1_0::getBatchSize() { return static_cast<jint>(result); } jboolean GnssBatching_V1_0::start(long periodNanos, bool wakeOnFifoFull) { jboolean GnssBatching_V1_0::start(long periodNanos, float minUpdateDistanceMeters, bool wakeOnFifoFull) { IGnssBatching_V1_0::Options options; options.periodNanos = periodNanos; if (minUpdateDistanceMeters > 0) { ALOGW("minUpdateDistanceMeters is not supported in 1.0 GNSS HAL."); } if (wakeOnFifoFull) { options.flags = static_cast<uint8_t>(IGnssBatching_V1_0::Flag::WAKEUP_ON_FIFO_FULL); } else { Loading
services/core/jni/gnss/GnssBatching.h +4 −3 Original line number Diff line number Diff line Loading @@ -38,7 +38,8 @@ public: virtual ~GnssBatchingInterface() {} virtual jboolean init(const std::unique_ptr<GnssBatchingCallback>& callback) = 0; virtual jint getBatchSize() = 0; virtual jboolean start(long periodNanos, bool wakeupOnFifoFull) = 0; virtual jboolean start(long periodNanos, float minUpdateDistanceMeters, bool wakeupOnFifoFull) = 0; virtual jboolean stop() = 0; virtual jboolean flush() = 0; virtual jboolean cleanup() = 0; Loading @@ -49,7 +50,7 @@ public: GnssBatching(const sp<android::hardware::gnss::IGnssBatching>& iGnssBatching); jboolean init(const std::unique_ptr<GnssBatchingCallback>& callback) override; jint getBatchSize() override; jboolean start(long periodNanos, bool wakeupOnFifoFull) override; jboolean start(long periodNanos, float minUpdateDistanceMeters, bool wakeupOnFifoFull) override; jboolean stop() override; jboolean flush() override; jboolean cleanup() override; Loading @@ -63,7 +64,7 @@ public: GnssBatching_V1_0(const sp<android::hardware::gnss::V1_0::IGnssBatching>& iGnssBatching); jboolean init(const std::unique_ptr<GnssBatchingCallback>& callback) override; jint getBatchSize() override; jboolean start(long periodNanos, bool wakeupOnFifoFull) override; jboolean start(long periodNanos, float minUpdateDistanceMeters, bool wakeupOnFifoFull) override; jboolean stop() override; jboolean flush() override; jboolean cleanup() override; Loading