Просмотр исходного кода

[fix]首页-删除选中图标的好友或被选中图标的好友删除时,默认选中自己,若被非选中图标好友删除,则仍展示当前选中的好友信息

zk 6 месяцев назад
Родитель
Сommit
29081045b4

Разница между файлами не показана из-за своего большого размера
+ 841 - 561
lib/data/api/atmob_api.g.dart


+ 5 - 5
lib/module/main/main_controller.dart

@@ -94,6 +94,8 @@ class MainController extends BaseController {
 
   Timer? electricTimer;
 
+  double? lastVisibleFraction;
+
   final Debounce _queryTodayTrackDebounce = Debounce(debounceTime: 500);
 
   final Map<String, int> electricMap = {};
@@ -183,11 +185,7 @@ class MainController extends BaseController {
     if (selectedFriend != null) {
       UserInfo? userInfo = integrateList
           .firstWhereOrNull((element) => element.id == selectedFriend?.id);
-      if (userInfo == null) {
-        _selectedFriend.value = null;
-      } else {
-        _setSelectUserInfo(userInfo);
-      }
+      _setSelectUserInfo(userInfo ?? mineUserInfo);
     }
     _autoSelectFriend();
   }
@@ -254,6 +252,7 @@ class MainController extends BaseController {
     //修改地图选中
     int? electric = electricMap[userInfo.id];
     _updateMapSelected(oldInfo, userInfo, electric: electric);
+    onFriendVisibleFraction(lastVisibleFraction ?? 0.0);
     if (!accountRepository.memberIsExpired() || userInfo.isMine == true) {
       //移动到选中的位置
       animateCameraToUser(userInfo);
@@ -532,6 +531,7 @@ class MainController extends BaseController {
   }
 
   void onFriendVisibleFraction(double visibleFraction) {
+    lastVisibleFraction = visibleFraction;
     if (visibleFraction > 0.2) {
       _queryTodayTrackDebounce.onClick(() {
         _requestSelectedFriendTrack();

+ 0 - 2
lib/module/main/today_track_helper.dart

@@ -2,11 +2,9 @@ import 'package:flutter_map/flutter_map.dart';
 import 'package:flutter_screenutil/flutter_screenutil.dart';
 import 'package:get/get_rx/src/rx_types/rx_types.dart';
 import 'package:injectable/injectable.dart';
-import 'package:location/data/consts/error_code.dart';
 import 'package:location/data/repositories/track_repository.dart';
 import 'package:location/di/get_it.dart';
 import 'package:location/handler/error_handler.dart';
-import 'package:location/utils/http_handler.dart';
 import '../../data/bean/atmob_track_point.dart';
 import '../../data/bean/track_daily_bean.dart';
 

+ 189 - 197
lib/resource/assets.gen.dart

@@ -35,8 +35,7 @@ class $AssetsImagesGen {
 
   /// File path: assets/images/bg_dialog_location_permission_ios.webp
   AssetGenImage get bgDialogLocationPermissionIos => const AssetGenImage(
-    'assets/images/bg_dialog_location_permission_ios.webp',
-  );
+      'assets/images/bg_dialog_location_permission_ios.webp');
 
   /// File path: assets/images/bg_dialog_track_error.webp
   AssetGenImage get bgDialogTrackError =>
@@ -272,8 +271,7 @@ class $AssetsImagesGen {
 
   /// File path: assets/images/icon_main_refresh_friend_location.webp
   AssetGenImage get iconMainRefreshFriendLocation => const AssetGenImage(
-    'assets/images/icon_main_refresh_friend_location.webp',
-  );
+      'assets/images/icon_main_refresh_friend_location.webp');
 
   /// File path: assets/images/icon_main_refresh_mine_location.webp
   AssetGenImage get iconMainRefreshMineLocation =>
@@ -289,8 +287,7 @@ class $AssetsImagesGen {
 
   /// File path: assets/images/icon_member_comment_very_satisfied.webp
   AssetGenImage get iconMemberCommentVerySatisfied => const AssetGenImage(
-    'assets/images/icon_member_comment_very_satisfied.webp',
-  );
+      'assets/images/icon_member_comment_very_satisfied.webp');
 
   /// File path: assets/images/icon_member_contact_click_help.webp
   AssetGenImage get iconMemberContactClickHelp =>
@@ -298,8 +295,7 @@ class $AssetsImagesGen {
 
   /// File path: assets/images/icon_member_contact_click_help_close.webp
   AssetGenImage get iconMemberContactClickHelpClose => const AssetGenImage(
-    'assets/images/icon_member_contact_click_help_close.webp',
-  );
+      'assets/images/icon_member_contact_click_help_close.webp');
 
   /// File path: assets/images/icon_member_fun5.webp
   AssetGenImage get iconMemberFun5 =>
@@ -327,13 +323,11 @@ class $AssetsImagesGen {
 
   /// File path: assets/images/icon_member_ordinary_product_normal.webp
   AssetGenImage get iconMemberOrdinaryProductNormal => const AssetGenImage(
-    'assets/images/icon_member_ordinary_product_normal.webp',
-  );
+      'assets/images/icon_member_ordinary_product_normal.webp');
 
   /// File path: assets/images/icon_member_ordinary_product_select.webp
   AssetGenImage get iconMemberOrdinaryProductSelect => const AssetGenImage(
-    'assets/images/icon_member_ordinary_product_select.webp',
-  );
+      'assets/images/icon_member_ordinary_product_select.webp');
 
   /// File path: assets/images/icon_member_payment_completed.webp
   AssetGenImage get iconMemberPaymentCompleted =>
@@ -353,13 +347,11 @@ class $AssetsImagesGen {
 
   /// File path: assets/images/icon_member_special_products_normal.webp
   AssetGenImage get iconMemberSpecialProductsNormal => const AssetGenImage(
-    'assets/images/icon_member_special_products_normal.webp',
-  );
+      'assets/images/icon_member_special_products_normal.webp');
 
   /// File path: assets/images/icon_member_special_products_select.webp
   AssetGenImage get iconMemberSpecialProductsSelect => const AssetGenImage(
-    'assets/images/icon_member_special_products_select.webp',
-  );
+      'assets/images/icon_member_special_products_select.webp');
 
   /// File path: assets/images/icon_member_vip_back.webp
   AssetGenImage get iconMemberVipBack =>
@@ -411,8 +403,7 @@ class $AssetsImagesGen {
 
   /// File path: assets/images/icon_mine_fun_permission_setting.webp
   AssetGenImage get iconMineFunPermissionSetting => const AssetGenImage(
-    'assets/images/icon_mine_fun_permission_setting.webp',
-  );
+      'assets/images/icon_mine_fun_permission_setting.webp');
 
   /// File path: assets/images/icon_mine_fun_share.webp
   AssetGenImage get iconMineFunShare =>
@@ -440,23 +431,19 @@ class $AssetsImagesGen {
 
   /// File path: assets/images/icon_mine_trial_expiration_header.webp
   AssetGenImage get iconMineTrialExpirationHeader => const AssetGenImage(
-    'assets/images/icon_mine_trial_expiration_header.webp',
-  );
+      'assets/images/icon_mine_trial_expiration_header.webp');
 
   /// File path: assets/images/icon_mine_trial_expiration_pause_bg.webp
   AssetGenImage get iconMineTrialExpirationPauseBg => const AssetGenImage(
-    'assets/images/icon_mine_trial_expiration_pause_bg.webp',
-  );
+      'assets/images/icon_mine_trial_expiration_pause_bg.webp');
 
   /// File path: assets/images/icon_mine_trial_expiration_question.webp
   AssetGenImage get iconMineTrialExpirationQuestion => const AssetGenImage(
-    'assets/images/icon_mine_trial_expiration_question.webp',
-  );
+      'assets/images/icon_mine_trial_expiration_question.webp');
 
   /// File path: assets/images/icon_mine_trial_expiration_recommend.webp
   AssetGenImage get iconMineTrialExpirationRecommend => const AssetGenImage(
-    'assets/images/icon_mine_trial_expiration_recommend.webp',
-  );
+      'assets/images/icon_mine_trial_expiration_recommend.webp');
 
   /// File path: assets/images/icon_mine_trial_expiration_up.webp
   AssetGenImage get iconMineTrialExpirationUp =>
@@ -528,8 +515,7 @@ class $AssetsImagesGen {
 
   /// File path: assets/images/icon_track_detail_time_base_arrow.webp
   AssetGenImage get iconTrackDetailTimeBaseArrow => const AssetGenImage(
-    'assets/images/icon_track_detail_time_base_arrow.webp',
-  );
+      'assets/images/icon_track_detail_time_base_arrow.webp');
 
   /// File path: assets/images/icon_track_error.webp
   AssetGenImage get iconTrackError =>
@@ -609,23 +595,19 @@ class $AssetsImagesGen {
 
   /// File path: assets/images/img_dialog_location_always_tip_1.webp
   AssetGenImage get imgDialogLocationAlwaysTip1 => const AssetGenImage(
-    'assets/images/img_dialog_location_always_tip_1.webp',
-  );
+      'assets/images/img_dialog_location_always_tip_1.webp');
 
   /// File path: assets/images/img_dialog_location_always_tip_2.webp
   AssetGenImage get imgDialogLocationAlwaysTip2 => const AssetGenImage(
-    'assets/images/img_dialog_location_always_tip_2.webp',
-  );
+      'assets/images/img_dialog_location_always_tip_2.webp');
 
   /// File path: assets/images/img_dialog_location_always_tip_3.webp
   AssetGenImage get imgDialogLocationAlwaysTip3 => const AssetGenImage(
-    'assets/images/img_dialog_location_always_tip_3.webp',
-  );
+      'assets/images/img_dialog_location_always_tip_3.webp');
 
   /// File path: assets/images/img_member_first_week_discount_container.webp
   AssetGenImage get imgMemberFirstWeekDiscountContainer => const AssetGenImage(
-    'assets/images/img_member_first_week_discount_container.webp',
-  );
+      'assets/images/img_member_first_week_discount_container.webp');
 
   /// File path: assets/images/img_member_header_ad_1.webp
   AssetGenImage get imgMemberHeaderAd1 =>
