import 'package:flutter_openim_sdk/flutter_openim_sdk.dart'; import 'package:get/get.dart'; import 'package:openim/pages/login/login_logic.dart'; import 'package:openim/pages/mine/edit_my_info/edit_my_info_logic.dart'; import 'package:openim/routes/app_navigator.dart'; import 'package:openim_common/openim_common.dart'; import '../../../core/controller/im_controller.dart'; class MyInfoLogic extends GetxController { final imLogic = Get.find(); final loginType = LoginType.fromRawValue(DataSp.getLoginType()); void editMyName() => AppNavigator.startEditMyInfo(); void editEnglishName() => AppNavigator.startEditMyInfo( attr: EditAttr.englishName, ); void editTel() => AppNavigator.startEditMyInfo( attr: EditAttr.telephone, ); void editMobile() => AppNavigator.startEditMyInfo( attr: EditAttr.mobile, ); void openPhotoSheet() { IMViews.openPhotoSheet( onData: (path, url) async { if (url != null) { LoadingView.singleton.wrap( asyncFunction: () => Apis.updateUserInfo(userID: OpenIM.iMManager.userID, faceURL: url) .then((value) => imLogic.userInfo.update((val) { val?.faceURL = url; })), ); } }, quality: 15); } @override void onReady() { _queryMyFullIno(); super.onReady(); } @override void onClose() { super.onClose(); } void _queryMyFullIno() async { final info = await LoadingView.singleton.wrap( asyncFunction: () => Apis.queryMyFullInfo(), ); if (null != info) { imLogic.userInfo.update((val) { val?.nickname = info.nickname; val?.faceURL = info.faceURL; val?.gender = info.gender; val?.phoneNumber = info.phoneNumber; val?.birth = info.birth; val?.email = info.email; }); } } static _trimNullStr(String? value) => IMUtils.emptyStrToNull(value); }