Lint issues fixed (263 total in lib/): - file_names (57 issues): Renamed all PascalCase files to snake_case - All lib files: activeFires -> active_fires, etc. - All models: appState -> app_state, fireMapState -> fire_map_state, etc. - All redux files: appActions -> app_actions, appReducer -> app_reducer, etc. - Updated all import statements and exports across the codebase - Fixed unused imports, exports, and references in rebuilt modules Style fixes (16 issues): - prefer_generic_function_type_aliases (2): Updated typedef syntax from old to new - unnecessary_nullable_for_final_variable_declarations (2): Removed ? from non-nullable types - unnecessary_import: Removed duplicate meta/meta import - unnecessary_parenthesis: Removed unnecessary parentheses in expressions - avoid_renaming_method_parameters: Renamed parameter 'o' to 'other' - prefer_const_declarations: Changed final to const for constant values - use_key_in_widget_constructors (3): Added key parameters to widget constructors - sort_child_properties_last (1): Reordered children property to end Verification: - APK builds successfully (146 MB) - Reduced from 106 lint issues to 49 high-priority issues - Total file_names issues: 0 (down from 57) - All imports and exports updated correctly
88 lines
2.4 KiB
Dart
88 lines
2.4 KiB
Dart
import 'package:json_annotation/json_annotation.dart';
|
|
import 'package:meta/meta.dart';
|
|
import 'package:objectid/objectid.dart';
|
|
|
|
import '../objectIdUtils.dart';
|
|
|
|
part 'your_location.g.dart';
|
|
|
|
@immutable
|
|
@JsonSerializable()
|
|
class YourLocation {
|
|
const YourLocation(
|
|
{required this.id,
|
|
required this.lat,
|
|
required this.lon,
|
|
this.description = '',
|
|
this.distance = 10,
|
|
int? currentNumFires,
|
|
this.subscribed = false})
|
|
: currentNumFires = currentNumFires ?? 0;
|
|
|
|
factory YourLocation.fromJson(Map<String, dynamic> json) =>
|
|
_$YourLocationFromJson(json);
|
|
@JsonKey(toJson: objectIdToJson, fromJson: objectIdFromJson)
|
|
final ObjectId id;
|
|
final double lat;
|
|
final double lon;
|
|
final String description;
|
|
final bool subscribed;
|
|
final int distance;
|
|
final int currentNumFires;
|
|
|
|
static YourLocation get noLocation {
|
|
_noLocation ??= YourLocation(id: ObjectId(), lat: 0.0, lon: 0.0);
|
|
return _noLocation!;
|
|
}
|
|
|
|
static YourLocation? _noLocation;
|
|
static const int? withoutStats = null;
|
|
|
|
Map<String, dynamic> toJson() => _$YourLocationToJson(this);
|
|
|
|
YourLocation copyWith(
|
|
{ObjectId? id,
|
|
double? lat,
|
|
double? lon,
|
|
String? description,
|
|
int? distance,
|
|
int? currentNumFires,
|
|
bool? subscribed}) {
|
|
return YourLocation(
|
|
id: id ?? this.id,
|
|
lat: lat ?? this.lat,
|
|
lon: lon ?? this.lon,
|
|
description: description ?? this.description,
|
|
distance: distance ?? this.distance,
|
|
currentNumFires: currentNumFires ?? this.currentNumFires,
|
|
subscribed: subscribed ?? this.subscribed);
|
|
}
|
|
|
|
@override
|
|
bool operator ==(Object other) =>
|
|
identical(this, other) ||
|
|
other is YourLocation &&
|
|
runtimeType == other.runtimeType &&
|
|
id == other.id &&
|
|
lat == other.lat &&
|
|
lon == other.lon &&
|
|
description == other.description &&
|
|
subscribed == other.subscribed &&
|
|
currentNumFires == other.currentNumFires &&
|
|
distance == other.distance;
|
|
|
|
@override
|
|
int get hashCode =>
|
|
id.hashCode ^
|
|
lat.hashCode ^
|
|
lon.hashCode ^
|
|
description.hashCode ^
|
|
subscribed.hashCode ^
|
|
currentNumFires.hashCode ^
|
|
distance.hashCode;
|
|
|
|
@override
|
|
String toString() {
|
|
return 'YourLocation {id: $id, lat: $lat, lon: $lon, description: $description, subscribed: $subscribed, distance: $distance, currentNumFires: $currentNumFires}';
|
|
}
|
|
}
|