user_avatar_controller.dart 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import 'package:get/get.dart';
  2. import 'package:location/base/base_controller.dart';
  3. import 'package:location/data/repositories/account_repository.dart';
  4. import 'package:location/resource/string.gen.dart';
  5. import 'package:location/utils/toast_util.dart';
  6. import '../../data/bean/user_info.dart';
  7. import '../../handler/error_handler.dart';
  8. class UserAvatarController extends BaseController {
  9. final List<String> avatarList;
  10. UserAvatarController(this.avatarList);
  11. final AccountRepository accountRepository = AccountRepository.getInstance();
  12. final RxnString _selectedAvatar = RxnString();
  13. String? get selectedAvatar => _selectedAvatar.value;
  14. UserInfo? get mineInfo => accountRepository.mineUserInfo.value;
  15. void onSelectAvatarClick(String url) {
  16. _selectedAvatar.value = url;
  17. }
  18. void onSelectedClick() {
  19. final avatar =
  20. _selectedAvatar.value ?? accountRepository.mineUserInfo.value.avatar;
  21. if (avatar == null) {
  22. ToastUtil.show(StringName.accountPleaseSelectAvatar);
  23. return;
  24. }
  25. onAvatarSelected(avatar);
  26. }
  27. void onAvatarSelected(String avatar) {
  28. accountRepository.userAvatarUpdate(avatar).then((_) {
  29. ToastUtil.show(StringName.mineUpdateAvatarSuccess);
  30. Get.back();
  31. }).catchError((error) {
  32. ErrorHandler.toastError(error);
  33. });
  34. }
  35. void onCloseClick() {
  36. Get.back();
  37. }
  38. }