47 lines
1.2 KiB
Dart
47 lines
1.2 KiB
Dart
import 'road_alert_models.dart';
|
|
import 'road_alert_provider_interface.dart';
|
|
import 'swarm_road_alert_service.dart';
|
|
|
|
class SwarmRoadAlertProvider implements RoadAlertProvider {
|
|
final SwarmRoadAlertService _service;
|
|
|
|
SwarmRoadAlertProvider(this._service);
|
|
|
|
@override
|
|
String get id => 'swarm_alerts';
|
|
|
|
@override
|
|
String get name => 'MotorSignal Rider Swarm';
|
|
|
|
@override
|
|
Set<RoadAlertCategory> get supportedCategories => const {
|
|
RoadAlertCategory.police,
|
|
RoadAlertCategory.hazard,
|
|
RoadAlertCategory.accident,
|
|
RoadAlertCategory.speedCamera,
|
|
RoadAlertCategory.roadClosure,
|
|
RoadAlertCategory.construction,
|
|
RoadAlertCategory.traffic,
|
|
RoadAlertCategory.other,
|
|
};
|
|
|
|
@override
|
|
Future<RoadAlertProviderStatus> testConnection(String apiKey) async {
|
|
return RoadAlertProviderStatus.connected;
|
|
}
|
|
|
|
@override
|
|
Future<List<RoadAlert>> getAlerts({
|
|
required double latitude,
|
|
required double longitude,
|
|
required double radiusMeters,
|
|
String? apiKey,
|
|
}) async {
|
|
return _service.getAlertsNear(
|
|
latitude: latitude,
|
|
longitude: longitude,
|
|
radiusMeters: radiusMeters,
|
|
);
|
|
}
|
|
}
|