Navaron Bracke

fix casts

@@ -9,14 +9,16 @@ Size toSize(Map data) { @@ -9,14 +9,16 @@ Size toSize(Map data) {
9 return Size(width, height); 9 return Size(width, height);
10 } 10 }
11 11
12 -List<Offset>? toCorners(List? data) {  
13 - if (data != null) {  
14 - return List.unmodifiable(  
15 - data.map((e) => Offset((e as Map)['x'] as double, e['y'] as double)),  
16 - );  
17 - } else { 12 +List<Offset>? toCorners(List<Map<String, Object?>>? data) {
  13 + if (data == null) {
18 return null; 14 return null;
19 } 15 }
  16 +
  17 + return List.unmodifiable(
  18 + data.map((Map<String, Object?> e) {
  19 + return Offset(e['x']! as double, e['y']! as double);
  20 + }),
  21 + );
20 } 22 }
21 23
22 BarcodeFormat toFormat(int value) { 24 BarcodeFormat toFormat(int value) {
@@ -92,7 +92,8 @@ class Barcode { @@ -92,7 +92,8 @@ class Barcode {
92 92
93 /// Create a [Barcode] from native data. 93 /// Create a [Barcode] from native data.
94 Barcode.fromNative(Map data) 94 Barcode.fromNative(Map data)
95 - : corners = toCorners(data['corners'] as List?), 95 + : corners =
  96 + toCorners((data['corners'] as List?)?.cast<Map<String, Object?>>()),
96 format = toFormat(data['format'] as int), 97 format = toFormat(data['format'] as int),
97 rawBytes = data['rawBytes'] as Uint8List?, 98 rawBytes = data['rawBytes'] as Uint8List?,
98 rawValue = data['rawValue'] as String?, 99 rawValue = data['rawValue'] as String?,
@@ -201,18 +202,20 @@ class ContactInfo { @@ -201,18 +202,20 @@ class ContactInfo {
201 /// Create a [ContactInfo] from native data. 202 /// Create a [ContactInfo] from native data.
202 ContactInfo.fromNative(Map data) 203 ContactInfo.fromNative(Map data)
203 : addresses = List.unmodifiable( 204 : addresses = List.unmodifiable(
204 - (data['addresses'] as List).map((e) => Address.fromNative(e as Map)), 205 + (data['addresses'] as List? ?? [])
  206 + .cast<Map>()
  207 + .map(Address.fromNative),
205 ), 208 ),
206 emails = List.unmodifiable( 209 emails = List.unmodifiable(
207 - (data['emails'] as List).map((e) => Email.fromNative(e as Map)), 210 + (data['emails'] as List? ?? []).cast<Map>().map(Email.fromNative),
208 ), 211 ),
209 name = toName(data['name'] as Map?), 212 name = toName(data['name'] as Map?),
210 organization = data['organization'] as String?, 213 organization = data['organization'] as String?,
211 phones = List.unmodifiable( 214 phones = List.unmodifiable(
212 - (data['phones'] as List).map((e) => Phone.fromNative(e as Map)), 215 + (data['phones'] as List? ?? []).cast<Map>().map(Phone.fromNative),
213 ), 216 ),
214 title = data['title'] as String?, 217 title = data['title'] as String?,
215 - urls = List.unmodifiable(data['urls'] as List); 218 + urls = List.unmodifiable((data['urls'] as List? ?? []).cast<String>());
216 } 219 }
217 220
218 /// An address. 221 /// An address.
@@ -227,7 +230,9 @@ class Address { @@ -227,7 +230,9 @@ class Address {
227 230
228 /// Create a [Address] from native data. 231 /// Create a [Address] from native data.
229 Address.fromNative(Map data) 232 Address.fromNative(Map data)
230 - : addressLines = List.unmodifiable(data['addressLines'] as List), 233 + : addressLines = List.unmodifiable(
  234 + (data['addressLines'] as List? ?? []).cast<String>(),
  235 + ),
231 type = AddressType.values[data['type'] as int]; 236 type = AddressType.values[data['type'] as int];
232 } 237 }
233 238