Commit graph

35 commits

Author SHA1 Message Date
1864e5b105 fix: resolve 78 strict analysis errors with explicit type annotations
Implemented systematic type safety improvements across the codebase to eliminate all 78 strict analysis errors:

## Phase 1: Quick Wins (Redux & Model Fixes)
- Added explicit type annotations to Redux reducer parameters
- Fixed copyWith() methods in FireNotification and YourLocation models with proper nullable types
- Fixed BasicLocation field initializers with type casts (num to double)
- Fixed context parameter inference in IntroPage and PrivacyPage
- Regenerated .g.dart files with build_runner

## Phase 2: JSON Deserialization
- Fixed homePage.dart Firebase message parameter casting (9 errors)
- Fixed firesApi.dart JSON parsing:
  - Added explicit casts for num to double/int conversions
  - Fixed array iteration with proper List<dynamic> casting
  - Added return type annotation to objectIdFromJson()
  - Fixed nested JSON access in getMonitoredAreas()
- Fixed globalFiresBottomStats.dart dynamic to int/String casting
- Fixed locationUtils.dart string assignments

## Phase 3: Config & Redux Middleware
- Fixed mainCommon.dart config map access with explicit String casts
- Fixed mainProd.dart Sentry DSN casting
- Fixed fetchDataMiddleware.dart:
  - Added Store<AppState>, String type annotations to createUser()
  - Added Function(YourLocation) type to subscribeViaApi callback
  - Added Exception type to catchError handler
- Fixed fireMapReducer.dart restoreStatusAfterSave parameter type
- Fixed persist files with Map<String, dynamic> type annotations

## Phase 4: Edge Cases
- Fixed slider.dart method return types (Widget sizeText, Widget warningText)
- Fixed mainDrawer.dart Key? parameter type annotation

Result: 78 errors → 0 errors
2026-03-06 10:47:12 +01:00
14b558340d feat: replace layer toggle with layer selector menu
- Replace ToggleMapLayerAction with SelectMapLayerAction that takes a specific layer
- Update fireMapReducer to handle SelectMapLayerAction instead of toggling
- Use PopupMenuButton with GlobalKey to open menu on button tap
- Show check icon and bold text for currently selected layer
- Menu items display layer names: OSMC Grey, OSMC, Esri Street, Esri Satellite, Esri Terrain
- Selecting a layer immediately updates Redux state and closes the menu
2026-03-06 08:48:59 +01:00
a7f3ab6974 Fix remaining compilation errors: null-safety, removed packages, and nullable handling
- Fix AppState: remove removed connectivity package, fix imports (latlong2), make nullable fields optional
- Fix User model: use const empty strings in const constructor instead of null
- Fix model builders: add required ObjectId parameters to YourLocation and FireNotification
- Implement Comparable instead of extending it for BasicLocation
- Fix nullable callback handling in appActions and middleware (Completer<Null>?)
- Add null checks for BuildContext in dialogs (fireAlert, homePage, etc.)
- Fix nullable scaffold state access using ?. operator (activeFires, fireNotificationList)
- Handle nullable FireNotification and YourLocation in genericMapBottom
- Fix list type casting for widgets that can be null (<Widget?> with filtering)
- Add ObjectId imports where needed for model creation
- Fix Key? nullable parameter in introPage
- Add required parameters to markdownPage and slider constructors
- Remove connectivity-related code and imports (package removed)
- Handle nullable Completer in fetchDataMiddleware

All 104 errors resolved. 0 errors, 61 warnings/info remaining.
2026-03-05 02:50:32 +01:00
eb0d19621c Migrate fires_flutter to flutter_map v6.1.0 and complete major null-safety fixes
- Updated Android build files: gradle plugin 8.2.2, gradle 8.3, SDK 34, minSdk 21
- Ran dart fix --apply for 87 automatic null-safety fixes
- Migrated flutter_map v6 API breaking changes:
  - MapOptions: center → initialCenter, zoom → initialZoom
  - layers → children structure
  - TileLayerOptions/MarkerLayerOptions/PolylineLayerOptions → TileLayer/MarkerLayer/PolylineLayer
  - Removed plugin_api.dart imports
  - Converted old plugin system (ZoomMapPlugin, AttributionPlugin, etc.) to direct widgets
  - Updated onTap callback signature: (TapPosition) → (TapPosition, LatLng)
