DeviceManager constructor
DeviceManager(
- MethodChannel _channel
Implementation
DeviceManager(
this._channel,
) {
_channel.setMethodCallHandler((call) async {
switch (call.method) {
case 'sendScan':
try {
final decodedArguments = jsonDecode(call.arguments as String);
final error = _mapError(decodedArguments);
if (error != null) {
_scanSubject.addError(error);
} else {
_scanSubject.sink.add(ScannedDevice.fromMap(decodedArguments));
}
} catch (exception, stackTrace) {
Fimber.i(exception.toString(), stacktrace: stackTrace);
_scanSubject.addError(UnknownException("$exception $stackTrace"));
}
break;
case "sendPair":
try {
final decodedArguments = jsonDecode(call.arguments as String);
final error = _mapError(decodedArguments);
if (error != null) {
_scanSubject.addError(error);
} else {
_pairSubject.sink
.add((call.arguments as String).toLowerCase() == "true");
}
} catch (exception, stackTrace) {
Fimber.i(exception.toString(), stacktrace: stackTrace);
_scanSubject.addError(UnknownException("$exception $stackTrace"));
}
break;
case "sendGlucoseMeterReading":
try {
final decodedArguments = jsonDecode(call.arguments as String);
final error = _mapError(decodedArguments);
if (error != null) {
_scanSubject.addError(error);
} else {
_glucoseReadSubject.sink.add(
decodedArguments
.map((e) => Platform.isIOS
? _sampleFromSwiftJson(e)
: _sampleFromJson(e))
.whereType<QuantitySample>()
.toList(),
);
}
} catch (exception, stackTrace) {
Fimber.i(exception.toString(), stacktrace: stackTrace);
_scanSubject.addError(UnknownException("$exception $stackTrace"));
}
break;
case "sendBloodPressureReading":
try {
final decodedArguments = jsonDecode(call.arguments as String);
final error = _mapError(decodedArguments);
if (error != null) {
_scanSubject.addError(error);
} else {
_bloodPressureSubject.sink.add(
decodedArguments
.map((e) => Platform.isIOS
? _bloodPressureSampleFromSwiftJson(e)
: _bloodPressureSampleFromJson(e))
.whereType<BloodPressureSample>()
.toList(),
);
}
} catch (exception, stackTrace) {
Fimber.i(exception.toString(), stacktrace: stackTrace);
_scanSubject.addError(UnknownException("$exception $stackTrace"));
}
break;
default:
break;
}
return null;
});
}