ente/lib/models/location/location.dart

31 lines
843 B
Dart
Raw Normal View History

import 'package:freezed_annotation/freezed_annotation.dart';
part 'location.freezed.dart';
part 'location.g.dart';
@freezed
class Location with _$Location {
const factory Location({
required double? latitude,
required double? longitude,
}) = _Location;
factory Location.fromJson(Map<String, Object?> json) =>
_$LocationFromJson(json);
2023-05-02 12:13:21 +00:00
static isValidLocation(Location? location) {
if (location == null) return false;
if (location.latitude == null || location.longitude == null) return false;
final latValue = location.latitude!;
final longValue = location.longitude!;
if (latValue.isNaN || latValue.isInfinite) {
2023-05-02 12:13:21 +00:00
return false;
}
if (longValue.isNaN || longValue.isInfinite) {
2023-05-02 12:13:21 +00:00
return false;
}
if (latValue == 0.0 && longValue == 0.0) return false;
2023-05-02 12:13:21 +00:00
return true;
}
}