import 'dart:async';
import 'package:flutter/material.dart';
import 'package:connectivity_plus/connectivity_plus.dart';
import 'package:video_player/video_player.dart';
import 'package:webview_flutter/webview_flutter.dart';
void main() {
runApp(const FatheduApp());
}
class FatheduApp extends StatelessWidget {
const FatheduApp({super.key});
@override
Widget build(BuildContext context) {
return const MaterialApp(
debugShowCheckedModeBanner: false,
home: SplashScreen(),
);
}
}
class SplashScreen extends StatefulWidget {
const SplashScreen({super.key});
@override
State<SplashScreen> createState() => _SplashScreenState();
}
class _SplashScreenState extends State<SplashScreen> {
late VideoPlayerController _videoController;
@override
void initState() {
super.initState();
_videoController = VideoPlayerController.asset('assets/intro.mp4')
..initialize().then((_) {
setState(() {});
_videoController.play();
_videoController.setLooping(false);
Timer(const Duration(seconds: 3), () {
Navigator.of(context).pushReplacement(
MaterialPageRoute(builder: (_) => const FatheduHomePage()),
);
});
});
}
@override
void dispose() {
_videoController.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: _videoController.value.isInitialized
? SizedBox.expand(
child: FittedBox(
fit: BoxFit.cover,
child: SizedBox(
width: _videoController.value.size.width,
height: _videoController.value.size.height,
child: VideoPlayer(_videoController),
),
),
)
: const Center(child: CircularProgressIndicator()),
);
}
}
class FatheduHomePage extends StatefulWidget {
const FatheduHomePage({super.key});
@override
State<FatheduHomePage> createState() => _FatheduHomePageState();
}
class _FatheduHomePageState extends State<FatheduHomePage> {
bool isOffline = false;
late final WebViewController _controller;
@override
void initState() {
super.initState();
Connectivity().checkConnectivity().then((result) {
setState(() {
isOffline = result == ConnectivityResult.none;
});
});
Connectivity().onConnectivityChanged.listen((result) {
setState(() {
isOffline = result == ConnectivityResult.none;
});
});
_controller = WebViewController()
..setJavaScriptMode(JavaScriptMode.unrestricted)
..loadRequest(Uri.parse('https://fathedu.com/dashboard/'));
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: isOffline
? Image.asset(
'assets/images/offline.png',
fit: BoxFit.cover,
width: double.infinity,
height: double.infinity,
)
: WebViewWidget(controller: _controller),
),
);
}
}import 'dart:async';
import 'package:flutter/material.dart';
import 'package:connectivity_plus/connectivity_plus.dart';
import 'package:video_player/video_player.dart';
import 'package:webview_flutter/webview_flutter.dart';
void main() {
runApp(const FatheduApp());
}
class FatheduApp extends StatelessWidget {
const FatheduApp({super.key});
@override
Widget build(BuildContext context) {
return const MaterialApp(
debugShowCheckedModeBanner: false,
home: SplashScreen(),
);
}
}
class SplashScreen extends StatefulWidget {
const SplashScreen({super.key});
@override
State<SplashScreen> createState() => _SplashScreenState();
}
class _SplashScreenState extends State<SplashScreen> {
late VideoPlayerController _videoController;
@override
void initState() {
super.initState();
_videoController = VideoPlayerController.asset('assets/intro.mp4')
..initialize().then((_) {
setState(() {});
_videoController.play();
_videoController.setLooping(false);
Timer(const Duration(seconds: 3), () {
Navigator.of(context).pushReplacement(
MaterialPageRoute(builder: (_) => const FatheduHomePage()),
);
});
});
}
@override
void dispose() {
_videoController.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: _videoController.value.isInitialized
? SizedBox.expand(
child: FittedBox(
fit: BoxFit.cover,
child: SizedBox(
width: _videoController.value.size.width,
height: _videoController.value.size.height,
child: VideoPlayer(_videoController),
),
),
)
: const Center(child: CircularProgressIndicator()),
);
}
}
class FatheduHomePage extends StatefulWidget {
const FatheduHomePage({super.key});
@override
State<FatheduHomePage> createState() => _FatheduHomePageState();
}
class _FatheduHomePageState extends State<FatheduHomePage> {
bool isOffline = false;
late final WebViewController _controller;
@override
void initState() {
super.initState();
Connectivity().checkConnectivity().then((result) {
setState(() {
isOffline = result == ConnectivityResult.none;
});
});
Connectivity().onConnectivityChanged.listen((result) {
setState(() {
isOffline = result == ConnectivityResult.none;
});
});
_controller = WebViewController()
..setJavaScriptMode(JavaScriptMode.unrestricted)
..loadRequest(Uri.parse('https://fathedu.com/dashboard/'));
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: isOffline
? Image.asset(
'assets/images/offline.png',
fit: BoxFit.cover,
width: double.infinity,
height: double.infinity,
)
: WebViewWidget(controller: _controller),
),
);
}
}
0 Comments