app_widget_task.dart 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import 'package:app_flowy/startup/startup.dart';
  2. import 'package:flowy_style/theme.dart';
  3. import 'package:flutter/material.dart';
  4. import 'package:provider/provider.dart';
  5. import 'package:window_size/window_size.dart';
  6. import 'package:app_flowy/startup/launch.dart';
  7. class AppWidgetTask extends LaunchTask {
  8. @override
  9. LaunchTaskType get type => LaunchTaskType.appLauncher;
  10. @override
  11. void initialize(LaunchContext context) {
  12. final widget = context.getIt<AppFactory>().create();
  13. final app = AppWidget(child: widget);
  14. runApp(app);
  15. }
  16. }
  17. class AppWidget extends StatelessWidget {
  18. final Widget child;
  19. const AppWidget({
  20. Key? key,
  21. required this.child,
  22. }) : super(key: key);
  23. @override
  24. Widget build(BuildContext context) {
  25. setWindowMinSize(const Size(500, 500));
  26. final theme = AppTheme.fromType(ThemeType.light);
  27. return Provider.value(
  28. value: theme,
  29. child: MaterialApp(
  30. title: 'AppFlowy',
  31. debugShowCheckedModeBanner: false,
  32. theme: theme.themeData,
  33. navigatorKey: AppGlobals.rootNavKey,
  34. home: child,
  35. ));
  36. }
  37. }
  38. class AppGlobals {
  39. static GlobalKey<NavigatorState> rootNavKey = GlobalKey();
  40. static NavigatorState get nav => rootNavKey.currentState!;
  41. }