| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- import 'package:get/get_rx/src/rx_types/rx_types.dart';
- import 'package:injectable/injectable.dart';
- import 'package:keyboard/base/base_controller.dart';
- import 'package:keyboard/data/repository/account_repository.dart';
- import 'package:keyboard/module/profile/edit/profile_edit_page.dart';
- import 'package:keyboard/utils/atmob_log.dart';
- import 'package:get/get.dart';
- import '../../data/api/response/user_info_response.dart';
- import '../../data/bean/keyboard_info.dart';
- import '../../data/repository/keyboard_repository.dart';
- import '../../utils/error_handler.dart';
- import '../../utils/http_handler.dart';
- import '../../utils/toast_util.dart';
- import '../keyboard_manage/keyboard_manage_controller.dart';
- @injectable
- class ProfileController extends BaseController {
- final tag = "ProfileController";
- final KeyboardRepository keyboardRepository;
- final AccountRepository accountRepository;
- UserInfoResponse? get userInfo => accountRepository.userInfo.value;
- int get userGender => userInfo?.gender ?? 0;
- final Rx<KeyboardInfo> _currentCustomKeyboardInfo = KeyboardInfo().obs;
- KeyboardInfo get currentCustomKeyboardInfo =>
- _currentCustomKeyboardInfo.value;
- final RxList<KeyboardInfo> _customKeyboardInfoList = RxList();
- RxList<KeyboardInfo> get keyboardInfoList => _customKeyboardInfoList;
- ProfileController(this.keyboardRepository, this.accountRepository) {
- AtmobLog.d(tag, '....init');
- }
- @override
- void onInit() {
- super.onInit();
- getCustomKeyboard();
- }
- // 获取定制键盘
- void getCustomKeyboard() {
- AtmobLog.i(tag, 'getCustomKeyboard');
- keyboardRepository.getKeyboardList(type: KeyboardType.custom.name).then((
- keyboardListResponse,
- ) {
- AtmobLog.i(
- tag,
- 'keyboardListResponse: ${keyboardListResponse.keyboardInfos}',
- );
- _customKeyboardInfoList.value = keyboardListResponse.keyboardInfos;
- //检查是否是选择的键盘,如果没有选择的键盘,默认选择第一个
- if (_customKeyboardInfoList.isNotEmpty) {
- _currentCustomKeyboardInfo.value = _customKeyboardInfoList.firstWhere(
- (element) => element.isChoose == true,
- orElse: () => _customKeyboardInfoList.first,
- );
- }
- });
- }
- clickOnChangeKeyboard(KeyboardInfo keyboardInfo) {
- AtmobLog.d(tag, 'clickOnChangeKeyboard: ${keyboardInfo.toJson()}');
- _currentCustomKeyboardInfo.value = keyboardInfo;
- }
- clickBack() {
- Get.back();
- }
- clickAddButton() {
- AtmobLog.d(tag, "clickAddButton");
- ProfileEditPage.start();
- }
- clickSaveButton() {
- AtmobLog.d(tag, "clickSaveButton");
- final keyboardInfo = _currentCustomKeyboardInfo.value;
- if (_currentCustomKeyboardInfo.value.isChoose == true) {
- ToastUtil.show("当前键盘已选择");
- clickBack();
- return;
- }
- if (keyboardInfo.id?.isNotEmpty == true) {
- try {
- keyboardRepository.keyboardChoose(keyboardId: keyboardInfo.id!);
- keyboardRepository.refreshData();
- ToastUtil.show("当前键盘已选择");
- clickBack();
- } catch (error) {
- if (error is ServerErrorException) {
- ToastUtil.show(error.message);
- } else {
- ErrorHandler.toastError(error);
- }
- }
- }
- }
- }
|