- Migrated all marker/polyline creation to v6 API
- Fixed FlatButton → TextButton deprecation
- Fixed stackTrace access with catch(e, stackTrace) pattern
- Removed deprecated flutter_google_places_autocomplete dependency
- Removed deprecated dependencies: latlong, connectivity, launch_review
- Updated all imports from latlong → latlong2
- Placeholder implementation for places autocomplete (feature temporarily disabled)

Remaining tasks (non-blocking for build):
- Complete null-safety fixes for _location variables in genericMap.dart
- Fix theme.dart MaterialTheme parameter issues
- Fix customStepper.dart null-safety issues
- Final build and testing
2026-03-05 02:10:14 +01:00
21ec08303a Last changes not published 2026-03-05 01:18:27 +01:00
Vicente J. Ruiz Jurado
46026917c7 Fetch fire data on new locations 2018-08-17 06:49:44 +02:00
Vicente J. Ruiz Jurado
d3cd6012e6 Better error handling in fetch data 2018-08-14 08:55:14 +02:00
Vicente J. Ruiz Jurado
cb02156ae1 Better fire stats. False positives mark api part 2018-08-08 08:55:31 +02:00
Vicente J. Ruiz Jurado
e50ff5179b Added Monitorized Areas 2018-08-06 10:34:32 +02:00
Vicente J. Ruiz Jurado
76085dcb2f False positives in fire notifications 2018-08-04 11:19:54 +02:00
Vicente J. Ruiz Jurado
845c38bf04 Map attribution & map layers plugin 2018-08-04 09:14:51 +02:00
Vicente J. Ruiz Jurado
e67256c010 Connectivity redux work 2018-08-03 20:26:15 +02:00
Vicente J. Ruiz Jurado
0b50a90efb Set to 0 unread fire notifications on delete 2018-08-03 09:08:03 +02:00
Vicente J. Ruiz Jurado
add46379bd Process yourLocations even without response 2018-08-03 08:47:37 +02:00
Vicente J. Ruiz Jurado
8025d9c3d5 Connection check (wip) 2018-08-03 08:47:16 +02:00
Vicente J. Ruiz Jurado
e6213fa0f3 Minor refactor 2018-08-03 08:43:23 +02:00
Vicente J. Ruiz Jurado
74b0d37839 More fire stats 2018-08-01 22:17:57 +02:00
Vicente J. Ruiz Jurado
9dd8a7de97 More work with fire notifications 2018-07-31 12:51:10 +02:00
Vicente J. Ruiz Jurado
8926fc20d9 Fire notification map 2018-07-26 22:32:30 +02:00
Vicente J. Ruiz Jurado
b7468de0d1 Fire notification read 2018-07-26 20:30:24 +02:00
Vicente J. Ruiz Jurado
5ecc3c3401 Fire notifications 2018-07-26 19:13:12 +02:00
vjrj
f0ab472b3a Markdown. Privacy Policies. Injection dep updated 2018-07-12 09:57:31 +02:00
vjrj
609cf8422a Editing location finished 2018-07-05 18:36:24 +02:00
vjrj
c0e8524692 Location edition 2018-07-05 17:17:45 +02:00
vjrj
87718b7ad5 Location edition 2018-07-05 12:50:08 +02:00
vjrj
e55edce3d4 More work with redux, and location edit (wip) 2018-07-03 13:07:02 +02:00
vjrj
e97a5a1a9f More work with redux, and location edit (wip) 2018-07-03 12:28:40 +02:00
vjrj
a9329e3824 Added simple injector 2018-06-29 08:44:06 +02:00
vjrj
eedd39f6fc More redux work 2018-06-29 00:36:43 +02:00
vjrj
657fecdf17 More redux work 2018-06-28 18:52:48 +02:00
vjrj
7dddf03e32 More redux work in fires page 2018-06-28 10:42:59 +02:00
vjrj
5d947f9577 More redux work 2018-06-27 22:29:54 +02:00
vjrj
69428c5d96 More work with redux and load/persist data 2018-06-27 20:58:10 +02:00
vjrj
2dfa745c6a More redux work. User creation/retrieve 2018-06-27 19:46:02 +02:00
vjrj
2c67b68512 More redux and api work 2018-06-27 16:26:06 +02:00