forked from teeserted/react-native-noke
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathevents.js
More file actions
125 lines (108 loc) · 2.67 KB
/
events.js
File metadata and controls
125 lines (108 loc) · 2.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
import { NativeEventEmitter, NativeModules } from "react-native";
import { Observable } from "rxjs";
const { RNNoke } = NativeModules;
const NokeEmitter = new NativeEventEmitter(RNNoke);
export const onEvent = function (eventName, callback) {
NokeEmitter.addListener(eventName, callback);
return this;
};
export const onEventOnce = function (eventName, callback) {
NokeEmitter.once(eventName, callback);
return this;
};
export const offEvent = function (eventName, listener) {
NokeEmitter.removeListener(eventName, listener);
return this;
};
export const removeAllListeners = function (eventName) {
return NokeEmitter.removeAllListeners(eventName);
};
export const fromNokeEvents = () => {
if (!Observable) {
return {
message: "Missing rxjs",
};
}
const events = [
"onServiceConnected",
"onNokeDiscovered",
"onNokeConnecting",
"onNokeConnected",
"onNokeSyncing",
"onNokeUnlocked",
"onNokeDisconnected",
"onNokeShutdown",
"onBluetoothStatusChanged",
"onError",
];
let lastEvent = "";
return new Observable((observer) => {
onEvent("onServiceConnected", (data) => {
observer.next({
name: "onServiceConnected",
data,
});
lastEvent = "onServiceConnected";
});
onEvent("onNokeDiscovered", (data) => {
observer.next({
name: "onNokeDiscovered",
data,
});
lastEvent = "onNokeDiscovered";
});
onEvent("onNokeConnecting", (data) => {
observer.next({
name: "onNokeConnecting",
data,
});
lastEvent = "onNokeConnecting";
});
onEvent("onNokeConnected", (data) => {
//clearTimeout(timer)
if (lastEvent !== "onNokeUnlocked") {
observer.next({
name: "onNokeConnected",
data,
});
lastEvent = "onNokeConnected";
}
});
onEvent("onNokeSyncing", (data) => {
observer.next({
name: "onNokeSyncing",
data,
});
lastEvent = "onNokeSyncing";
});
onEvent("onNokeUnlocked", (data) => {
//clearTimeout(timer)
observer.next({
name: "onNokeUnlocked",
data,
});
lastEvent = "onNokeUnlocked";
});
onEvent("onNokeDisconnected", (data) => {
observer.next({
name: "onNokeDisconnected",
data,
});
lastEvent = "onNokeDisconnected";
});
onEvent("onNokeShutdown", (data) => {
observer.next({
name: "onNokeShutdown",
data,
});
lastEvent = "onNokeShutdown";
});
onEvent("onError", (data) => {
observer.next({
name: "onError",
data,
});
lastEvent = "onError";
});
});
};