@@ -649,8 +631,7 @@ class $AssetsImagesGen {
 
   /// File path: assets/images/img_member_user_cancels_container.webp
   AssetGenImage get imgMemberUserCancelsContainer => const AssetGenImage(
-    'assets/images/img_member_user_cancels_container.webp',
-  );
+      'assets/images/img_member_user_cancels_container.webp');
 
   /// File path: assets/images/img_track_ai_analyse.webp
   AssetGenImage get imgTrackAiAnalyse =>
@@ -666,162 +647,162 @@ class $AssetsImagesGen {
 
   /// List of all assets
   List<AssetGenImage> get values => [
-    bgAddFriendDialog,
-    bgCheckLocationPermission,
-    bgDialogLocationPermissionIos,
-    bgDialogTrackError,
-    bgFriendItem,
-    bgLocationAnalyse,
-    bgLocationAnalyseAi,
-    bgLoginHeadContainer,
-    bgMemberHeader,
-    bgMineMemberCard,
-    bgPageBackground,
-    bgTrackLocationTie,
-    bgTrackPieChat,
-    bgUrgentContactAdd,
-    bgUrgentContactEmpty,
-    bgUrgentContactLogo,
-    bgUrgentContactPopup,
-    iconAccountReplaceLogo,
-    iconAddFriendBackGround,
-    iconAgreementClose,
-    iconAlipayPayment,
-    iconAlipayScanPayment,
-    iconAppleRecoverSubscribe,
-    iconAvatarClose,
-    iconAvatarSelected,
-    iconBlackBack,
-    iconCallPhone,
-    iconCbSelected,
-    iconCbUnSelect,
-    iconCheckboxSelected,
-    iconCheckboxUnSelect,
-    iconDefaultFriendAvatar,
-    iconDefaultMineAvatar,
-    iconDialogAddFriend,
-    iconDialogClose,
-    iconDialogClose2,
-    iconDialogNetError,
-    iconEvaluate1,
-    iconEvaluate2,
-    iconEvaluate3,
-    iconEvaluate4,
-    iconEvaluate5,
-    iconExperiment,
-    iconFriendEdit,
-    iconFriendEditArrow,
-    iconFriendNews,
-    iconFriendSettingCopy,
-    iconGuard,
-    iconLoginAddressBook,
-    iconLoginClose,
-    iconLoginGoWxArrow,
-    iconLoginPhone,
-    iconLoginWx,
-    iconLogo,
-    iconLogoMax,
-    iconMainAddFriend,
-    iconMainFriendGuard,
-    iconMainHelp,
-    iconMainMapClock,
-    iconMainMine,
-    iconMainNews,
-    iconMainRefreshFriendLocation,
-    iconMainRefreshMineLocation,
-    iconMainTrackArrow,
-    iconMemberAvatar,
-    iconMemberCommentVerySatisfied,
-    iconMemberContactClickHelp,
-    iconMemberContactClickHelpClose,
-    iconMemberFun5,
-    iconMemberFun1,
-    iconMemberFun2,
-    iconMemberFun3,
-    iconMemberFun4,
-    iconMemberFun6,
-    iconMemberOrdinaryProductNormal,
-    iconMemberOrdinaryProductSelect,
-    iconMemberPaymentCompleted,
-    iconMemberRetainClose,
-    iconMemberSettlementBg,
-    iconMemberSettlementConfirm,
-    iconMemberSpecialProductsNormal,
-    iconMemberSpecialProductsSelect,
-    iconMemberVipBack,
-    iconMemberVipMiddleBg,
-    iconMemberVipMore,
-    iconMemberVipReceiveArrow,
-    iconMemberVipSign,
-    iconMessageFriendHelp,
-    iconMineFunAbout,
-    iconMineFunAccountFeedback,
-    iconMineFunArrow,
-    iconMineFunCustomerService,
-    iconMineFunExitAccount,
-    iconMineFunLogoutAccount,
-    iconMineFunPermissionSetting,
-    iconMineFunShare,
-    iconMineLogged,
-    iconMineNoLogin,
-    iconMineSmallVip,
-    iconMineTrialExpirationBg,
-    iconMineTrialExpirationHave,
-    iconMineTrialExpirationHeader,
-    iconMineTrialExpirationPauseBg,
-    iconMineTrialExpirationQuestion,
-    iconMineTrialExpirationRecommend,
-    iconMineTrialExpirationUp,
-    iconMineTrialExpirationVip,
-    iconMineUnlockVip,
-    iconMineUrgentContact,
-    iconNetMobile,
-    iconNetWifi,
-    iconNews,
-    iconNewsItem,
-    iconNewsReport,
-    iconNewsReportAgree,
-    iconSplashTitle,
-    iconTrackAiInterpretation,
-    iconTrackAnalyseRefresh,
-    iconTrackDailyDoubt,
-    iconTrackDailyReport,
-    iconTrackDailySummary,
-    iconTrackDailySummaryArrow,
-    iconTrackDetailTimeBaseArrow,
-    iconTrackError,
-    iconTrackLocation,
-    iconTrackLocationNow,
-    iconTrackMoving,
-    iconTrackSearch,
-    iconTrackSearchClear,
-    iconTrackSelectTimeArrow,
-    iconTrackStay,
-    iconTrackUnlock,
-    iconTrackUnlockNoPermission,
-    iconUrgentAdd,
-    iconUrgentContactAdd,
-    iconUrgentContactDialPhone,
-    iconUrgentContactMore,
-    iconUrgentContactTipBg,
-    iconVip,
-    iconWechatPayment,
-    iconWechatScanPayment,
-    iconWhiteBack,
-    imgDialogLocationAlwaysTip1,
-    imgDialogLocationAlwaysTip2,
-    imgDialogLocationAlwaysTip3,
-    imgMemberFirstWeekDiscountContainer,
-    imgMemberHeaderAd1,
-    imgMemberHeaderAd2,
-    imgMemberHeaderAd3,
-    imgMemberHeaderAd4,
-    imgMemberRetainContainer,
-    imgMemberUserCancelsContainer,
-    imgTrackAiAnalyse,
-    imgTrackNoData,
-    imgTrackNoMemberTips,
-  ];
+        bgAddFriendDialog,
+        bgCheckLocationPermission,
+        bgDialogLocationPermissionIos,
+        bgDialogTrackError,
+        bgFriendItem,
+        bgLocationAnalyse,
+        bgLocationAnalyseAi,
+        bgLoginHeadContainer,
+        bgMemberHeader,
+        bgMineMemberCard,
+        bgPageBackground,
+        bgTrackLocationTie,
+        bgTrackPieChat,
+        bgUrgentContactAdd,
+        bgUrgentContactEmpty,
+        bgUrgentContactLogo,
+        bgUrgentContactPopup,
+        iconAccountReplaceLogo,
+        iconAddFriendBackGround,
+        iconAgreementClose,
+        iconAlipayPayment,
+        iconAlipayScanPayment,
+        iconAppleRecoverSubscribe,
+        iconAvatarClose,
+        iconAvatarSelected,
+        iconBlackBack,
+        iconCallPhone,
+        iconCbSelected,
+        iconCbUnSelect,
+        iconCheckboxSelected,
+        iconCheckboxUnSelect,
+        iconDefaultFriendAvatar,
+        iconDefaultMineAvatar,
+        iconDialogAddFriend,
+        iconDialogClose,
+        iconDialogClose2,
+        iconDialogNetError,
+        iconEvaluate1,
+        iconEvaluate2,
+        iconEvaluate3,
+        iconEvaluate4,
+        iconEvaluate5,
+        iconExperiment,
+        iconFriendEdit,
+        iconFriendEditArrow,
+        iconFriendNews,
+        iconFriendSettingCopy,
+        iconGuard,
+        iconLoginAddressBook,
+        iconLoginClose,
+        iconLoginGoWxArrow,
+        iconLoginPhone,
+        iconLoginWx,
+        iconLogo,
+        iconLogoMax,
+        iconMainAddFriend,
+        iconMainFriendGuard,
+        iconMainHelp,
+        iconMainMapClock,
+        iconMainMine,
+        iconMainNews,
+        iconMainRefreshFriendLocation,
+        iconMainRefreshMineLocation,
+        iconMainTrackArrow,
+        iconMemberAvatar,
+        iconMemberCommentVerySatisfied,
+        iconMemberContactClickHelp,
+        iconMemberContactClickHelpClose,
+        iconMemberFun5,
+        iconMemberFun1,
+        iconMemberFun2,
+        iconMemberFun3,
+        iconMemberFun4,
+        iconMemberFun6,
+        iconMemberOrdinaryProductNormal,
+        iconMemberOrdinaryProductSelect,
+        iconMemberPaymentCompleted,
+        iconMemberRetainClose,
+        iconMemberSettlementBg,
+        iconMemberSettlementConfirm,
+        iconMemberSpecialProductsNormal,
+        iconMemberSpecialProductsSelect,
+        iconMemberVipBack,
+        iconMemberVipMiddleBg,
+        iconMemberVipMore,
+        iconMemberVipReceiveArrow,
+        iconMemberVipSign,
+        iconMessageFriendHelp,
+        iconMineFunAbout,
+        iconMineFunAccountFeedback,
+        iconMineFunArrow,
+        iconMineFunCustomerService,
+        iconMineFunExitAccount,
+        iconMineFunLogoutAccount,
+        iconMineFunPermissionSetting,
+        iconMineFunShare,
+        iconMineLogged,
+        iconMineNoLogin,
+        iconMineSmallVip,
+        iconMineTrialExpirationBg,
+        iconMineTrialExpirationHave,
+        iconMineTrialExpirationHeader,
+        iconMineTrialExpirationPauseBg,
+        iconMineTrialExpirationQuestion,
+        iconMineTrialExpirationRecommend,
+        iconMineTrialExpirationUp,
+        iconMineTrialExpirationVip,
+        iconMineUnlockVip,
+        iconMineUrgentContact,
+        iconNetMobile,
+        iconNetWifi,
+        iconNews,
+        iconNewsItem,
+        iconNewsReport,
+        iconNewsReportAgree,
+        iconSplashTitle,
+        iconTrackAiInterpretation,
+        iconTrackAnalyseRefresh,
+        iconTrackDailyDoubt,
+        iconTrackDailyReport,
+        iconTrackDailySummary,
+        iconTrackDailySummaryArrow,
+        iconTrackDetailTimeBaseArrow,
+        iconTrackError,
+        iconTrackLocation,
+        iconTrackLocationNow,
+        iconTrackMoving,
+        iconTrackSearch,
+        iconTrackSearchClear,
+        iconTrackSelectTimeArrow,
+        iconTrackStay,
+        iconTrackUnlock,
+        iconTrackUnlockNoPermission,
+        iconUrgentAdd,
+        iconUrgentContactAdd,
+        iconUrgentContactDialPhone,
+        iconUrgentContactMore,
+        iconUrgentContactTipBg,
+        iconVip,
+        iconWechatPayment,
+        iconWechatScanPayment,
+        iconWhiteBack,
+        imgDialogLocationAlwaysTip1,
+        imgDialogLocationAlwaysTip2,
+        imgDialogLocationAlwaysTip3,
+        imgMemberFirstWeekDiscountContainer,
+        imgMemberHeaderAd1,
+        imgMemberHeaderAd2,
+        imgMemberHeaderAd3,
+        imgMemberHeaderAd4,
+        imgMemberRetainContainer,
+        imgMemberUserCancelsContainer,
+        imgTrackAiAnalyse,
+        imgTrackNoData,
+        imgTrackNoMemberTips
+      ];
 }
 
 class Assets {
@@ -832,7 +813,11 @@ class Assets {
 }
 
 class AssetGenImage {
-  const AssetGenImage(this._assetName, {this.size, this.flavors = const {}});
+  const AssetGenImage(
+    this._assetName, {
+    this.size,
+    this.flavors = const {},
+  });
 
   final String _assetName;
 
@@ -892,8 +877,15 @@ class AssetGenImage {
     );
   }
 
-  ImageProvider provider({AssetBundle? bundle, String? package}) {
-    return AssetImage(_assetName, bundle: bundle, package: package);
+  ImageProvider provider({
+    AssetBundle? bundle,
+    String? package,
+  }) {
+    return AssetImage(
+      _assetName,
+      bundle: bundle,
+      package: package,
+    );
   }
 
   String get path => _assetName;