config_repository.dart 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import 'package:injectable/injectable.dart';
  2. import 'package:keyboard/data/api/response/character_custom_config_response.dart';
  3. import '../../base/app_base_request.dart';
  4. import '../../utils/async_util.dart';
  5. import '../../utils/atmob_log.dart';
  6. import '../../utils/http_handler.dart';
  7. import '../api/atmob_api.dart';
  8. import '../api/request/config_request.dart';
  9. import '../api/response/config_response.dart';
  10. import 'package:get/get.dart';
  11. import '../bean/custom_config_info.dart';
  12. @lazySingleton
  13. class ConfigRepository {
  14. final tag = "ConfigRepository";
  15. final AtmobApi atmobApi;
  16. final Rxn<CustomConfigInfo> _characterCustomConfig = Rxn<CustomConfigInfo>();
  17. CustomConfigInfo? get characterCustomConfig => _characterCustomConfig.value;
  18. ConfigRepository(this.atmobApi) {
  19. AtmobLog.d(tag, '$tag....init');
  20. refreshConfig();
  21. refreshCharacterCustomConfig();
  22. }
  23. // 更新配置的值
  24. void refreshConfig() {
  25. AsyncUtil.retry(
  26. () => requestConfigsData(),
  27. Duration(seconds: 3),
  28. maxRetry: 100,
  29. ).then((configsResponse) {
  30. final list = configsResponse.list;
  31. if (list == null || list.isEmpty) {
  32. return;
  33. }
  34. });
  35. }
  36. Future<void> refreshCharacterCustomConfig() async {
  37. try {
  38. final value = await getCharacterCustomConfig();
  39. _characterCustomConfig.value = value.customConfig;
  40. } catch (e) {
  41. AtmobLog.e(tag, "获取定制人设配置失败: $e");
  42. }
  43. }
  44. /// 获取配置信息
  45. Future<ConfigResponse> requestConfigsData() {
  46. return atmobApi
  47. .confs(ConfigRequest(confCodes: ['intimacy', 'default_avatar']))
  48. .then(HttpHandler.handle(true));
  49. }
  50. /// 获取定制人设配置
  51. Future<CharacterCustomConfigResponse> getCharacterCustomConfig() {
  52. return atmobApi
  53. .getCharacterCustomConfig(AppBaseRequest())
  54. .then(HttpHandler.handle(true));
  55. }
  56. }