import 'dart:async'; import 'dart:io'; import 'package:connectivity_plus/connectivity_plus.dart'; import 'package:device_info_plus/device_info_plus.dart'; import 'package:firebase_core/firebase_core.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import 'package:permission_handler/permission_handler.dart'; import 'package:regroup/Utils/dialogs.dart'; import 'package:regroup/Utils/Common/NoInternet.dart'; import 'package:regroup/firebase_options.dart'; import 'package:regroup/resources/routes/route_name.dart'; import 'package:regroup/resources/routes/routes.dart'; Future main() async { WidgetsFlutterBinding.ensureInitialized(); await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform); SystemChrome.setPreferredOrientations([ DeviceOrientation.portraitUp, ]).then((value) => // runApp(MyApp()) runApp(const MyApp()) // StatsFl( // align: Alignment.center, // width: 200, // height: 100, // child: const MyApp())), ); } final streamController = StreamController.broadcast(); class MyApp extends StatefulWidget { const MyApp({super.key}); @override State createState() => _MyAppState(); } class _MyAppState extends State with WidgetsBindingObserver { // var _connectionStatus = ConnectivityResult.values.toString(); // final Connectivity _connectivity = Connectivity(); // late StreamSubscription _connectivitySubscription; List _connectionStatus = [ConnectivityResult.none]; final Connectivity _connectivity = Connectivity(); late StreamSubscription> _connectivitySubscription; // Future checkInternet() async { // final connectivityResult = await (Connectivity().checkConnectivity()); // if (connectivityResult == ConnectivityResult.wifi || // connectivityResult == ConnectivityResult.mobile) { // setState(() { // _connectionStatus = connectivityResult.toString(); // print("has internet"); // }); // } else { // setState(() { // _connectionStatus = connectivityResult.toString(); // print("no internet"); // }); // } // } Future initConnectivity() async { late List result; // Platform messages may fail, so we use a try/catch PlatformException. try { result = await _connectivity.checkConnectivity(); print("initconnectivitity"); } on PlatformException catch (e) { print("errrror"); print(e); return; } if (!mounted) { return Future.value(null); } return _updateConnectionStatus(result); } // Future _updateConnectionStatus(List result) async { // setState(() { // _connectionStatus = result.toString(); // }); // // ignore: avoid_print // print('Connectivity changed: $_connectionStatus'); // } Future _updateConnectionStatus(List result) async { // setState(() { // _connectionStatus = result; // }); if (result.contains(ConnectivityResult.wifi) || result.contains(ConnectivityResult.mobile)) { setState(() { _connectionStatus = result; Get.back(result: true); }); } else { setState(() { _connectionStatus = result; Get.toNamed(RouteName.nointernet); }); // Get.toNamed(RouteName.nointernet); } // ignore: avoid_print print('Connectivity changed: $_connectionStatus'); } Future _getStoragePermission() async { DeviceInfoPlugin plugin = DeviceInfoPlugin(); AndroidDeviceInfo android = await plugin.androidInfo; if (android.version.sdkInt < 33) { if (await Permission.storage.request().isGranted) { // setState(() { // permissionGranted = true; // }); } else if (await Permission.storage.request().isPermanentlyDenied) { await openAppSettings(); await utils.showToast("Permission denied."); } // else if (await Permission.audio.request().isDenied) { // // setState(() { // // permissionGranted = false; // // }); // } } else { if (await Permission.photos.request().isGranted) { // await utils.showToast("Permission granted."); // setState(() { // permissionGranted = true; // }); } else if (await Permission.photos.request().isPermanentlyDenied) { await openAppSettings(); await utils.showToast("Permission denied."); } else if (await Permission.photos.request().isDenied) { await openAppSettings(); await utils.showToast("Permission denied."); // setState(() { // permissionGranted = false; // }); } } } @override void initState() { initConnectivity(); WidgetsBinding.instance.addObserver(this); _connectivitySubscription = _connectivity.onConnectivityChanged.listen(_updateConnectionStatus); //do not remove this coomented code if (Platform.isAndroid) { _getStoragePermission(); } super.initState(); } @override void dispose() { _connectivitySubscription.cancel(); super.dispose(); } @override Widget build(BuildContext context) { return ScreenUtilInit( builder: (BuildContext context, Widget? child) => GetMaterialApp( title: 'Regroup', theme: ThemeData( primarySwatch: Colors.grey, fontFamily: 'Cambria', ), debugShowCheckedModeBanner: false, initialRoute: RouteName.profiletabbusguest, getPages: AppRoutes.appRoutes(), ), designSize: const Size(390, 844), ); } }