setting_controller.dart 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. import 'package:get/get.dart';
  2. import '../../../../config/translations/strings_enum.dart';
  3. import '../../../../utils/awesome_notifications_helper.dart';
  4. import '../../../constants/enums.dart';
  5. import '../../../controllers/api_controller.dart';
  6. import '../../../data/sp/ix_sp.dart';
  7. import '../../../dialog/loading/loading_dialog.dart';
  8. class SettingController extends GetxController {
  9. final _apiController = Get.find<ApiController>();
  10. // 自动重连开关
  11. final _autoReconnect = true.obs;
  12. bool get autoReconnect => _autoReconnect.value;
  13. set autoReconnect(bool value) => _autoReconnect.value = value;
  14. final _pushNotifications = false.obs;
  15. bool get pushNotifications => _pushNotifications.value;
  16. set pushNotifications(bool value) => _pushNotifications.value = value;
  17. final _isPremium = false.obs;
  18. bool get isPremium => _isPremium.value;
  19. set isPremium(bool value) => _isPremium.value = value;
  20. //是否是游客
  21. final _isGuest = false.obs;
  22. bool get isGuest => _isGuest.value;
  23. set isGuest(bool value) => _isGuest.value = value;
  24. @override
  25. void onInit() {
  26. super.onInit();
  27. initPushNotifications();
  28. initIsGuest();
  29. }
  30. void initIsGuest() {
  31. final user = IXSP.getUser();
  32. if (user != null) {
  33. isGuest = user.memberLevel == MemberLevel.guest.level;
  34. }
  35. }
  36. Future<void> initPushNotifications() async {
  37. pushNotifications =
  38. await AwesomeNotificationsHelper.checkNotificationPermission();
  39. }
  40. Future<void> showNotificationConfigPage() async {
  41. await AwesomeNotificationsHelper.showNotificationConfigPage();
  42. initPushNotifications();
  43. }
  44. // 处理退出登录
  45. Future<void> handleLogout() async {
  46. await LoadingDialog.show(
  47. context: Get.context!,
  48. loadingText: Strings.loggingOut.tr,
  49. successText: Strings.logoutSuccessful.tr,
  50. onRequest: () async {
  51. // 执行你的异步请求
  52. await _apiController.logout();
  53. },
  54. onSuccess: () {
  55. // 成功后的操作
  56. Get.back();
  57. },
  58. );
  59. }
  60. // 处理删除账户
  61. Future<void> handleDeleteAccount() async {
  62. await LoadingDialog.show(
  63. context: Get.context!,
  64. loadingText: Strings.deletingAccount.tr,
  65. successText: Strings.deleteAccountSuccessful.tr,
  66. onRequest: () async {
  67. // 执行你的异步请求
  68. await _apiController.deleteAccount();
  69. },
  70. onSuccess: () {
  71. // 成功后的操作
  72. Get.back();
  73. },
  74. );
  75. }
  76. }