all_dialog.dart 6.0 KB

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