veilidchat/lib/main.dart

50 lines
1.3 KiB
Dart
Raw Normal View History

2023-01-12 00:17:04 +00:00
import 'dart:async';
2023-07-26 18:20:29 +00:00
import 'dart:io';
2023-01-12 00:17:04 +00:00
import 'package:flutter/foundation.dart';
2023-01-08 02:43:31 +00:00
import 'package:flutter/material.dart';
2023-01-09 03:27:33 +00:00
import 'package:flutter_riverpod/flutter_riverpod.dart';
2023-07-23 03:29:10 +00:00
import 'package:flutter_translate/flutter_translate.dart';
2023-07-26 18:20:29 +00:00
import 'app.dart';
2023-01-12 00:17:04 +00:00
import 'log/log.dart';
2023-07-29 00:36:05 +00:00
import 'providers/window_control.dart';
import 'tools/theme_service.dart';
2023-09-26 22:46:02 +00:00
import 'veilid_init.dart';
2023-07-24 03:13:21 +00:00
2023-01-09 03:27:33 +00:00
void main() async {
2023-01-12 00:17:04 +00:00
// Disable all debugprints in release mode
if (kReleaseMode) {
2023-07-26 18:20:29 +00:00
debugPrint = (message, {wrapWidth}) {};
2023-01-12 00:17:04 +00:00
}
// Print our PID for debugging
if (!kIsWeb) {
debugPrint('VeilidChat PID: $pid');
}
2023-01-09 03:27:33 +00:00
// Logs
initLoggy();
2023-01-12 00:17:04 +00:00
// Prepare theme
2023-01-09 03:27:33 +00:00
WidgetsFlutterBinding.ensureInitialized();
final themeService = await ThemeService.instance;
2023-07-26 18:20:29 +00:00
final initTheme = themeService.initial;
2023-01-12 00:17:04 +00:00
2023-07-23 03:29:10 +00:00
// Manage window on desktop platforms
2023-07-29 00:36:05 +00:00
await WindowControl.initialize();
2023-01-12 00:17:04 +00:00
2023-07-07 23:33:28 +00:00
// Make localization delegate
2023-07-26 18:20:29 +00:00
final delegate = await LocalizationDelegate.create(
2023-07-07 23:33:28 +00:00
fallbackLocale: 'en_US', supportedLocales: ['en_US']);
2023-07-23 03:29:10 +00:00
// Start up Veilid and Veilid processor in the background
unawaited(initializeVeilid());
2023-01-12 00:17:04 +00:00
// Run the app
// Hot reloads will only restart this part, not Veilid
2023-07-07 23:33:28 +00:00
runApp(ProviderScope(
observers: const [StateLogger()],
child: LocalizedApp(delegate, VeilidChatApp(theme: initTheme))));
2023-01-08 02:43:31 +00:00
}