TIF_NGANJUK_E41211358/lib/main.dart

56 lines
1.7 KiB
Dart

import 'package:e_surat_bendungan/config/fcm_service.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:intl/date_symbol_data_local.dart';
import 'config/internet_service.dart';
import 'config/routes.dart';
import 'presentation/controller/controller_shared_prefs.dart';
import 'presentation/controller/letters/controller_download.dart';
import 'package:timezone/data/latest.dart' as tz;
void main() async {
await initializeDateFormatting('id');
WidgetsFlutterBinding.ensureInitialized();
tz.initializeTimeZones();
// Inisiasi service internet terlebih dahulu
await Get.putAsync(() => InternetService().init(), permanent: true);
try {
// Inisialisasi Firebase dengan timeout
await Firebase.initializeApp().timeout(
const Duration(seconds: 5),
onTimeout: () {
print("Firebase initialization timed out, continuing app startup");
throw Exception("Firebase timeout");
},
);
} catch (e) {
print(
"Firebase initialization failed: $e. App will continue without Firebase.");
// Aplikasi akan tetap berjalan meskipun Firebase gagal diinisialisasi
}
Get.put(ControllerSharedPrefs(), permanent: true);
FcmService fcmService = FcmService();
await fcmService.init();
Get.put(ControllerDownload(), permanent: true);
runApp(MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return GetMaterialApp(
title: 'E Desa Bendungan',
debugShowCheckedModeBanner: false,
theme: ThemeData(),
initialRoute: Routes.initialRoutes,
getPages: Routes.listRoutes,
);
}
}