import 'package:cashier_reserve/common/print/print.dart'; import 'package:cashier_reserve/common/push/push.dart'; import 'package:cashier_reserve/data_model/login/login_result.dart'; import 'package:cashier_reserve/login/login_view.dart'; import 'package:cashier_reserve/model/reserve_model.dart'; import 'package:cashier_reserve/model/version_model.dart'; import 'package:cashier_reserve/update_version/update_version_view.dart'; import 'package:easy_refresh/easy_refresh.dart'; import 'package:package_info_plus/package_info_plus.dart'; import '../base/ui.dart'; import '../channel/channel_event.dart'; import '../utils/func_tools.dart'; import 'hive_manager.dart'; class AppManager { static BuildContext? globalContext; static bool _isAlertLogin = false; static String _smsContent = ""; static Future initThirdPackage() async { MyEventChannel.startListener(); await HiveManager.initHive(); EasyRefresh.defaultHeaderBuilder = () => const ClassicHeader( dragText: "下拉刷新", readyText: "释放刷新", armedText: "正在刷新", processingText: "正在刷新", processedText: "刷新完成", noMoreText: "没有更多数据了", failedText: "刷新失败", messageText: "上次刷新时间:%T", showText: true, showMessage: true, iconDimension: 30, spacing: 10, ); } static void setGlobalContext(BuildContext context) { globalContext = context; } static bool isLogin() { String token = HiveManager.getUserToken(); if (isEmptyString(token)) { gotoLogin(); return false; } return true; } static void gotoLogin() { if (_isAlertLogin) { return; } _isAlertLogin = true; while (Navigator.of(globalContext!).canPop()) { Navigator.of(globalContext!).pop(); } YJPush.presentWidget(globalContext!, const LoginView()); } static void checkAppVersion() async { final res = await VersionModel.requestNewVersionInfo(); yjPrint(res); if (res == null || res.version == null) { return; } PackageInfo packageInfo = await PackageInfo.fromPlatform(); yjPrint("version == ${packageInfo.version}"); List serverList = res.version!.split("."); List localList = packageInfo.version.split("."); if (serverList.length != 3 || localList.length != 3) { return; } int serverVersion = int.parse(serverList[0]) * 10000 + int.parse(serverList[1]) * 100 + int.parse(serverList[2]); int localVersion = int.parse(localList[0]) * 10000 + int.parse(localList[1]) * 100 + int.parse(localList[2]); if (serverVersion <= localVersion) { return; } yjPrint("serverVersion == $serverVersion, localVersion == $localVersion"); YJPush.presentWidget(globalContext!, UpdateVersionView(versionModel: res,)); } static void disposeLoginWidget() { _isAlertLogin = false; } static bool isShowLoginView() { return _isAlertLogin; } static String getUserToken() { return HiveManager.getUserToken(); } static void loginSuccess(LoginResult? r) { HiveManager.setUserToken(r?.token ?? ''); HiveManager.setShopId((r?.shopId ?? '').toString()); HiveManager.setShopName(r?.shopName ?? ''); HiveManager.setShopLogo(r?.logo ?? ''); HiveManager.setUserInfo(r?.user?.toString() ?? ''); disposeLoginWidget(); Navigator.of(globalContext!).pop(); } static Future loadReserveSms() async { if (_smsContent.isNotEmpty) { return _smsContent; } _smsContent = await ReserveModel.getReserveSms(); return _smsContent; } }