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

Commit 5519ae3a authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Add new APIs of channel sounding" into main

parents ab4312c8 f787f083
Loading
Loading
Loading
Loading
+7 −6
Original line number Diff line number Diff line
@@ -1231,17 +1231,18 @@ public:
  void OnDistanceMeasurementResult(RawAddress address, uint32_t centimeter,
                                   uint32_t error_centimeter, int azimuth_angle,
                                   int error_azimuth_angle, int altitude_angle,
                                   int error_altitude_angle, uint8_t method) {
                                   int error_altitude_angle, long elapsedRealtimeNanos,
                                   uint8_t method) {
    std::shared_lock<std::shared_mutex> lock(callbacks_mutex);
    CallbackEnv sCallbackEnv(__func__);
    if (!sCallbackEnv.valid() || !mDistanceMeasurementCallbacksObj) {
      return;
    }
    ScopedLocalRef<jstring> addr(sCallbackEnv.get(), bdaddr2newjstr(sCallbackEnv.get(), &address));
    sCallbackEnv->CallVoidMethod(mDistanceMeasurementCallbacksObj,
                                 method_onDistanceMeasurementResult, addr.get(), centimeter,
                                 error_centimeter, azimuth_angle, error_azimuth_angle,
                                 altitude_angle, error_altitude_angle, method);
    sCallbackEnv->CallVoidMethod(
            mDistanceMeasurementCallbacksObj, method_onDistanceMeasurementResult, addr.get(),
            centimeter, error_centimeter, azimuth_angle, error_azimuth_angle, altitude_angle,
            error_altitude_angle, elapsedRealtimeNanos, method);
  }
};

@@ -2826,7 +2827,7 @@ static int register_com_android_bluetooth_gatt_distance_measurement(JNIEnv* env)
           &method_onDistanceMeasurementStartFail},
          {"onDistanceMeasurementStopped", "(Ljava/lang/String;II)V",
           &method_onDistanceMeasurementStopped},
          {"onDistanceMeasurementResult", "(Ljava/lang/String;IIIIIII)V",
          {"onDistanceMeasurementResult", "(Ljava/lang/String;IIIIIIJI)V",
           &method_onDistanceMeasurementResult},
  };
  GET_JAVA_METHODS(env, "com/android/bluetooth/gatt/DistanceMeasurementNativeInterface",
+2 −0
Original line number Diff line number Diff line
@@ -468,6 +468,7 @@ public class DistanceMeasurementManager {
            int errorAzimuthAngle,
            int altitudeAngle,
            int errorAltitudeAngle,
            long elapsedRealtimeNanos,
            int method) {
        logd(
                "onDistanceMeasurementResult "
@@ -476,6 +477,7 @@ public class DistanceMeasurementManager {
                        + centimeter);
        DistanceMeasurementResult result =
                new DistanceMeasurementResult.Builder(centimeter / 100.0, errorCentimeter / 100.0)
                        .setMeasurementTimestampNanos(elapsedRealtimeNanos)
                        .build();
        switch (method) {
            case DistanceMeasurementMethod.DISTANCE_MEASUREMENT_METHOD_RSSI:
+2 −0
Original line number Diff line number Diff line
@@ -110,6 +110,7 @@ public class DistanceMeasurementNativeInterface {
            int errorAzimuthAngle,
            int altitudeAngle,
            int errorAltitudeAngle,
            long elapsedRealtimeNanos,
            int method) {
        mDistanceMeasurementManager.onDistanceMeasurementResult(
                address,
@@ -119,6 +120,7 @@ public class DistanceMeasurementNativeInterface {
                errorAzimuthAngle,
                altitudeAngle,
                errorAltitudeAngle,
                elapsedRealtimeNanos,
                method);
    }

+3 −0
Original line number Diff line number Diff line
@@ -196,6 +196,7 @@ public class DistanceMeasurementManagerTest {
                -1,
                -1,
                -1,
                1000L,
                DistanceMeasurementMethod.DISTANCE_MEASUREMENT_METHOD_RSSI);
        ArgumentCaptor<DistanceMeasurementResult> result =
                ArgumentCaptor.forClass(DistanceMeasurementResult.class);
@@ -206,6 +207,7 @@ public class DistanceMeasurementManagerTest {
        assertThat(result.getValue().getErrorAzimuthAngle()).isEqualTo(Double.NaN);
        assertThat(result.getValue().getAltitudeAngle()).isEqualTo(Double.NaN);
        assertThat(result.getValue().getErrorAltitudeAngle()).isEqualTo(Double.NaN);
        assertThat(result.getValue().getMeasurementTimestampNanos()).isEqualTo(1000L);
    }

    @Test
@@ -232,6 +234,7 @@ public class DistanceMeasurementManagerTest {
                -1,
                -1,
                -1,
                1000L,
                DistanceMeasurementMethod.DISTANCE_MEASUREMENT_METHOD_RSSI);
        DistanceMeasurementResult result =
                new DistanceMeasurementResult.Builder(1.00, 1.00).build();
+9 −1
Original line number Diff line number Diff line
@@ -15,3 +15,11 @@ flag {
    description: "Enable Channel Sounding in the Bluetooth stack"
    bug: "324185011"
}

flag {
    name:"channel_sounding_25q2_apis"
    namespace: "bluetooth"
    is_exported: true
    description: "Add new APIs for channel sounding"
    bug: "367409858"
}
Loading