import 'package:flutter/material.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'l10n/gen/app_localizations.dart'; import 'state/providers.dart'; import 'ui/screens/splash_screen.dart'; class BlockSeasonsApp extends ConsumerStatefulWidget { const BlockSeasonsApp({super.key}); @override ConsumerState createState() => _BlockSeasonsAppState(); } class _BlockSeasonsAppState extends ConsumerState { @override void initState() { super.initState(); WidgetsBinding.instance.addPostFrameCallback((_) { ref.read(consentServiceProvider).ensureConsentAndInitialize(); // Eagerly start the IAP service so its purchase stream is live for the // whole session — restores and interrupted/deferred transactions are // delivered (and completed) even if the player never opens Settings. ref.read(iapServiceProvider); }); } @override Widget build(BuildContext context) { return MaterialApp( onGenerateTitle: (context) => AppLocalizations.of(context)!.appTitle, debugShowCheckedModeBanner: false, localizationsDelegates: const [ AppLocalizations.delegate, GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, GlobalCupertinoLocalizations.delegate, ], supportedLocales: const [Locale('en'), Locale('ko')], theme: ThemeData( colorScheme: ColorScheme.fromSeed( seedColor: const Color(0xFF5B7FFF), brightness: Brightness.dark, ), useMaterial3: true, ), home: const SplashScreen(), ); } }