Преглед изворни кода

[new]移除轨迹冗余代码

zk пре 5 месеци
родитељ
комит
a02baaf79a
2 измењених фајлова са 0 додато и 457 уклоњено
  1. 0 276
      lib/module/track/track_controller.dart
  2. 0 181
      lib/module/track/track_page.dart

+ 0 - 276
lib/module/track/track_controller.dart

@@ -1,6 +1,3 @@
-import 'package:flutter/cupertino.dart';
-import 'package:flutter/material.dart';
-import 'package:flutter_cupertino_datetime_picker/flutter_cupertino_datetime_picker.dart';
 import 'package:flutter_map/flutter_map.dart';
 import 'package:get/get.dart';
 import 'package:get/get_core/src/get_main.dart';
@@ -8,32 +5,16 @@ 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/consts/constants.dart';
-import 'package:location/data/consts/error_code.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/dialog/loading_dialog.dart';
 import 'package:location/handler/error_handler.dart';
-import 'package:location/module/member/member_page.dart';
-import 'package:location/module/track/track_detail/track_detail_page.dart';
-import 'package:location/module/track/track_util.dart';
-import 'package:location/resource/string.gen.dart';
-import 'package:location/utils/atmob_log.dart';
-import 'package:location/utils/common_expand.dart';
-import 'package:location/utils/http_handler.dart';
-import 'package:location/utils/toast_util.dart';
 import 'package:sliding_sheet2/sliding_sheet2.dart';
 import '../../data/bean/atmob_track_point.dart';
 import '../../data/bean/user_info.dart';
