Skip to content

Commit 269d8b1

Browse files
committed
fix(ble): do not initialize ble callback native class unless requested
1 parent 9c10ba0 commit 269d8b1

File tree

1 file changed

+33
-27
lines changed

1 file changed

+33
-27
lines changed

src/internal/ble/android/adapter.ts

Lines changed: 33 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@ export class AndroidBleScanAdapter implements BleScanAdapter {
1818
).getAdapter(),
1919
private sdkVersion = android.os.Build.VERSION.SDK_INT,
2020
private activityGetter = () => Application.android.foregroundActivity
21-
) {}
21+
) {
22+
setupNativeCallback();
23+
}
2224

2325
async isReady(): Promise<boolean> {
2426
const locFeaturesReady = await isEnabled();
@@ -117,34 +119,38 @@ function nativeScanModeFrom(mode: BleScanMode): number {
117119
}
118120
}
119121

120-
@NativeClass
121-
class BleScanCallback extends no.nordicsemi.android.support.v18.scanner
122-
.ScanCallback {
123-
constructor(
124-
private onResults: (
125-
results: java.util.List<no.nordicsemi.android.support.v18.scanner.ScanResult>
126-
) => void,
127-
private onError: (error: Error) => void
128-
) {
129-
super();
130-
// @ts-ignore
131-
return global.__native(this);
132-
}
122+
let BleScanCallback;
123+
function setupNativeCallback() {
124+
@NativeClass
125+
class NativeBleScanCallback extends no.nordicsemi.android.support.v18.scanner
126+
.ScanCallback {
127+
constructor(
128+
private onResults: (
129+
results: java.util.List<no.nordicsemi.android.support.v18.scanner.ScanResult>
130+
) => void,
131+
private onError: (error: Error) => void
132+
) {
133+
super();
134+
// @ts-ignore
135+
return global.__native(this);
136+
}
133137

134-
onScanResult(
135-
_callbackType: number,
136-
result: no.nordicsemi.android.support.v18.scanner.ScanResult
137-
) {
138-
this.onResults(java.util.Arrays.asList([result]));
139-
}
138+
onScanResult(
139+
_callbackType: number,
140+
result: no.nordicsemi.android.support.v18.scanner.ScanResult
141+
) {
142+
this.onResults(java.util.Arrays.asList([result]));
143+
}
140144

141-
onBatchScanResults(
142-
results: java.util.List<no.nordicsemi.android.support.v18.scanner.ScanResult>
143-
) {
144-
this.onResults(results);
145-
}
145+
onBatchScanResults(
146+
results: java.util.List<no.nordicsemi.android.support.v18.scanner.ScanResult>
147+
) {
148+
this.onResults(results);
149+
}
146150

147-
onScanFailed(errorCode: number) {
148-
this.onError(new Error(`BLE scan failed with error code: ${errorCode}`));
151+
onScanFailed(errorCode: number) {
152+
this.onError(new Error(`BLE scan failed with error code: ${errorCode}`));
153+
}
149154
}
155+
BleScanCallback = NativeBleScanCallback;
150156
}

0 commit comments

Comments
 (0)