Add simple retry logic to the base provider's fetch method

This should take care of simple transient errors, or other network hiccups
that might happen on the user's device.
This commit is contained in:
Roland Geider
2026-01-14 13:59:41 +01:00
parent 5844a370d3
commit 574ef3d0b5
16 changed files with 536 additions and 39 deletions

View File

@@ -201,9 +201,17 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider {
as Uri);
@override
_i20.Future<dynamic> fetch(Uri? uri) =>
_i20.Future<dynamic> fetch(
Uri? uri, {
int? maxRetries = 3,
Duration? initialDelay = const Duration(milliseconds: 500),
}) =>
(super.noSuchMethod(
Invocation.method(#fetch, [uri]),
Invocation.method(
#fetch,
[uri],
{#maxRetries: maxRetries, #initialDelay: initialDelay},
),
returnValue: _i20.Future<dynamic>.value(),
)
as _i20.Future<dynamic>);

View File

@@ -112,9 +112,17 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider {
as Uri);
@override
_i5.Future<dynamic> fetch(Uri? uri) =>
_i5.Future<dynamic> fetch(
Uri? uri, {
int? maxRetries = 3,
Duration? initialDelay = const Duration(milliseconds: 500),
}) =>
(super.noSuchMethod(
Invocation.method(#fetch, [uri]),
Invocation.method(
#fetch,
[uri],
{#maxRetries: maxRetries, #initialDelay: initialDelay},
),
returnValue: _i5.Future<dynamic>.value(),
)
as _i5.Future<dynamic>);

View File

@@ -151,9 +151,17 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider {
as Uri);
@override
_i11.Future<dynamic> fetch(Uri? uri) =>
_i11.Future<dynamic> fetch(
Uri? uri, {
int? maxRetries = 3,
Duration? initialDelay = const Duration(milliseconds: 500),
}) =>
(super.noSuchMethod(
Invocation.method(#fetch, [uri]),
Invocation.method(
#fetch,
[uri],
{#maxRetries: maxRetries, #initialDelay: initialDelay},
),
returnValue: _i11.Future<dynamic>.value(),
)
as _i11.Future<dynamic>);

View File

@@ -112,9 +112,17 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider {
as Uri);
@override
_i5.Future<dynamic> fetch(Uri? uri) =>
_i5.Future<dynamic> fetch(
Uri? uri, {
int? maxRetries = 3,
Duration? initialDelay = const Duration(milliseconds: 500),
}) =>
(super.noSuchMethod(
Invocation.method(#fetch, [uri]),
Invocation.method(
#fetch,
[uri],
{#maxRetries: maxRetries, #initialDelay: initialDelay},
),
returnValue: _i5.Future<dynamic>.value(),
)
as _i5.Future<dynamic>);