Fiz conforme explicado no vídeo, mas o aplicativo levanta o HttpException e não esta indo pro tratamento, ele só vai depois que eu clico para continuar, aí sim ele entra no showExceptionDialog.
auth_service.dart
Future<bool> login({required String email, required String password}) async {
http.Response response = await client.post(
Uri.parse("${url}login"),
body: {
'email': email,
'password': password,
},
);
if (response.statusCode != 200) {
String content = json.decode(response.body);
switch (content) {
case "Cannot find user":
throw UserNotFindException();
}
throw HttpException(response.body);
}
saveUsersInfo(response.body);
return true;
}
login_screen.dart
login(BuildContext context) async {
String email = _emailController.text;
String password = _passwordController.text;
service.login(email: email, password: password).then(
(resultLogin) {
if (resultLogin) {
Navigator.pushReplacementNamed(context, "home");
}
},
).catchError(
(error) {
var innerError = error as HttpException;
showExceptionDialog(context, content: innerError.message);
},
test: (error) => error is HttpException,
).catchError(
(error) {
showConfirmationDialog(
context,
content:
"Conta inexistente!\nDeseja registrar-se com o login e senha informados?",
affirmativeOption: "Registrar",
).then(
(value) {
if (value != null && value) {
service
.register(email: email, password: password)
.then((resultRegister) {
if (resultRegister) {
Navigator.pushReplacementNamed(context, "home");
}
});
}
},
);
},
test: (error) => error is UserNotFindException,
);
}