| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- import 'package:flutter/cupertino.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 '../../../data/bean/atmob_track_point.dart';
- @injectable
- class TrackDetailController extends BaseController {
- static const int lineStart = 1;
- static const int lineEnd = 2;
- final List<AtmobTrackPoint> originPoints = [];
- final RxList<AtmobTrackPoint> pointList = RxList();
- final TextEditingController searchController = TextEditingController();
- final RxString _searchTxt = ''.obs;
- String get searchTxt => _searchTxt.value;
- @override
- void onInit() {
- super.onInit();
- final argument = Get.arguments;
- if (argument != null && argument is List<AtmobTrackPoint>) {
- if (argument.length >= 2) {
- argument.first.traceType = lineStart;
- argument.last.traceType = lineEnd;
- }
- originPoints.addAll(argument);
- }
- }
- @override
- void onReady() {
- super.onReady();
- _dealSearchList();
- }
- void back() {
- Get.back();
- }
- @override
- void onClose() {
- super.onClose();
- searchController.dispose();
- }
- void onSearch(String txt) {
- _searchTxt.value = txt;
- _dealSearchList();
- }
- void _dealSearchList() {
- if (_searchTxt.value.isEmpty) {
- pointList.clear();
- pointList.addAll(originPoints);
- } else {
- pointList.clear();
- pointList.addAll(originPoints.where((element) {
- return element.addr?.contains(_searchTxt.value) == true;
- }));
- }
- }
- void onClearSearchTxt() {
- searchController.clear();
- _searchTxt.value = '';
- _dealSearchList();
- }
- }
|