Forked from
vjrj / ginkgo
1283 commits behind the upstream repository.
main.dart 9.55 KiB
import 'dart:io';
import 'package:connectivity_wrapper/connectivity_wrapper.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_displaymode/flutter_displaymode.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart';
import 'package:hive_flutter/hive_flutter.dart';
import 'package:hydrated_bloc/hydrated_bloc.dart';
import 'package:introduction_screen/introduction_screen.dart';
import 'package:once/once.dart';
import 'package:path_provider/path_provider.dart';
import 'package:responsive_framework/responsive_wrapper.dart';
import 'package:responsive_framework/utils/scroll_behavior.dart';
import 'package:sentry_flutter/sentry_flutter.dart';
import 'app_bloc_observer.dart';
import 'config/theme.dart';
import 'cubit/bottom_nav_cubit.dart';
import 'data/models/app_cubit.dart';
import 'data/models/app_state.dart';
import 'data/models/contact_cubit.dart';
import 'data/models/node_list_cubit.dart';
import 'data/models/node_list_state.dart';
import 'data/models/node_manager.dart';
import 'data/models/node_type.dart';
import 'data/models/payment_cubit.dart';
import 'data/models/transaction_cubit.dart';
import 'g1/api.dart';
import 'shared_prefs.dart';
import 'ui/logger.dart';
import 'ui/screens/skeleton_screen.dart';
import 'ui/ui_helpers.dart';
void main() async {
/// Initialize packages
WidgetsFlutterBinding.ensureInitialized();
await EasyLocalization.ensureInitialized();
Bloc.observer = AppBlocObserver();
if (!kIsWeb && Platform.isAndroid) {
await FlutterDisplayMode.setHighRefreshRate();
}
final SharedPreferencesHelper shared = SharedPreferencesHelper();
await shared.init();
await shared.getWallet();
assert(shared.getPubKey() != null);
// .env
await dotenv.load(
fileName: kReleaseMode
? 'assets/env.production.txt'
: 'assets/.env.development');
if (kIsWeb) {
await Hive.initFlutter();
HydratedBloc.storage = await HydratedStorage.build(
storageDirectory: HydratedStorage.webStorageDirectory);
} else {
final Directory tmpDir = await getTemporaryDirectory();
Hive.init(tmpDir.toString());
HydratedBloc.storage =
await HydratedStorage.build(storageDirectory: tmpDir);
}
// Reset hive during developing
if (!kReleaseMode) {