Wallpaper-Genie/lib/page/launch/launch_controller.dart
Fson 23e35c5bd8 1.增加埋点
2.调整广告开关配置逻辑
2024-08-15 09:52:49 +08:00

92 lines
2.3 KiB
Dart

import 'dart:async';
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/shared_util.dart';
import 'package:wallpaperx/global/app_config.dart';
import 'package:wallpaperx/global/network_connectivity_service.dart';
import 'package:wallpaperx/routes/app_pages.dart';
class LaunchController extends GetxController with GetSingleTickerProviderStateMixin {
static LaunchController get to => Get.find<LaunchController>();
Timer? _timer;
/// 进度总时长
var timeTotal = 15.0 * 1000;
/// 当前进度
var currentProcess = 0.0.obs;
/// 进度每次变化值
var changeValue = 10;
@override
void onReady() async {
super.onReady();
await _checkGuaranteedDate();
Get.put(NetworkConnectivityService());
}
@override
void onClose() {
_stopTimer();
super.onClose();
}
void openNetworkDialog() {
Get.dialog(
barrierDismissible: false,
RemindDialog(
content: 'Please check if the wireless or cellular network is turned on?',
showCancelBtn: false,
enableBack: false,
confirmOnTap: () {
openAppSettings();
},
),
);
}
/// 检查是否到保底日期
Future<void> _checkGuaranteedDate() async {
bool adSwitch = UPCache.getInstance().get<bool>('adSwitch') ?? false;
if (!adSwitch) {
if (getGuaranteedDate().isBefore(DateTime.now())) {
UPCache.getInstance().setData<bool>("adSwitch", true);
}
}
}
/// 开始定时器
void startTimer() {
_timer = Timer.periodic(const Duration(milliseconds: 10), (Timer t) async {
if (currentProcess.value + changeValue >= timeTotal) {
currentProcess.value = timeTotal;
_stopTimer();
_openHome();
return;
}
currentProcess.value += changeValue;
});
}
/// 停止定时器
void _stopTimer() {
_timer?.cancel();
_timer = null;
}
/// 修改进度变化值
void editChangeValue() {
changeValue = 300;
}
void _openHome() {
InterstitialAdManager().showAdIfReady(
showLaunchAd: true,
onTap: () {
Get.offNamed(AppPages.home);
},
);
}
}