all_dialog.dart 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  1. import 'package:flutter/material.dart';
  2. import 'package:get/get.dart';
  3. import 'package:nomo/config/theme/theme_extensions/theme_extension.dart';
  4. import 'package:nomo/config/translations/strings_enum.dart';
  5. import '../constants/iconfont/iconfont.dart';
  6. import '../routes/app_pages.dart';
  7. import 'custom_dialog.dart';
  8. /// 弹窗使用示例
  9. class AllDialog {
  10. /// 显示Premium激活成功弹窗
  11. static void showPremiumActivated() {
  12. CustomDialog.showSuccess(
  13. title: Strings.premiumActivated.tr,
  14. message: Strings.premiumActivatedMessage.tr,
  15. buttonText: Strings.gotIt.tr,
  16. icon: Icons.workspace_premium,
  17. iconColor: const Color(0xFFFF9500),
  18. onPressed: () {
  19. // 处理激活成功后的逻辑
  20. print('Premium activated successfully');
  21. Navigator.of(Get.context!).pop();
  22. },
  23. );
  24. }
  25. /// 显示邮件发送成功弹窗
  26. static void showEmailSent() {
  27. CustomDialog.showInfo(
  28. title: Strings.emailSent.tr,
  29. message: Strings.emailSentMessage.tr,
  30. buttonText: Strings.ok.tr,
  31. icon: Icons.mark_email_read,
  32. iconColor: Colors.white,
  33. onPressed: () {
  34. // 处理邮件发送成功后的逻辑
  35. print('Email sent successfully');
  36. Navigator.of(Get.context!).pop();
  37. },
  38. );
  39. }
  40. /// 显示网络连接错误弹窗
  41. static void showNetworkError() {
  42. CustomDialog.showError(
  43. title: Strings.noInternetConnection.tr,
  44. message: Strings.noInternetMessage.tr,
  45. buttonText: Strings.retry.tr,
  46. cancelText: Strings.cancel.tr,
  47. icon: Icons.wifi_off,
  48. iconColor: const Color.fromARGB(255, 231, 152, 5),
  49. confirmButtonColor: Get.reactiveTheme.primaryColor,
  50. errorCode: '',
  51. onPressed: () {
  52. // 处理重试逻辑
  53. print('Retry network connection');
  54. Navigator.of(Get.context!).pop();
  55. },
  56. onCancel: () {
  57. // 处理取消逻辑
  58. print('Cancel network retry');
  59. Navigator.of(Get.context!).pop();
  60. },
  61. );
  62. }
  63. /// 显示退出登录确认弹窗
  64. static void showLogoutConfirm() {
  65. CustomDialog.showError(
  66. title: Strings.logOut.tr,
  67. message: Strings.logOutConfirmMessage.tr,
  68. buttonText: Strings.logOut.tr,
  69. cancelText: Strings.cancel.tr,
  70. icon: Icons.info_outline,
  71. iconColor: const Color(0xFFFF3B30),
  72. confirmButtonColor: const Color(0xFFFF3B30),
  73. onPressed: () {
  74. // 处理退出登录逻辑
  75. print('User confirmed logout');
  76. // 这里可以调用退出登录的API
  77. Navigator.of(Get.context!).pop();
  78. Get.toNamed(Routes.LOGIN);
  79. },
  80. onCancel: () {
  81. // 处理取消退出逻辑
  82. print('User cancelled logout');
  83. Navigator.of(Get.context!).pop();
  84. },
  85. );
  86. }
  87. /// 显示反馈弹窗
  88. static void showFeedback() {
  89. CustomDialog.showInfo(
  90. title: Strings.thankYouFeedback.tr,
  91. message: Strings.feedbackMessage.tr,
  92. buttonText: Strings.done.tr,
  93. icon: Icons.favorite_border,
  94. iconColor: Get.theme.textTheme.bodyLarge!.color,
  95. onPressed: () {
  96. // 处理邮件发送成功后的逻辑
  97. print('Feedback submitted successfully');
  98. Navigator.of(Get.context!).pop();
  99. },
  100. );
  101. }
  102. /// 显示UID信息弹窗
  103. static void showUidInfo() {
  104. CustomDialog.showInfo(
  105. icon: IconFont.icon14,
  106. iconColor: Get.theme.textTheme.bodyLarge!.color,
  107. title: Strings.whatIsUid.tr,
  108. message: Strings.uidMessage.tr,
  109. buttonText: Strings.ok.tr,
  110. onPressed: () {
  111. // 处理邮件发送成功后的逻辑
  112. print('UID info dialog closed');
  113. Navigator.of(Get.context!).pop();
  114. },
  115. );
  116. }
  117. /// 显示无效授权码弹窗
  118. static void showInvalidAuthorizationCode() {
  119. CustomDialog.showError(
  120. title: Strings.invalidAuthorizationCode.tr,
  121. message: Strings.invalidAuthorizationCodeMessage.tr,
  122. buttonText: Strings.invalidAuthorizationCodeButton.tr,
  123. onPressed: () {
  124. // 处理重试逻辑
  125. print('Retry authorization code');
  126. Navigator.of(Get.context!).pop();
  127. },
  128. onCancel: () {
  129. // 处理取消逻辑
  130. print('Cancel authorization code retry');
  131. Navigator.of(Get.context!).pop();
  132. },
  133. );
  134. }
  135. /// 显示自定义成功弹窗
  136. static void showCustomSuccess({
  137. required String title,
  138. required String message,
  139. String? buttonText,
  140. VoidCallback? onPressed,
  141. }) {
  142. CustomDialog.showSuccess(
  143. title: title,
  144. message: message,
  145. buttonText: buttonText ?? Strings.gotIt.tr,
  146. onPressed: onPressed,
  147. );
  148. }
  149. /// 显示自定义信息弹窗
  150. static void showCustomInfo({
  151. required String title,
  152. required String message,
  153. String? buttonText,
  154. VoidCallback? onPressed,
  155. }) {
  156. CustomDialog.showInfo(
  157. title: title,
  158. message: message,
  159. buttonText: buttonText ?? Strings.ok.tr,
  160. onPressed: onPressed,
  161. );
  162. }
  163. /// 显示自定义错误弹窗
  164. static void showCustomError({
  165. required String title,
  166. required String message,
  167. String? buttonText,
  168. String? cancelText,
  169. VoidCallback? onPressed,
  170. VoidCallback? onCancel,
  171. String? errorCode,
  172. }) {
  173. CustomDialog.showError(
  174. title: title,
  175. message: message,
  176. buttonText: buttonText ?? Strings.retry.tr,
  177. cancelText: cancelText,
  178. onPressed: onPressed,
  179. onCancel: onCancel,
  180. errorCode: errorCode,
  181. );
  182. }
  183. /// 显示自定义确认弹窗
  184. static void showCustomConfirm({
  185. required String title,
  186. required String message,
  187. String? confirmText,
  188. String? cancelText,
  189. required VoidCallback onConfirm,
  190. VoidCallback? onCancel,
  191. Color? confirmButtonColor,
  192. }) {
  193. CustomDialog.showConfirm(
  194. title: title,
  195. message: message,
  196. confirmText: confirmText ?? Strings.confirm.tr,
  197. cancelText: cancelText ?? Strings.cancel.tr,
  198. onConfirm: onConfirm,
  199. onCancel: onCancel,
  200. confirmButtonColor: confirmButtonColor,
  201. );
  202. }
  203. }