FSX-Translate/lib/common/hive/remote_config_box.dart
2024-08-19 15:11:49 +08:00

57 lines
1.3 KiB
Dart

// Author: fengshengxiong
// Date: 2024/5/8
// Description: 远程配置数据盒子
import 'dart:convert';
import 'package:flutter_translate/common/hive/hive.dart';
import 'package:flutter_translate/common/utils/log_utils.dart';
import 'package:flutter_translate/common/utils/obj_util.dart';
import 'package:flutter_translate/global/app_config.dart';
class RemoteConfigBox {
RemoteConfigBox._();
static final RemoteConfigBox _instance = RemoteConfigBox._();
factory RemoteConfigBox() {
return _instance;
}
/// isOpenKey
final _isOpenKey = 'isOpenKey';
/// 广告开关
final _adSwitchKey = 'adSwitchKey';
/// 声明盒子
/// 注意, main函数中这个盒子已经打开, 可以进行存储操作
final _box = getRemoteConfigBox();
Future<void> putIsOpen(String isOpen) async {
return await _box.put(_isOpenKey, isOpen);
}
/// 获取远程版本
String? getVersion() {
String? isOpen = _box.get(_isOpenKey);
String? version;
if (ObjUtil.isNotEmpty(isOpen)) {
try {
version = jsonDecode(isOpen!)['version'];
} catch (e) {
Log.d(e.toString());
}
}
return version;
}
Future<void> putAdSwitch(bool adSwitch) async {
return await _box.put(_adSwitchKey, adSwitch);
}
bool getAdSwitch() {
return _box.get(_adSwitchKey, defaultValue: adSwitch);
}
}