@@ -53,7 +53,8 @@ class PreplannedOfflineMapState extends State<PreplannedOfflineMapSample> {
5353 children: [
5454 Expanded (
5555 child: ArcGISMapView (
56- controllerProvider: () => _mapViewController,
56+ controllerProvider: () =>
57+ _mapViewController..arcGISMap = _sourceMap,
5758 onMapViewReady: onMapViewReady,
5859 ),
5960 ),
@@ -73,7 +74,7 @@ class PreplannedOfflineMapState extends State<PreplannedOfflineMapSample> {
7374 padding: const EdgeInsets .all (8 ),
7475 itemCount: _preplannedAreas.length,
7576 itemBuilder: (context, index) {
76- final name = 'Map area $ index ' ;
77+ final name = _preplannedAreas[ index].portalItem.title ;
7778 return Card (
7879 child: ListTile (
7980 trailing: Text ((index == _selectedPreplannedAreaIndex && _isLoading)
@@ -93,9 +94,13 @@ class PreplannedOfflineMapState extends State<PreplannedOfflineMapSample> {
9394 final map = await _downloadOfflineMap (index);
9495 _mapViewController.arcGISMap = map;
9596 } catch (e) {
96- print (e);
97+ if (mounted) {
98+ print (e);
99+ }
97100 } finally {
98- setState (() => _isLoading = false );
101+ if (mounted) {
102+ setState (() => _isLoading = false );
103+ }
99104 }
100105 },
101106 ),
@@ -109,13 +114,17 @@ class PreplannedOfflineMapState extends State<PreplannedOfflineMapSample> {
109114 }
110115
111116 Future <void > _initPreplannedMapTask (ArcGISMap map) async {
112- final offlineMapTask = OfflineMapTask .withOnlineMap (map );
117+ final offlineMapTask = OfflineMapTask .withOnlineMap (_sourceMap );
113118 await offlineMapTask.load ();
114119 final preplannedAreas = await offlineMapTask.getPreplannedMapAreas ();
115- print ('Number of preplanned maps: ${preplannedAreas .length }' );
120+ for (final preplannedArea in preplannedAreas) {
121+ await preplannedArea.load ();
122+ }
116123
117124 _offlineMapTask = offlineMapTask;
118- setState (() => _preplannedAreas = preplannedAreas);
125+ if (mounted) {
126+ setState (() => _preplannedAreas = preplannedAreas);
127+ }
119128 }
120129
121130 Future <ArcGISMap ?> _downloadOfflineMap (int preplannedAreaIndex) async {
@@ -139,14 +148,10 @@ class PreplannedOfflineMapState extends State<PreplannedOfflineMapSample> {
139148 parameters: downloadParams,
140149 downloadDirectoryUri: mapDownloadDir.uri);
141150
142- print ('Starting download job' );
143151 final downloadResult = await downloadMapJob.run ();
144152
145153 // Return downloaded map
146- print ('Result job status: ${downloadMapJob .status }' );
147- if (downloadResult.hasErrors) {
148- print ('Downloading map failed with errors' );
149- } else {
154+ if (! downloadResult.hasErrors) {
150155 return downloadResult.offlineMap;
151156 }
152157
0 commit comments