import 'package:get/get.dart'; import '../../../common/LogHelper.dart'; import '../../../common/SharedPreferencesUtil.dart'; import '../../../data/model/LocalUser.dart'; import '../../../data/model/NodeMode.dart'; import '../../../data/model/SysConfig.dart'; import '../../../data/model/UserMode.dart'; import '../../../global_controller/GlobalController.dart'; import '../../../network/api_service.dart'; import '../../../routes/app_pages.dart'; enum ImageType { CUSTOMER, PROMOTION, TUTORIAL, RENEWAL, } class HomeController extends GetxController { //TODO: Implement HomeController var isLoading = false.obs; var sysConfig = SysConfig().obs; var localUsers = LocalUser().obs; var userMode = User().obs; var errorMsg = ''.obs; var selectNode = '选择节点'.obs; var nodeModes = []; late final GlobalController globalController ; final Map imageMap = { ImageType.CUSTOMER: "images/main/customer.png", ImageType.PROMOTION: "images/main/promotion.png", ImageType.TUTORIAL: "images/main/tutorial.png", ImageType.RENEWAL: "images/main/renewal.png", }; void onImageTap(ImageType type) { if(type == ImageType.CUSTOMER){ } else if (type == ImageType.PROMOTION){ } else if (type == ImageType.TUTORIAL){ } else if (type == ImageType.RENEWAL){ } LogHelper().d("${imageMap[type]} tapped as ${type.toString().split('.').last}"); } // Future fetchNodes() async { // try { // isLoading.value = true; // nodeModes.clear(); // nodeModes = await ApiService().getNode("/api/client/v4/nodes?vless=1"); // final globalController = Get.put(GlobalController()); // // globalController.nodeModes.value = nodeModes; // // LogHelper().d(nodeModes.toList()); // //loadSelectedNode(); // } catch (e) { // errorMsg.value = e.toString(); // } finally { // isLoading.value = false; // } // } Future fetchSysConfig() async { try { Map? data = await SharedPreferencesUtil().getObject("sysconfig"); if(data != null){ sysConfig.value = SysConfig.fromJson(data); LogHelper().d(sysConfig.value.toJson()); } globalController.fetchNodes(); } catch (e) { errorMsg.value = e.toString(); } finally { } } Future fetchUserinfo() async { try { isLoading.value = true; userMode.value = await ApiService().userinfo("/api/client/v4/userinfo"); } catch (e) { errorMsg.value = e.toString(); } finally { isLoading.value = false; } } //await SharedPreferencesUtil().setObject("localUser", userModes.toJson()); Future fetchLocalUser() async { try { Map? userdata = await SharedPreferencesUtil().getObject("localUser"); if(userdata != null){ localUsers.value = LocalUser.fromJson(userdata); LogHelper().d(sysConfig.value.toJson()); } } catch (e) { errorMsg.value = e.toString(); } finally { } } final count = 0.obs; @override void onInit() { super.onInit(); globalController = Get.put(GlobalController()); fetchSysConfig(); fetchLocalUser(); fetchUserinfo(); } @override void onReady() { super.onReady(); } @override void onClose() { super.onClose(); } bool GetEnable() => userMode.value.enable == 1; String GetUserName() => localUsers.value.email.toString(); String GetExpiredAt() => "到期时间:${userMode.value.expiredAt}"; String GetTraffic() => "用户流量:${userMode.value.unusedTraffic}"; String GetNode() => selectNode.value; void RouteNode() => Get.toNamed(Routes.NODE); }