mirror of
https://mirror.ghproxy.com/https://github.com/StarCitizenToolBox/app.git
synced 2024-12-23 06:33:43 +08:00
45 lines
1.5 KiB
Dart
45 lines
1.5 KiB
Dart
// ignore_for_file: use_build_context_synchronously
|
||
|
||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||
|
||
import 'api/api.dart';
|
||
import 'base/ui_model.dart';
|
||
import 'common/conf.dart';
|
||
import 'ui/settings/upgrade_dialog_ui.dart';
|
||
import 'ui/settings/upgrade_dialog_ui_model.dart';
|
||
|
||
final globalUIModel = AppGlobalUIModel();
|
||
final globalUIModelProvider = ChangeNotifierProvider((ref) => globalUIModel);
|
||
|
||
class AppGlobalUIModel extends BaseUIModel {
|
||
Future<bool> checkUpdate(BuildContext context, {bool init = true}) async {
|
||
if (!init) {
|
||
try {
|
||
AppConf.networkVersionData = await Api.getAppVersion();
|
||
} catch (_) {}
|
||
}
|
||
await Future.delayed(const Duration(milliseconds: 100));
|
||
if (AppConf.networkVersionData == null) {
|
||
showToast(context,
|
||
"检查更新失败!请检查网络连接... \n进入离线模式.. \n\n请谨慎在离线模式中使用。 \n当前版本构建日期:${AppConf.appVersionDate}\n QQ群:940696487");
|
||
return false;
|
||
}
|
||
if (((AppConf.networkVersionData?.lastVersionCode) ?? 0) >
|
||
AppConf.appVersionCode) {
|
||
// need update
|
||
final r = await showDialog(
|
||
dismissWithEsc: false,
|
||
context: context,
|
||
builder: (context) => BaseUIContainer(
|
||
uiCreate: () => UpgradeDialogUI(),
|
||
modelCreate: () => UpgradeDialogUIModel()));
|
||
if (r != true) {
|
||
showToast(context, "获取更新信息失败,请稍后重试。");
|
||
return false;
|
||
}
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
}
|