react-native-ble-nitro 1.10.3 → 1.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/src/main/cpp/cpp-adapter.cpp +4 -1
- package/android/src/main/java/com/margelo/nitro/co/zyke/ble/BleNitroBleManager.kt +58 -21
- package/ios/BleNitroBleManager.swift +60 -3
- package/ios/BlePeripheralDelegate.swift +68 -9
- package/lib/commonjs/index.d.ts +1 -1
- package/lib/commonjs/index.d.ts.map +1 -1
- package/lib/commonjs/index.js +2 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/manager.d.ts +19 -4
- package/lib/commonjs/manager.d.ts.map +1 -1
- package/lib/commonjs/manager.js +68 -33
- package/lib/commonjs/manager.js.map +1 -1
- package/lib/commonjs/specs/NativeBleNitro.nitro.d.ts +3 -0
- package/lib/commonjs/specs/NativeBleNitro.nitro.d.ts.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/manager.d.ts +19 -4
- package/lib/manager.js +66 -32
- package/lib/specs/NativeBleNitro.nitro.d.ts +3 -0
- package/nitrogen/generated/android/BleNitroOnLoad.cpp +48 -32
- package/nitrogen/generated/android/BleNitroOnLoad.hpp +13 -4
- package/nitrogen/generated/android/c++/JHybridNativeBleNitroFactorySpec.cpp +20 -26
- package/nitrogen/generated/android/c++/JHybridNativeBleNitroFactorySpec.hpp +19 -22
- package/nitrogen/generated/android/c++/JHybridNativeBleNitroSpec.cpp +52 -49
- package/nitrogen/generated/android/c++/JHybridNativeBleNitroSpec.hpp +21 -22
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/HybridNativeBleNitroFactorySpec.kt +15 -18
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/HybridNativeBleNitroSpec.kt +28 -18
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/Variant_NullType_BLEDevice.kt +0 -6
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/Variant_NullType_String.kt +0 -6
- package/nitrogen/generated/ios/c++/HybridNativeBleNitroSpecSwift.hpp +14 -0
- package/nitrogen/generated/ios/swift/HybridNativeBleNitroSpec.swift +2 -0
- package/nitrogen/generated/ios/swift/HybridNativeBleNitroSpec_cxx.swift +28 -0
- package/nitrogen/generated/shared/c++/HybridNativeBleNitroSpec.cpp +2 -0
- package/nitrogen/generated/shared/c++/HybridNativeBleNitroSpec.hpp +2 -0
- package/package.json +9 -9
- package/src/__tests__/index.test.ts +145 -1
- package/src/index.ts +1 -0
- package/src/manager.ts +96 -34
- package/src/specs/NativeBleNitro.nitro.ts +3 -0
|
@@ -74,12 +74,15 @@ export interface NativeBleNitro extends HybridObject<{
|
|
|
74
74
|
requestMTU(deviceId: string, mtu: number): number;
|
|
75
75
|
readRSSI(deviceId: string, callback: ReadRSSICallback): void;
|
|
76
76
|
discoverServices(deviceId: string, callback: OperationCallback): void;
|
|
77
|
+
/** Discover services and wait for all characteristic discovery to complete before resolving. */
|
|
78
|
+
discoverServicesWithCharacteristics(deviceId: string, callback: OperationCallback): void;
|
|
77
79
|
getServices(deviceId: string): string[];
|
|
78
80
|
getCharacteristics(deviceId: string, serviceId: string): string[];
|
|
79
81
|
readCharacteristic(deviceId: string, serviceId: string, characteristicId: string, callback: ReadCharacteristicCallback): void;
|
|
80
82
|
writeCharacteristic(deviceId: string, serviceId: string, characteristicId: string, data: BLEValue, withResponse: boolean, callback: WriteCharacteristicCallback): void;
|
|
81
83
|
subscribeToCharacteristic(deviceId: string, serviceId: string, characteristicId: string, updateCallback: CharacteristicCallback, completionCallback: OperationCallback): void;
|
|
82
84
|
unsubscribeFromCharacteristic(deviceId: string, serviceId: string, characteristicId: string, callback: OperationCallback): void;
|
|
85
|
+
isSubscribedToCharacteristic(deviceId: string, serviceId: string, characteristicId: string): boolean;
|
|
83
86
|
requestBluetoothEnable(callback: OperationCallback): void;
|
|
84
87
|
state(): BLEState;
|
|
85
88
|
subscribeToStateChange(stateCallback: StateCallback): OperationResult;
|
|
@@ -31,42 +31,58 @@
|
|
|
31
31
|
namespace margelo::nitro::co::zyke::ble {
|
|
32
32
|
|
|
33
33
|
int initialize(JavaVM* vm) {
|
|
34
|
+
return facebook::jni::initialize(vm, []() {
|
|
35
|
+
::margelo::nitro::co::zyke::ble::registerAllNatives();
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
struct JHybridNativeBleNitroSpecImpl: public jni::JavaClass<JHybridNativeBleNitroSpecImpl, JHybridNativeBleNitroSpec::JavaPart> {
|
|
40
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/co/zyke/ble/BleNitroBleManager;";
|
|
41
|
+
static std::shared_ptr<JHybridNativeBleNitroSpec> create() {
|
|
42
|
+
static auto constructorFn = javaClassStatic()->getConstructor<JHybridNativeBleNitroSpecImpl::javaobject()>();
|
|
43
|
+
jni::local_ref<JHybridNativeBleNitroSpec::JavaPart> javaPart = javaClassStatic()->newObject(constructorFn);
|
|
44
|
+
return javaPart->getJHybridNativeBleNitroSpec();
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
struct JHybridNativeBleNitroFactorySpecImpl: public jni::JavaClass<JHybridNativeBleNitroFactorySpecImpl, JHybridNativeBleNitroFactorySpec::JavaPart> {
|
|
48
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/co/zyke/ble/BleNitroBleManagerFactory;";
|
|
49
|
+
static std::shared_ptr<JHybridNativeBleNitroFactorySpec> create() {
|
|
50
|
+
static auto constructorFn = javaClassStatic()->getConstructor<JHybridNativeBleNitroFactorySpecImpl::javaobject()>();
|
|
51
|
+
jni::local_ref<JHybridNativeBleNitroFactorySpec::JavaPart> javaPart = javaClassStatic()->newObject(constructorFn);
|
|
52
|
+
return javaPart->getJHybridNativeBleNitroFactorySpec();
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
void registerAllNatives() {
|
|
34
57
|
using namespace margelo::nitro;
|
|
35
58
|
using namespace margelo::nitro::co::zyke::ble;
|
|
36
|
-
using namespace facebook;
|
|
37
59
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
margelo::nitro::co::zyke::ble::JHybridNativeBleNitroFactorySpec::registerNatives();
|
|
60
|
+
// Register native JNI methods
|
|
61
|
+
margelo::nitro::co::zyke::ble::JHybridNativeBleNitroSpec::CxxPart::registerNatives();
|
|
62
|
+
margelo::nitro::co::zyke::ble::JFunc_void_std__vector_BLEDevice__cxx::registerNatives();
|
|
63
|
+
margelo::nitro::co::zyke::ble::JFunc_void_std__optional_std__variant_nitro__NullType__BLEDevice___std__optional_std__variant_nitro__NullType__std__string___cxx::registerNatives();
|
|
64
|
+
margelo::nitro::co::zyke::ble::JFunc_void_bool_std__string_std__string_cxx::registerNatives();
|
|
65
|
+
margelo::nitro::co::zyke::ble::JFunc_void_std__string_bool_std__string_cxx::registerNatives();
|
|
66
|
+
margelo::nitro::co::zyke::ble::JFunc_void_bool_std__string_cxx::registerNatives();
|
|
67
|
+
margelo::nitro::co::zyke::ble::JFunc_void_bool_double_std__string_cxx::registerNatives();
|
|
68
|
+
margelo::nitro::co::zyke::ble::JFunc_void_bool_std__shared_ptr_ArrayBuffer__std__string_cxx::registerNatives();
|
|
69
|
+
margelo::nitro::co::zyke::ble::JFunc_void_std__string_std__shared_ptr_ArrayBuffer__cxx::registerNatives();
|
|
70
|
+
margelo::nitro::co::zyke::ble::JFunc_void_BLEState_cxx::registerNatives();
|
|
71
|
+
margelo::nitro::co::zyke::ble::JHybridNativeBleNitroFactorySpec::CxxPart::registerNatives();
|
|
51
72
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
auto instance = object.create();
|
|
66
|
-
return instance->cthis()->shared();
|
|
67
|
-
}
|
|
68
|
-
);
|
|
69
|
-
});
|
|
73
|
+
// Register Nitro Hybrid Objects
|
|
74
|
+
HybridObjectRegistry::registerHybridObjectConstructor(
|
|
75
|
+
"NativeBleNitro",
|
|
76
|
+
[]() -> std::shared_ptr<HybridObject> {
|
|
77
|
+
return JHybridNativeBleNitroSpecImpl::create();
|
|
78
|
+
}
|
|
79
|
+
);
|
|
80
|
+
HybridObjectRegistry::registerHybridObjectConstructor(
|
|
81
|
+
"NativeBleNitroFactory",
|
|
82
|
+
[]() -> std::shared_ptr<HybridObject> {
|
|
83
|
+
return JHybridNativeBleNitroFactorySpecImpl::create();
|
|
84
|
+
}
|
|
85
|
+
);
|
|
70
86
|
}
|
|
71
87
|
|
|
72
88
|
} // namespace margelo::nitro::co::zyke::ble
|
|
@@ -6,20 +6,29 @@
|
|
|
6
6
|
///
|
|
7
7
|
|
|
8
8
|
#include <jni.h>
|
|
9
|
+
#include <functional>
|
|
9
10
|
#include <NitroModules/NitroDefines.hpp>
|
|
10
11
|
|
|
11
12
|
namespace margelo::nitro::co::zyke::ble {
|
|
12
13
|
|
|
14
|
+
[[deprecated("Use registerNatives() instead.")]]
|
|
15
|
+
int initialize(JavaVM* vm);
|
|
16
|
+
|
|
13
17
|
/**
|
|
14
|
-
*
|
|
15
|
-
* Call this in your `JNI_OnLoad` function (probably inside `cpp-adapter.cpp`)
|
|
18
|
+
* Register the native (C++) part of BleNitro, and autolinks all Hybrid Objects.
|
|
19
|
+
* Call this in your `JNI_OnLoad` function (probably inside `cpp-adapter.cpp`),
|
|
20
|
+
* inside a `facebook::jni::initialize(vm, ...)` call.
|
|
16
21
|
* Example:
|
|
17
22
|
* ```cpp (cpp-adapter.cpp)
|
|
18
23
|
* JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void*) {
|
|
19
|
-
* return
|
|
24
|
+
* return facebook::jni::initialize(vm, []() {
|
|
25
|
+
* // register all BleNitro HybridObjects
|
|
26
|
+
* margelo::nitro::co::zyke::ble::registerNatives();
|
|
27
|
+
* // any other custom registrations go here.
|
|
28
|
+
* });
|
|
20
29
|
* }
|
|
21
30
|
* ```
|
|
22
31
|
*/
|
|
23
|
-
|
|
32
|
+
void registerAllNatives();
|
|
24
33
|
|
|
25
34
|
} // namespace margelo::nitro::co::zyke::ble
|
|
@@ -36,37 +36,31 @@ namespace margelo::nitro::co::zyke::ble { struct ManufacturerDataEntry; }
|
|
|
36
36
|
|
|
37
37
|
namespace margelo::nitro::co::zyke::ble {
|
|
38
38
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
});
|
|
39
|
+
std::shared_ptr<JHybridNativeBleNitroFactorySpec> JHybridNativeBleNitroFactorySpec::JavaPart::getJHybridNativeBleNitroFactorySpec() {
|
|
40
|
+
auto hybridObject = JHybridObject::JavaPart::getJHybridObject();
|
|
41
|
+
auto castHybridObject = std::dynamic_pointer_cast<JHybridNativeBleNitroFactorySpec>(hybridObject);
|
|
42
|
+
if (castHybridObject == nullptr) [[unlikely]] {
|
|
43
|
+
throw std::runtime_error("Failed to downcast JHybridObject to JHybridNativeBleNitroFactorySpec!");
|
|
44
|
+
}
|
|
45
|
+
return castHybridObject;
|
|
47
46
|
}
|
|
48
47
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
return method(_javaPart);
|
|
48
|
+
jni::local_ref<JHybridNativeBleNitroFactorySpec::CxxPart::jhybriddata> JHybridNativeBleNitroFactorySpec::CxxPart::initHybrid(jni::alias_ref<jhybridobject> jThis) {
|
|
49
|
+
return makeCxxInstance(jThis);
|
|
52
50
|
}
|
|
53
51
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
52
|
+
std::shared_ptr<JHybridObject> JHybridNativeBleNitroFactorySpec::CxxPart::createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) {
|
|
53
|
+
auto castJavaPart = jni::dynamic_ref_cast<JHybridNativeBleNitroFactorySpec::JavaPart>(javaPart);
|
|
54
|
+
if (castJavaPart == nullptr) [[unlikely]] {
|
|
55
|
+
throw std::runtime_error("Failed to cast JHybridObject::JavaPart to JHybridNativeBleNitroFactorySpec::JavaPart!");
|
|
57
56
|
}
|
|
58
|
-
return
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
void JHybridNativeBleNitroFactorySpec::dispose() noexcept {
|
|
62
|
-
static const auto method = javaClassStatic()->getMethod<void()>("dispose");
|
|
63
|
-
method(_javaPart);
|
|
57
|
+
return std::make_shared<JHybridNativeBleNitroFactorySpec>(castJavaPart);
|
|
64
58
|
}
|
|
65
59
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
60
|
+
void JHybridNativeBleNitroFactorySpec::CxxPart::registerNatives() {
|
|
61
|
+
registerHybrid({
|
|
62
|
+
makeNativeMethod("initHybrid", JHybridNativeBleNitroFactorySpec::CxxPart::initHybrid),
|
|
63
|
+
});
|
|
70
64
|
}
|
|
71
65
|
|
|
72
66
|
// Properties
|
|
@@ -74,9 +68,9 @@ namespace margelo::nitro::co::zyke::ble {
|
|
|
74
68
|
|
|
75
69
|
// Methods
|
|
76
70
|
std::shared_ptr<HybridNativeBleNitroSpec> JHybridNativeBleNitroFactorySpec::create(const std::optional<std::string>& nativeRestoreStateIdentifier, const std::optional<std::function<void(const std::vector<BLEDevice>& /* peripherals */)>>& restoreStateCallback) {
|
|
77
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JHybridNativeBleNitroSpec::
|
|
71
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JHybridNativeBleNitroSpec::JavaPart>(jni::alias_ref<jni::JString> /* nativeRestoreStateIdentifier */, jni::alias_ref<JFunc_void_std__vector_BLEDevice_::javaobject> /* restoreStateCallback */)>("create_cxx");
|
|
78
72
|
auto __result = method(_javaPart, nativeRestoreStateIdentifier.has_value() ? jni::make_jstring(nativeRestoreStateIdentifier.value()) : nullptr, restoreStateCallback.has_value() ? JFunc_void_std__vector_BLEDevice__cxx::fromCpp(restoreStateCallback.value()) : nullptr);
|
|
79
|
-
return __result->
|
|
73
|
+
return __result->getJHybridNativeBleNitroSpec();
|
|
80
74
|
}
|
|
81
75
|
|
|
82
76
|
} // namespace margelo::nitro::co::zyke::ble
|
|
@@ -18,34 +18,33 @@ namespace margelo::nitro::co::zyke::ble {
|
|
|
18
18
|
|
|
19
19
|
using namespace facebook;
|
|
20
20
|
|
|
21
|
-
class JHybridNativeBleNitroFactorySpec: public
|
|
22
|
-
public virtual HybridNativeBleNitroFactorySpec {
|
|
21
|
+
class JHybridNativeBleNitroFactorySpec: public virtual HybridNativeBleNitroFactorySpec, public virtual JHybridObject {
|
|
23
22
|
public:
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
HybridBase
|
|
33
|
-
|
|
23
|
+
struct JavaPart: public jni::JavaClass<JavaPart, JHybridObject::JavaPart> {
|
|
24
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/co/zyke/ble/HybridNativeBleNitroFactorySpec;";
|
|
25
|
+
std::shared_ptr<JHybridNativeBleNitroFactorySpec> getJHybridNativeBleNitroFactorySpec();
|
|
26
|
+
};
|
|
27
|
+
struct CxxPart: public jni::HybridClass<CxxPart, JHybridObject::CxxPart> {
|
|
28
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/co/zyke/ble/HybridNativeBleNitroFactorySpec$CxxPart;";
|
|
29
|
+
static jni::local_ref<jhybriddata> initHybrid(jni::alias_ref<jhybridobject> jThis);
|
|
30
|
+
static void registerNatives();
|
|
31
|
+
using HybridBase::HybridBase;
|
|
32
|
+
protected:
|
|
33
|
+
std::shared_ptr<JHybridObject> createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) override;
|
|
34
|
+
};
|
|
34
35
|
|
|
35
36
|
public:
|
|
37
|
+
explicit JHybridNativeBleNitroFactorySpec(const jni::local_ref<JHybridNativeBleNitroFactorySpec::JavaPart>& javaPart):
|
|
38
|
+
HybridObject(HybridNativeBleNitroFactorySpec::TAG),
|
|
39
|
+
JHybridObject(javaPart),
|
|
40
|
+
_javaPart(jni::make_global(javaPart)) {}
|
|
36
41
|
~JHybridNativeBleNitroFactorySpec() override {
|
|
37
42
|
// Hermes GC can destroy JS objects on a non-JNI Thread.
|
|
38
43
|
jni::ThreadScope::WithClassLoader([&] { _javaPart.reset(); });
|
|
39
44
|
}
|
|
40
45
|
|
|
41
46
|
public:
|
|
42
|
-
|
|
43
|
-
bool equals(const std::shared_ptr<HybridObject>& other) override;
|
|
44
|
-
void dispose() noexcept override;
|
|
45
|
-
std::string toString() override;
|
|
46
|
-
|
|
47
|
-
public:
|
|
48
|
-
inline const jni::global_ref<JHybridNativeBleNitroFactorySpec::javaobject>& getJavaPart() const noexcept {
|
|
47
|
+
inline const jni::global_ref<JHybridNativeBleNitroFactorySpec::JavaPart>& getJavaPart() const noexcept {
|
|
49
48
|
return _javaPart;
|
|
50
49
|
}
|
|
51
50
|
|
|
@@ -58,9 +57,7 @@ namespace margelo::nitro::co::zyke::ble {
|
|
|
58
57
|
std::shared_ptr<HybridNativeBleNitroSpec> create(const std::optional<std::string>& nativeRestoreStateIdentifier, const std::optional<std::function<void(const std::vector<BLEDevice>& /* peripherals */)>>& restoreStateCallback) override;
|
|
59
58
|
|
|
60
59
|
private:
|
|
61
|
-
|
|
62
|
-
using HybridBase::HybridBase;
|
|
63
|
-
jni::global_ref<JHybridNativeBleNitroFactorySpec::javaobject> _javaPart;
|
|
60
|
+
jni::global_ref<JHybridNativeBleNitroFactorySpec::JavaPart> _javaPart;
|
|
64
61
|
};
|
|
65
62
|
|
|
66
63
|
} // namespace margelo::nitro::co::zyke::ble
|
|
@@ -63,75 +63,69 @@ namespace margelo::nitro::co::zyke::ble { enum class AndroidScanMode; }
|
|
|
63
63
|
|
|
64
64
|
namespace margelo::nitro::co::zyke::ble {
|
|
65
65
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
});
|
|
66
|
+
std::shared_ptr<JHybridNativeBleNitroSpec> JHybridNativeBleNitroSpec::JavaPart::getJHybridNativeBleNitroSpec() {
|
|
67
|
+
auto hybridObject = JHybridObject::JavaPart::getJHybridObject();
|
|
68
|
+
auto castHybridObject = std::dynamic_pointer_cast<JHybridNativeBleNitroSpec>(hybridObject);
|
|
69
|
+
if (castHybridObject == nullptr) [[unlikely]] {
|
|
70
|
+
throw std::runtime_error("Failed to downcast JHybridObject to JHybridNativeBleNitroSpec!");
|
|
71
|
+
}
|
|
72
|
+
return castHybridObject;
|
|
74
73
|
}
|
|
75
74
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
return method(_javaPart);
|
|
75
|
+
jni::local_ref<JHybridNativeBleNitroSpec::CxxPart::jhybriddata> JHybridNativeBleNitroSpec::CxxPart::initHybrid(jni::alias_ref<jhybridobject> jThis) {
|
|
76
|
+
return makeCxxInstance(jThis);
|
|
79
77
|
}
|
|
80
78
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
79
|
+
std::shared_ptr<JHybridObject> JHybridNativeBleNitroSpec::CxxPart::createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) {
|
|
80
|
+
auto castJavaPart = jni::dynamic_ref_cast<JHybridNativeBleNitroSpec::JavaPart>(javaPart);
|
|
81
|
+
if (castJavaPart == nullptr) [[unlikely]] {
|
|
82
|
+
throw std::runtime_error("Failed to cast JHybridObject::JavaPart to JHybridNativeBleNitroSpec::JavaPart!");
|
|
84
83
|
}
|
|
85
|
-
return
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
void JHybridNativeBleNitroSpec::dispose() noexcept {
|
|
89
|
-
static const auto method = javaClassStatic()->getMethod<void()>("dispose");
|
|
90
|
-
method(_javaPart);
|
|
84
|
+
return std::make_shared<JHybridNativeBleNitroSpec>(castJavaPart);
|
|
91
85
|
}
|
|
92
86
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
87
|
+
void JHybridNativeBleNitroSpec::CxxPart::registerNatives() {
|
|
88
|
+
registerHybrid({
|
|
89
|
+
makeNativeMethod("initHybrid", JHybridNativeBleNitroSpec::CxxPart::initHybrid),
|
|
90
|
+
});
|
|
97
91
|
}
|
|
98
92
|
|
|
99
93
|
// Properties
|
|
100
94
|
std::optional<std::string> JHybridNativeBleNitroSpec::getRestoreStateIdentifier() {
|
|
101
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JString>()>("getRestoreStateIdentifier");
|
|
95
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<jni::JString>()>("getRestoreStateIdentifier");
|
|
102
96
|
auto __result = method(_javaPart);
|
|
103
97
|
return __result != nullptr ? std::make_optional(__result->toStdString()) : std::nullopt;
|
|
104
98
|
}
|
|
105
99
|
void JHybridNativeBleNitroSpec::setRestoreStateIdentifier(const std::optional<std::string>& restoreStateIdentifier) {
|
|
106
|
-
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* restoreStateIdentifier */)>("setRestoreStateIdentifier");
|
|
100
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* restoreStateIdentifier */)>("setRestoreStateIdentifier");
|
|
107
101
|
method(_javaPart, restoreStateIdentifier.has_value() ? jni::make_jstring(restoreStateIdentifier.value()) : nullptr);
|
|
108
102
|
}
|
|
109
103
|
|
|
110
104
|
// Methods
|
|
111
105
|
void JHybridNativeBleNitroSpec::setRestoreStateCallback(const std::function<void(const std::vector<BLEDevice>& /* restoredPeripherals */)>& callback) {
|
|
112
|
-
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_std__vector_BLEDevice_::javaobject> /* callback */)>("setRestoreStateCallback_cxx");
|
|
106
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_std__vector_BLEDevice_::javaobject> /* callback */)>("setRestoreStateCallback_cxx");
|
|
113
107
|
method(_javaPart, JFunc_void_std__vector_BLEDevice__cxx::fromCpp(callback));
|
|
114
108
|
}
|
|
115
109
|
void JHybridNativeBleNitroSpec::iosLazyInit() {
|
|
116
|
-
static const auto method = javaClassStatic()->getMethod<void()>("iosLazyInit");
|
|
110
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void()>("iosLazyInit");
|
|
117
111
|
method(_javaPart);
|
|
118
112
|
}
|
|
119
113
|
void JHybridNativeBleNitroSpec::startScan(const ScanFilter& filter, const std::function<void(const std::optional<std::variant<nitro::NullType, BLEDevice>>& /* device */, const std::optional<std::variant<nitro::NullType, std::string>>& /* error */)>& callback) {
|
|
120
|
-
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JScanFilter> /* filter */, jni::alias_ref<JFunc_void_std__optional_std__variant_nitro__NullType__BLEDevice___std__optional_std__variant_nitro__NullType__std__string__::javaobject> /* callback */)>("startScan_cxx");
|
|
114
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JScanFilter> /* filter */, jni::alias_ref<JFunc_void_std__optional_std__variant_nitro__NullType__BLEDevice___std__optional_std__variant_nitro__NullType__std__string__::javaobject> /* callback */)>("startScan_cxx");
|
|
121
115
|
method(_javaPart, JScanFilter::fromCpp(filter), JFunc_void_std__optional_std__variant_nitro__NullType__BLEDevice___std__optional_std__variant_nitro__NullType__std__string___cxx::fromCpp(callback));
|
|
122
116
|
}
|
|
123
117
|
bool JHybridNativeBleNitroSpec::stopScan() {
|
|
124
|
-
static const auto method = javaClassStatic()->getMethod<jboolean()>("stopScan");
|
|
118
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jboolean()>("stopScan");
|
|
125
119
|
auto __result = method(_javaPart);
|
|
126
120
|
return static_cast<bool>(__result);
|
|
127
121
|
}
|
|
128
122
|
bool JHybridNativeBleNitroSpec::isScanning() {
|
|
129
|
-
static const auto method = javaClassStatic()->getMethod<jboolean()>("isScanning");
|
|
123
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jboolean()>("isScanning");
|
|
130
124
|
auto __result = method(_javaPart);
|
|
131
125
|
return static_cast<bool>(__result);
|
|
132
126
|
}
|
|
133
127
|
std::vector<BLEDevice> JHybridNativeBleNitroSpec::getConnectedDevices(const std::vector<std::string>& services) {
|
|
134
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JArrayClass<JBLEDevice>>(jni::alias_ref<jni::JArrayClass<jni::JString>> /* services */)>("getConnectedDevices");
|
|
128
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<jni::JArrayClass<JBLEDevice>>(jni::alias_ref<jni::JArrayClass<jni::JString>> /* services */)>("getConnectedDevices");
|
|
135
129
|
auto __result = method(_javaPart, [&]() {
|
|
136
130
|
size_t __size = services.size();
|
|
137
131
|
jni::local_ref<jni::JArrayClass<jni::JString>> __array = jni::JArrayClass<jni::JString>::newArray(__size);
|
|
@@ -154,33 +148,37 @@ namespace margelo::nitro::co::zyke::ble {
|
|
|
154
148
|
}();
|
|
155
149
|
}
|
|
156
150
|
void JHybridNativeBleNitroSpec::connect(const std::string& deviceId, const std::function<void(bool /* success */, const std::string& /* deviceId */, const std::string& /* error */)>& callback, const std::optional<std::function<void(const std::string& /* deviceId */, bool /* interrupted */, const std::string& /* error */)>>& disconnectCallback, std::optional<bool> autoConnectAndroid) {
|
|
157
|
-
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* deviceId */, jni::alias_ref<JFunc_void_bool_std__string_std__string::javaobject> /* callback */, jni::alias_ref<JFunc_void_std__string_bool_std__string::javaobject> /* disconnectCallback */, jni::alias_ref<jni::JBoolean> /* autoConnectAndroid */)>("connect_cxx");
|
|
151
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* deviceId */, jni::alias_ref<JFunc_void_bool_std__string_std__string::javaobject> /* callback */, jni::alias_ref<JFunc_void_std__string_bool_std__string::javaobject> /* disconnectCallback */, jni::alias_ref<jni::JBoolean> /* autoConnectAndroid */)>("connect_cxx");
|
|
158
152
|
method(_javaPart, jni::make_jstring(deviceId), JFunc_void_bool_std__string_std__string_cxx::fromCpp(callback), disconnectCallback.has_value() ? JFunc_void_std__string_bool_std__string_cxx::fromCpp(disconnectCallback.value()) : nullptr, autoConnectAndroid.has_value() ? jni::JBoolean::valueOf(autoConnectAndroid.value()) : nullptr);
|
|
159
153
|
}
|
|
160
154
|
void JHybridNativeBleNitroSpec::disconnect(const std::string& deviceId, const std::function<void(bool /* success */, const std::string& /* error */)>& callback) {
|
|
161
|
-
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* deviceId */, jni::alias_ref<JFunc_void_bool_std__string::javaobject> /* callback */)>("disconnect_cxx");
|
|
155
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* deviceId */, jni::alias_ref<JFunc_void_bool_std__string::javaobject> /* callback */)>("disconnect_cxx");
|
|
162
156
|
method(_javaPart, jni::make_jstring(deviceId), JFunc_void_bool_std__string_cxx::fromCpp(callback));
|
|
163
157
|
}
|
|
164
158
|
bool JHybridNativeBleNitroSpec::isConnected(const std::string& deviceId) {
|
|
165
|
-
static const auto method = javaClassStatic()->getMethod<jboolean(jni::alias_ref<jni::JString> /* deviceId */)>("isConnected");
|
|
159
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jboolean(jni::alias_ref<jni::JString> /* deviceId */)>("isConnected");
|
|
166
160
|
auto __result = method(_javaPart, jni::make_jstring(deviceId));
|
|
167
161
|
return static_cast<bool>(__result);
|
|
168
162
|
}
|
|
169
163
|
double JHybridNativeBleNitroSpec::requestMTU(const std::string& deviceId, double mtu) {
|
|
170
|
-
static const auto method = javaClassStatic()->getMethod<double(jni::alias_ref<jni::JString> /* deviceId */, double /* mtu */)>("requestMTU");
|
|
164
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<double(jni::alias_ref<jni::JString> /* deviceId */, double /* mtu */)>("requestMTU");
|
|
171
165
|
auto __result = method(_javaPart, jni::make_jstring(deviceId), mtu);
|
|
172
166
|
return __result;
|
|
173
167
|
}
|
|
174
168
|
void JHybridNativeBleNitroSpec::readRSSI(const std::string& deviceId, const std::function<void(bool /* success */, double /* rssi */, const std::string& /* error */)>& callback) {
|
|
175
|
-
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* deviceId */, jni::alias_ref<JFunc_void_bool_double_std__string::javaobject> /* callback */)>("readRSSI_cxx");
|
|
169
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* deviceId */, jni::alias_ref<JFunc_void_bool_double_std__string::javaobject> /* callback */)>("readRSSI_cxx");
|
|
176
170
|
method(_javaPart, jni::make_jstring(deviceId), JFunc_void_bool_double_std__string_cxx::fromCpp(callback));
|
|
177
171
|
}
|
|
178
172
|
void JHybridNativeBleNitroSpec::discoverServices(const std::string& deviceId, const std::function<void(bool /* success */, const std::string& /* error */)>& callback) {
|
|
179
|
-
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* deviceId */, jni::alias_ref<JFunc_void_bool_std__string::javaobject> /* callback */)>("discoverServices_cxx");
|
|
173
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* deviceId */, jni::alias_ref<JFunc_void_bool_std__string::javaobject> /* callback */)>("discoverServices_cxx");
|
|
174
|
+
method(_javaPart, jni::make_jstring(deviceId), JFunc_void_bool_std__string_cxx::fromCpp(callback));
|
|
175
|
+
}
|
|
176
|
+
void JHybridNativeBleNitroSpec::discoverServicesWithCharacteristics(const std::string& deviceId, const std::function<void(bool /* success */, const std::string& /* error */)>& callback) {
|
|
177
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* deviceId */, jni::alias_ref<JFunc_void_bool_std__string::javaobject> /* callback */)>("discoverServicesWithCharacteristics_cxx");
|
|
180
178
|
method(_javaPart, jni::make_jstring(deviceId), JFunc_void_bool_std__string_cxx::fromCpp(callback));
|
|
181
179
|
}
|
|
182
180
|
std::vector<std::string> JHybridNativeBleNitroSpec::getServices(const std::string& deviceId) {
|
|
183
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JArrayClass<jni::JString>>(jni::alias_ref<jni::JString> /* deviceId */)>("getServices");
|
|
181
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<jni::JArrayClass<jni::JString>>(jni::alias_ref<jni::JString> /* deviceId */)>("getServices");
|
|
184
182
|
auto __result = method(_javaPart, jni::make_jstring(deviceId));
|
|
185
183
|
return [&]() {
|
|
186
184
|
size_t __size = __result->size();
|
|
@@ -194,7 +192,7 @@ namespace margelo::nitro::co::zyke::ble {
|
|
|
194
192
|
}();
|
|
195
193
|
}
|
|
196
194
|
std::vector<std::string> JHybridNativeBleNitroSpec::getCharacteristics(const std::string& deviceId, const std::string& serviceId) {
|
|
197
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JArrayClass<jni::JString>>(jni::alias_ref<jni::JString> /* deviceId */, jni::alias_ref<jni::JString> /* serviceId */)>("getCharacteristics");
|
|
195
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<jni::JArrayClass<jni::JString>>(jni::alias_ref<jni::JString> /* deviceId */, jni::alias_ref<jni::JString> /* serviceId */)>("getCharacteristics");
|
|
198
196
|
auto __result = method(_javaPart, jni::make_jstring(deviceId), jni::make_jstring(serviceId));
|
|
199
197
|
return [&]() {
|
|
200
198
|
size_t __size = __result->size();
|
|
@@ -208,42 +206,47 @@ namespace margelo::nitro::co::zyke::ble {
|
|
|
208
206
|
}();
|
|
209
207
|
}
|
|
210
208
|
void JHybridNativeBleNitroSpec::readCharacteristic(const std::string& deviceId, const std::string& serviceId, const std::string& characteristicId, const std::function<void(bool /* success */, const std::shared_ptr<ArrayBuffer>& /* data */, const std::string& /* error */)>& callback) {
|
|
211
|
-
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* deviceId */, jni::alias_ref<jni::JString> /* serviceId */, jni::alias_ref<jni::JString> /* characteristicId */, jni::alias_ref<JFunc_void_bool_std__shared_ptr_ArrayBuffer__std__string::javaobject> /* callback */)>("readCharacteristic_cxx");
|
|
209
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* deviceId */, jni::alias_ref<jni::JString> /* serviceId */, jni::alias_ref<jni::JString> /* characteristicId */, jni::alias_ref<JFunc_void_bool_std__shared_ptr_ArrayBuffer__std__string::javaobject> /* callback */)>("readCharacteristic_cxx");
|
|
212
210
|
method(_javaPart, jni::make_jstring(deviceId), jni::make_jstring(serviceId), jni::make_jstring(characteristicId), JFunc_void_bool_std__shared_ptr_ArrayBuffer__std__string_cxx::fromCpp(callback));
|
|
213
211
|
}
|
|
214
212
|
void JHybridNativeBleNitroSpec::writeCharacteristic(const std::string& deviceId, const std::string& serviceId, const std::string& characteristicId, const std::shared_ptr<ArrayBuffer>& data, bool withResponse, const std::function<void(bool /* success */, const std::shared_ptr<ArrayBuffer>& /* responseData */, const std::string& /* error */)>& callback) {
|
|
215
|
-
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* deviceId */, jni::alias_ref<jni::JString> /* serviceId */, jni::alias_ref<jni::JString> /* characteristicId */, jni::alias_ref<JArrayBuffer::javaobject> /* data */, jboolean /* withResponse */, jni::alias_ref<JFunc_void_bool_std__shared_ptr_ArrayBuffer__std__string::javaobject> /* callback */)>("writeCharacteristic_cxx");
|
|
213
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* deviceId */, jni::alias_ref<jni::JString> /* serviceId */, jni::alias_ref<jni::JString> /* characteristicId */, jni::alias_ref<JArrayBuffer::javaobject> /* data */, jboolean /* withResponse */, jni::alias_ref<JFunc_void_bool_std__shared_ptr_ArrayBuffer__std__string::javaobject> /* callback */)>("writeCharacteristic_cxx");
|
|
216
214
|
method(_javaPart, jni::make_jstring(deviceId), jni::make_jstring(serviceId), jni::make_jstring(characteristicId), JArrayBuffer::wrap(data), withResponse, JFunc_void_bool_std__shared_ptr_ArrayBuffer__std__string_cxx::fromCpp(callback));
|
|
217
215
|
}
|
|
218
216
|
void JHybridNativeBleNitroSpec::subscribeToCharacteristic(const std::string& deviceId, const std::string& serviceId, const std::string& characteristicId, const std::function<void(const std::string& /* characteristicId */, const std::shared_ptr<ArrayBuffer>& /* data */)>& updateCallback, const std::function<void(bool /* success */, const std::string& /* error */)>& completionCallback) {
|
|
219
|
-
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* deviceId */, jni::alias_ref<jni::JString> /* serviceId */, jni::alias_ref<jni::JString> /* characteristicId */, jni::alias_ref<JFunc_void_std__string_std__shared_ptr_ArrayBuffer_::javaobject> /* updateCallback */, jni::alias_ref<JFunc_void_bool_std__string::javaobject> /* completionCallback */)>("subscribeToCharacteristic_cxx");
|
|
217
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* deviceId */, jni::alias_ref<jni::JString> /* serviceId */, jni::alias_ref<jni::JString> /* characteristicId */, jni::alias_ref<JFunc_void_std__string_std__shared_ptr_ArrayBuffer_::javaobject> /* updateCallback */, jni::alias_ref<JFunc_void_bool_std__string::javaobject> /* completionCallback */)>("subscribeToCharacteristic_cxx");
|
|
220
218
|
method(_javaPart, jni::make_jstring(deviceId), jni::make_jstring(serviceId), jni::make_jstring(characteristicId), JFunc_void_std__string_std__shared_ptr_ArrayBuffer__cxx::fromCpp(updateCallback), JFunc_void_bool_std__string_cxx::fromCpp(completionCallback));
|
|
221
219
|
}
|
|
222
220
|
void JHybridNativeBleNitroSpec::unsubscribeFromCharacteristic(const std::string& deviceId, const std::string& serviceId, const std::string& characteristicId, const std::function<void(bool /* success */, const std::string& /* error */)>& callback) {
|
|
223
|
-
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* deviceId */, jni::alias_ref<jni::JString> /* serviceId */, jni::alias_ref<jni::JString> /* characteristicId */, jni::alias_ref<JFunc_void_bool_std__string::javaobject> /* callback */)>("unsubscribeFromCharacteristic_cxx");
|
|
221
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* deviceId */, jni::alias_ref<jni::JString> /* serviceId */, jni::alias_ref<jni::JString> /* characteristicId */, jni::alias_ref<JFunc_void_bool_std__string::javaobject> /* callback */)>("unsubscribeFromCharacteristic_cxx");
|
|
224
222
|
method(_javaPart, jni::make_jstring(deviceId), jni::make_jstring(serviceId), jni::make_jstring(characteristicId), JFunc_void_bool_std__string_cxx::fromCpp(callback));
|
|
225
223
|
}
|
|
224
|
+
bool JHybridNativeBleNitroSpec::isSubscribedToCharacteristic(const std::string& deviceId, const std::string& serviceId, const std::string& characteristicId) {
|
|
225
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jboolean(jni::alias_ref<jni::JString> /* deviceId */, jni::alias_ref<jni::JString> /* serviceId */, jni::alias_ref<jni::JString> /* characteristicId */)>("isSubscribedToCharacteristic");
|
|
226
|
+
auto __result = method(_javaPart, jni::make_jstring(deviceId), jni::make_jstring(serviceId), jni::make_jstring(characteristicId));
|
|
227
|
+
return static_cast<bool>(__result);
|
|
228
|
+
}
|
|
226
229
|
void JHybridNativeBleNitroSpec::requestBluetoothEnable(const std::function<void(bool /* success */, const std::string& /* error */)>& callback) {
|
|
227
|
-
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_bool_std__string::javaobject> /* callback */)>("requestBluetoothEnable_cxx");
|
|
230
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_bool_std__string::javaobject> /* callback */)>("requestBluetoothEnable_cxx");
|
|
228
231
|
method(_javaPart, JFunc_void_bool_std__string_cxx::fromCpp(callback));
|
|
229
232
|
}
|
|
230
233
|
BLEState JHybridNativeBleNitroSpec::state() {
|
|
231
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JBLEState>()>("state");
|
|
234
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JBLEState>()>("state");
|
|
232
235
|
auto __result = method(_javaPart);
|
|
233
236
|
return __result->toCpp();
|
|
234
237
|
}
|
|
235
238
|
OperationResult JHybridNativeBleNitroSpec::subscribeToStateChange(const std::function<void(BLEState /* state */)>& stateCallback) {
|
|
236
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JOperationResult>(jni::alias_ref<JFunc_void_BLEState::javaobject> /* stateCallback */)>("subscribeToStateChange_cxx");
|
|
239
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JOperationResult>(jni::alias_ref<JFunc_void_BLEState::javaobject> /* stateCallback */)>("subscribeToStateChange_cxx");
|
|
237
240
|
auto __result = method(_javaPart, JFunc_void_BLEState_cxx::fromCpp(stateCallback));
|
|
238
241
|
return __result->toCpp();
|
|
239
242
|
}
|
|
240
243
|
OperationResult JHybridNativeBleNitroSpec::unsubscribeFromStateChange() {
|
|
241
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JOperationResult>()>("unsubscribeFromStateChange");
|
|
244
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JOperationResult>()>("unsubscribeFromStateChange");
|
|
242
245
|
auto __result = method(_javaPart);
|
|
243
246
|
return __result->toCpp();
|
|
244
247
|
}
|
|
245
248
|
std::shared_ptr<Promise<void>> JHybridNativeBleNitroSpec::openSettings() {
|
|
246
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("openSettings");
|
|
249
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("openSettings");
|
|
247
250
|
auto __result = method(_javaPart);
|
|
248
251
|
return [&]() {
|
|
249
252
|
auto __promise = Promise<void>::create();
|
|
@@ -18,34 +18,33 @@ namespace margelo::nitro::co::zyke::ble {
|
|
|
18
18
|
|
|
19
19
|
using namespace facebook;
|
|
20
20
|
|
|
21
|
-
class JHybridNativeBleNitroSpec: public
|
|
22
|
-
public virtual HybridNativeBleNitroSpec {
|
|
21
|
+
class JHybridNativeBleNitroSpec: public virtual HybridNativeBleNitroSpec, public virtual JHybridObject {
|
|
23
22
|
public:
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
HybridBase
|
|
33
|
-
|
|
23
|
+
struct JavaPart: public jni::JavaClass<JavaPart, JHybridObject::JavaPart> {
|
|
24
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/co/zyke/ble/HybridNativeBleNitroSpec;";
|
|
25
|
+
std::shared_ptr<JHybridNativeBleNitroSpec> getJHybridNativeBleNitroSpec();
|
|
26
|
+
};
|
|
27
|
+
struct CxxPart: public jni::HybridClass<CxxPart, JHybridObject::CxxPart> {
|
|
28
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/co/zyke/ble/HybridNativeBleNitroSpec$CxxPart;";
|
|
29
|
+
static jni::local_ref<jhybriddata> initHybrid(jni::alias_ref<jhybridobject> jThis);
|
|
30
|
+
static void registerNatives();
|
|
31
|
+
using HybridBase::HybridBase;
|
|
32
|
+
protected:
|
|
33
|
+
std::shared_ptr<JHybridObject> createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) override;
|
|
34
|
+
};
|
|
34
35
|
|
|
35
36
|
public:
|
|
37
|
+
explicit JHybridNativeBleNitroSpec(const jni::local_ref<JHybridNativeBleNitroSpec::JavaPart>& javaPart):
|
|
38
|
+
HybridObject(HybridNativeBleNitroSpec::TAG),
|
|
39
|
+
JHybridObject(javaPart),
|
|
40
|
+
_javaPart(jni::make_global(javaPart)) {}
|
|
36
41
|
~JHybridNativeBleNitroSpec() override {
|
|
37
42
|
// Hermes GC can destroy JS objects on a non-JNI Thread.
|
|
38
43
|
jni::ThreadScope::WithClassLoader([&] { _javaPart.reset(); });
|
|
39
44
|
}
|
|
40
45
|
|
|
41
46
|
public:
|
|
42
|
-
|
|
43
|
-
bool equals(const std::shared_ptr<HybridObject>& other) override;
|
|
44
|
-
void dispose() noexcept override;
|
|
45
|
-
std::string toString() override;
|
|
46
|
-
|
|
47
|
-
public:
|
|
48
|
-
inline const jni::global_ref<JHybridNativeBleNitroSpec::javaobject>& getJavaPart() const noexcept {
|
|
47
|
+
inline const jni::global_ref<JHybridNativeBleNitroSpec::JavaPart>& getJavaPart() const noexcept {
|
|
49
48
|
return _javaPart;
|
|
50
49
|
}
|
|
51
50
|
|
|
@@ -68,12 +67,14 @@ namespace margelo::nitro::co::zyke::ble {
|
|
|
68
67
|
double requestMTU(const std::string& deviceId, double mtu) override;
|
|
69
68
|
void readRSSI(const std::string& deviceId, const std::function<void(bool /* success */, double /* rssi */, const std::string& /* error */)>& callback) override;
|
|
70
69
|
void discoverServices(const std::string& deviceId, const std::function<void(bool /* success */, const std::string& /* error */)>& callback) override;
|
|
70
|
+
void discoverServicesWithCharacteristics(const std::string& deviceId, const std::function<void(bool /* success */, const std::string& /* error */)>& callback) override;
|
|
71
71
|
std::vector<std::string> getServices(const std::string& deviceId) override;
|
|
72
72
|
std::vector<std::string> getCharacteristics(const std::string& deviceId, const std::string& serviceId) override;
|
|
73
73
|
void readCharacteristic(const std::string& deviceId, const std::string& serviceId, const std::string& characteristicId, const std::function<void(bool /* success */, const std::shared_ptr<ArrayBuffer>& /* data */, const std::string& /* error */)>& callback) override;
|
|
74
74
|
void writeCharacteristic(const std::string& deviceId, const std::string& serviceId, const std::string& characteristicId, const std::shared_ptr<ArrayBuffer>& data, bool withResponse, const std::function<void(bool /* success */, const std::shared_ptr<ArrayBuffer>& /* responseData */, const std::string& /* error */)>& callback) override;
|
|
75
75
|
void subscribeToCharacteristic(const std::string& deviceId, const std::string& serviceId, const std::string& characteristicId, const std::function<void(const std::string& /* characteristicId */, const std::shared_ptr<ArrayBuffer>& /* data */)>& updateCallback, const std::function<void(bool /* success */, const std::string& /* error */)>& completionCallback) override;
|
|
76
76
|
void unsubscribeFromCharacteristic(const std::string& deviceId, const std::string& serviceId, const std::string& characteristicId, const std::function<void(bool /* success */, const std::string& /* error */)>& callback) override;
|
|
77
|
+
bool isSubscribedToCharacteristic(const std::string& deviceId, const std::string& serviceId, const std::string& characteristicId) override;
|
|
77
78
|
void requestBluetoothEnable(const std::function<void(bool /* success */, const std::string& /* error */)>& callback) override;
|
|
78
79
|
BLEState state() override;
|
|
79
80
|
OperationResult subscribeToStateChange(const std::function<void(BLEState /* state */)>& stateCallback) override;
|
|
@@ -81,9 +82,7 @@ namespace margelo::nitro::co::zyke::ble {
|
|
|
81
82
|
std::shared_ptr<Promise<void>> openSettings() override;
|
|
82
83
|
|
|
83
84
|
private:
|
|
84
|
-
|
|
85
|
-
using HybridBase::HybridBase;
|
|
86
|
-
jni::global_ref<JHybridNativeBleNitroSpec::javaobject> _javaPart;
|
|
85
|
+
jni::global_ref<JHybridNativeBleNitroSpec::JavaPart> _javaPart;
|
|
87
86
|
};
|
|
88
87
|
|
|
89
88
|
} // namespace margelo::nitro::co::zyke::ble
|