71 lines
2.1 KiB
Dart
71 lines
2.1 KiB
Dart
import 'dart:async';
|
|
|
|
import 'package:connectivity_plus/connectivity_plus.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:get/get.dart';
|
|
|
|
class ConnectivityController extends GetxController {
|
|
var connectionType = "".obs;
|
|
final Connectivity connectivity = Connectivity();
|
|
late StreamSubscription streamSubscription;
|
|
RxBool isConnected = true.obs;
|
|
@override
|
|
void onInit() {
|
|
super.onInit();
|
|
getConnctionStatus();
|
|
streamSubscription =
|
|
connectivity.onConnectivityChanged.listen(getConnectionType);
|
|
}
|
|
|
|
void getConnctionStatus() async {
|
|
ConnectivityResult connectionResult;
|
|
try {
|
|
connectionResult = await connectivity.checkConnectivity();
|
|
// print(connectionResult);
|
|
getConnectionType(connectionResult);
|
|
} catch (e) {
|
|
Get.snackbar("excepetion", "Error during connectivity cheking");
|
|
}
|
|
}
|
|
|
|
void getConnectionType(connectionResult) {
|
|
if (connectionResult == ConnectivityResult.wifi) {
|
|
connectionType.value = "Wifi";
|
|
isConnected.value = true;
|
|
// Get.snackbar('Wifi c ', 'Please check you\'r Inernt connection');
|
|
Get.snackbar(
|
|
'Internet Connection ',
|
|
'Internet Connected',
|
|
backgroundColor: Colors.white,
|
|
snackPosition: SnackPosition.BOTTOM,
|
|
);
|
|
} else if (connectionResult == ConnectivityResult.mobile) {
|
|
connectionType.value = "Mobile Internet";
|
|
isConnected.value = true;
|
|
// print('Mobile Internet');
|
|
// Get.snackbar('No Internt ', 'Please check you\'r Inernt connection');
|
|
Get.snackbar(
|
|
'Internet Connection',
|
|
'Internet Connected',
|
|
backgroundColor: Colors.white,
|
|
snackPosition: SnackPosition.BOTTOM,
|
|
);
|
|
} else {
|
|
connectionType.value = "No Internet";
|
|
isConnected.value = false;
|
|
Get.snackbar(
|
|
'No Internet',
|
|
'Please check you\'r Internet connection',
|
|
backgroundColor: Colors.white,
|
|
snackPosition: SnackPosition.BOTTOM,
|
|
);
|
|
}
|
|
}
|
|
@override
|
|
void onClose() {
|
|
streamSubscription.cancel();
|
|
super.onClose();
|
|
}
|
|
|
|
}
|