mirror of
https://github.com/flutter/holobooth.git
synced 2025-05-17 21:36:00 +08:00

* feat: adding production config files * better handling prod and dev environments * small fixes and changes regarding prod * fixing domains * feat: fixing config functions host * feat: properly loading firebase options depending on the env * adding final prod domain url * fix: lint
61 lines
1.8 KiB
Dart
61 lines
1.8 KiB
Dart
// ignore_for_file: avoid_print
|
|
import 'dart:async';
|
|
|
|
import 'package:authentication_repository/authentication_repository.dart';
|
|
import 'package:avatar_detector_repository/avatar_detector_repository.dart';
|
|
import 'package:bloc/bloc.dart';
|
|
import 'package:convert_repository/convert_repository.dart';
|
|
import 'package:firebase_auth/firebase_auth.dart';
|
|
import 'package:firebase_core/firebase_core.dart';
|
|
import 'package:flutter/scheduler.dart';
|
|
import 'package:flutter/widgets.dart';
|
|
import 'package:flutter_bloc/flutter_bloc.dart';
|
|
import 'package:io_photobooth/app/app.dart';
|
|
import 'package:io_photobooth/app/app_bloc_observer.dart';
|
|
import 'package:io_photobooth/landing/loading_indicator_io.dart'
|
|
if (dart.library.html) 'package:io_photobooth/landing/loading_indicator_web.dart';
|
|
|
|
Future<void> bootstrap({
|
|
required String convertUrl,
|
|
required FirebaseOptions firebaseOptions,
|
|
}) async {
|
|
WidgetsFlutterBinding.ensureInitialized();
|
|
Bloc.observer = AppBlocObserver();
|
|
FlutterError.onError = (details) {
|
|
print(details.exceptionAsString());
|
|
print(details.stack);
|
|
};
|
|
|
|
await Firebase.initializeApp(
|
|
options: firebaseOptions,
|
|
);
|
|
|
|
final authenticationRepository = AuthenticationRepository(
|
|
firebaseAuth: FirebaseAuth.instance,
|
|
);
|
|
await authenticationRepository.signInAnonymously();
|
|
|
|
final avatarDetectorRepository = AvatarDetectorRepository();
|
|
final convertRepository = ConvertRepository(
|
|
url: convertUrl,
|
|
);
|
|
|
|
runZonedGuarded(
|
|
() => runApp(
|
|
App(
|
|
authenticationRepository: authenticationRepository,
|
|
avatarDetectorRepository: avatarDetectorRepository,
|
|
convertRepository: convertRepository,
|
|
),
|
|
),
|
|
(error, stackTrace) {
|
|
print(error);
|
|
print(stackTrace);
|
|
},
|
|
);
|
|
|
|
SchedulerBinding.instance.addPostFrameCallback(
|
|
(_) => removeLoadingIndicator(),
|
|
);
|
|
}
|