import 'package:flutter_map/flutter_map.dart'; import 'package:get/get.dart'; import 'package:get/get_core/src/get_main.dart'; import 'package:injectable/injectable.dart'; import 'package:location/base/base_controller.dart'; import 'package:location/data/bean/location_info.dart'; import 'package:location/data/bean/track_days.dart'; import 'package:location/data/repositories/account_repository.dart'; import 'package:location/data/repositories/friends_repository.dart'; import 'package:location/data/repositories/track_repository.dart'; import 'package:location/handler/error_handler.dart'; import 'package:sliding_sheet2/sliding_sheet2.dart'; import '../../data/bean/atmob_track_point.dart'; import '../../data/bean/user_info.dart'; @injectable class TrackController extends BaseController { final Rxn _userInfo = Rxn(); UserInfo? get userInfo => _userInfo.value; final MapController mapController = MapController(); SheetController sheetController = SheetController(); final Rxn _currentLocation = Rxn(); LocationInfo? get currentLocation => _currentLocation.value; List? points; List? originPoints; final RxBool _isShowTraceDetailBtn = false.obs; bool get isShowTraceDetailBtn => _isShowTraceDetailBtn.value; final RxList daysList = RxList(); final TrackRepository trackRepository; final FriendsRepository friendsRepository; final AccountRepository accountRepository; TrackController( this.trackRepository, this.friendsRepository, this.accountRepository); @override void onInit() { final param = Get.arguments; if (param is UserInfo) { _userInfo.value = param; } _onRequestTrackDateList(); } @override void onReady() { super.onReady(); sheetController.expand(); _recordNumberTrajectoryViewed(); } void _onRequestTrackDateList() { trackRepository.getLocationTrackDays().then((list) { daysList.assignAll(list); }).catchError((error) { ErrorHandler.toastError(error); }); } ///记录查看轨迹的次数 void _recordNumberTrajectoryViewed() { if (accountRepository.memberStatusInfo.value?.trialed == true && accountRepository.memberStatusInfo.value?.level == 20) { trackRepository.refreshMemberTrailTrack(); } } void back() { Get.back(); } }