import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter/rendering.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:get/get.dart'; import 'package:get/get_core/src/get_main.dart'; import 'package:injectable/injectable.dart'; import 'package:keyboard/base/base_controller.dart'; import 'package:keyboard/module/about/about_page.dart'; import 'package:keyboard/module/feedback/feedback_page.dart'; import 'package:keyboard/module/new_user/new_user_page.dart'; import 'package:keyboard/module/store/discount/discount_view.dart'; import 'package:keyboard/module/user_info/user_info_page.dart'; import 'package:keyboard/utils/atmob_log.dart'; import '../../data/bean/keyboard_info.dart'; import '../../data/consts/build_config.dart'; import '../../data/consts/constants.dart'; import '../../data/consts/error_code.dart'; import '../../data/consts/web_url.dart'; import '../../data/repository/account_repository.dart'; import '../../dialog/login/login_dialog.dart'; import '../../plugins/keyboard_android_platform.dart'; import '../../plugins/keyboard_method_handler.dart'; import '../../resource/colors.gen.dart'; import '../../utils/app_info_util.dart'; import '../browser/browser_page.dart'; import '../intimacy_analyse/intimacy_analyse_page.dart'; import '../keyboard_guide/keyboard_guide_page.dart'; import '../new_user/result/new_user_result_page.dart'; import '../profile/profile_page.dart'; import '../store/discount/discount_controller.dart'; import '../store/suprise/surprise_dialog.dart'; import '../../resource/string.gen.dart'; import '../../utils/http_handler.dart'; import '../../utils/toast_util.dart'; import '../store/store_page.dart'; import '../store/ticket/discount_ticket_dialog.dart'; import '../user_profile/user_profile_page.dart'; @injectable class MineController extends BaseController { final AccountRepository accountRepository; MineController(this.accountRepository); bool get isLogin => accountRepository.isLogin.value; String? get phone => accountRepository.loginPhoneNum.value; String getUserName() { if (isLogin && phone != null && phone!.length > 4) { return '${StringName.mineAccountLoggedDesc}${phone!.substring(phone!.length - 4)}'; } else { return StringName.mineAccountNoLogin; } } clickVip() { debugPrint('clickVip'); StorePage.start(); } longClickVip() { if (isLogin) { UserInfoPage.start(); } else { LoginDialog.show(); } KeyboardAndroidPlatform.enableFloatingWindow(true); KeyboardAndroidPlatform.openInputMethodSettings(); } clickOnlineCustomerService() { if (isLogin) { debugPrint('clickOnlineCustomerService'); goToCustomerService(); } else { ToastUtil.show('请先登录'); LoginDialog.show(); return; } } void goToCustomerService() { final userInfo = accountRepository.userInfo.value; if (userInfo == null) { ToastUtil.show('网络异常,请稍后再试'); accountRepository.refreshUserInfo(); return; } int appPlatform = 0; if (Platform.isAndroid) { appPlatform = 1; } else if (Platform.isIOS) { appPlatform = 2; } //拼接字符串 String url = "${WebUrl.qiyuService}?ssid=${userInfo.ssid}&device_id=${userInfo.deviceId}&app_platform=$appPlatform&app_version=${appInfoUtil.appVersionName}&package_name=${appInfoUtil.packageName}&app_name=${appInfoUtil.appName}"; BrowserPage.start(url); } clickUserCard() { if (isLogin) { UserInfoPage.start(); } else { LoginDialog.show(); } } clickTutorials() { debugPrint('clickTutorials'); NewUserPage.start(); } clickPersonalProfile() { debugPrint('clickPersonalProfile'); UserProfilePage.start(); } clickFeedback() { if (isLogin) { debugPrint('clickOnlineCustomerService'); FeedbackPage.start(); } else { ToastUtil.show('请先登录'); LoginDialog.show(); return; } } clickAboutUs() { debugPrint('clickAboutUs'); AboutPage.start(); } }