Skip to content

Commit 93c8588

Browse files
KapdroidKapdroid
authored andcommitted
feat(network-checker): single utils in client
Signed-off-by: Kapdroid <kapdroid@Kapdroids-MacBook-Pro.local>
1 parent 24a6abf commit 93c8588

6 files changed

Lines changed: 28 additions & 48 deletions

File tree

example2/lib/di/injector.dart

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,14 @@ import 'package:fa_flutter_core/fa_flutter_core.dart';
33

44
import '../interceptor/auth_interceptor.dart';
55
import '../interceptor/logging_interceptor.dart';
6-
import '../interceptor/network/network_info.dart';
7-
import '../interceptor/network_interceptor.dart';
86

97
const _debugBaseUrl = 'https://fa-maapins-debug.fieldassist.io/api/';
108

119
final locator = GetIt.instance;
1210

1311
class Injector {
1412
Future<void> init() async {
15-
locator.registerLazySingleton<NetworkInfo>(
16-
() => NetworkInfoImpl(
17-
connectionChecker: InternetConnectionChecker.instance,
18-
),
19-
);
20-
2113
final interceptors = [
22-
MyNetworkInterceptor(networkInfo: locator()),
2314
MyAuthInterceptor(),
2415
// ErrorInterceptor(),
2516
MyLoggingInterceptor(),

example2/lib/interceptor/network/network_info.dart

Lines changed: 0 additions & 15 deletions
This file was deleted.

example2/lib/interceptor/network_interceptor.dart

Lines changed: 0 additions & 21 deletions
This file was deleted.

lib/fa_flutter_api_client.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,4 @@ export 'src/api_options/api_options.dart';
1111
export 'src/interceptors/cache_interceptor.dart';
1212
export 'src/interceptors/cancel_token_interceptor.dart';
1313
export 'src/interceptors/refresh_token_interceptor.dart';
14+
export 'src/utils/network_checker.dart';

lib/src/interceptors/network_interceptor.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import 'package:dio/dio.dart';
2+
import 'package:fa_flutter_core/fa_flutter_core.dart';
23

4+
import '../../fa_flutter_api_client.dart';
35
import '../exceptions/errors.dart';
46

57
abstract class NetworkInterceptor extends Interceptor {
@@ -8,7 +10,7 @@ abstract class NetworkInterceptor extends Interceptor {
810
RequestOptions options,
911
RequestInterceptorHandler handler,
1012
) async {
11-
final isConnected = await isInternetConnected();
13+
final isConnected = await NetworkConnectivityService.instance.isConnected;
1214
if (!isConnected) {
1315
// Intentional delay to mimic making server request behavior
1416
await Future.delayed(getDelay());
@@ -27,6 +29,4 @@ abstract class NetworkInterceptor extends Interceptor {
2729
Duration getDelay() {
2830
return Duration(milliseconds: 500);
2931
}
30-
31-
Future<bool> isInternetConnected();
3232
}

lib/src/utils/network_checker.dart

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import 'package:internet_connection_checker/internet_connection_checker.dart';
2+
3+
class NetworkConnectivityService {
4+
NetworkConnectivityService._internal()
5+
: connectionChecker = InternetConnectionChecker.createInstance(
6+
addresses: [
7+
AddressCheckOption(uri: Uri.parse('https://www.google.com')),
8+
AddressCheckOption(uri: Uri.parse('https://www.bing.com')),
9+
AddressCheckOption(uri: Uri.parse('https://www.amazon.com')),
10+
AddressCheckOption(uri: Uri.parse('https://www.cloudflare.com')),
11+
],
12+
);
13+
14+
static NetworkConnectivityService? _instance;
15+
16+
static NetworkConnectivityService get instance {
17+
_instance ??= NetworkConnectivityService._internal();
18+
return _instance!;
19+
}
20+
21+
final InternetConnectionChecker connectionChecker;
22+
23+
Future<bool> get isConnected => connectionChecker.hasConnection;
24+
}

0 commit comments

Comments
 (0)