Files
checker/lib/activate_token.dart

104 lines
3.8 KiB
Dart
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'main.dart';
import 'dart:convert'; // Пакет для обработки json с ответом от сервера.
import 'base_state.dart';
class FinishRegistrationScreen extends StatefulWidget {
@override State createState() => new _RegistrationScreenState();
}
class _RegistrationScreenState extends BaseState<FinishRegistrationScreen> {
@override Widget build(BuildContext context) {
return new Scaffold(appBar: _getAppBar(), body: _getScreen(context));
}
@override String getTitle() {
return "Регистрация";
}
@override getHint() {
return 'ID merchant';
}
@overide getMenuButtons() {
return <Widget>[new IconButton(icon: new Icon(Icons.help_outline), onPressed: () {})];
}
Widget _getScreen(BuildContext context) {
if (textFieldValue == "") {
_getSavedValue();
}
return new Column(children: <Widget>[
getLogo(),
getHintLabel(),
getDecoratedTextWidget(),
_getMessage(),
_getButton(context)
]);
}
_getMerchantID() {
return new Text(_merchantID != null ? _merchantID : '', style: new TextStyle(color: Colors.black, fontSize: 16.0));
}
_getSavedMerchantID() {
const platform = const MethodChannel('com.dinect.checker/instance_id');
platform.invokeMethod('getMerchantID').then((result) {
setState(() {
_merchantID = result;
print(_merchantID);
});
});
}
_getMessage() {
return new Container(height: _tokenActive ? 72.0 : 108.0, decoration: _getDecoraionForMessageField(),
margin: new EdgeInsets.only(top: 20.0, left: 12.0, right: 12.0),
padding: new EdgeInsets.only(bottom: 16.0, left: 14.0, right: 14.0),
child: new Center(child: new Text(_getMessageText(),
textAlign: TextAlign.center, style: new TextStyle(height: 1.5, fontWeight: FontWeight.bold, fontSize: 14.0, color: _tokenActive ? tokenActiveTextColor : tokenActivateTextColor))));
}
_getMessageText() {
return _tokenActive ? 'Программа активирована' : 'Запрос на активацию программы отправлен, дождитесь подтверждения активации администратором';
}
Decoration _getDecoraionForMessageField() {
return new BoxDecoration(image: new DecorationImage(
image: new ExactAssetImage(_tokenActive ? active_token_bg_png : activate_token_bg_png), fit: _tokenActive ? BoxFit.fitWidth : BoxFit.fill));
}
/// Метод возвращает кнопку, которая запускает отправку токена кассы на сервер.
_getButton(BuildContext context) {
double buttonHeight = 42.0;
double topMargin = 8.0;
return new Container(margin: new EdgeInsets.only(top: topMargin), height: buttonHeight,
child: new RaisedButton(child: new Text(_tokenActive ? 'ЗАВЕРШИТЬ РЕГИСТРАЦИЮ' : 'ОБНОВИТЬ СТАТУС АКТИВАЦИИ',
style: new TextStyle(fontSize: 14.0, color: Colors.white)),
onPressed: () {
if (_tokenActive) {
startScanner(context);
} else {
checkToken(context).then((response) {
print(response.body);
Map parsedMap = JSON.decode(response.body);
// Обновить экран, заменить сообщение о необходимости активации токена, на сообщние о том, что токен активен.
setState(() {
_tokenActive = parsedMap['active'];
});
}).catchError((error) {
print(error.toString());
return false;
});
}
},
color: primaryColor));
}
}