import 'package:get/get.dart'; import 'package:kaer_with_panels/app/common/app_run_data.dart'; import 'package:kaer_with_panels/app/widgets/dialogs/kr_dialog.dart'; import 'package:kaer_with_panels/app/routes/app_pages.dart'; import 'package:kaer_with_panels/app/utils/kr_log_util.dart'; import 'package:kaer_with_panels/app/localization/app_translations.dart'; /// 订阅导航工具类 /// 用于统一处理订阅相关的导航逻辑 class KRSubscribeNavigationUtil { /// 导航到购买会员页面 /// 如果是设备登录用户,会先提示需要绑定账号,然后跳转到登录页面 /// 如果是普通用户,直接跳转到购买会员页面 /// /// [tag] 调用来源标签,用于日志记录 static void navigateToPurchase({String tag = 'Subscribe'}) { final appRunData = KRAppRunData.getInstance(); final isDeviceLogin = appRunData.isDeviceLogin(); final account = appRunData.kr_account.value; KRLogUtil.kr_i('=== 订阅按钮点击 ===', tag: tag); KRLogUtil.kr_i('账号: $account', tag: tag); KRLogUtil.kr_i('是否设备登录: $isDeviceLogin', tag: tag); if (isDeviceLogin) { // 设备登录用户 - 显示绑定账号提示对话框 KRLogUtil.kr_i('设备登录用户,显示绑定提示', tag: tag); try { KRDialog.show( title: AppTranslations.kr_dialog.deviceLoginBindingTitle, message: AppTranslations.kr_dialog.deviceLoginBindingMessage, confirmText: AppTranslations.kr_dialog.kr_ok, onConfirm: () { Get.toNamed(Routes.MR_LOGIN); }, ); } catch (e) { KRLogUtil.kr_e('显示绑定提示对话框失败: $e', tag: tag); } } else { // 普通登录用户 - 直接跳转到购买页面 KRLogUtil.kr_i('普通用户,跳转到购买页面', tag: tag); try { Get.toNamed(Routes.KR_PURCHASE_MEMBERSHIP); } catch (e) { KRLogUtil.kr_e('跳转购买页面失败: $e', tag: tag); // 如果跳转失败,显示错误提示 KRDialog.show( title: AppTranslations.kr_dialog.error, message: AppTranslations.kr_home.checkNetwork, confirmText: AppTranslations.kr_dialog.kr_ok, onConfirm: () => Get.back(), ); } } } }