retryFailedrequests method
Implementation
Future<bool> retryFailedrequests(
{required BuildContext context,
void Function(double)? onProgress}) async {
debugPrint('retry failed requests started');
try {
await API().tryNetwork(requestType: Helper.SimulatedRequestType.PUT);
} catch (e) {
showToast(S.current!.noViableInternetConnection);
return false;
}
bool notificationsAllowed = await allowNotificationGuard(
context,
S.of(context).weCanSendYouANotificationAboutTheSyncProgress,
);
bool success = false;
ReceivePort progressReceiver = ReceivePort();
var isolateInputData = _RetryFailedRequestsIsolateInput(
rootIsolateToken: RootIsolateToken.instance!,
progressSender: progressReceiver.sendPort,
notificationsAllowed: notificationsAllowed,
);
final ss = progressReceiver.listen((msg) {
final (progress, _success) = msg as (double, bool?);
if (_success != null) {
success = _success;
progressReceiver.close();
} else {
onProgress?.call(progress);
}
}); // as StreamSubscription<(double, bool)>;
final runInIsolate = false &&
!kIsWeb /*FIXME: fix running in isolates and then remove: */ &&
false;
// ss.
if (runInIsolate)
await Isolate.spawn(_retryFailedRequestsIsolate, isolateInputData);
else
await _retryFailedRequestsIsolate(isolateInputData);
await ss.asFuture();
return success;
}