mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-04-19 16:13:42 +02:00
Add presence offline mode setting
This commit is contained in:
@@ -715,6 +715,7 @@ static NSArray<NSNumber*> *initialSyncSilentErrorsHTTPStatusCodes;
|
||||
|
||||
// Instantiate new session
|
||||
mxSession = [[MXSession alloc] initWithMatrixRestClient:mxRestClient];
|
||||
mxSession.preferredSyncPresence = self.preferredSyncPresence;
|
||||
|
||||
// Check whether an antivirus url is defined.
|
||||
if (_antivirusServerURL)
|
||||
@@ -1007,7 +1008,7 @@ static NSArray<NSNumber*> *initialSyncSilentErrorsHTTPStatusCodes;
|
||||
|
||||
// Update user presence
|
||||
MXWeakify(self);
|
||||
[self setUserPresence:MXPresenceUnavailable andStatusMessage:nil completion:^{
|
||||
[self setUserPresence:MXPresenceOffline andStatusMessage:nil completion:^{
|
||||
MXStrongifyAndReturnIfNil(self);
|
||||
[self cancelPauseBackgroundTask];
|
||||
}];
|
||||
@@ -1045,8 +1046,10 @@ static NSArray<NSNumber*> *initialSyncSilentErrorsHTTPStatusCodes;
|
||||
case MXSessionStatePauseRequested:
|
||||
{
|
||||
// Resume SDK and update user presence
|
||||
MXWeakify(self);
|
||||
[mxSession resume:^{
|
||||
[self setUserPresence:MXPresenceOnline andStatusMessage:nil completion:nil];
|
||||
MXStrongifyAndReturnIfNil(self);
|
||||
[self setUserPresence:self.preferredSyncPresence andStatusMessage:nil completion:nil];
|
||||
|
||||
[self refreshAPNSPusher];
|
||||
[self refreshPushKitPusher];
|
||||
@@ -1513,7 +1516,7 @@ static NSArray<NSNumber*> *initialSyncSilentErrorsHTTPStatusCodes;
|
||||
|
||||
MXLogDebug(@"[MXKAccount] %@: The session is ready. Matrix SDK session has been started in %0.fms.", self.mxCredentials.userId, [[NSDate date] timeIntervalSinceDate:self->openSessionStartDate] * 1000);
|
||||
|
||||
[self setUserPresence:MXPresenceOnline andStatusMessage:nil completion:nil];
|
||||
[self setUserPresence:self.preferredSyncPresence andStatusMessage:nil completion:nil];
|
||||
|
||||
} failure:^(NSError *error) {
|
||||
MXStrongifyAndReturnIfNil(self);
|
||||
@@ -2159,4 +2162,17 @@ static NSArray<NSNumber*> *initialSyncSilentErrorsHTTPStatusCodes;
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - Presence
|
||||
|
||||
- (void)setPreferredSyncPresence:(MXPresence)preferredSyncPresence
|
||||
{
|
||||
[super setPreferredSyncPresence:preferredSyncPresence];
|
||||
|
||||
if (self.mxSession)
|
||||
{
|
||||
self.mxSession.preferredSyncPresence = preferredSyncPresence;
|
||||
[self setUserPresence:preferredSyncPresence andStatusMessage:nil completion:nil];
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
@protected BOOL _isSoftLogout;
|
||||
@protected BOOL _hasPusherForPushNotifications;
|
||||
@protected BOOL _hasPusherForPushKitNotifications;
|
||||
@protected MXPresence _preferredSyncPresence;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -89,6 +90,12 @@
|
||||
*/
|
||||
@property (nonatomic, readonly) BOOL hasPusherForPushKitNotifications;
|
||||
|
||||
/**
|
||||
The account's preferred Presence status to share while the application is in foreground.
|
||||
Defaults to MXPresenceOnline.
|
||||
*/
|
||||
@property (nonatomic) MXPresence preferredSyncPresence;
|
||||
|
||||
|
||||
/**
|
||||
Enable In-App notifications based on Remote notifications rules.
|
||||
|
||||
@@ -80,6 +80,15 @@
|
||||
|
||||
_warnedAboutEncryption = [coder decodeBoolForKey:@"warnedAboutEncryption"];
|
||||
|
||||
if ([coder decodeIntForKey:@"preferredSyncPresence"])
|
||||
{
|
||||
_preferredSyncPresence = [coder decodeInt64ForKey:@"preferredSyncPresence"];
|
||||
}
|
||||
else
|
||||
{
|
||||
_preferredSyncPresence = MXPresenceOnline;
|
||||
}
|
||||
|
||||
_others = [coder decodeObjectForKey:@"others"];
|
||||
}
|
||||
|
||||
@@ -143,6 +152,8 @@
|
||||
|
||||
[coder encodeBool:_warnedAboutEncryption forKey:@"warnedAboutEncryption"];
|
||||
|
||||
[coder encodeInt64:_preferredSyncPresence forKey:@"preferredSyncPresence"];
|
||||
|
||||
[coder encodeObject:_others forKey:@"others"];
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user