import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_clock/index_page.dart'; import 'package:flutter_clock/utils/app_utils.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:window_manager/window_manager.dart'; /// Description: enter point of the app /// Time : 04/06/2025 Sunday /// Author : liuyuqi.gov@msn.cn void main() async { WidgetsFlutterBinding.ensureInitialized(); AppUtils.setOverrideForDesktop(); // Initialize window manager for desktop platforms // if (Platform.isWindows || Platform.isLinux || Platform.isMacOS) { // await windowManager.ensureInitialized(); // // Calculate window size with 16:9 portrait ratio // // Common phone resolution is 1080x1920 (16:9 portrait) // const double width = 360.0; // Phone width // const double height = 640.0; // Phone height (16:9 ratio) // WindowOptions windowOptions = WindowOptions( // size: Size(width, height), // center: true, // backgroundColor: Colors.transparent, // skipTaskbar: false, // titleBarStyle: TitleBarStyle.normal, // ); // await windowManager.waitUntilReadyToShow(windowOptions, () async { // await windowManager.show(); // await windowManager.focus(); // }); // } // Configure system settings for better background execution if (Platform.isAndroid) { SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle( statusBarColor: Colors.transparent, statusBarIconBrightness: Brightness.dark, )); // Prevent app from being killed in background SystemChannels.platform.invokeMethod('SystemChrome.setEnabledSystemUIMode', [ SystemUiMode.edgeToEdge.index, ]); } runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { // Initialize ScreenUtil for responsive UI return ScreenUtilInit( designSize: const Size(360, 640), // Base design size minTextAdapt: true, splitScreenMode: true, builder: (context, child) { return MaterialApp( title: 'Flutter Clock', debugShowCheckedModeBanner: false, theme: ThemeData( primarySwatch: Colors.blue, visualDensity: VisualDensity.adaptivePlatformDensity, fontFamily: 'Roboto', ), home: IndexPage(), ); } ); } }