48 lines
1.6 KiB
Dart
48 lines
1.6 KiB
Dart
import 'package:flutter/services.dart';
|
||
import 'package:flutter/material.dart';
|
||
import 'main.dart';
|
||
import 'registration.dart';
|
||
import 'activate_token.dart';
|
||
import 'dart:async';
|
||
|
||
class SplashScreen extends StatelessWidget {
|
||
|
||
@override
|
||
Widget build(BuildContext context) {
|
||
|
||
// Splash скрин зависает мимнимум на 1 секунду.
|
||
// После этого начинается проверка токена.
|
||
new Future.delayed(const Duration(milliseconds: 1000), () {
|
||
_showNextScreen(context);
|
||
});
|
||
|
||
return new Image.asset(splash_png, fit: BoxFit.cover);
|
||
}
|
||
|
||
/// Запуск следующего экрана приложения.
|
||
_showNextScreen(BuildContext context) async {
|
||
|
||
const platform = const MethodChannel('com.dinect.checker/instance_id');
|
||
token = await platform.invokeMethod('getToken');
|
||
|
||
// В случае, если в приложении отсутствует токен,
|
||
// необходимо запустить регистрацию кассы.
|
||
// if (token == null) {
|
||
pushRoute(context, new RegistrationScreen());
|
||
// } else {
|
||
// checkToken(context, new CheckTokenCallback());
|
||
// }
|
||
}
|
||
|
||
}
|
||
|
||
class CheckTokenCallback extends Callback {
|
||
|
||
/// Запускается экран ожидания активации токена.
|
||
/// В реальности токен активируется в админке вручную,
|
||
/// на тестовом сервере токен активируется через несколько минут после создания.
|
||
|
||
call(BuildContext context) {
|
||
pushRoute(context, new FinishRegistrationScreen());
|
||
}
|
||
} |