import 'dart:developer'; import 'dart:io'; import 'package:diplomaticquarterapp/config/config.dart'; import 'package:diplomaticquarterapp/core/service/client/base_app_client.dart'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/uitl/PlatformBridge.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/utils.dart'; import 'package:diplomaticquarterapp/widgets/dialogs/alert_dialog.dart'; import 'package:diplomaticquarterapp/widgets/dialogs/confirm_dialog.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:wifi/wifi.dart'; import 'gif_loader_dialog_utils.dart'; class HMGNetworkConnectivity { final BuildContext context; final Function callBack; final String SSID = "HMG-MobileApp"; HMGNetworkConnectivity(this.context, this.callBack); void checkAndConnectIfNoInternet() async { String pingUrl = "$BASE_URL$PING_SERVICE"; // pingUrl = "https://captive.apple.com"; String ssid = await Wifi.ssid.catchError((error) { log(error.toString()); }); bool alreadyConnected = ssid == SSID; BaseAppClient().simpleGet(pingUrl, onSuccess: (dynamic response, int statusCode) { log("Having internet with status code: $statusCode"); }, onFailure: (String error, int statusCode) { if (alreadyConnected) showFailDailog(TranslationBase.of(context).failedToAccessHmgServices); else { confirmFromUser(); } }); } void confirmFromUser() { TranslationBase translator = TranslationBase.of(context); void doIt() { ConfirmDialog( context: context, confirmMessage: translator.wantToConnectWithHmgNetwork, okText: translator.yes, okFunction: () { ConfirmDialog.closeAlertDialog(context); callBack(); }, cancelText: translator.no, cancelFunction: () { ConfirmDialog.closeAlertDialog(context); }).showAlertDialog(context); } if (Platform.isAndroid) Wifi.list(SSID).then((value) { if (!value.indexWhere((element) => element.ssid == SSID).isNegative) doIt(); }); else doIt(); } void showFailDailog(String message) { TranslationBase translator = TranslationBase.of(context); AlertDialogBox( context: context, okText: translator.ok, confirmMessage: message, okFunction: () { AlertDialogBox.closeAlertDialog(context); }).showAlertDialog(context); } // void next() { // if (Platform.isIOS) { // confirmFromUser_iOS(); // } else if (Platform.isAndroid) { // confirmFromUser(); // } // } // void confirmFromUser_iOS() { // String message = "You don't have internet access, Do you want to connect with HMG Network to use App.\n\nMake sure you are in HMG Network range"; // ConfirmDialog( // context: context, // confirmMessage: message, // okText: "Yes", // okFunction: () { // ConfirmDialog.closeAlertDialog(context); // callBack(); // }, // cancelText: "No", // cancelFunction: () { // ConfirmDialog.closeAlertDialog(context); // }).showAlertDialog(context); // } // void connect_Android() { // // enable the Wifi if its off // PlatformBridge() // .enableWifiIfNot() // .then((value) => { // if (value == true) // { // callBack() // // Wifi.list(SSID) // // .then((value1) => { // // if (value1.length > 0) {callBack()} else {log("No HMG network in range")} // // }) // // .catchError((e) { // // log(e); // // }) // } // }) // .catchError((error) { // showFailDailog(error); // }); // } }