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
This commit is contained in:
vjrj 2026-03-05 02:10:14 +01:00
parent 292cf65bbc
commit eb0d19621c
46 changed files with 586 additions and 697 deletions

View file

@ -1,54 +1,28 @@
import 'package:flutter/material.dart';
import 'package:logging/logging.dart';
import 'package:redux/redux.dart';
import 'package:redux_logging/redux_logging.dart';
import 'globals.dart' as globals;
import 'mainCommon.dart';
enum LogLevel { none, actions, all }
LoggingMiddleware customLogPrinter<State>({
Logger logger,
Level level = Level.INFO,
MessageFormatter<State> formatter = LoggingMiddleware.singleLineFormatter,
}) {
final middleware = new LoggingMiddleware<State>(
logger: logger,
level: level,
formatter: formatter,
);
middleware.logger.onRecord
.where((record) => record.loggerName == middleware.logger.name)
.listen((Object object) {
debugPrint("$object");
});
return middleware;
}
void main() {
void main() async {
globals.isDevelopment = true;
print("Is development!");
String onlyLogActionFormatter<State>(
State state,
dynamic action,
DateTime timestamp,
) {
return ">>>>> ${action.toString().replaceAll('Instance of ', '')}";
debugPrint("Is development!");
// Simple logging middleware para desarrollo
Middleware<dynamic> createLoggingMiddleware() {
return (Store<dynamic> store, dynamic action, NextDispatcher next) {
debugPrint(">>>>> ${action.toString().replaceAll('Instance of ', '')}");
next(action);
};
}
LogLevel logRedux = LogLevel.actions;
List<Middleware> devMiddlewares = logRedux == LogLevel.actions
? []
: [
customLogPrinter(
formatter: logRedux == LogLevel.all
? LoggingMiddleware.multiLineFormatter
: onlyLogActionFormatter)
];
List<Middleware<dynamic>> devMiddlewares =
logRedux == LogLevel.actions ? [] : [createLoggingMiddleware()];
// In development, Sentry is disabled, so we skip initialization
mainCommon(devMiddlewares);
}