50 lines
1.4 KiB
Dart
50 lines
1.4 KiB
Dart
import 'dart:io';
|
|
|
|
import 'package:flutter/foundation.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:hive/hive.dart';
|
|
import 'package:logging/logging.dart';
|
|
import 'package:path_provider/path_provider.dart';
|
|
import 'package:pdfrx/pdfrx.dart';
|
|
import 'package:flutter_fullscreen/flutter_fullscreen.dart';
|
|
|
|
import 'login_page.dart';
|
|
|
|
final RouteObserver<ModalRoute> routeObserver = RouteObserver<ModalRoute>();
|
|
Future<void> main() async {
|
|
Logger.root.level = Level.ALL; // defaults to Level.INFO
|
|
Logger.root.onRecord.listen((record) {
|
|
debugPrint('${record.level.name}: ${record.time}: ${record.message}');
|
|
if (record.error != null) {
|
|
debugPrint('${record.error}');
|
|
}
|
|
});
|
|
|
|
// setup for flutter_fullscreen
|
|
WidgetsFlutterBinding.ensureInitialized(); // Needs to be initialized first, otherwise app gets stuck in splash screen
|
|
await FullScreen.ensureInitialized();
|
|
|
|
pdfrxFlutterInitialize(); // Needed especially for web
|
|
|
|
if (!kIsWeb) {
|
|
Directory dir = await getApplicationDocumentsDirectory();
|
|
Hive.init(dir.path); // Needed only if not web
|
|
}
|
|
|
|
runApp(const MyApp());
|
|
}
|
|
|
|
class MyApp extends StatelessWidget {
|
|
const MyApp({super.key});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return MaterialApp(
|
|
title: 'Sheetless',
|
|
theme: ThemeData(useMaterial3: true, primarySwatch: Colors.blue),
|
|
home: const LoginPage(),
|
|
navigatorObservers: [routeObserver],
|
|
);
|
|
}
|
|
}
|