Loading android/app/src/com/android/bluetooth/gatt/DistanceMeasurementNativeInterface.java +43 −2 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.bluetooth.gatt; import android.bluetooth.BluetoothStatusCodes; import com.android.internal.annotations.VisibleForTesting; /** Loading @@ -29,6 +31,20 @@ public class DistanceMeasurementNativeInterface { private static final Object INSTANCE_LOCK = new Object(); private DistanceMeasurementManager mDistanceMeasurementManager; /** * Do not modify without updating distance_measurement_manager.h * match up with DistanceMeasurementErrorCode enum of distance_measurement_manager.h */ private static final int REASON_FEATURE_NOT_SUPPORTED_LOCAL = 0; private static final int REASON_FEATURE_NOT_SUPPORTED_REMOTE = 1; private static final int REASON_LOCAL_REQUEST = 2; private static final int REASON_REMOTE_REQUEST = 3; private static final int REASON_DURATION_TIMEOUT = 4; private static final int REASON_NO_LE_CONNECTION = 5; private static final int REASON_INVALID_PARAMETERS = 6; private static final int REASON_INTERNAL_ERROR = 7; private DistanceMeasurementNativeInterface() {} /** Loading Loading @@ -67,11 +83,13 @@ public class DistanceMeasurementNativeInterface { } void onDistanceMeasurementStartFail(String address, int reason, int method) { mDistanceMeasurementManager.onDistanceMeasurementStartFail(address, reason, method); mDistanceMeasurementManager.onDistanceMeasurementStartFail(address, convertErrorCode(reason), method); } void onDistanceMeasurementStopped(String address, int reason, int method) { mDistanceMeasurementManager.onDistanceMeasurementStopped(address, reason, method); mDistanceMeasurementManager.onDistanceMeasurementStopped(address, convertErrorCode(reason), method); } void onDistanceMeasurementResult(String address, int centimeter, int errorCentimeter, Loading @@ -82,6 +100,29 @@ public class DistanceMeasurementNativeInterface { method); } private int convertErrorCode(int errorCode) { switch (errorCode) { case REASON_FEATURE_NOT_SUPPORTED_LOCAL: return BluetoothStatusCodes.FEATURE_NOT_SUPPORTED; case REASON_FEATURE_NOT_SUPPORTED_REMOTE: return BluetoothStatusCodes.ERROR_REMOTE_OPERATION_NOT_SUPPORTED; case REASON_LOCAL_REQUEST: return BluetoothStatusCodes.REASON_LOCAL_STACK_REQUEST; case REASON_REMOTE_REQUEST: return BluetoothStatusCodes.REASON_REMOTE_REQUEST; case REASON_DURATION_TIMEOUT: return BluetoothStatusCodes.ERROR_TIMEOUT; case REASON_NO_LE_CONNECTION: return BluetoothStatusCodes.ERROR_NO_LE_CONNECTION; case REASON_INVALID_PARAMETERS: return BluetoothStatusCodes.ERROR_BAD_PARAMETERS; case REASON_INTERNAL_ERROR: return BluetoothStatusCodes.DISTANCE_MEASUREMENT_ERROR_INTERNAL; default: return BluetoothStatusCodes.ERROR_UNKNOWN; } } static { classInitNative(); } Loading system/gd/hci/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ filegroup { "acl_manager/acl_fragmenter.cc", "acl_manager.cc", "controller.cc", "distance_measurement_manager.cc", "hci_layer.cc", "hci_metrics_logging.cc", "le_address_manager.cc", Loading system/gd/hci/BUILD.gn +1 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ source_set("BluetoothHciSources") { "address.cc", "class_of_device.cc", "controller.cc", "distance_measurement_manager.cc", "hci_layer.cc", "hci_metrics_logging.cc", "le_address_manager.cc", Loading system/gd/hci/acl_manager.h +2 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ #include "hci/acl_manager/le_connection_callbacks.h" #include "hci/address.h" #include "hci/address_with_type.h" #include "hci/distance_measurement_manager.h" #include "hci/hci_layer.h" #include "hci/hci_packets.h" #include "hci/le_address_manager.h" Loading Loading @@ -56,6 +57,7 @@ class AclManager : public Module { friend void bluetooth::shim::L2CA_UseLegacySecurityModule(); friend bool bluetooth::shim::L2CA_SetAclPriority(uint16_t, bool); friend class bluetooth::hci::LeScanningManager; friend class bluetooth::hci::DistanceMeasurementManager; public: AclManager(); Loading system/gd/hci/controller.h +1 −1 Original line number Diff line number Diff line Loading @@ -223,7 +223,7 @@ class Controller : public Module { static const ModuleFactory Factory; static constexpr uint64_t kDefaultEventMask = 0x3dbfffffffffffff; static constexpr uint64_t kDefaultLeEventMask = 0x000000044d02fe7f; static constexpr uint64_t kDefaultLeEventMask = 0x000000054d02fe7f; static constexpr uint64_t kLeEventMask53 = 0x00000007ffffffff; static constexpr uint64_t kLeEventMask52 = 0x00000003ffffffff; Loading Loading
android/app/src/com/android/bluetooth/gatt/DistanceMeasurementNativeInterface.java +43 −2 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.bluetooth.gatt; import android.bluetooth.BluetoothStatusCodes; import com.android.internal.annotations.VisibleForTesting; /** Loading @@ -29,6 +31,20 @@ public class DistanceMeasurementNativeInterface { private static final Object INSTANCE_LOCK = new Object(); private DistanceMeasurementManager mDistanceMeasurementManager; /** * Do not modify without updating distance_measurement_manager.h * match up with DistanceMeasurementErrorCode enum of distance_measurement_manager.h */ private static final int REASON_FEATURE_NOT_SUPPORTED_LOCAL = 0; private static final int REASON_FEATURE_NOT_SUPPORTED_REMOTE = 1; private static final int REASON_LOCAL_REQUEST = 2; private static final int REASON_REMOTE_REQUEST = 3; private static final int REASON_DURATION_TIMEOUT = 4; private static final int REASON_NO_LE_CONNECTION = 5; private static final int REASON_INVALID_PARAMETERS = 6; private static final int REASON_INTERNAL_ERROR = 7; private DistanceMeasurementNativeInterface() {} /** Loading Loading @@ -67,11 +83,13 @@ public class DistanceMeasurementNativeInterface { } void onDistanceMeasurementStartFail(String address, int reason, int method) { mDistanceMeasurementManager.onDistanceMeasurementStartFail(address, reason, method); mDistanceMeasurementManager.onDistanceMeasurementStartFail(address, convertErrorCode(reason), method); } void onDistanceMeasurementStopped(String address, int reason, int method) { mDistanceMeasurementManager.onDistanceMeasurementStopped(address, reason, method); mDistanceMeasurementManager.onDistanceMeasurementStopped(address, convertErrorCode(reason), method); } void onDistanceMeasurementResult(String address, int centimeter, int errorCentimeter, Loading @@ -82,6 +100,29 @@ public class DistanceMeasurementNativeInterface { method); } private int convertErrorCode(int errorCode) { switch (errorCode) { case REASON_FEATURE_NOT_SUPPORTED_LOCAL: return BluetoothStatusCodes.FEATURE_NOT_SUPPORTED; case REASON_FEATURE_NOT_SUPPORTED_REMOTE: return BluetoothStatusCodes.ERROR_REMOTE_OPERATION_NOT_SUPPORTED; case REASON_LOCAL_REQUEST: return BluetoothStatusCodes.REASON_LOCAL_STACK_REQUEST; case REASON_REMOTE_REQUEST: return BluetoothStatusCodes.REASON_REMOTE_REQUEST; case REASON_DURATION_TIMEOUT: return BluetoothStatusCodes.ERROR_TIMEOUT; case REASON_NO_LE_CONNECTION: return BluetoothStatusCodes.ERROR_NO_LE_CONNECTION; case REASON_INVALID_PARAMETERS: return BluetoothStatusCodes.ERROR_BAD_PARAMETERS; case REASON_INTERNAL_ERROR: return BluetoothStatusCodes.DISTANCE_MEASUREMENT_ERROR_INTERNAL; default: return BluetoothStatusCodes.ERROR_UNKNOWN; } } static { classInitNative(); } Loading
system/gd/hci/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ filegroup { "acl_manager/acl_fragmenter.cc", "acl_manager.cc", "controller.cc", "distance_measurement_manager.cc", "hci_layer.cc", "hci_metrics_logging.cc", "le_address_manager.cc", Loading
system/gd/hci/BUILD.gn +1 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ source_set("BluetoothHciSources") { "address.cc", "class_of_device.cc", "controller.cc", "distance_measurement_manager.cc", "hci_layer.cc", "hci_metrics_logging.cc", "le_address_manager.cc", Loading
system/gd/hci/acl_manager.h +2 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ #include "hci/acl_manager/le_connection_callbacks.h" #include "hci/address.h" #include "hci/address_with_type.h" #include "hci/distance_measurement_manager.h" #include "hci/hci_layer.h" #include "hci/hci_packets.h" #include "hci/le_address_manager.h" Loading Loading @@ -56,6 +57,7 @@ class AclManager : public Module { friend void bluetooth::shim::L2CA_UseLegacySecurityModule(); friend bool bluetooth::shim::L2CA_SetAclPriority(uint16_t, bool); friend class bluetooth::hci::LeScanningManager; friend class bluetooth::hci::DistanceMeasurementManager; public: AclManager(); Loading
system/gd/hci/controller.h +1 −1 Original line number Diff line number Diff line Loading @@ -223,7 +223,7 @@ class Controller : public Module { static const ModuleFactory Factory; static constexpr uint64_t kDefaultEventMask = 0x3dbfffffffffffff; static constexpr uint64_t kDefaultLeEventMask = 0x000000044d02fe7f; static constexpr uint64_t kDefaultLeEventMask = 0x000000054d02fe7f; static constexpr uint64_t kLeEventMask53 = 0x00000007ffffffff; static constexpr uint64_t kLeEventMask52 = 0x00000003ffffffff; Loading