Offline Support
This commit is contained in:
+11
-2
@@ -5,17 +5,25 @@ import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
|
||||
import 'routing/app_router.dart';
|
||||
import 'models/profile.dart';
|
||||
import 'providers/connectivity_provider.dart';
|
||||
import 'providers/profile_provider.dart';
|
||||
import 'services/background_location_service.dart';
|
||||
import 'theme/app_theme.dart';
|
||||
import 'utils/snackbar.dart';
|
||||
import 'widgets/ios_install_prompt.dart';
|
||||
import 'widgets/offline_banner.dart';
|
||||
|
||||
class TasqApp extends ConsumerWidget {
|
||||
const TasqApp({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context, WidgetRef ref) {
|
||||
// Keep the connectivity monitor alive at the root so the global online
|
||||
// check is wired into StreamRecoveryWrapper before any provider subscribes
|
||||
// to a Supabase realtime stream. Without this watch the autoDispose
|
||||
// provider only stays alive while OfflineBanner is mounted, which is too
|
||||
// late for offline-cold-launch detection.
|
||||
ref.watch(connectivityMonitorProvider);
|
||||
final router = ref.watch(appRouterProvider);
|
||||
|
||||
// Ensure background service is running if the profile indicates tracking.
|
||||
@@ -48,8 +56,9 @@ class TasqApp extends ConsumerWidget {
|
||||
GlobalCupertinoLocalizations.delegate,
|
||||
FlutterQuillLocalizations.delegate,
|
||||
],
|
||||
builder: (context, child) =>
|
||||
IosInstallPrompt(child: child ?? const SizedBox.shrink()),
|
||||
builder: (context, child) => OfflineBanner(
|
||||
child: IosInstallPrompt(child: child ?? const SizedBox.shrink()),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user