mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-06 04:18:31 +00:00
don't keep re-prompting the user to migrate if they get spontaneously logged out. (#5844)
This commit is contained in:
@@ -9878,7 +9878,7 @@
|
|||||||
IPHONEOS_DEPLOYMENT_TARGET = 18.5;
|
IPHONEOS_DEPLOYMENT_TARGET = 18.5;
|
||||||
KEYCHAIN_ACCESS_GROUP_IDENTIFIER = "$(DEVELOPMENT_TEAM).$(BASE_BUNDLE_IDENTIFIER)";
|
KEYCHAIN_ACCESS_GROUP_IDENTIFIER = "$(DEVELOPMENT_TEAM).$(BASE_BUNDLE_IDENTIFIER)";
|
||||||
MACOSX_DEPLOYMENT_TARGET = 14.5;
|
MACOSX_DEPLOYMENT_TARGET = 14.5;
|
||||||
MARKETING_VERSION = 26.07.2;
|
MARKETING_VERSION = 26.07.3;
|
||||||
MTL_ENABLE_DEBUG_INFO = NO;
|
MTL_ENABLE_DEBUG_INFO = NO;
|
||||||
MTL_FAST_MATH = YES;
|
MTL_FAST_MATH = YES;
|
||||||
PRODUCTION_APP_NAME = Element;
|
PRODUCTION_APP_NAME = Element;
|
||||||
@@ -9958,7 +9958,7 @@
|
|||||||
IPHONEOS_DEPLOYMENT_TARGET = 18.5;
|
IPHONEOS_DEPLOYMENT_TARGET = 18.5;
|
||||||
KEYCHAIN_ACCESS_GROUP_IDENTIFIER = "$(DEVELOPMENT_TEAM).$(BASE_BUNDLE_IDENTIFIER)";
|
KEYCHAIN_ACCESS_GROUP_IDENTIFIER = "$(DEVELOPMENT_TEAM).$(BASE_BUNDLE_IDENTIFIER)";
|
||||||
MACOSX_DEPLOYMENT_TARGET = 14.5;
|
MACOSX_DEPLOYMENT_TARGET = 14.5;
|
||||||
MARKETING_VERSION = 26.07.2;
|
MARKETING_VERSION = 26.07.3;
|
||||||
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
|
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
|
||||||
MTL_FAST_MATH = YES;
|
MTL_FAST_MATH = YES;
|
||||||
ONLY_ACTIVE_ARCH = YES;
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
|
|||||||
@@ -504,6 +504,11 @@ class AppCoordinator: AppCoordinatorProtocol, AuthenticationFlowCoordinatorDeleg
|
|||||||
appSettings.hasSeenNewSoundBanner = false
|
appSettings.hasSeenNewSoundBanner = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if oldVersion < Version(26, 07, 3) {
|
||||||
|
MXLog.info("Migrating to version 26.07.3, marking the app as previously signed in.")
|
||||||
|
appSettings.hasSignedInBefore = true
|
||||||
|
}
|
||||||
|
|
||||||
userSessionMigrationsOldVersion = nil
|
userSessionMigrationsOldVersion = nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -293,6 +293,12 @@ final nonisolated class AppSettings: @unchecked Sendable {
|
|||||||
@UserPreference(defaultValue: AnalyticsConsentState.unknown)
|
@UserPreference(defaultValue: AnalyticsConsentState.unknown)
|
||||||
var analyticsConsentState: AnalyticsConsentState
|
var analyticsConsentState: AnalyticsConsentState
|
||||||
|
|
||||||
|
/// Whether a user session has ever been set up on this device. Deliberately not cleared on
|
||||||
|
/// logout: it stops the Classic app migration prompt from reappearing when an Element X
|
||||||
|
/// user is signed out unexpectedly (invalidated token, corrupted storage, etc).
|
||||||
|
@UserPreference(defaultValue: false)
|
||||||
|
var hasSignedInBefore: Bool
|
||||||
|
|
||||||
@UserPreference(defaultValue: false)
|
@UserPreference(defaultValue: false)
|
||||||
var hasRunNotificationPermissionsOnboarding: Bool
|
var hasRunNotificationPermissionsOnboarding: Bool
|
||||||
|
|
||||||
|
|||||||
@@ -225,6 +225,7 @@ class OnboardingFlowCoordinator: FlowCoordinatorProtocol {
|
|||||||
presentNotificationPermissionsScreen()
|
presentNotificationPermissionsScreen()
|
||||||
case (_, _, .finished):
|
case (_, _, .finished):
|
||||||
isNewLogin = false
|
isNewLogin = false
|
||||||
|
appSettings.hasSignedInBefore = true
|
||||||
actionsSubject.send(.dismiss)
|
actionsSubject.send(.dismiss)
|
||||||
stateMachine.tryState(.initial)
|
stateMachine.tryState(.initial)
|
||||||
case (.finished, _, .initial):
|
case (.finished, _, .initial):
|
||||||
|
|||||||
@@ -46,7 +46,12 @@ class AuthenticationService: AuthenticationServiceProtocol {
|
|||||||
self.appHooks = appHooks
|
self.appHooks = appHooks
|
||||||
|
|
||||||
do {
|
do {
|
||||||
if let classicAppManager {
|
if appSettings.hasSignedInBefore {
|
||||||
|
// Element X has already been used on this device, so an account left behind by the
|
||||||
|
// Classic app is stale — don't offer to migrate it again after a logout.
|
||||||
|
MXLog.info("Already signed in to Element X before, skipping loadAccounts.")
|
||||||
|
classicAppAccount = nil
|
||||||
|
} else if let classicAppManager {
|
||||||
classicAppAccount = try classicAppManager.loadAccounts().first
|
classicAppAccount = try classicAppManager.loadAccounts().first
|
||||||
} else {
|
} else {
|
||||||
MXLog.info("Classic App not configured, skipping loadAccounts.")
|
MXLog.info("Classic App not configured, skipping loadAccounts.")
|
||||||
|
|||||||
+1
-1
@@ -53,7 +53,7 @@ settings:
|
|||||||
ENABLE_BITCODE: false
|
ENABLE_BITCODE: false
|
||||||
APP_NAME: ElementX
|
APP_NAME: ElementX
|
||||||
KEYCHAIN_ACCESS_GROUP_IDENTIFIER: "$(DEVELOPMENT_TEAM).$(BASE_BUNDLE_IDENTIFIER)"
|
KEYCHAIN_ACCESS_GROUP_IDENTIFIER: "$(DEVELOPMENT_TEAM).$(BASE_BUNDLE_IDENTIFIER)"
|
||||||
MARKETING_VERSION: 26.07.2
|
MARKETING_VERSION: 26.07.3
|
||||||
CURRENT_PROJECT_VERSION: 1
|
CURRENT_PROJECT_VERSION: 1
|
||||||
SUPPORTS_MACCATALYST: false
|
SUPPORTS_MACCATALYST: false
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user