Upgrade Flutter packages and fix breaking changes for Riverpod 3.0

Major package upgrades:
- Riverpod 2.x → 3.0.3 (breaking changes)
- flutter_appauth 7.0.0 → 11.0.0
- go_router 14.0.0 → 17.0.0
- permission_handler 11.3.0 → 12.0.1
- flutter_lints 5.0.0 → 6.0.0
- animate_do 3.1.2 → 4.2.0
- Plus 41 transitive dependency updates

Breaking changes fixed:

Riverpod 3.0 migration:
- Replace StateProvider with NotifierProvider pattern
- Update .valueOrNull to proper async value handling with .future
- Create LanguageNotifier and ThemeModeNotifier classes
- Fix all provider async value access patterns

Google Maps Navigation API updates:
- Rename GoogleMapsNavigationViewController to GoogleNavigationViewController
- Update Waypoint to NavigationWaypoint.withLatLngTarget
- Migrate controller methods to static GoogleMapsNavigator methods
- Update event listener types and callbacks

Localization system fixes:
- Update l10n.yaml synthetic-package configuration
- Fix import paths from flutter_gen to package imports
- Add errorTitle translation key for both en/fr
- Remove unnecessary null-aware operators (AppLocalizations is non-nullable)
- Regenerate localization files

iOS/macOS configuration:
- Update CocoaPods dependencies (AppAuth 1.7.5 → 2.0.0)
- Create missing Profile.xcconfig files for both platforms
- Sync Podfile.lock files with updated dependencies

Code quality:
- Fix all analyzer errors (0 errors remaining)
- Resolve deprecated API usage warnings
- Update async/await patterns for better error handling

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Jean-Philippe Brule
2025-11-16 01:25:16 -05:00
parent 96c9e59cf0
commit d8bdaed63e
16 changed files with 272 additions and 171 deletions
+7 -10
View File
@@ -1,5 +1,5 @@
import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:planb_logistic/l10n/app_localizations.dart';
class NavigationTermsAndConditionsDialog extends StatelessWidget {
final VoidCallback onAccept;
@@ -18,7 +18,7 @@ class NavigationTermsAndConditionsDialog extends StatelessWidget {
return AlertDialog(
title: Text(
l10n?.navigationTcTitle ?? 'Navigation Service',
l10n.navigationTcTitle,
style: Theme.of(context).textTheme.headlineSmall?.copyWith(
color: colorScheme.onSurface,
),
@@ -29,24 +29,21 @@ class NavigationTermsAndConditionsDialog extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
l10n?.navigationTcDescription ??
'This app uses Google Navigation to provide turn-by-turn navigation for deliveries.',
l10n.navigationTcDescription,
style: Theme.of(context).textTheme.bodyMedium?.copyWith(
color: colorScheme.onSurface,
),
),
const SizedBox(height: 16),
Text(
l10n?.navigationTcAttribution ??
'Attribution: Maps and navigation services provided by Google Maps.',
l10n.navigationTcAttribution,
style: Theme.of(context).textTheme.bodySmall?.copyWith(
color: colorScheme.onSurfaceVariant,
),
),
const SizedBox(height: 12),
Text(
l10n?.navigationTcTerms ??
'By accepting, you agree to Google\'s Terms of Service and Privacy Policy for Navigation services.',
l10n.navigationTcTerms,
style: Theme.of(context).textTheme.bodySmall?.copyWith(
color: colorScheme.onSurfaceVariant,
),
@@ -62,7 +59,7 @@ class NavigationTermsAndConditionsDialog extends StatelessWidget {
onDecline!();
},
child: Text(
l10n?.decline ?? 'Decline',
l10n.decline,
style: TextStyle(color: colorScheme.error),
),
),
@@ -72,7 +69,7 @@ class NavigationTermsAndConditionsDialog extends StatelessWidget {
onAccept();
},
child: Text(
l10n?.accept ?? 'Accept',
l10n.accept,
style: TextStyle(color: colorScheme.primary),
),
),