174 lines
4.1 KiB
Dart
Executable File
174 lines
4.1 KiB
Dart
Executable File
import 'package:starcloud/blue/blue_manage.dart';
|
|
import 'package:starcloud/blue/blue_read_write.dart';
|
|
import 'package:starcloud/entity/star_cloud_lock_list.dart';
|
|
import 'package:starcloud/sdk/business/sdk_common.dart';
|
|
import 'package:starcloud/starcloud.dart';
|
|
|
|
import '../core/callback_bridge.dart';
|
|
|
|
class StarCloudDeviceService {
|
|
StarCloudDeviceService();
|
|
|
|
Future<dynamic> _fetchWrapper(int? cloudUid) {
|
|
return SDKCommon.instance.fetchStarCloudUser(cloudUid);
|
|
}
|
|
|
|
Future<List<StarCloudScanResult>> scanDeviceList({
|
|
int timeout = 3600,
|
|
bool notPaired = true,
|
|
void Function(List<StarCloudScanResult> devices)? onScan,
|
|
}) {
|
|
return CallbackBridge.fromCallback<List<StarCloudScanResult>>(
|
|
executor: (onSuccess, onError) {
|
|
StarCloudSDK.instance.scanDeviceList(
|
|
timeout: timeout,
|
|
notPaired: notPaired,
|
|
scanType: ScanType.lock,
|
|
onScan: (list) {
|
|
onScan?.call(list);
|
|
onSuccess(list);
|
|
},
|
|
);
|
|
},
|
|
);
|
|
}
|
|
|
|
Future<void> stopScan() {
|
|
return CallbackBridge.fromVoidCallback(
|
|
executor: (onSuccess, onError) {
|
|
StarCloudSDK.instance.stopScan(onError: onError).then((_) => onSuccess());
|
|
},
|
|
);
|
|
}
|
|
|
|
Future<void> disconnect() {
|
|
return CallbackBridge.fromVoidCallback(
|
|
executor: (onSuccess, onError) {
|
|
StarCloudSDK.instance.disconnect().then((_) => onSuccess());
|
|
},
|
|
);
|
|
}
|
|
|
|
Future<StarCloudLock> pairDevice({
|
|
required StarCloudScanResult scanResult,
|
|
int? cloudUid,
|
|
}) async {
|
|
final wrapper = await _fetchWrapper(cloudUid);
|
|
|
|
return CallbackBridge.fromCallback<StarCloudLock>(
|
|
executor: (onSuccess, onError) {
|
|
wrapper.pairDevice(
|
|
scanResult: scanResult,
|
|
onSuccess: onSuccess,
|
|
onError: onError,
|
|
);
|
|
},
|
|
);
|
|
}
|
|
|
|
Future<StarCloudLockList> getDeviceList({
|
|
required int pageNo,
|
|
required int pageSize,
|
|
int? cloudUid,
|
|
}) async {
|
|
final wrapper = await _fetchWrapper(cloudUid);
|
|
|
|
return CallbackBridge.fromCallback<StarCloudLockList>(
|
|
executor: (onSuccess, onError) {
|
|
wrapper.getDeviceList(
|
|
pageNo: pageNo,
|
|
pageSize: pageSize,
|
|
onSuccess: onSuccess,
|
|
onError: onError,
|
|
);
|
|
},
|
|
);
|
|
}
|
|
|
|
Future<StarCloudLock> getDevice({
|
|
required int lockId,
|
|
int? cloudUid,
|
|
}) async {
|
|
final wrapper = await _fetchWrapper(cloudUid);
|
|
|
|
return CallbackBridge.fromCallback<StarCloudLock>(
|
|
executor: (onSuccess, onError) {
|
|
wrapper.getDevice(
|
|
lockId: lockId,
|
|
onSuccess: onSuccess,
|
|
onError: onError,
|
|
);
|
|
},
|
|
);
|
|
}
|
|
|
|
Future<void> openLock({
|
|
required int lockId,
|
|
int? cloudUid,
|
|
}) async {
|
|
final wrapper = await _fetchWrapper(cloudUid);
|
|
|
|
return CallbackBridge.fromVoidCallback(
|
|
executor: (onSuccess, onError) {
|
|
wrapper.openLock(
|
|
lockId: lockId,
|
|
onSuccess: onSuccess,
|
|
onError: onError,
|
|
);
|
|
},
|
|
);
|
|
}
|
|
|
|
Future<void> closeLock({
|
|
required int lockId,
|
|
int? cloudUid,
|
|
}) async {
|
|
final wrapper = await _fetchWrapper(cloudUid);
|
|
|
|
return CallbackBridge.fromVoidCallback(
|
|
executor: (onSuccess, onError) {
|
|
wrapper.closeLock(
|
|
lockId: lockId,
|
|
onSuccess: onSuccess,
|
|
onError: onError,
|
|
);
|
|
},
|
|
);
|
|
}
|
|
|
|
Future<void> resetLock({
|
|
required int lockId,
|
|
int? cloudUid,
|
|
}) async {
|
|
final wrapper = await _fetchWrapper(cloudUid);
|
|
|
|
return CallbackBridge.fromVoidCallback(
|
|
executor: (onSuccess, onError) {
|
|
wrapper.resetLock(
|
|
lockId: lockId,
|
|
onSuccess: onSuccess,
|
|
onError: onError,
|
|
);
|
|
},
|
|
);
|
|
}
|
|
|
|
Future<void> updateAdminKeyboardPwd({
|
|
required int lockId,
|
|
required String pwd,
|
|
int? cloudUid,
|
|
}) async {
|
|
final wrapper = await _fetchWrapper(cloudUid);
|
|
|
|
return CallbackBridge.fromVoidCallback(
|
|
executor: (onSuccess, onError) {
|
|
wrapper.updateAdminKeyboardPwd(
|
|
lockId: lockId,
|
|
pwd: pwd,
|
|
onSuccess: onSuccess,
|
|
onError: onError,
|
|
);
|
|
},
|
|
);
|
|
}
|
|
} |