From 1f00c0c39b3b42c525df555cdfbecb2bebaad2ca Mon Sep 17 00:00:00 2001 From: Frank Rotermund Date: Tue, 19 Sep 2023 15:11:38 +0200 Subject: [PATCH] MESSENGER-4933 appversion check on login --- .../Login/AuthenticationLoginModels.swift | 2 ++ .../Login/AuthenticationLoginViewModel.swift | 10 ++++++++++ .../Coordinator/AuthenticationLoginCoordinator.swift | 6 +++++- 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/RiotSwiftUI/Modules/Authentication/Login/AuthenticationLoginModels.swift b/RiotSwiftUI/Modules/Authentication/Login/AuthenticationLoginModels.swift index 2c3699a97..fba209da9 100644 --- a/RiotSwiftUI/Modules/Authentication/Login/AuthenticationLoginModels.swift +++ b/RiotSwiftUI/Modules/Authentication/Login/AuthenticationLoginModels.swift @@ -134,4 +134,6 @@ enum AuthenticationLoginErrorType: Hashable { case invalidHomeserver /// The response from the homeserver was unexpected. case unknown + /// Appversion is too old + case appVersion } diff --git a/RiotSwiftUI/Modules/Authentication/Login/AuthenticationLoginViewModel.swift b/RiotSwiftUI/Modules/Authentication/Login/AuthenticationLoginViewModel.swift index 07879621c..c3085dfa0 100644 --- a/RiotSwiftUI/Modules/Authentication/Login/AuthenticationLoginViewModel.swift +++ b/RiotSwiftUI/Modules/Authentication/Login/AuthenticationLoginViewModel.swift @@ -80,6 +80,16 @@ class AuthenticationLoginViewModel: AuthenticationLoginViewModelType, Authentica message: VectorL10n.authenticationServerSelectionGenericError) case .unknown: state.bindings.alertInfo = AlertInfo(id: type) + case .appVersion: + state.bindings.alertInfo = AlertInfo(id: type, + title: BWIL10n.bwiDeprecatedVersionWarningTitle, + message: BWIL10n.bwiDeprecatedVersionWarningMessage, + primaryButton: (BWIL10n.bwiDeprecatedVersionAppstoreButton, { + + UIApplication.shared.open(URL(string: BWIBuildSettings.shared.itunesAppLink)!) + }), + secondaryButton: (VectorL10n.ok, {})) + } } diff --git a/RiotSwiftUI/Modules/Authentication/Login/Coordinator/AuthenticationLoginCoordinator.swift b/RiotSwiftUI/Modules/Authentication/Login/Coordinator/AuthenticationLoginCoordinator.swift index df7f688f4..61d887e69 100644 --- a/RiotSwiftUI/Modules/Authentication/Login/Coordinator/AuthenticationLoginCoordinator.swift +++ b/RiotSwiftUI/Modules/Authentication/Login/Coordinator/AuthenticationLoginCoordinator.swift @@ -130,7 +130,11 @@ final class AuthenticationLoginCoordinator: Coordinator, Presentable { self.showForgotPasswordScreen() } case .login(let username, let password): - self.login(username: username, password: password) + if BWIBuildSettings.shared.bwiCheckAppVersion && ValidAppVersionsDefaultService().isCurrentAppVersionDeprecated() { + authenticationLoginViewModel.displayError(.appVersion) + } else { + self.login(username: username, password: password) + } case .continueWithSSO(let identityProvider): self.callback?(.continueWithSSO(identityProvider)) case .fallback: