High-priority fixes (10 issues): - assignment_to_final errors (7): Use copyWith() to respect immutability in YourLocation, active_fires.dart, generic_map.dart, location_utils.dart, and fetch_data_middleware.dart instead of direct assignment - Fixed import paths (3): Updated falsePositiveTypes.dart → false_positive_types.dart and firesApi.dart → fires_api.dart in reducers.dart, fire_notification_actions.dart, fires_api.dart Medium/Low priority fixes (3 issues): - unnecessary_non_null_assertion: Removed redundant '!' in app_intro_page.dart line 54 - use_super_parameters: Updated app_intro_page.dart to use modern super(key: key) syntax - no_logic_in_create_state: Fixed material_app_with_intro.dart by moving parameters to State instead of createState - noop_primitive_operations: Removed redundant .toString() in string interpolation - avoid_void_async: Changed void _selectLocation to Future<void> in places_autocomplete_utils.dart - avoid_dynamic_calls: Fixed dynamic map access in fires_api.dart by properly casting intermediate values Result: Reduced lint issues from 56 to 20 (all remaining are by-design: library_private_types_in_public_api and implementation_imports from external packages) APK builds successfully with no errors.
103 lines
3.6 KiB
Dart
103 lines
3.6 KiB
Dart
import 'package:objectid/objectid.dart';
|
|
import 'package:redux/redux.dart';
|
|
|
|
import '../models/fire_map_state.dart';
|
|
import '../models/your_location.dart';
|
|
import 'actions.dart';
|
|
|
|
final Reducer<FireMapState> fireMapReducer =
|
|
combineReducers<FireMapState>(<Reducer<FireMapState>>[
|
|
TypedReducer<FireMapState, ShowYourLocationMapAction>(_showYourLocationMap),
|
|
TypedReducer<FireMapState, ShowFireNotificationMapAction>(
|
|
_showFireNotificationMap),
|
|
TypedReducer<FireMapState, UpdateFireMapStatsAction>(
|
|
_updateYourLocationMapStats),
|
|
TypedReducer<FireMapState, SubscribeAction>(_subscribeYourLocationMap),
|
|
TypedReducer<FireMapState, SubscribeConfirmAction>(
|
|
_subscribeConfirmYourLocationMap),
|
|
TypedReducer<FireMapState, UnSubscribeAction>(_unsubscribeYourLocationMap),
|
|
TypedReducer<FireMapState, EditYourLocationAction>(_editYourLocationMap),
|
|
TypedReducer<FireMapState, EditConfirmYourLocationAction>(
|
|
_editConfirmYourLocationMap),
|
|
TypedReducer<FireMapState, EditCancelYourLocationAction>(
|
|
_editCancelYourLocationMap),
|
|
TypedReducer<FireMapState, SelectMapLayerAction>(_selectMapLayer),
|
|
TypedReducer<FireMapState, UpdateYourLocationMapAction>(
|
|
_updateYourLocationMap)
|
|
]);
|
|
|
|
FireMapState _updateYourLocationMapStats(
|
|
FireMapState state, UpdateFireMapStatsAction action) {
|
|
return state.copyWith(
|
|
numFires: action.numFires,
|
|
fires: action.fires,
|
|
falsePos: action.falsePos,
|
|
industries: action.industries);
|
|
}
|
|
|
|
FireMapState _updateYourLocationMap(
|
|
FireMapState state, UpdateYourLocationMapAction action) {
|
|
return state.copyWith(yourLocation: action.loc);
|
|
}
|
|
|
|
FireMapState _showYourLocationMap(
|
|
FireMapState state, ShowYourLocationMapAction action) {
|
|
return state.copyWith(
|
|
status: action.loc.subscribed
|
|
? FireMapStatus.unsubscribe
|
|
: FireMapStatus.view,
|
|
yourLocation: action.loc);
|
|
}
|
|
|
|
FireMapState _showFireNotificationMap(
|
|
FireMapState state, ShowFireNotificationMapAction action) {
|
|
// TODO(developer): use here real location instead of notification location?
|
|
final YourLocation pseudoLoc = YourLocation(
|
|
id: ObjectId(),
|
|
lat: action.notif.lat,
|
|
lon: action.notif.lon,
|
|
description: action.notif.description);
|
|
return state.copyWith(
|
|
status: FireMapStatus.viewFireNotification,
|
|
yourLocation: pseudoLoc,
|
|
fireNotication: action.notif);
|
|
}
|
|
|
|
FireMapState _subscribeYourLocationMap(
|
|
FireMapState state, SubscribeAction action) {
|
|
return state.copyWith(status: FireMapStatus.subscriptionConfirm);
|
|
}
|
|
|
|
FireMapState _subscribeConfirmYourLocationMap(
|
|
FireMapState state, SubscribeConfirmAction action) {
|
|
return state.copyWith(
|
|
status: FireMapStatus.unsubscribe, yourLocation: action.loc);
|
|
}
|
|
|
|
FireMapState _unsubscribeYourLocationMap(
|
|
FireMapState state, UnSubscribeAction action) {
|
|
return state.copyWith(status: FireMapStatus.view, yourLocation: action.loc);
|
|
}
|
|
|
|
FireMapState _editYourLocationMap(
|
|
FireMapState state, EditYourLocationAction action) {
|
|
return state.copyWith(status: FireMapStatus.edit);
|
|
}
|
|
|
|
FireMapState _editConfirmYourLocationMap(
|
|
FireMapState state, EditConfirmYourLocationAction action) {
|
|
return state.copyWith(status: restoreStatusAfterSave(action.loc));
|
|
}
|
|
|
|
FireMapState _editCancelYourLocationMap(
|
|
FireMapState state, EditCancelYourLocationAction action) {
|
|
return state.copyWith(
|
|
status: restoreStatusAfterSave(action.loc), yourLocation: action.loc);
|
|
}
|
|
|
|
FireMapStatus restoreStatusAfterSave(YourLocation loc) =>
|
|
loc.subscribed ? FireMapStatus.unsubscribe : FireMapStatus.view;
|
|
|
|
FireMapState _selectMapLayer(FireMapState state, SelectMapLayerAction action) {
|
|
return state.copyWith(layer: action.layer);
|
|
}
|