cashier_reserve_app/lib/common/manager/app_manager.dart

130 lines
3.6 KiB
Dart

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<void> 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<String> serverList = res.version!.split(".");
List<String> 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<String> loadReserveSms() async {
if (_smsContent.isNotEmpty) {
return _smsContent;
}
_smsContent = await ReserveModel.getReserveSms();
return _smsContent;
}
}