TF-2387 Navigate to TwakeWelcome page when click back button on login view

This commit is contained in:
dab246
2024-09-05 14:41:32 +07:00
committed by Dat H. Pham
parent 05c0bf706e
commit 4667d43f50
3 changed files with 42 additions and 23 deletions
@@ -1,6 +1,7 @@
import 'package:core/presentation/extensions/url_extension.dart';
import 'package:core/presentation/state/failure.dart';
import 'package:core/presentation/state/success.dart';
import 'package:core/presentation/utils/keyboard_utils.dart';
import 'package:core/utils/app_logger.dart';
import 'package:core/utils/platform_info.dart';
import 'package:dartz/dartz.dart';
@@ -254,20 +255,30 @@ class LoginController extends ReloadableController {
));
}
void handleBackButtonAction() {
void handleBackButtonAction(BuildContext context) {
KeyboardUtils.hideKeyboard(context);
clearState();
if (loginFormType.value == LoginFormType.credentialForm) {
_password = null;
_username = null;
usernameInputController.clear();
passwordInputController.clear();
loginFormType.value = LoginFormType.baseUrlForm;
} else if (loginFormType.value == LoginFormType.passwordForm) {
_password = null;
_baseUri = null;
urlInputController.clear();
passwordInputController.clear();
loginFormType.value = LoginFormType.dnsLookupForm;
switch(loginFormType.value) {
case LoginFormType.dnsLookupForm:
case LoginFormType.baseUrlForm:
navigateToTwakeWelcomePage();
break;
case LoginFormType.passwordForm:
_password = null;
_baseUri = null;
urlInputController.clear();
passwordInputController.clear();
loginFormType.value = LoginFormType.dnsLookupForm;
break;
case LoginFormType.credentialForm:
_password = null;
_username = null;
usernameInputController.clear();
passwordInputController.clear();
loginFormType.value = LoginFormType.baseUrlForm;
break;
default:
break;
}
}
@@ -277,7 +288,8 @@ class LoginController extends ReloadableController {
userNameFocusNode.requestFocus();
}
void handleLoginPressed() {
void handleLoginPressed(BuildContext context) {
KeyboardUtils.hideKeyboard(context);
log('LoginController::handleLoginPressed:_currentBaseUrl: $_currentBaseUrl | _username: $_username | _password: $_password');
if (_currentBaseUrl == null) {
consumeState(Stream.value(Left(AuthenticationUserFailure(CanNotFoundBaseUrl()))));
@@ -503,6 +515,11 @@ class LoginController extends ReloadableController {
passwordInputController.clear();
}
bool get isBackButtonActivated =>
loginFormType.value == LoginFormType.dnsLookupForm ||
loginFormType.value == LoginFormType.passwordForm ||
loginFormType.value == LoginFormType.credentialForm;
@override
void onClose() {
passFocusNode.dispose();