import 'dart:async'; import 'dart:ui'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'profile_screen.dart'; import 'shared_preferences_provider.dart'; import 'status_page.dart'; void main() { runApp( ChangeNotifierProvider( create: (_) => SharedPreferencesProvider(), child: const MyApp(), ), ); } class MyApp extends StatefulWidget { const MyApp({super.key}); @override MyAppState createState() => MyAppState(); } class MyAppState extends State { Future? _prefsReady; bool isProfileActive = false; bool showProfileInitially = false; @override void initState() { super.initState(); _prefsReady = Provider.of(context, listen: false).ready; _prefsReady!.then((_) { final prefsProvider = Provider.of(context, listen: false); // Check if username is not set; if so, show ProfileScreen initially if (prefsProvider.getUserName().isEmpty) { setState(() { showProfileInitially = true; }); } }); } void toggleProfileScreen() { setState(() { isProfileActive = !isProfileActive; }); } void closeInitialProfileScreen() { setState(() { showProfileInitially = false; }); } @override Widget build(BuildContext context) { return MaterialApp( title: 'Pogdark', theme: ThemeData( primarySwatch: Colors.blue, visualDensity: VisualDensity.adaptivePlatformDensity, elevatedButtonTheme: ElevatedButtonThemeData( style: ElevatedButton.styleFrom( padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 12), shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(12), ), ), ), ), home: FutureBuilder( future: _prefsReady, builder: (context, snapshot) { if (snapshot.connectionState == ConnectionState.done) { return Stack( children: [ StatusPage(toggleProfile: toggleProfileScreen), if (showProfileInitially) BackdropFilter( filter: ImageFilter.blur(sigmaX: 5, sigmaY: 5), child: Container( color: Colors.black.withOpacity(0.3), child: Center( child: ProfileScreen( isEditing: false, onClose: closeInitialProfileScreen, // Close after setup ), ), ), ), if (isProfileActive && !showProfileInitially) BackdropFilter( filter: ImageFilter.blur(sigmaX: 5, sigmaY: 5), child: Container( color: Colors.black.withOpacity(0.3), child: Center( child: ProfileScreen( isEditing: true, onClose: toggleProfileScreen, // Toggle on edit ), ), ), ), ], ); } else { return const Center(child: CircularProgressIndicator()); } }, ), ); } }