Files
checker/lib/activate_token.dart

109 lines
4.0 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> {
bool _tokenActive = true;
String _merchantID = '';
_RegistrationScreenState() {
if (textFieldValue == "") {
_getSavedMerchantID();
}
}
@override String getTitle() {
return "Регистрация";
}
@override getHint() {
return 'ID магазина';
}
@overide getMenuButtons(BuildContext context) {
return <Widget>[new IconButton(icon: new Icon(Icons.help_outline), onPressed: () {})];
}
@override Widget getScreenContent() {
return new Column(children: <Widget>[
getLogo(),
getHintLabel(),
getDecoratedTextWidget(),
_getMessage(),
buildButton(new EdgeInsets.only(top: 36.0, left: buttonVerticalMargin, right: buttonVerticalMargin),
buildRaisedButton(context, _tokenActive ? 'ЗАВЕРШИТЬ РЕГИСТРАЦИЮ' : 'ОБНОВИТЬ СТАТУС АКТИВАЦИИ',() => startScanner(context)))
]);
}
@override Widget getTextWidget() {
return new Row(children: <Widget>[new Text(_merchantID != null ? _merchantID : '', style: new TextStyle(color: Colors.black, fontSize: 16.0))]);
}
_getSavedMerchantID() {
platform.invokeMethod('getMerchantID').then((result) {
setState(() {
_merchantID = result;
print('merchanID: ${_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: 22.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(,
style: new TextStyle(fontSize: 14.0, color: Colors.white)),
onPressed: () {
startScanner(context);
// 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));
}
}