123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- import 'dart:async';
- import 'package:flutter/material.dart';
- import 'package:flutter_habit/common/BaseArchitectural.dart';
- import 'package:flutter_habit/common/I18N.dart';
- import 'package:flutter_habit/common/LocalData.dart';
- import 'package:flutter_habit/common/SqfliteDataBase.dart';
- import 'package:flutter_habit/provider/ConfigProvider.dart';
- import 'package:flutter_habit/provider/DataProvider.dart';
- import 'package:flutter_habit/provider/NotificationProvider.dart';
- import 'package:flutter_habit/provider/UserProvider.dart';
- import 'package:flutter_habit/provider/ThemeProvider.dart';
- import 'package:flutter_habit/pages/home_page.dart';
- import 'package:provider/provider.dart';
- class SplashPage extends StatelessWidget {
- @override
- Widget build(BuildContext context) {
- return MultiProvider(
- providers: [
- ChangeNotifierProvider<SplashPageProvider>(
- create: (_) => SplashPageProvider(context)),
- ],
- child: _LoadingPageView(),
- );
- }
- }
- class SplashPageProvider extends BaseProvider {
- SplashPageProvider(BuildContext context) : super(context);
- Timer? timer;
- bool? isLoaded;
- Future<void> loadData(BuildContext context) async {
-
- await LocalData.init();
- I18N.init();
- Provider.of<ThemeProvider>(context, listen: false).init();
- Provider.of<UserProvider>(context, listen: false).init();
- Provider.of<ConfigProvider>(context, listen: false).init();
- await Provider.of<NotificationProvider>(context, listen: false).init();
- await SqfliteDataBase.init();
- await Provider.of<DataProvider>(context, listen: false).init();
- isLoaded = true;
-
- }
- @override
- void init(BuildContext context) {
- print("---------init-------------spalsh-------------provider");
- super.init(context);
- isLoaded = false;
- timer = null;
- startCountDown(context);
- loadData(context);
- }
- void startCountDown(BuildContext context) {
- Future.delayed(Duration(seconds: 3), () {
- scalaJumpToHomePage(context);
- });
-
-
-
-
-
-
-
-
-
-
- }
-
- void scalaJumpToHomePage(BuildContext context) {
- print("---------go mail page---------");
- Navigator.of(context).pushReplacement(PageRouteBuilder(
- transitionDuration: Duration(milliseconds: 600),
- pageBuilder: (context, animation, secondaryAnimation) =>
- ScaleTransition(scale: animation, child: HomePage())));
- }
- @override
- void dispose() {
- super.dispose();
- if (timer != null) {
- timer!.cancel();
- }
- }
- }
- class _LoadingPageView extends StatelessWidget {
- @override
- Widget build(BuildContext context) {
-
- Provider.of<SplashPageProvider>(context, listen: false);
- return ConstrainedBox(
- constraints: BoxConstraints.expand(),
- child: Image.asset(
- "res/welcome.png",
- fit: BoxFit.fitWidth,
- ),
- );
- }
- }
|