mirror of
https://bitbucket.org/myhomie/myhomie_app.git
synced 2025-12-06 00:51:19 +00:00
188 lines
6.1 KiB
Dart
188 lines
6.1 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:mqtt_client/mqtt_server_client.dart';
|
|
import 'package:mycoreapi/api.dart';
|
|
import 'package:myhomie_app/Components/Buttons/rounded_button.dart';
|
|
import 'package:myhomie_app/Components/rounded_input_field.dart';
|
|
import 'package:myhomie_app/Components/rounded_password_field.dart';
|
|
import 'package:myhomie_app/Models/homieContext.dart';
|
|
import 'package:myhomie_app/Screens/Home/HomePage.dart';
|
|
import 'package:myhomie_app/Screens/Login/components/background.dart';
|
|
import 'package:myhomie_app/app_context.dart';
|
|
import 'package:myhomie_app/client.dart';
|
|
import 'package:provider/provider.dart';
|
|
|
|
|
|
class Body extends StatefulWidget {
|
|
const Body({
|
|
Key key,
|
|
}) : super(key: key);
|
|
|
|
@override
|
|
State<Body> createState() => _BodyState();
|
|
}
|
|
|
|
class _BodyState extends State<Body> {
|
|
final clientAPI = Client('http://192.168.31.140'); // TODO field
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
final appContext = Provider.of<AppContext>(context);
|
|
Size size = MediaQuery.of(context).size;
|
|
return Background(
|
|
child: SingleChildScrollView(
|
|
child: Column(
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
children: <Widget>[
|
|
Text(
|
|
"LOGIN",
|
|
style: TextStyle(fontWeight: FontWeight.bold),
|
|
),
|
|
SizedBox(height: size.height * 0.03),
|
|
/*SvgPicture.asset(
|
|
"assets/icons/login.svg",
|
|
height: size.height * 0.35,
|
|
),*/
|
|
SizedBox(height: size.height * 0.03),
|
|
RoundedInputField(
|
|
hintText: "Your Email",
|
|
onChanged: (value) {},
|
|
),
|
|
RoundedPasswordField(
|
|
onChanged: (value) {},
|
|
),
|
|
RoundedButton(
|
|
text: "LOGIN",
|
|
press: () async {
|
|
// TODO check login etc
|
|
var connected = await authenticateTRY();
|
|
if (connected) {
|
|
HomieAppContext homieAppContext = new HomieAppContext();
|
|
homieAppContext.host = "http://192.168.31.140";// TODO
|
|
homieAppContext.clientMQTT = new MqttServerClient(homieAppContext.host.replaceAll('http://', ''),'tablet_app_'+'TODODODO');
|
|
// homieAppContext.clientAPI = client; // TODO
|
|
homieAppContext.userId = "TODO"; // TODO
|
|
|
|
setState(() {
|
|
appContext.setContext(homieAppContext);
|
|
});
|
|
|
|
Navigator.pushAndRemoveUntil(
|
|
context,
|
|
MaterialPageRoute(
|
|
builder: (context) {
|
|
return HomePage();
|
|
},
|
|
),
|
|
(Route<dynamic> route) => false
|
|
);
|
|
}
|
|
},
|
|
),
|
|
SizedBox(height: size.height * 0.03),
|
|
// TODO
|
|
/*AlreadyHaveAnAccountCheck(
|
|
press: () {
|
|
Navigator.push(
|
|
context,
|
|
MaterialPageRoute(
|
|
builder: (context) {
|
|
//return SignUpScreen();
|
|
// TODODODO
|
|
},
|
|
),
|
|
);
|
|
},
|
|
),*/
|
|
],
|
|
),
|
|
),
|
|
);
|
|
}
|
|
|
|
Future<bool> authenticateTRY() async {
|
|
print("try auth.. ");
|
|
|
|
// if () {} // Add if token exist and not null + not expired
|
|
var isConnected = false;
|
|
try {
|
|
//LoginDTO loginDTO = new LoginDTO(email: "test@email.be", password: "kljqsdkljqsd");
|
|
LoginDTO loginDTO = new LoginDTO(email: "", password: "");
|
|
TokenDTO token = await clientAPI.authenticationApi.authenticationAuthenticateWithJson(loginDTO);
|
|
print("Token ??");
|
|
print(token);
|
|
print(token.accessToken);
|
|
setAccessToken(token.accessToken);
|
|
isConnected = true; // TODO update context + db
|
|
}
|
|
catch (e) {
|
|
print("error auth");
|
|
}
|
|
|
|
return isConnected;
|
|
|
|
/*if (!isError) {
|
|
UserInfoDetailDTO user = await clientAPI.userApi.userGet("6182c472e20a6dbcfe8fe82c");
|
|
print("user values ??");
|
|
print(user.email);
|
|
print(user.id);
|
|
|
|
List<HomeDTO> homes = await clientAPI.homeApi.homeGetAll(user.id);
|
|
print("number of homes " + homes.length.toString());
|
|
homes.forEach((element) {
|
|
print(element);
|
|
});
|
|
|
|
HomeDTO home = homes[0]; // TODO
|
|
|
|
List<RoomSummaryDTO> rooms = await clientAPI.roomApi.roomGetAll(home.id);
|
|
print("number of rooms " + rooms.length.toString());
|
|
rooms.forEach((element) {
|
|
print(element);
|
|
});
|
|
|
|
List<ProviderDTO> providers = await clientAPI.providerApi.providerGetAll(home.id);
|
|
print("number of providers " + providers.length.toString());
|
|
providers.forEach((element) {
|
|
print(element);
|
|
});
|
|
|
|
List<DeviceSummaryDTO> devices = await clientAPI.deviceApi.deviceGetAll(home.id);
|
|
print("number of devices " + devices.length.toString());
|
|
/*devices.forEach((element) {
|
|
print(element);
|
|
});*/
|
|
|
|
List<AlarmModeDTO> alarms = await clientAPI.alarmApi.alarmGetAll(home.id);
|
|
print("number of alarms " + alarms.length.toString());
|
|
alarms.forEach((element) {
|
|
print(element);
|
|
});
|
|
|
|
/*List<EventDetailDTO> lastEvents = await clientAPI.eventApi.eventGet(home.id);
|
|
print("number of events " + lastEvents.length.toString());
|
|
lastEvents.forEach((element) {
|
|
print(element);
|
|
});*/
|
|
|
|
List<AutomationDTO> automations = await clientAPI.automationApi.automationGetAll(home.id);
|
|
print("number of automations " + automations.length.toString());
|
|
automations.forEach((element) {
|
|
print(element);
|
|
});
|
|
|
|
List<GroupSummaryDTO> groups = await clientAPI.groupApi.groupGetAll(home.id);
|
|
print("number of groups " + groups.length.toString());
|
|
groups.forEach((element) {
|
|
print(element);
|
|
});
|
|
}*/
|
|
}
|
|
|
|
void setAccessToken(String accessToken) {
|
|
clientAPI.apiApi.authentications.forEach((key, auth) {
|
|
if (auth is OAuth) {
|
|
auth.accessToken = accessToken;
|
|
}
|
|
});
|
|
}
|
|
} |