| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- import 'package:get/get.dart';
- import 'package:injectable/injectable.dart';
- import 'package:location/data/api/atmob_api.dart';
- import 'package:location/data/api/request/configs_request.dart';
- import 'package:location/data/bean/config_bean.dart';
- import 'package:location/data/repositories/friends_repository.dart';
- import 'package:location/utils/async_util.dart';
- import 'package:location/utils/http_handler.dart';
- import '../api/response/configs_response.dart';
- @lazySingleton
- class ConfigRepository {
- final String tag = 'ConfigRepository';
- static const int configCustomId = 2;
- static const int configVirtualFriendId = 4;
- static const int configAddFriendTipId = 5;
- static const int configAccountLogoutId = 12;
- bool? _isShowVirtualFriend;
- final Rxn<bool> isOpenFreeMember = Rxn<bool>();
- final AtmobApi atmobApi;
- final FriendsRepository friendsRepository;
- ConfigRepository(this.atmobApi, this.friendsRepository) {
- refreshConfig();
- }
- void refreshConfig() {
- AsyncUtil.retry(() => requestConfigsData(), Duration(seconds: 3),
- maxRetry: 100)
- .then((configsResponse) {
- final list = configsResponse.list;
- if (list == null || list.isEmpty) {
- return;
- }
- for (var item in list) {
- final id = item.id;
- switch (id) {
- case configCustomId:
- break;
- case configVirtualFriendId:
- _dealWithVirtualFriendSetting(item);
- break;
- case configAddFriendTipId:
- break;
- case configAccountLogoutId:
- break;
- }
- }
- });
- }
- Future<ConfigsResponse> requestConfigsData() {
- return atmobApi
- .getConfigs(ConfigsRequest(ids: [
- configCustomId,
- configVirtualFriendId,
- configAddFriendTipId,
- configAccountLogoutId
- ]))
- .then(HttpHandler.handle(true));
- }
- void _dealWithVirtualFriendSetting(ConfigBean item) {
- final cfg = item.cfg;
- if (cfg == null || cfg.isEmpty == true) {
- return;
- }
- // "virtualFriendEnabled": true, 是否开启虚拟好友
- if (cfg.containsKey("virtualFriendEnabled")) {
- _isShowVirtualFriend = cfg["virtualFriendEnabled"];
- if (_isShowVirtualFriend == true) {
- friendsRepository.refreshVirtualFriend();
- }
- }
- //"freeMemberEnabled": false 是否开启免费会员体验
- if (cfg.containsKey("freeMemberEnabled")) {
- isOpenFreeMember.value = cfg["freeMemberEnabled"];
- }
- }
- }
|