// Author: fengshengxiong // Date: 2024/6/26 // Description: 网络连接服务 import 'dart:async'; import 'package:connectivity_plus/connectivity_plus.dart'; import 'package:get/get.dart'; import 'package:permission_handler/permission_handler.dart'; import 'package:wallpaperx/ads/interstitial_ad_manage.dart'; import 'package:wallpaperx/common/components/dialog/remind_dialog.dart'; import 'package:wallpaperx/common/utils/log_print.dart'; import 'package:wallpaperx/common/utils/shared_util.dart'; import 'package:wallpaperx/firebase/firebase_remote_config_manager.dart'; import 'package:wallpaperx/page/launch/launch_controller.dart'; class NetworkConnectivityService extends GetxService { StreamSubscription>? subscription; var isShowNetworkDialog = false; @override void onInit() { super.onInit(); subscription = Connectivity().onConnectivityChanged.listen((List result) async { LogPrint.d('当前网络连接类型:$result'); if (result.contains(ConnectivityResult.none)) { _checkNetworkDialog(); isShowNetworkDialog = true; } else { if (Get.isRegistered()) { if (LaunchController.to.timer == null) { LaunchController.to.startTimer(); } } if (Get.isDialogOpen != null && Get.isDialogOpen! && isShowNetworkDialog) { Get.back(); isShowNetworkDialog = false; } bool adSwitch = UPCache.getInstance().get('adSwitch') ?? false; if (adSwitch) { InterstitialAdManager().loadAllAd(); } await FirebaseRemoteConfigManager.init(); } }); } @override void onClose() { subscription?.cancel(); super.onClose(); } void _checkNetworkDialog() { Get.dialog( barrierDismissible: false, RemindDialog( content: 'No network connection\nPlease check the current network', showCancelBtn: false, enableBack: false, confirmOnTap: () { openAppSettings(); }, ), ); } }