49 lines
1.4 KiB
Dart
49 lines
1.4 KiB
Dart
|
|
import 'dart:io';
|
||
|
|
|
||
|
|
import 'package:flutter/material.dart';
|
||
|
|
import 'package:flutter/foundation.dart' show kIsWeb;
|
||
|
|
|
||
|
|
import 'package:window_manager/window_manager.dart';
|
||
|
|
|
||
|
|
import 'src/app.dart';
|
||
|
|
import 'src/settings/settings_controller.dart';
|
||
|
|
import 'src/settings/settings_service.dart';
|
||
|
|
|
||
|
|
void main(List<String> args) async {
|
||
|
|
// Identify if Desktop or Mobile app.
|
||
|
|
|
||
|
|
if (!kIsWeb) {
|
||
|
|
WidgetsFlutterBinding.ensureInitialized();
|
||
|
|
|
||
|
|
await windowManager.ensureInitialized();
|
||
|
|
|
||
|
|
WindowOptions windowOptions = const WindowOptions(
|
||
|
|
title: 'Fast Log Viewer',
|
||
|
|
center: true,
|
||
|
|
);
|
||
|
|
|
||
|
|
windowManager.waitUntilReadyToShow(windowOptions, () async {
|
||
|
|
await windowManager.show();
|
||
|
|
await windowManager.focus();
|
||
|
|
});
|
||
|
|
}
|
||
|
|
|
||
|
|
// Set up the SettingsController, which will glue user settings to multiple
|
||
|
|
// Flutter Widgets.
|
||
|
|
final settingsController = SettingsController(SettingsService());
|
||
|
|
|
||
|
|
// Load the user's preferred theme while the splash screen is displayed.
|
||
|
|
// This prevents a sudden theme change when the app is first displayed.
|
||
|
|
await settingsController.loadSettings();
|
||
|
|
|
||
|
|
File? file;
|
||
|
|
if (args.isNotEmpty) {
|
||
|
|
file = File(args[0]);
|
||
|
|
}
|
||
|
|
|
||
|
|
// Run the app and pass in the SettingsController. The app listens to the
|
||
|
|
// SettingsController for changes, then passes it further down to the
|
||
|
|
// SettingsView.
|
||
|
|
runApp(LogViewerApp(settingsController: settingsController, file: file));
|
||
|
|
}
|