account_settings_controller.dart 1.14 KB
import 'package:doublefeel_flutter/app/routes/app_pages.dart';
import 'package:doublefeel_flutter/core/services/user_state_service.dart';
import 'package:doublefeel_flutter/core/util/app_toast.dart';
import 'package:doublefeel_flutter/data/local/local_storage.dart';
import 'package:doublefeel_flutter/data/local/user_preferences_storage.dart';
import 'package:get/get.dart';

class AccountSettingsController extends GetxController {
  final UserPreferencesStorage _userPrefs = Get.find<UserPreferencesStorage>();
  final UserStateService _userStateService = Get.find<UserStateService>();
  final LocalStorage _localStorage = Get.find<LocalStorage>();

  UserPreferencesStorage get userPrefs => _userPrefs;

  void executeBackLogic() {
    Get.back();
  }

  Future<void> logout() async {
    await _userStateService.onLogout();
    Get.offAllNamed(AppRoutes.initial);
  }

  void openOnboarding() {
    Get.offAllNamed(AppRoutes.userOnboarding);
  }

  void openChangePhone() {
    if (_localStorage.lastLoginMethod != 'phone') {
      AppToast.show('仅支持手机号登录的账号更换手机号');
      return;
    }
    Get.toNamed(Routes.CHANGE_PHONE);
  }
}