import 'package:get/get.dart'; import 'package:injectable/injectable.dart'; import 'package:location/data/api/atmob_api.dart'; import 'package:location/data/api/request/friends_list_request.dart'; import 'package:location/di/get_it.dart'; import 'package:location/utils/http_handler.dart'; import '../../utils/atmob_log.dart'; import '../api/response/friends_list_response.dart'; import '../bean/user_info.dart'; @lazySingleton class FriendsRepository { final String tag = 'FriendsRepository'; final AtmobApi atmobApi; bool refreshFriendsFlag = false; final RxList friendsList = RxList(); FriendsRepository(this.atmobApi) { AtmobLog.d(tag, '$tag....init'); refreshFriends(); } void clearFriends() { friendsList.clear(); } void refreshFriends() { if (refreshFriendsFlag) { return; } refreshFriendsFlag = true; friendList(0, 300).then((value) { friendsList.value = value.friends; }).whenComplete(() { refreshFriendsFlag = false; }); } Future friendList(int offset, int limit) { return atmobApi .friendList(FriendsListRequest(offset: offset, limit: limit)) .then(HttpHandler.handle(true)); } static FriendsRepository getInstance() { return getIt.get(); } }