Files
GSFV2/gsf/lib/view_model/connectivity.dart
2024-04-22 23:50:28 -07:00

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();
}
}