nc-photos/lib/main.dart

111 lines
2.9 KiB
Dart
Raw Normal View History

2021-04-10 06:28:12 +02:00
import 'package:equatable/equatable.dart';
import 'package:event_bus/event_bus.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:kiwi/kiwi.dart';
import 'package:logging/logging.dart';
2021-04-16 10:45:17 +02:00
import 'package:nc_photos/k.dart' as k;
import 'package:nc_photos/mobile/self_signed_cert_manager.dart';
import 'package:nc_photos/platform/features.dart' as features;
2021-04-10 06:28:12 +02:00
import 'package:nc_photos/pref.dart';
2021-04-17 10:42:57 +02:00
import 'package:nc_photos/widget/my_app.dart';
2021-04-10 06:28:12 +02:00
void main() async {
WidgetsFlutterBinding.ensureInitialized();
_initLog();
await _initPref();
_initBloc();
_initKiwi();
_initEquatable();
if (features.isSupportSelfSignedCert) {
_initSelfSignedCertManager();
}
2021-04-10 06:28:12 +02:00
2021-04-17 10:42:57 +02:00
runApp(MyApp());
2021-04-10 06:28:12 +02:00
}
void _initLog() {
if (kDebugMode) {
debugPrintGestureArenaDiagnostics = true;
}
2021-04-20 12:53:41 +02:00
Logger.root.level = kReleaseMode ? Level.WARNING : Level.ALL;
2021-04-10 06:28:12 +02:00
Logger.root.onRecord.listen((record) {
// dev.log(
// "${record.level.name} ${record.time}: ${record.message}",
// time: record.time,
// sequenceNumber: record.sequenceNumber,
// level: record.level.value,
// name: record.loggerName,
// );
String msg =
"[${record.loggerName}] ${record.level.name} ${record.time}: ${record.message}";
if (record.error != null) {
msg += " (throw: ${record.error.runtimeType} { ${record.error} })";
}
if (record.stackTrace != null) {
msg += "\nStack Trace:\n${record.stackTrace}";
}
2021-06-14 21:05:59 +02:00
if (kDebugMode) {
// show me colors!
int color;
if (record.level >= Level.SEVERE) {
color = 91;
} else if (record.level >= Level.WARNING) {
color = 33;
} else if (record.level >= Level.INFO) {
color = 34;
2021-08-15 19:06:43 +02:00
} else if (record.level >= Level.FINER) {
2021-06-14 21:05:59 +02:00
color = 32;
} else {
color = 90;
}
msg = "\x1B[${color}m$msg\x1B[0m";
}
2021-04-10 06:28:12 +02:00
debugPrint(msg);
});
}
2021-04-16 10:45:17 +02:00
Future<void> _initPref() async {
await Pref.init();
2021-07-23 22:05:57 +02:00
if (Pref.inst().getLastVersion() == null) {
if (Pref.inst().getSetupProgress() == null) {
2021-04-16 10:45:17 +02:00
// new install
await Pref.inst().setLastVersion(k.version);
} else {
// v6 is the last version without saving the version number in pref
await Pref.inst().setLastVersion(6);
}
}
}
2021-04-10 06:28:12 +02:00
void _initBloc() {
Bloc.observer = _BlocObserver();
}
void _initKiwi() {
final kiwi = KiwiContainer();
kiwi.registerInstance<EventBus>(EventBus());
}
void _initEquatable() {
EquatableConfig.stringify = false;
}
void _initSelfSignedCertManager() {
SelfSignedCertManager().init();
}
2021-04-10 06:28:12 +02:00
class _BlocObserver extends BlocObserver {
@override
onChange(BlocBase bloc, Change change) {
super.onChange(bloc, change);
_log.finer("${bloc.runtimeType} $change");
}
static final _log = Logger("_BlocObserver");
}