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 originPoints = []; final RxList 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) { 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(); } }