Files
apskel-owner-flutter/lib/main.dart
T

49 lines
1.3 KiB
Dart
Raw Normal View History

2026-05-25 19:54:04 +07:00
import 'package:firebase_crashlytics/firebase_crashlytics.dart';
2025-08-12 15:18:38 +07:00
import 'package:flutter/foundation.dart';
2025-08-12 14:08:12 +07:00
import 'package:flutter/material.dart';
2025-08-12 15:18:38 +07:00
import 'package:flutter/services.dart';
import 'package:injectable/injectable.dart';
2025-08-12 14:08:12 +07:00
2026-05-12 00:52:14 +07:00
import 'common/utils/fcm_service.dart';
2025-08-12 15:18:38 +07:00
import 'injection.dart';
import 'presentation/app_widget.dart';
2025-08-12 14:08:12 +07:00
2025-08-12 15:18:38 +07:00
void main() async {
WidgetsFlutterBinding.ensureInitialized();
2025-08-12 14:08:12 +07:00
2025-08-12 15:18:38 +07:00
SystemChrome.setSystemUIOverlayStyle(
const SystemUiOverlayStyle(
statusBarColor: Colors.transparent,
statusBarIconBrightness: Brightness.dark,
),
);
2025-08-12 14:08:12 +07:00
2025-08-12 15:18:38 +07:00
if (kReleaseMode) {
debugPrint = (message, {wrapWidth}) => '';
2025-08-12 14:08:12 +07:00
}
2025-08-12 15:18:38 +07:00
await configureDependencies(
kReleaseMode ? Environment.prod : Environment.dev,
);
2026-05-25 19:54:04 +07:00
// Setup Crashlytics
FlutterError.onError = FirebaseCrashlytics.instance.recordFlutterFatalError;
PlatformDispatcher.instance.onError = (error, stack) {
FirebaseCrashlytics.instance.recordError(error, stack, fatal: true);
return true;
};
2026-05-12 00:52:14 +07:00
// Initialize FCM after dependencies are ready
2026-05-25 19:54:04 +07:00
try {
await getIt<FcmService>().initialize(
onMessageTap: (message) {
debugPrint('[FCM] Navigate based on: ${message.data}');
},
);
} catch (e) {
debugPrint('[FCM] Initialization failed: $e');
}
2026-05-12 00:52:14 +07:00
2025-08-12 15:18:38 +07:00
runApp(const AppWidget());
2025-08-12 14:08:12 +07:00
}