main.dart A1

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),
     ),
);
}
}

Post a Comment

0 Comments