51 lines
1.6 KiB
Dart
51 lines
1.6 KiB
Dart
// Author: fengshengxiong
|
|
// Date: 2024/6/26
|
|
// Description: 网络连接服务
|
|
|
|
import 'dart:async';
|
|
|
|
import 'package:connectivity_plus/connectivity_plus.dart';
|
|
import 'package:get/get.dart';
|
|
import 'package:wallpaperx/ads/interstitial_ad_manage.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<List<ConnectivityResult>>? subscription;
|
|
var isShowNetworkDialog = false;
|
|
|
|
@override
|
|
void onInit() {
|
|
super.onInit();
|
|
subscription = Connectivity().onConnectivityChanged.listen((List<ConnectivityResult> result) async {
|
|
LogPrint.d('当前网络连接类型:$result');
|
|
if (result.contains(ConnectivityResult.none)) {
|
|
|
|
if (Get.isRegistered<LaunchController>() && !isShowNetworkDialog) {
|
|
LaunchController.to.openNetworkDialog();
|
|
isShowNetworkDialog = true;
|
|
}
|
|
} else {
|
|
if (Get.isRegistered<LaunchController>()) {
|
|
if (isShowNetworkDialog) {
|
|
Get.back();
|
|
}
|
|
LaunchController.to.startTimer();
|
|
}
|
|
bool adSwitch = UPCache.getInstance().get<bool>('adSwitch') ?? false;
|
|
if (adSwitch) {
|
|
InterstitialAdManager().loadAllAd();
|
|
}
|
|
await FirebaseRemoteConfigManager.init();
|
|
}
|
|
});
|
|
}
|
|
|
|
@override
|
|
void onClose() {
|
|
subscription?.cancel();
|
|
super.onClose();
|
|
}
|
|
} |