diff --git a/src/App/Pages/HomePage.cs b/src/App/Pages/HomePage.cs index 25d20e2e2..290bef5d5 100644 --- a/src/App/Pages/HomePage.cs +++ b/src/App/Pages/HomePage.cs @@ -89,7 +89,14 @@ namespace Bit.App.Pages public async Task RegisterAsync() { - await Navigation.PushModalAsync(new ExtendedNavigationPage(new RegisterPage())); + await Navigation.PushModalAsync(new ExtendedNavigationPage(new RegisterPage(this))); + } + + public async Task DismissRegisterAndLoginAsync(string email) + { + await Navigation.PopModalAsync(); + await Navigation.PushModalAsync(new ExtendedNavigationPage(new LoginPage(email))); + _userDialogs.Toast("Your new account has been created! You may now log in."); } } } diff --git a/src/App/Pages/LoginPage.cs b/src/App/Pages/LoginPage.cs index e2784afcc..dd7015b8d 100644 --- a/src/App/Pages/LoginPage.cs +++ b/src/App/Pages/LoginPage.cs @@ -23,9 +23,11 @@ namespace Bit.App.Pages private ISyncService _syncService; private ISettings _settings; private IGoogleAnalyticsService _googleAnalyticsService; + private readonly string _email; - public LoginPage() + public LoginPage(string email = null) { + _email = email; _cryptoService = Resolver.Resolve(); _authService = Resolver.Resolve(); _deviceInfo = Resolver.Resolve(); @@ -54,7 +56,11 @@ namespace Bit.App.Pages containerPadding: padding); var lastLoginEmail = _settings.GetValueOrDefault(Constants.LastLoginEmail); - if(!string.IsNullOrWhiteSpace(lastLoginEmail)) + if(!string.IsNullOrWhiteSpace(_email)) + { + EmailCell.Entry.Text = _email; + } + else if(!string.IsNullOrWhiteSpace(lastLoginEmail)) { EmailCell.Entry.Text = lastLoginEmail; } diff --git a/src/App/Pages/RegisterPage.cs b/src/App/Pages/RegisterPage.cs index 7d0e08085..55424e0dc 100644 --- a/src/App/Pages/RegisterPage.cs +++ b/src/App/Pages/RegisterPage.cs @@ -17,9 +17,11 @@ namespace Bit.App.Pages private IUserDialogs _userDialogs; private IAccountsApiRepository _accountsApiRepository; private IGoogleAnalyticsService _googleAnalyticsService; + private HomePage _homePage; - public RegisterPage() + public RegisterPage(HomePage homePage) { + _homePage = homePage; _cryptoService = Resolver.Resolve(); _userDialogs = Resolver.Resolve(); _accountsApiRepository = Resolver.Resolve(); @@ -148,14 +150,14 @@ namespace Bit.App.Pages { if(string.IsNullOrWhiteSpace(EmailCell.Entry.Text)) { - await DisplayAlert(AppResources.AnErrorHasOccurred, + await DisplayAlert(AppResources.AnErrorHasOccurred, string.Format(AppResources.ValidationFieldRequired, AppResources.EmailAddress), AppResources.Ok); return; } if(string.IsNullOrWhiteSpace(PasswordCell.Entry.Text)) { - await DisplayAlert(AppResources.AnErrorHasOccurred, + await DisplayAlert(AppResources.AnErrorHasOccurred, string.Format(AppResources.ValidationFieldRequired, "Your Name"), AppResources.Ok); return; } @@ -184,9 +186,8 @@ namespace Bit.App.Pages return; } - _userDialogs.Toast("Your new account has been created! You may now log in."); _googleAnalyticsService.TrackAppEvent("Registered"); - await Navigation.PopModalAsync(); + await _homePage.DismissRegisterAndLoginAsync(EmailCell.Entry.Text); } private class FormTableView : ExtendedTableView