-import '../../dialog/common_confirm_dialog_impl.dart';
-import '../../utils/date_util.dart';
-import '../../utils/pair.dart';
 
 @injectable
 class TrackController extends BaseController {
-  final int errorQueryOriginalDataEmpty = 10; //查询原始数据集为空
-  final int errorQueryOriginalTooFew = 11; //查询原始数据集少于2点
 
   final Rxn<UserInfo> _userInfo = Rxn<UserInfo>();
 
@@ -41,27 +22,8 @@ class TrackController extends BaseController {
 
   final MapController mapController = MapController();
 
-  final Rxn<DateTime> _trackStartTime = Rxn<DateTime>();
-  final Rxn<DateTime> _trackEndTime = Rxn<DateTime>();
-
-  DateTime? get trackStartTime => _trackStartTime.value;
-
-  DateTime? get trackEndTime => _trackEndTime.value;
   SheetController sheetController = SheetController();
 
-  final Rxn<String> _startAddress = Rxn<String>();
-  final Rxn<String> _endAddress = Rxn<String>();
-
-  String? get startAddress => _startAddress.value;
-
-  String? get endAddress => _endAddress.value;
-
-  final Duration maxDuration = Duration(days: 1);
-  final String timeFormat = "yyyy年-MM月-dd日 HH时:mm分";
-  final RxInt _currentIndex = 0.obs;
-
-  int get currentIndex => _currentIndex.value;
-
   final Rxn<LocationInfo> _currentLocation = Rxn<LocationInfo>();
 
   LocationInfo? get currentLocation => _currentLocation.value;
@@ -88,8 +50,6 @@ class TrackController extends BaseController {
     if (param is UserInfo) {
       _userInfo.value = param;
     }
-    _initTime();
-    _onCurrentLocationQuery(isShow: false);
     _onRequestTrackDateList();
   }
 
@@ -116,245 +76,9 @@ class TrackController extends BaseController {
     }
   }
 
-  void _handleTabChange() {}
-
-  void _initTime() {
-    //开始时间往前推一天
-    _trackStartTime.value = DateUtil.getNow(subtract: Duration(days: 1));
-    _trackEndTime.value = DateUtil.getNow();
-  }
-
   void back() {
     Get.back();
   }
 
-  void onTrackStartTimeClick(BuildContext context) {
-    if (userInfo?.virtual == true && accountRepository.memberIsExpired()) {
-      MemberPage.start();
-      return;
-    }
-    DatePicker.showDatePicker(context,
-        locale: DateTimePickerLocale.zh_cn,
-        initialDateTime: _trackStartTime.value,
-        dateFormat: timeFormat, onConfirm: (dateTime, selectedIndex) {
-      if (trackEndTime != null &&
-          DateUtil.isTimeRangeExceed(dateTime, trackEndTime!, maxDuration)) {
-        ToastUtil.show(StringName.trackChooseTimeError);
-        _trackEndTime.value = dateTime.add(maxDuration);
-      }
-      _trackStartTime.value = dateTime;
-    });
-  }
-
-  void onTrackEndTimeClick(BuildContext context) {
-    if (userInfo?.virtual == true && accountRepository.memberIsExpired()) {
-      MemberPage.start();
-      return;
-    }
-    DatePicker.showDatePicker(context,
-        locale: DateTimePickerLocale.zh_cn,
-        initialDateTime: _trackEndTime.value,
-        dateFormat: timeFormat, onConfirm: (dateTime, selectedIndex) {
-      if (trackStartTime != null &&
-          DateUtil.isTimeRangeExceed(trackStartTime!, dateTime, maxDuration)) {
-        ToastUtil.show(StringName.trackChooseTimeError);
-        _trackStartTime.value = dateTime.subtract(maxDuration);
-      }
-      _trackEndTime.value = dateTime;
-    });
-  }
-
-  void onTrackQueryClick() {
-    if (userInfo?.virtual == false && accountRepository.memberIsExpired()) {
-      MemberPage.start();
-      return;
-    }
-    if (currentIndex == 0) {
-      _onTrackQuery();
-    } else {
-      _onCurrentLocationQuery();
-    }
-  }
-
-  void _onCurrentLocationQuery({bool isShow = true}) {
-    if (userInfo == null) {
-      return;
-    }
-    if (userInfo?.isMine == true) {
-      _currentLocation.value =
-          accountRepository.mineUserInfo.value.lastLocation.value;
-      if (isShow) {
-        _showCurrentLocation();
-      }
-    } else {
-      if (isShow) LoadingDialog.show(StringName.trackLoadingTxt);
-      friendsRepository
-          .getUserInfoFromId(userInfo!.id, isVirtual: userInfo!.virtual)
-          .then((location) {
-        LoadingDialog.hide();
-        _currentLocation.value = userInfo?.lastLocation.value;
-        if (isShow) {
-          _showCurrentLocation();
-        }
-      }).catchError((error) {
-        debugPrint("error: $error");
-        ErrorHandler.toastError(error);
-      });
-    }
-  }
-
-  void _onTrackQuery() {
-    if (trackStartTime == null || trackEndTime == null || userInfo == null) {
-      return;
-    }
-    LoadingDialog.show(StringName.trackLoadingTxt);
-    _startAddress.value = '';
-    _endAddress.value = '';
-    originPoints = null;
-    points = null;
-    Future.value().then((_) {
-      if (userInfo?.virtual == true) {
-        return trackRepository.queryVirtualTrack();
-      } else {
-        return trackRepository.queryTrack(
-            startTime: trackStartTime?.millisecondsSinceEpoch,
-            endTime: trackEndTime?.millisecondsSinceEpoch,
-            userId: userInfo?.id);
-      }
-    }).map((trackResponse) {
-      final pointsList = trackResponse.trackPoints;
-      if (pointsList == null || pointsList.isEmpty) {
-        throw TrackQueryException(errorQueryOriginalDataEmpty);
-      }
-      if (pointsList.length < 2) {
-        throw TrackQueryException(errorQueryOriginalTooFew);
-      }
-      if (userInfo?.virtual == true) {
-        int nowMill = DateUtil.getNow().millisecondsSinceEpoch;
-        int firstMill = pointsList.first.time;
-        int differ = nowMill - firstMill;
-        pointsList.first.time = nowMill;
-        for (var element in pointsList) {
-          element.time = element.time + differ;
-        }
-      }
-      return pointsList;
-    }).then((pointsList) async {
-      final list = TrackUtil.points2TraceLocation(pointsList);
-      List<LatLng>? convertList;
-      try {
-        convertList = await FlutterMap.queryProcessedTrace(
-            lineID: pointsList.hashCode, locations: list);
-      } catch (e) {
-        AtmobLog.e("TrackController", "queryProcessedTrace error: $e");
-      }
-      if (convertList == null || convertList.isEmpty) {
-        //轨迹纠偏失败,使用原始数据
-        convertList = TrackUtil.traceLocation2LatLng(list);
-      }
-      return Pair(pointsList, convertList);
-    }).then((pair) {
-      originPoints = pair.first;
-      points = pair.second;
-      _showTrack();
-      _setStartAndEndAddress(start: pair.first.first, end: pair.first.last);
-    }).catchError((error) {
-      if (error is TrackQueryException) {
-        showQueryErrorDialog();
-      } else if (error is ServerErrorException) {
-        if (error.code == ErrorCode.noMember) {
-          MemberPage.start();
-          ToastUtil.show(StringName.memberExpired);
-        } else {
-          ToastUtil.show(error.message);
-        }
-      } else {
-        ErrorHandler.toastError(error);
-      }
-    }).whenComplete(() {
-      LoadingDialog.hide();
-      _isShowTraceDetailBtn.value = true;
-    });
-  }
-
-
-  void _setStartAndEndAddress(
-      {required AtmobTrackPoint start, required AtmobTrackPoint end}) {
-    _startAddress.value = start.addr;
-    _endAddress.value = end.addr;
-  }
-
-  void _showCurrentLocation() {
-    mapController.clear();
-    if (currentLocation == null || userInfo == null) {
-      return;
-    }
-    mapController.updateOrAddMarker(Marker(
-      id: userInfo!.id,
-      markerName: userInfo!.getUserNickName(),
-      longitude: userInfo!.lastLocation.value?.longitude,
-      latitude: userInfo!.lastLocation.value?.latitude,
-      markerType: userInfo!.isMine == true
-          ? MarkerType.traceEndMinePoint
-          : MarkerType.traceEndFriendPoint,
-      customAvatarUrl: userInfo!.avatar,
-    ));
-    mapController.animateCamera(CameraPosition(
-        latitude: currentLocation!.latitude,
-        longitude: currentLocation!.longitude,
-        zoom: 18));
-  }
-
-  void _showTrack() {
-    mapController.clear();
-    if (points == null || points!.length < 2) {
-      return;
-    }
-    mapController.addPolyline(points!,
-        mapPadding:
-            MapPadding(left: 50, top: 100, right: 50, bottom: Get.height / 2));
-    mapController.updateOrAddMarker(Marker(
-        id: Constants.traceStartId,
-        markerName: '',
-        longitude: points!.first.longitude,
-        latitude: points!.first.latitude,
-        markerType: MarkerType.traceStartPoint));
-    mapController.updateOrAddMarker(Marker(
-      id: Constants.traceEndId,
-      markerName: userInfo?.getUserNickName() ?? '',
-      longitude: points!.last.longitude,
-      latitude: points!.last.latitude,
-      markerType: userInfo?.isMine == true
-          ? MarkerType.traceEndMinePoint
-          : MarkerType.traceEndFriendPoint,
-      customAvatarUrl: userInfo?.avatar,
-    ));
-  }
-
-  void showQueryErrorDialog() {
-    showTraceNoDataDialog(onConfirm: () {});
-  }
-
-  void onTraceDetailClick() {
-    if (accountRepository.memberIsExpired()) {
-      MemberPage.start();
-      return;
-    }
-    if (originPoints == null || originPoints!.length < 2) {
-      showTraceNoDataDialog(onConfirm: () {});
-      return;
-    }
-    TrackDetailPage.start(originPoints!);
-  }
-
-  @override
-  void onClose() {
-    super.onClose();
-  }
-}
-
-class TrackQueryException implements Exception {
-  final int code;
 
-  TrackQueryException(this.code);
 }

