Merge remote-tracking branch 'origin/develop' into doug/4484_contacts_access

# Conflicts:
#	Riot/Modules/ServiceTerms/Modal/ServiceTermsModalCoordinatorBridgePresenter.swift
This commit is contained in:
Doug
2021-10-08 11:45:43 +01:00
107 changed files with 2783 additions and 224 deletions
+44 -27
View File
@@ -1169,7 +1169,7 @@ NSString *const AppDelegateUniversalLinkDidChangeNotification = @"AppDelegateUni
return YES;
}
// Manage email validation link from Identity Server v1 or v2
// Manage email validation link from identity server v1 or v2
else if ([webURL.path isEqualToString:validateEmailSubmitTokenAPIPathV1]
|| [webURL.path isEqualToString:validateEmailSubmitTokenAPIPathV2])
{
@@ -2264,6 +2264,7 @@ NSString *const AppDelegateUniversalLinkDidChangeNotification = @"AppDelegateUni
}
else
{
MXLogDebug(@"[AppDelegate] handleAppState: mainSession.state: %@", [MXTools readableSessionState:mainSession.state]);
switch (mainSession.state)
{
case MXSessionStateClosed:
@@ -2316,32 +2317,8 @@ NSString *const AppDelegateUniversalLinkDidChangeNotification = @"AppDelegateUni
return;
}
if (mainSession.crypto.crossSigning)
{
// Get the up-to-date cross-signing state
MXWeakify(self);
[mainSession.crypto.crossSigning refreshStateWithSuccess:^(BOOL stateUpdated) {
MXStrongifyAndReturnIfNil(self);
MXLogDebug(@"[AppDelegate] handleAppState: crossSigning.state: %@", @(mainSession.crypto.crossSigning.state));
switch (mainSession.crypto.crossSigning.state)
{
case MXCrossSigningStateCrossSigningExists:
MXLogDebug(@"[AppDelegate] handleAppState: presentVerifyCurrentSessionAlertIfNeededWithSession");
[self.masterTabBarController presentVerifyCurrentSessionAlertIfNeededWithSession:mainSession];
break;
case MXCrossSigningStateCanCrossSign:
MXLogDebug(@"[AppDelegate] handleAppState: presentReviewUnverifiedSessionsAlertIfNeededWithSession");
[self.masterTabBarController presentReviewUnverifiedSessionsAlertIfNeededWithSession:mainSession];
break;
default:
break;
}
} failure:^(NSError * _Nonnull error) {
MXLogDebug(@"[AppDelegate] handleAppState: crossSigning.state: %@. Error: %@", @(mainSession.crypto.crossSigning.state), error);
}];
}
MXLogDebug(@"[AppDelegate] handleAppState: Check cross-signing");
[self checkCrossSigningForSession:mainSession];
// TODO: We should wait that cross-signing screens are done before going further but it seems fine. Those screens
// protect each other.
@@ -3311,6 +3288,46 @@ NSString *const AppDelegateUniversalLinkDidChangeNotification = @"AppDelegateUni
[callEventsListeners removeObjectForKey:@(mxSession.hash)];
}
#pragma mark - Cross-signing
- (void)checkCrossSigningForSession:(MXSession*)mxSession
{
if ([UIApplication sharedApplication].applicationState != UIApplicationStateActive)
{
MXLogDebug(@"[AppDelegate] checkCrossSigningForSession called while the app is not active. Ignore it.");
return;
}
if (mxSession.crypto.crossSigning)
{
// Get the up-to-date cross-signing state
MXWeakify(self);
[mxSession.crypto.crossSigning refreshStateWithSuccess:^(BOOL stateUpdated) {
MXStrongifyAndReturnIfNil(self);
MXLogDebug(@"[AppDelegate] handleAppState: crossSigning.state: %@", @(mxSession.crypto.crossSigning.state));
switch (mxSession.crypto.crossSigning.state)
{
case MXCrossSigningStateCrossSigningExists:
MXLogDebug(@"[AppDelegate] handleAppState: presentVerifyCurrentSessionAlertIfNeededWithSession");
[self.masterTabBarController presentVerifyCurrentSessionAlertIfNeededWithSession:mxSession];
break;
case MXCrossSigningStateCanCrossSign:
MXLogDebug(@"[AppDelegate] handleAppState: presentReviewUnverifiedSessionsAlertIfNeededWithSession");
[self.masterTabBarController presentReviewUnverifiedSessionsAlertIfNeededWithSession:mxSession];
break;
default:
break;
}
} failure:^(NSError * _Nonnull error) {
MXLogDebug(@"[AppDelegate] handleAppState: crossSigning.state: %@. Error: %@", @(mxSession.crypto.crossSigning.state), error);
}];
}
}
#pragma mark - Incoming room key requests handling
- (void)enableRoomKeyRequestObserver:(MXSession*)mxSession