geo-smart-app/lib/page/setting.dart

113 lines
3.1 KiB
Dart
Raw Normal View History

2019-12-16 00:18:09 +00:00
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:geo_app/bloc/setting.dart';
import 'package:geo_app/bloc/unique_id_bloc.dart';
import 'package:geo_app/config.dart';
2019-12-16 00:18:09 +00:00
import 'package:geo_app/model/setting.dart';
import 'package:geo_app/page/map.dart';
class Setting extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return new _SettingState();
}
}
class _SettingState extends State<Setting> {
final _hostController = TextEditingController();
SettingBloc _settingBloc;
UniqueIDBloc _uniqueIDBloc;
String id;
String host;
@override
void initState() {
_settingBloc = new SettingBloc();
_settingBloc.getSetting();
if (!Config.dynamicHostSetting) {
_settingBloc.setSetting(new SettingModel(Config.api, null));
}
2019-12-16 00:18:09 +00:00
_settingBloc.subject.listen((settingModel) {
if (!settingModel.isNullId()) {
this.id = settingModel.id;
}
if (!settingModel.isNullHost()) {
this.host = settingModel.host;
}
2019-12-16 00:18:09 +00:00
_hostController.text = this.host;
if (settingModel.isNullId()) {
print("Requesting Unique ID");
2019-12-16 00:18:09 +00:00
_uniqueIDBloc = new UniqueIDBloc(settingModel);
_uniqueIDBloc.getUniqueID();
}
if (_uniqueIDBloc != null) {
this._uniqueIDBloc.subject.listen((uniqueId) {
print("Your Unique ID " + uniqueId.id.toString());
2019-12-16 00:18:09 +00:00
if (uniqueId.id != null && uniqueId.id != "") {
if (!settingModel.isNullId()) {
Navigator.of(context).pushReplacement(new MaterialPageRoute(
builder: (BuildContext context) => Map(),
));
} else {
this._settingBloc.setSetting(
new SettingModel(this._hostController.text, uniqueId.id),
);
}
2019-12-16 00:18:09 +00:00
}
});
}
});
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
child: Center(
child: Container(
child: Column(
children: <Widget>[
Container(
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage("assets/images/server.png"),
),
),
height: 200,
),
SizedBox(
height: 30,
),
TextField(
controller: this._hostController,
decoration: InputDecoration(
labelText: "Host",
border: OutlineInputBorder(),
),
),
FlatButton(
onPressed: () {
this._settingBloc.setSetting(
new SettingModel(this._hostController.text, null),
2019-12-16 00:18:09 +00:00
);
},
child: Text("Save"),
)
],
),
width: 200,
height: 400,
),
),
),
);
}
}