config_repository.dart 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  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. @lazySingleton
  11. class ConfigRepository {
  12. final tag = "ConfigRepository";
  13. final AtmobApi atmobApi;
  14. ConfigRepository(this.atmobApi) {
  15. AtmobLog.d(tag, '$tag....init');
  16. refreshConfig();
  17. }
  18. // 更新配置的值
  19. void refreshConfig() {
  20. AsyncUtil.retry(
  21. () => requestConfigsData(),
  22. Duration(seconds: 3),
  23. maxRetry: 100,
  24. ).then((configsResponse) {
  25. final list = configsResponse.list;
  26. if (list == null || list.isEmpty) {
  27. return;
  28. }
  29. });
  30. }
  31. /// 获取配置信息
  32. Future<ConfigResponse> requestConfigsData() {
  33. return atmobApi
  34. .confs(ConfigRequest(confCodes: ['intimacy', 'default_avatar']))
  35. .then(HttpHandler.handle(true));
  36. }
  37. /// 获取定制人设配置
  38. Future<CharacterCustomConfigResponse> getCharacterCustomConfig() {
  39. return atmobApi
  40. .getCharacterCustomConfig(AppBaseRequest())
  41. .then(HttpHandler.handle(true));
  42. }
  43. }