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

53 lines
1.9 KiB
Dart

import 'dart:convert';
import 'package:firebase_remote_config/firebase_remote_config.dart';
import 'package:package_info_plus/package_info_plus.dart';
import 'package:wallpaperx/ads/interstitial_ad_manage.dart';
import 'package:wallpaperx/common/utils/log_print.dart';
import 'package:wallpaperx/common/utils/obj_util.dart';
import 'package:wallpaperx/common/utils/shared_util.dart';
class FirebaseRemoteConfigManager {
static Future init() async {
try {
final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
fetchTimeout: const Duration(seconds: 15),
minimumFetchInterval: Duration.zero,
));
remoteConfig.onConfigUpdated.listen((event) async {
remoteConfig.fetchAndActivate().then((e) {
_setIsOpenSetting(remoteConfig);
});
});
remoteConfig.fetchAndActivate().then((e) {
_setIsOpenSetting(remoteConfig);
});
} catch (e) {
LogPrint.d(e);
}
}
static void _setIsOpenSetting(FirebaseRemoteConfig remoteConfig) async {
RemoteConfigValue all = remoteConfig.getValue("isopen");
if (ObjUtil.isEmpty(all.asString())) {
UPCache.getInstance().setData<bool>("showAd", false);
UPCache.getInstance().setData<String>("version", "");
} else {
Map isOpen = jsonDecode(all.asString());
UPCache.getInstance().setData<bool>("showAd", isOpen["isadopen"]);
UPCache.getInstance().setData<String>("version", isOpen["version"]);
UPCache.getInstance().setData<String>("http", isOpen["http"]);
bool adSwitch = UPCache.getInstance().get<bool>('adSwitch') ?? false;
if (!adSwitch) {
final packageInfo = await PackageInfo.fromPlatform();
if (isOpen["version"] != packageInfo.version) {
UPCache.getInstance().setData<bool>("adSwitch", true);
InterstitialAdManager().loadAllAd();
}
}
}
}
}