Skip to content
Snippets Groups Projects
Commit 222a16e6 authored by Markin Igor's avatar Markin Igor
Browse files

Use custom splash screen.

parent e32513f4
No related branches found
No related tags found
1 merge request!1Mobile app initial implementation.
// app.dart // app.dart
import 'screens/splashscreen.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'screens/home.dart'; import 'screens/home.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
...@@ -6,9 +7,22 @@ import 'dart:async'; ...@@ -6,9 +7,22 @@ import 'dart:async';
import 'dart:developer'; import 'dart:developer';
import 'package:uni_links/uni_links.dart'; import 'package:uni_links/uni_links.dart';
import 'package:splashscreen/splashscreen.dart';
class App extends StatelessWidget { class App extends StatelessWidget {
Future<Widget> initApplication() async {
Uri initialUri;
try {
initialUri = await getInitialUri();
} on PlatformException {
initialUri = null;
} on FormatException {
initialUri = null;
}
return new MainApp(initialUri: initialUri);
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return MaterialApp( return MaterialApp(
...@@ -20,16 +34,7 @@ class App extends StatelessWidget { ...@@ -20,16 +34,7 @@ class App extends StatelessWidget {
button: TextStyle(color: Colors.white, fontSize: 18.0), button: TextStyle(color: Colors.white, fontSize: 18.0),
title: TextStyle(color: Colors.red))), title: TextStyle(color: Colors.red))),
home: new SplashScreen( home: new SplashScreen(
seconds: 3, navigateAfterFuture: initApplication,
title: new Text(''),
navigateAfterSeconds: new MainApp(),
image: new Image.asset('assets/images/vereign_logo_text.png'),
backgroundColor: Color(0xFFd51d32),
photoSize: 100.0,
loaderColor: Colors.white,
loadingText: new Text('Loading', style: new TextStyle(
color: Colors.white
)),
) )
); );
...@@ -38,6 +43,9 @@ class App extends StatelessWidget { ...@@ -38,6 +43,9 @@ class App extends StatelessWidget {
} }
class MainApp extends StatefulWidget { class MainApp extends StatefulWidget {
MainApp({ @required this.initialUri });
final Uri initialUri;
@override @override
_MainAppState createState() => _MainAppState(); _MainAppState createState() => _MainAppState();
} }
...@@ -55,7 +63,6 @@ class _MainAppState extends State<MainApp> { ...@@ -55,7 +63,6 @@ class _MainAppState extends State<MainApp> {
initState() { initState() {
super.initState(); super.initState();
initUniLinks(); initUniLinks();
// FlutterWebBrowser.openWebPage(url: 'https://demo1.vereign.com', androidToolbarColor: Color(0xFFd51d32));
} }
@override @override
...@@ -65,16 +72,7 @@ class _MainAppState extends State<MainApp> { ...@@ -65,16 +72,7 @@ class _MainAppState extends State<MainApp> {
} }
Future<Null> initUniLinks() async { Future<Null> initUniLinks() async {
Uri initialUri; updateAppMode(widget.initialUri);
try {
initialUri = await getInitialUri();
} on PlatformException {
initialUri = null;
} on FormatException {
initialUri = null;
}
updateAppMode(initialUri);
_sub = getUriLinksStream().listen((Uri uri) { _sub = getUriLinksStream().listen((Uri uri) {
updateAppMode(uri); updateAppMode(uri);
......
import 'dart:core';
import 'dart:async';
import 'package:flutter/material.dart';
class SplashScreen extends StatefulWidget {
final dynamic navigateAfterFuture;
SplashScreen({this.navigateAfterFuture});
@override
_SplashScreenState createState() => _SplashScreenState();
}
class _SplashScreenState extends State<SplashScreen> {
@override
void initState() {
super.initState();
load();
}
load() async {
var newWidget = await widget.navigateAfterFuture();
// Show loader additional 2 seconds
Timer(
Duration(seconds: 2),
() {
Navigator.of(context).pushReplacement(new MaterialPageRoute(builder: (BuildContext context) => newWidget));
}
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: new InkWell(
child:new Stack(
fit: StackFit.expand,
children: <Widget>[
new Container(
decoration: new BoxDecoration(
color: Color(0xFFd51d32),
),
),
new Column(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
new Expanded(
flex: 2,
child: new Container(
child: new Image.asset('assets/images/vereign_logo_text.png'),
padding: EdgeInsets.all(40)
),
),
Expanded(
flex: 1,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
CircularProgressIndicator(
valueColor: new AlwaysStoppedAnimation<Color>(Colors.white),
),
Padding(
padding: const EdgeInsets.only(top: 20.0),
),
new Text('Loading', style: new TextStyle(
color: Colors.white
))
],
),
),
],
),
],
),
),
);
}
}
...@@ -172,13 +172,6 @@ packages: ...@@ -172,13 +172,6 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.5.5" version: "1.5.5"
splashscreen:
dependency: "direct main"
description:
name: splashscreen
url: "https://pub.dartlang.org"
source: hosted
version: "1.2.0"
stack_trace: stack_trace:
dependency: transitive dependency: transitive
description: description:
......
...@@ -29,7 +29,6 @@ dependencies: ...@@ -29,7 +29,6 @@ dependencies:
http: ^0.12.0 http: ^0.12.0
flutter_app_auth_wrapper: ^0.1.1+3 flutter_app_auth_wrapper: ^0.1.1+3
url_launcher: 5.1.0 url_launcher: 5.1.0
splashscreen: 1.2.0
dev_dependencies: dev_dependencies:
flutter_test: flutter_test:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment