| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 | import 'dart:ui';import 'package:appflowy/core/helpers/helpers.dart';import 'package:appflowy/startup/startup.dart';import 'package:appflowy/startup/tasks/app_window_size_manager.dart';import 'package:flutter/foundation.dart';import 'package:flutter/material.dart';import 'package:window_manager/window_manager.dart';class InitAppWindowTask extends LaunchTask with WindowListener {  const InitAppWindowTask({    this.minimumSize = const Size(800, 600),    this.title = 'AppFlowy',  });  final Size minimumSize;  final String title;  @override  Future<void> initialize(LaunchContext context) async {    // Don't initialize on mobile or web.    if (!defaultTargetPlatform.isDesktop) {      return;    }    await windowManager.ensureInitialized();    windowManager.addListener(this);    Size windowSize = await WindowSizeManager().getSize();    if (context.env.isIntegrationTest()) {      windowSize = const Size(1600, 1200);    }    final windowOptions = WindowOptions(      size: windowSize,      minimumSize: const Size(        WindowSizeManager.minWindowWidth,        WindowSizeManager.minWindowHeight,      ),      title: title,    );    windowManager.waitUntilReadyToShow(windowOptions, () async {      await windowManager.show();      await windowManager.focus();    });  }  @override  Future<void> onWindowResize() async {    final currentWindowSize = await windowManager.getSize();    WindowSizeManager().saveSize(currentWindowSize);  }}
 |