-
Markin Igor authoredMarkin Igor authored
home.dart 5.78 KiB
import 'package:flutter/material.dart';
import 'package:flutter_web_browser/flutter_web_browser.dart';
import 'package:flutter_app_auth_wrapper/flutter_app_auth_wrapper.dart';
import 'package:url_launcher/url_launcher.dart';
import 'dart:developer';
import 'dart:convert';
import 'dart:async';
import 'package:shared_preferences/shared_preferences.dart';
import '../../config.dart';
import '../app.dart';
class Home extends StatefulWidget {
Home({
@required this.mode,
@required this.invokerURL,
@required this.host,
});
final AppMode mode;
final String invokerURL;
final String host;
@override
_HomeState createState() => _HomeState();
}
class _HomeState extends State<Home> {
String _host = Config.appFlavor == Flavor.DEVELOPMENT ? Config.HOSTS[0] : Config.DEFAULT_APP_HOST;
bool _hidden = true;
Screen _currentScreen = Screen.App;
@override
initState() {
super.initState();
// Set up initial host
if (widget.host != null) {
setState(() {
_host = widget.host;
});
}
setScreenByMode(widget.mode);
FlutterAppAuthWrapper.eventStream().listen((data) {
var token = json.decode(data.toString())["access_token"];
_showAlert(token);
setScreen(Screen.App);
}, onError: (error) {
log("Err $error");
setScreen(Screen.App);
});
Timer(
Duration(seconds: 3),
() {
setState(() {
_hidden = false;
});
}
);
}
setScreen(Screen screen) {
if (
_currentScreen == screen &&
screen != Screen.Dashboard // ATM we can not determine whether dashboard was closed or not, so we avoid this case
) {