disconnectFromPlatform static method
Future<void>
disconnectFromPlatform(
)
Implementation
static Future<void> disconnectFromPlatform() async {
_instance.socketService.disableRetry();
const int timeoutInSec = 10;
try {
if (_instance.requiredDevices.contains(DeviceType.bp)) {
for (var dev in _instance.platformDevices.bpDevices) {
final releaseRes = await dev.release().timeout(const Duration(seconds: timeoutInSec));
log("$releaseRes");
}
}
if (_instance.requiredDevices.contains(DeviceType.bt)) {
for (var dev in _instance.platformDevices.btDevices) {
final releaseRes = await dev.release().timeout(const Duration(seconds: timeoutInSec));
log("$releaseRes");
}
}
if (_instance.requiredDevices.contains(DeviceType.bc)) {
for (var dev in _instance.platformDevices.bcDevices) {
final releaseRes = await dev.release().timeout(const Duration(seconds: timeoutInSec));
log("$releaseRes");
}
}
if (_instance.requiredDevices.contains(DeviceType.be)) {
for (var dev in _instance.platformDevices.beDevices) {
final releaseRes = await dev.release().timeout(const Duration(seconds: timeoutInSec));
log("$releaseRes");
}
}
if (_instance.requiredDevices.contains(DeviceType.bg)) {
for (var dev in _instance.platformDevices.bgDevices) {
final releaseRes = await dev.release().timeout(const Duration(seconds: timeoutInSec));
log("$releaseRes");
}
}
if (_instance.requiredDevices.contains(DeviceType.ms)) {
for (var dev in _instance.platformDevices.msDevices) {
final releaseRes = await dev.release().timeout(const Duration(seconds: timeoutInSec));
log("$releaseRes");
}
}
if (_instance.requiredDevices.contains(DeviceType.oc)) {
for (var dev in _instance.platformDevices.ocDevices) {
final releaseRes = await dev.release().timeout(const Duration(seconds: timeoutInSec));
log("$releaseRes");
}
}
if (_instance.requiredDevices.contains(DeviceType.pr)) {
for (var dev in _instance.platformDevices.prDevices) {
final releaseRes = await dev.release().timeout(const Duration(seconds: timeoutInSec));
log("$releaseRes");
}
}
if (_instance.requiredDevices.contains(DeviceType.zi)) {
for (var dev in _instance.platformDevices.ziDevices) {
final releaseRes = await dev.release().timeout(const Duration(seconds: timeoutInSec));
log("$releaseRes");
}
}
if (_instance.requiredDevices.contains(DeviceType.zl)) {
for (var dev in _instance.platformDevices.zlDevices) {
final releaseRes = await dev.release().timeout(const Duration(seconds: timeoutInSec));
log("$releaseRes");
}
}
if (_instance.requiredDevices.contains(DeviceType.dd)) {
for (var dev in _instance.platformDevices.ddDevices) {
final releaseRes = await dev.release().timeout(const Duration(seconds: timeoutInSec));
log("$releaseRes");
}
}
// for (var dev in _instance.platformDevices.ziDevices) {
// final releaseRes = await dev.release().timeout(const Duration(seconds: timeoutInSec));
// log("$releaseRes");
// }
// for (var dev in _instance.platformDevices.zlDevices) {
// final releaseRes = await dev.release().timeout(const Duration(seconds: timeoutInSec));
// log("$releaseRes");
// }
} catch (e) {
log("$e");
}
log("Sending Bye Request");
ByeRequest req = ByeRequest(messageID: currentMessageID);
try {
String? byeResponseXML = await send(xml: req.toXML()).timeout(const Duration(seconds: 5), onTimeout: () {
_instance.socketService.disconnect();
throw CuppsCommandException("No Response to Bye from Platform");
});
ByeResponse byeRes = ByeResponse.fromXML(byeResponseXML);
if (byeRes.result.toLowerCase() == "ok") {
_instance.socketService.disconnect();
} else {
log("No Response to Bye from platform");
_instance.socketService.disconnect();
}
} catch (e) {
_instance.socketService.disconnect();
}
}