mirror of
https://mirror.ghproxy.com/https://github.com/StarCitizenToolBox/app.git
synced 2024-12-23 12:23: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;
|
|||
|
}
|
|||
|
}
|