import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; // For hiding system UI import 'login_screen.dart'; // Make sure this import path is correct class SplashScreen extends StatefulWidget { const SplashScreen({super.key}); @override State createState() => _SplashScreenState(); } class _SplashScreenState extends State { @override void initState() { super.initState(); // Hide system UI (status bar and bottom navigation bar) SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersiveSticky); // Navigate to Login Screen after 3 seconds Future.delayed(const Duration(seconds: 3), () { Navigator.pushReplacement( // ignore: use_build_context_synchronously context, MaterialPageRoute(builder: (context) => const LoginScreen()), ); }); } @override Widget build(BuildContext context) { return AnnotatedRegion( value: SystemUiOverlayStyle.dark.copyWith( statusBarColor: Colors.white, // Transparent or match background systemNavigationBarColor: Colors.white, ), child: Scaffold( backgroundColor: Colors.white, body: SafeArea( child: Column( children: [ // Main content in the middle (with Expanded to take available space) Expanded( child: Center( child: Padding( padding: const EdgeInsets.symmetric(horizontal: 24.0), child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ // Animated Logo TweenAnimationBuilder( tween: Tween(begin: 1.0, end: 1.2), duration: const Duration(milliseconds: 700), curve: Curves.easeInOut, builder: (context, scale, child) { return Transform.scale(scale: scale, child: child); }, child: Image.asset( 'assets/logo.png', width: 200, height: 50, fit: BoxFit.contain, ), ), const SizedBox(height: 40), // Loading Text const Text( "Just a moment...", style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold), ), const SizedBox(height: 16), // Animated GIF TweenAnimationBuilder( tween: Tween(begin: 0.8, end: 1.0), duration: const Duration(milliseconds: 600), curve: Curves.easeInOut, builder: (context, scale, child) => Transform.scale(scale: scale, child: child), child: Image.asset( 'assets/wi-fi.gif', width: 100, height: 100, fit: BoxFit.contain, ), ), const SizedBox(height: 16), // Info Text const Text( "Hang on as we redirect you to the WiFi Portal...", textAlign: TextAlign.center, style: TextStyle(fontSize: 14, color: Colors.grey), ), ], ), ), ), ), // Footer at the bottom Padding( padding: const EdgeInsets.only(bottom: 16.0), child: Text( "© Lence Amazons Ltd All rights reserved.", style: TextStyle(fontSize: 12, color: Colors.grey), ), ), ], ), ), ), ); } }