Implementation
Future<void> main() async {
AppConfig.appFlavor = Flavor.TEST;
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
// try {
// FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);
// } catch (e) {
// LogManager().addLog(e.toString());
// }
/// foreground(앱 실행중일때) 알림 표시
FirebaseMessaging.onMessage.listen((RemoteMessage message) {
LogManager().addLog("receive push message on foreground: ${message.data}");
NotificationService().firebaseMessagingForegroundHandler(message);
});
runApp(
MultiProvider(
providers: [
/// Data Stores
ChangeNotifierProvider(create: (_) => FarmState()),
ChangeNotifierProvider(create: (_) => SensorState()),
ChangeNotifierProvider(create: (_) => GatewayState()),
ChangeNotifierProvider(create: (_) => ReportState()),
ChangeNotifierProvider(create: (_) => CowState()),
ChangeNotifierProvider(create: (_) => CowGroupState()),
ChangeNotifierProvider(create: (_) => UserState()),
/// ViewModels
ChangeNotifierProvider(create: (_) => FarmLoadingScreenVM()),
ChangeNotifierProvider(create: (_) => CowCurrentStatusScreenVM()),
ChangeNotifierProvider(create: (_) => HomeScreenVM()),
ChangeNotifierProvider(create: (_) => SettingsScreenVM()),
ChangeNotifierProvider(create: (_) => CowSettingsScreenVM()),
ChangeNotifierProvider(create: (_) => FarmInfoScreenVM()),
ChangeNotifierProvider(create: (_) => ChatScreenVM()),
ChangeNotifierProvider(create: (_) => DiseaseObservationCreateScreenVM()),
ChangeNotifierProvider(create: (_) => DiseaseObservationListScreenVM()),
/// Etc..
ChangeNotifierProvider(create: (_) => AppState()),
ChangeNotifierProvider(create: (_) => ScrollState()),
],
child: AppEntry(),
),
);
}