field_control_controller.dart 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import 'dart:async';
  2. import 'package:application/service/map_watch.dart';
  3. import 'package:common_pub/ui/map_view/view_map_cp.dart';
  4. import 'package:get/get.dart';
  5. import '../home_controller.dart';
  6. export 'package:application/service/map_watch.dart';
  7. class FieldControlController extends GetxController {
  8. @override
  9. void onInit() {
  10. super.onInit();
  11. final map = MapWatchService.instance;
  12. if (map != null) {
  13. activeList.bindStream(map.activeList.stream);
  14. }
  15. _subActive = activeList.listen((p0) {
  16. final user = focusUser;
  17. if(user != null){
  18. viewCpController.setCPList(user.cpList);
  19. }
  20. });
  21. }
  22. @override
  23. void onClose() {
  24. super.onClose();
  25. _subActive?.cancel();
  26. }
  27. final viewCpController = ViewMapCPController();
  28. StreamSubscription<List<ActiveInfo>>? _subActive;
  29. HomeController get _home => Get.find();
  30. MapWatchService? get mapWatch => MapWatchService.instance;
  31. final activeList = <ActiveInfo>[].obs;
  32. final Rx<int?> focusUserId = Rx(null);
  33. UserInfo? findFocusUser( List<ActiveInfo> list){
  34. if(focusUserId.value== null){
  35. return null;
  36. }
  37. for(final act in list){
  38. for(final user in act.userList){
  39. if(user.id == focusUserId.value){
  40. return user;
  41. }
  42. }
  43. }
  44. return null;
  45. }
  46. UserInfo? get focusUser{
  47. return findFocusUser(activeList);
  48. }
  49. }