fromMap static method
Implementation
static GeolocationEvent<dynamic> fromMap(JsonMap map) {
final type = _parseType(map['type'] as String?);
final payload = map['data'];
switch (type) {
case EventType.location:
return GeolocationEvent<Location>(
type: type,
data: Location.fromMap(
payload is Map ? Map<String, dynamic>.from(payload) : const {},
),
);
case EventType.motionChange:
case EventType.heartbeat:
case EventType.schedule:
return GeolocationEvent<Location>(
type: type,
data: Location.fromMap(
payload is Map ? Map<String, dynamic>.from(payload) : const {},
),
);
case EventType.activityChange:
if (payload is Map && payload['activity'] is Map) {
return GeolocationEvent<Activity>(
type: type,
data: Activity.fromMap(
Map<String, dynamic>.from(payload['activity'] as Map),
),
);
}
return GeolocationEvent<Activity>(
type: type,
data: Activity.fromMap(
payload is Map ? Map<String, dynamic>.from(payload) : const {},
),
);
case EventType.providerChange:
return GeolocationEvent<ProviderChangeEvent>(
type: type,
data: ProviderChangeEvent.fromMap(
payload is Map ? Map<String, dynamic>.from(payload) : const {},
),
);
case EventType.geofence:
return GeolocationEvent<GeofenceEvent>(
type: type,
data: GeofenceEvent.fromMap(
payload is Map ? Map<String, dynamic>.from(payload) : const {},
),
);
case EventType.connectivityChange:
return GeolocationEvent<ConnectivityChangeEvent>(
type: type,
data: ConnectivityChangeEvent.fromMap(
payload is Map ? Map<String, dynamic>.from(payload) : const {},
),
);
case EventType.http:
return GeolocationEvent<HttpEvent>(
type: type,
data: HttpEvent.fromMap(
payload is Map ? Map<String, dynamic>.from(payload) : const {},
),
);
case EventType.notificationAction:
case EventType.powerSaveChange:
case EventType.enabledChange:
case EventType.geofencesChange:
case EventType.unknown:
return GeolocationEvent<dynamic>(
type: type,
data: payload,
);
}
}