setting_controller.dart 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import 'package:get/get.dart';
  2. import '../../../../config/translations/strings_enum.dart';
  3. import '../../../../utils/awesome_notifications_helper.dart';
  4. import '../../../controllers/api_controller.dart';
  5. import '../../../dialog/loading/loading_dialog.dart';
  6. class SettingController extends GetxController {
  7. final _apiController = Get.find<ApiController>();
  8. // 自动重连开关
  9. final autoReconnect = true.obs;
  10. final pushNotifications = false.obs;
  11. final isPremium = true.obs;
  12. @override
  13. void onInit() {
  14. super.onInit();
  15. initPushNotifications();
  16. }
  17. Future<void> initPushNotifications() async {
  18. pushNotifications.value =
  19. await AwesomeNotificationsHelper.checkNotificationPermission();
  20. }
  21. Future<void> showNotificationConfigPage() async {
  22. await AwesomeNotificationsHelper.showNotificationConfigPage();
  23. initPushNotifications();
  24. }
  25. // 处理退出登录
  26. Future<void> handleLogout() async {
  27. await LoadingDialog.show(
  28. context: Get.context!,
  29. loadingText: Strings.loggingOut.tr,
  30. successText: Strings.logoutSuccessful.tr,
  31. onRequest: () async {
  32. // 执行你的异步请求
  33. await _apiController.logout();
  34. },
  35. onSuccess: () {
  36. // 成功后的操作
  37. Get.back();
  38. },
  39. );
  40. }
  41. // 处理删除账户
  42. Future<void> handleDeleteAccount() async {
  43. await LoadingDialog.show(
  44. context: Get.context!,
  45. loadingText: Strings.deletingAccount.tr,
  46. successText: Strings.deleteAccountSuccessful.tr,
  47. onRequest: () async {
  48. // 执行你的异步请求
  49. await _apiController.deleteAccount();
  50. },
  51. onSuccess: () {
  52. // 成功后的操作
  53. Get.back();
  54. },
  55. );
  56. }
  57. }