diff --git a/src/App/App.xaml.cs b/src/App/App.xaml.cs index 095d5778a..64f16af7e 100644 --- a/src/App/App.xaml.cs +++ b/src/App/App.xaml.cs @@ -145,6 +145,14 @@ namespace Bit.App new NavigationPage(new RemoveMasterPasswordPage())); }); } + else if (message.Command == "forceUpdatePassword") + { + Device.BeginInvokeOnMainThread(async () => + { + await Application.Current.MainPage.Navigation.PushModalAsync( + new NavigationPage(new UpdateTempPasswordPage())); + }); + } else if (message.Command == Constants.PasswordlessLoginRequestKey || message.Command == "unlocked" || message.Command == AccountsManagerMessageCommands.ACCOUNT_SWITCH_COMPLETED) diff --git a/src/App/Pages/TabsPage.cs b/src/App/Pages/TabsPage.cs index a60be1600..1f25c3b1b 100644 --- a/src/App/Pages/TabsPage.cs +++ b/src/App/Pages/TabsPage.cs @@ -15,6 +15,7 @@ namespace Bit.App.Pages private readonly IBroadcasterService _broadcasterService; private readonly IMessagingService _messagingService; private readonly IKeyConnectorService _keyConnectorService; + private readonly IStateService _stateService; private readonly LazyResolve _logger = new LazyResolve("logger"); private NavigationPage _groupingsPage; @@ -26,6 +27,7 @@ namespace Bit.App.Pages _broadcasterService = ServiceContainer.Resolve("broadcasterService"); _messagingService = ServiceContainer.Resolve("messagingService"); _keyConnectorService = ServiceContainer.Resolve("keyConnectorService"); + _stateService = ServiceContainer.Resolve("stateService"); _groupingsPage = new NavigationPage(new GroupingsPage(true, previousPage: previousPage)) { @@ -95,6 +97,13 @@ namespace Bit.App.Pages { _messagingService.Send("convertAccountToKeyConnector"); } + + var forcePasswordResetReason = await _stateService.GetForcePasswordResetReasonAsync(); + + if (forcePasswordResetReason.HasValue) + { + _messagingService.Send("forceUpdatePassword"); + } } protected override void OnDisappearing()