Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import 'dart:async';
- import 'package:flutter/material.dart';
- import 'package:/Component/fade_transition.dart';
- import 'package:/cek_login.dart';
- import 'package:firebase_database/firebase_database.dart';
- import 'package:flutter_account_kit/flutter_account_kit.dart';
- import 'package:font_awesome_flutter/font_awesome_flutter.dart';
- import 'package:package_info/package_info.dart';
- import 'package:shared_preferences/shared_preferences.dart';
- import 'package:url_launcher/url_launcher.dart';
- class SplashScreen extends StatefulWidget {
- @override
- _SplashScreenState createState() => _SplashScreenState();
- }
- final versi = FirebaseDatabase.instance.reference().child('versi');
- final maintenance = FirebaseDatabase.instance.reference().child('maintenance');
- class _SplashScreenState extends State<SplashScreen> {
- StreamSubscription<Event> _onVersi;
- StreamSubscription<Event> _onMaintenance;
- bool _isMaintenance = false, _isUpdate = false;
- String currVersi = "";
- @override
- void initState() {
- super.initState();
- cekLogout();
- // getSimInfo();
- _onVersi = versi.onValue.listen(_onValueVersi);
- _onMaintenance = maintenance.onValue.listen(_onValueMaintenance);
- PackageInfo.fromPlatform().then((PackageInfo packageInfo) {
- setState(() {
- currVersi = packageInfo.version;
- });
- });
- }
- void _onValueVersi(Event event) {
- if (currVersi != event.snapshot.value) {
- if (mounted) {
- setState(() {
- _isUpdate = true;
- });
- }
- } else {
- setState(() {
- _isUpdate = false;
- });
- navigationPage();
- }
- }
- void _onValueMaintenance(Event event) {
- if (mounted) {
- setState(() {
- _isMaintenance = event.snapshot.value;
- });
- navigationPage();
- }
- }
- void navigationPage() {
- // print(_isMaintenance.toString()+" - "+_isUpdate.toString());
- Future.delayed(Duration(seconds: 3)).then((_) {
- if (_isMaintenance == false && _isUpdate == false) {
- Navigator.pushAndRemoveUntil(context, FadeRoute(widget: CekLogin()),
- (Route<dynamic> route) => false);
- }
- });
- }
- @override
- void dispose() {
- _onVersi.cancel();
- _onMaintenance.cancel();
- super.dispose();
- }
- @override
- Widget build(BuildContext context) {
- return Scaffold(
- body: _isMaintenance
- ? BuildMaintenance()
- : _isUpdate ? BuildUpdate(launch: _launch) : BuildSplash(),
- );
- }
- }
- class BuildSplash extends StatelessWidget {
- @override
- Widget build(BuildContext context) {
- return Container(
- height: double.infinity,
- width: double.infinity,
- alignment: Alignment(0.0, 0.0),
- decoration: BoxDecoration(
- gradient: LinearGradient(
- begin: FractionalOffset.topLeft,
- end: FractionalOffset.bottomRight,
- colors: <Color>[
- Colors.cyan[600],
- Colors.cyan[800],
- ],
- ),
- ),
- padding: EdgeInsets.all(48.0),
- child: Image.asset(
- "assets/logo_putih.png",
- fit: BoxFit.cover,
- ));
- }
- }
- class BuildMaintenance extends StatelessWidget {
- @override
- Widget build(BuildContext context) {
- return Container(
- height: double.infinity,
- width: double.infinity,
- decoration: BoxDecoration(
- gradient: LinearGradient(
- begin: FractionalOffset.topLeft,
- end: FractionalOffset.bottomRight,
- colors: <Color>[
- Colors.cyan[600],
- Colors.cyan[800],
- ],
- ),
- ),
- child: Column(
- mainAxisAlignment: MainAxisAlignment.center,
- children: <Widget>[
- Padding(
- padding: EdgeInsets.symmetric(horizontal: 58.0),
- child: Image.asset(
- "assets/logo_putih.png",
- fit: BoxFit.cover,
- ),
- ),
- Container(
- padding: EdgeInsets.symmetric(horizontal: 35.0),
- margin: EdgeInsets.only(top: 40.0),
- child: Text(
- "Aplikasi sedang dalam perbaikan.\nMohon kembali beberapa saat lagi.",
- style: TextStyle(fontSize: 17.0, color: Colors.white),
- textAlign: TextAlign.center,
- ),
- )
- ],
- ),
- );
- }
- }
- class BuildUpdate extends StatelessWidget {
- final launch;
- const BuildUpdate({Key key, this.launch}) : super(key: key);
- @override
- Widget build(BuildContext context) {
- return Container(
- height: double.infinity,
- width: double.infinity,
- alignment: Alignment(0.0, 0.0),
- decoration: BoxDecoration(
- gradient: LinearGradient(
- begin: FractionalOffset.topLeft,
- end: FractionalOffset.bottomRight,
- colors: <Color>[
- Colors.cyan[600],
- Colors.cyan[800],
- ],
- ),
- ),
- child: Column(
- mainAxisAlignment: MainAxisAlignment.center,
- children: <Widget>[
- Padding(
- padding: EdgeInsets.symmetric(horizontal: 58.0),
- child: Image.asset(
- "assets/logo_putih.png",
- fit: BoxFit.cover,
- ),
- ),
- Container(
- padding: EdgeInsets.symmetric(horizontal: 35.0),
- margin: EdgeInsets.only(top: 40.0),
- child: Text(
- "Versi baru tersedia.\nSilahkan Update ke versi terbaru.",
- style: TextStyle(fontSize: 17.0, color: Colors.white),
- textAlign: TextAlign.center,
- ),
- ),
- Container(
- margin: EdgeInsets.only(top: 30.0),
- padding: EdgeInsets.symmetric(horizontal: 120.0),
- child: FlatButton(
- onPressed: launch,
- padding: EdgeInsets.all(15.0),
- child: Row(
- mainAxisAlignment: MainAxisAlignment.center,
- children: <Widget>[
- Icon(
- FontAwesomeIcons.googlePlay,
- size: 18.0,
- ),
- Padding(
- padding: EdgeInsets.only(left: 15.0),
- child: Text(
- "Update",
- style: TextStyle(fontSize: 20.0),
- ),
- ),
- ],
- ),
- textColor: Colors.white,
- color: Colors.teal[300],
- ),
- )
- ],
- ),
- );
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement