added support for simultan downloads in files and talk, support for background downloads, enhanced loading in files with retry
This commit is contained in:
+22
-2
@@ -44,11 +44,13 @@ import 'storage/settings.dart';
|
||||
import 'theming/dark_app_theme.dart';
|
||||
import 'theming/light_app_theme.dart';
|
||||
import 'utils/app_paths.dart';
|
||||
import 'utils/downloads/download_manager.dart';
|
||||
import 'view/login/login.dart';
|
||||
import 'view/login/post_login_splash.dart';
|
||||
import 'widget/app_progress_indicator.dart';
|
||||
import 'widget/breaker/breaker.dart';
|
||||
import 'widget/debug/cache_view.dart';
|
||||
import 'widget/downloads/download_tray.dart';
|
||||
import 'widget_data/widget_sync.dart';
|
||||
|
||||
Future<void> main() async {
|
||||
@@ -98,6 +100,15 @@ Future<void> main() async {
|
||||
await PushRenderer.ensureChannels();
|
||||
FirebaseMessaging.onBackgroundMessage(pushOnBackgroundMessage);
|
||||
|
||||
// Wire up the native background downloader (progress notifications + tap
|
||||
// handling) before the UI so a completion notification tapped during cold
|
||||
// start is captured and opened once the downloads tray mounts.
|
||||
unawaited(
|
||||
DownloadManager.instance.initialize().onError(
|
||||
(e, _) => log('DownloadManager init failed: $e'),
|
||||
),
|
||||
);
|
||||
|
||||
// Wire up the home-screen widget bridge before runApp so any widget render
|
||||
// triggered during startup hits initialised native storage.
|
||||
await WidgetSync.ensureInitialized();
|
||||
@@ -285,8 +296,14 @@ class _MainState extends State<Main> {
|
||||
checkerboardRasterCacheImages:
|
||||
devToolsSettings.checkerboardRasterCacheImages,
|
||||
debugShowCheckedModeBanner: false,
|
||||
navigatorKey: AppRoutes.rootNavigatorKey,
|
||||
// Used by ChatView.didPopNext to reclaim the global ChatBloc.
|
||||
navigatorObservers: [AppRoutes.chatRouteObserver],
|
||||
// DownloadRouteObserver tracks full-page navigations so the downloads
|
||||
// chip only surfaces once the user leaves the screen they started on.
|
||||
navigatorObservers: [
|
||||
AppRoutes.chatRouteObserver,
|
||||
DownloadRouteObserver(),
|
||||
],
|
||||
localizationsDelegates: const [
|
||||
...GlobalMaterialLocalizations.delegates,
|
||||
GlobalWidgetsLocalizations.delegate,
|
||||
@@ -304,7 +321,10 @@ class _MainState extends State<Main> {
|
||||
// black flash.
|
||||
builder: (context, child) => ColoredBox(
|
||||
color: LightAppTheme.marianumRed,
|
||||
child: child ?? const SizedBox.shrink(),
|
||||
// Downloads tray mounted ABOVE the navigator so its chip floats over
|
||||
// every route (folder views, chat, viewer are full-page pushes that
|
||||
// would otherwise cover it).
|
||||
child: DownloadTrayHost(child: child ?? const SizedBox.shrink()),
|
||||
),
|
||||
home: LoaderOverlay(
|
||||
child: Breaker(
|
||||
|
||||
Reference in New Issue
Block a user