+ 0 - 181
lib/module/track/track_page.dart

@@ -9,17 +9,13 @@ import 'package:location/base/base_page.dart';
 import 'package:location/data/bean/user_info.dart';
 import 'package:location/module/track/track_controller.dart';
 import 'package:location/module/track/track_day_detail/track_day_detail_view.dart';
-import 'package:location/resource/assets.gen.dart';
 import 'package:location/resource/colors.gen.dart';
-import 'package:location/resource/string.gen.dart';
 import 'package:location/utils/common_expand.dart';
 import 'package:location/utils/common_style.dart';
-import 'package:location/utils/date_util.dart';
 import 'package:sliding_sheet2/sliding_sheet2.dart';
 import '../../router/app_pages.dart';
 import '../../utils/fixed_size_tab_indicator.dart';
 import '../../widget/common_view.dart';
-import '../../widget/relative_time_text.dart';
 
 class TrackPage extends BasePage<TrackController> {
   const TrackPage({super.key});
@@ -192,181 +188,4 @@ class TrackPage extends BasePage<TrackController> {
     );
   }
 
-  Widget buildTrackHistoryContentView() {
-    return Column(
-      children: [
-        SizedBox(height: 10.w),
-        Builder(builder: (context) {
-          return GestureDetector(
-            onTap: () {
-              controller.onTrackStartTimeClick(context);
-            },
-            child: Padding(
-              padding: EdgeInsets.symmetric(vertical: 9.w),
-              child: Row(
-                children: [
-                  SizedBox(width: 14.w),
-                  Text(
-                    StringName.trackStartTime,
-                    style: TextStyle(
-                        fontSize: 14.sp,
-                        color: ColorName.black80,
-                        fontWeight: FontWeight.bold),
-                  ),
-                  Spacer(),
-                  Obx(() {
-                    return Text(
-                      controller.trackStartTime?.format('yyyy-MM-dd HH:mm') ??
-                          '',
-                      style:
-                          TextStyle(fontSize: 14.sp, color: ColorName.black50),
-                    );
-                  }),
-                  SizedBox(width: 6.w),
-                  Assets.images.iconTrackSelectTimeArrow
-                      .image(width: 16.w, height: 16.w),
-                  SizedBox(width: 14.w),
-                ],
-              ),
-            ),
-          );
-        }),
-        Builder(builder: (context) {
-          return GestureDetector(
-            onTap: () {
-              controller.onTrackEndTimeClick(context);
-            },
-            child: Padding(
-              padding: EdgeInsets.symmetric(vertical: 9.w),
-              child: Row(
-                children: [
-                  SizedBox(width: 14.w),
-                  Text(
-                    StringName.trackEndTime,
-                    style: TextStyle(
-                        fontSize: 14.sp,
-                        color: ColorName.black80,
-                        fontWeight: FontWeight.bold),
-                  ),
-                  Spacer(),
-                  Obx(() {
-                    return Text(
-                      controller.trackEndTime?.format('yyyy-MM-dd HH:mm') ?? '',
-                      style:
-                          TextStyle(fontSize: 14.sp, color: ColorName.black50),
-                    );
-                  }),
-                  SizedBox(width: 6.w),
-                  Assets.images.iconTrackSelectTimeArrow
-                      .image(width: 16.w, height: 16.w),
-                  SizedBox(width: 14.w),
-                ],
-              ),
-            ),
-          );
-        }),
-        SizedBox(height: 12.w),
-        Obx(() {
-          return Visibility(
-            visible: controller.startAddress != null ||
-                controller.endAddress != null,
-            child: Container(
-                padding: EdgeInsets.all(12.w),
-                margin: EdgeInsets.symmetric(horizontal: 14.w),
-                width: double.infinity,
-                decoration: BoxDecoration(
-                  color: '#E5F8F8F8'.color,
-                  borderRadius: BorderRadius.circular(12.w),
-                ),
-                child: Column(
-                  children: [
-                    buildAddressInfoView(
-                        '#12C172'.color,
-                        StringName.trackStartLocation,
-                        controller.startAddress ?? ''),
-                    Align(
-                        alignment: Alignment.centerLeft,
-                        child: Container(
-                            margin: EdgeInsets.only(left: 3.5.w),
-                            child: Assets.images.bgTrackLocationTie
-                                .image(width: 1.5.w))),
-                    buildAddressInfoView(
-                        '#F3353A'.color,
-                        StringName.trackEndLocation,
-                        controller.endAddress ?? ''),
-                  ],
-                )),
-          );
-        })
-      ],
-    );
-  }
-
-  Widget buildAddressInfoView(Color color, String title, String content) {
-    return Row(
-      children: [
-        Container(
-          width: 10.w,
-          height: 10.w,
-          decoration: BoxDecoration(
-            shape: BoxShape.circle,
-            border: Border.all(color: color, width: 2.w),
-          ),
-        ),
-        SizedBox(width: 11.w),
-        Text(title,
-            style: TextStyle(
-                fontSize: 13.sp,
-                color: ColorName.black80,
-                fontWeight: FontWeight.bold)),
-        Expanded(
-          child: Text(content,
-              style: TextStyle(fontSize: 13.sp, color: ColorName.black70)),
-        )
-      ],
-    );
-  }
-
-  Widget buildTrackNowContentView() {
-    return Column(
-      children: [
-        SizedBox(height: 20.w),
-        Row(
-          children: [
-            SizedBox(width: 12.w),
-            Assets.images.iconTrackLocationNow.image(width: 20.w, height: 20.w),
-            SizedBox(width: 3.w),
-            Obx(() {
-              return RelativeTimeText(
-                  startPerchText: '当前位置·',
-                  endPerchText:
-                      controller.currentLocation?.lastUpdateTime == null
-                          ? ''
-                          : '更新',
-                  timestamp: controller.currentLocation?.lastUpdateTime,
-                  updateInterval: Duration(minutes: 1),
-                  style: TextStyle(
-                      fontSize: 15.sp,
-                      color: '#333333'.color,
-                      fontWeight: FontWeight.bold));
-            })
-          ],
-        ),
-        SizedBox(height: 16.w),
-        Container(
-          width: double.infinity,
-          margin: EdgeInsets.symmetric(horizontal: 12.w),
-          padding: EdgeInsets.all(14.w),
-          decoration: BoxDecoration(
-            color: '#F9F9F9'.color,
-            borderRadius: BorderRadius.circular(6.w),
-          ),
-          child: Obx(() {
-            return Text(controller.currentLocation?.address ?? '--',
-                style: TextStyle(fontSize: 14.sp, color: '#666666'.color));
-          }),
-        )
-      ],
-    );
-  }
 }