1
- import 'dart:math' ;
1
+ import 'dart:math' as math ;
2
2
3
3
import 'package:SarSys/blocs/tracking_bloc.dart' ;
4
4
import 'package:SarSys/core/defaults.dart' ;
5
5
import 'package:SarSys/map/tools/map_tools.dart' ;
6
+ import 'package:SarSys/models/Point.dart' ;
6
7
import 'package:SarSys/models/Tracking.dart' ;
7
8
import 'package:SarSys/models/Personnel.dart' ;
8
9
import 'package:SarSys/models/User.dart' ;
@@ -13,13 +14,15 @@ import 'package:SarSys/widgets/selector_panel.dart';
13
14
import 'package:SarSys/widgets/personnel.dart' ;
14
15
import 'package:flutter/cupertino.dart' ;
15
16
import 'package:flutter/material.dart' ;
17
+ import 'package:flutter_map/plugin_api.dart' ;
16
18
import 'package:latlong/latlong.dart' ;
17
19
18
20
class PersonnelTool extends MapTool with MapSelectable <Personnel > {
19
21
final User user;
20
22
final TrackingBloc bloc;
21
- final MessageCallback onMessage;
22
23
final bool includeRetired;
24
+ final MapController controller;
25
+ final MessageCallback onMessage;
23
26
24
27
final bool Function () _active;
25
28
@@ -29,6 +32,7 @@ class PersonnelTool extends MapTool with MapSelectable<Personnel> {
29
32
PersonnelTool (
30
33
this .bloc, {
31
34
@required this .user,
35
+ @required this .controller,
32
36
@required bool Function () active,
33
37
this .onMessage,
34
38
this .includeRetired = false ,
@@ -91,24 +95,35 @@ class PersonnelTool extends MapTool with MapSelectable<Personnel> {
91
95
elevation: 0 ,
92
96
backgroundColor: Colors .white,
93
97
child: SizedBox (
94
- height: min (550.0 , MediaQuery .of (context).size.height - 96 ),
98
+ height: math. min (550.0 , MediaQuery .of (context).size.height - 96 ),
95
99
width: MediaQuery .of (context).size.width - 96 ,
96
100
child: SingleChildScrollView (
97
101
child: PersonnelInfoPanel (
98
102
personnel: personnel,
99
103
tracking: tracking,
100
- devices:
101
- tracking.devices.map ((id) => bloc.deviceBloc.devices[id]).where ((personnel) => personnel != null ),
104
+ devices: tracking.devices
105
+ .map (
106
+ (id) => bloc.deviceBloc.devices[id],
107
+ )
108
+ .where (
109
+ (personnel) => personnel != null ,
110
+ ),
102
111
onMessage: onMessage,
103
112
withActions: user.isCommander == true ,
104
113
organization: FleetMapService ().fetchOrganization (Defaults .organization),
105
114
onDelete: () => Navigator .pop (context),
106
115
onComplete: (_) => Navigator .pop (context),
116
+ onGoto: (point) => _goto (context, point),
107
117
),
108
118
),
109
119
),
110
120
);
111
121
},
112
122
);
113
123
}
124
+
125
+ void _goto (BuildContext context, Point point) {
126
+ controller.move (toLatLng (point), controller.zoom);
127
+ Navigator .pop (context);
128
+ }
114
129
}
0 commit comments