123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- /**
- * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
- * SPDX-License-Identifier: GPL-3.0-or-later
- */
- #import <Foundation/Foundation.h>
- #import "TalkAccount.h"
- #import "ServerCapabilities.h"
- #import "FederatedCapabilities.h"
- @class NCRoom;
- NS_ASSUME_NONNULL_BEGIN
- extern NSString *const kTalkDatabaseFolder;
- extern NSString *const kTalkDatabaseFileName;
- extern uint64_t const kTalkDatabaseSchemaVersion;
- extern NSString * const kCapabilitySystemMessages;
- extern NSString * const kCapabilityNotificationLevels;
- extern NSString * const kCapabilityInviteGroupsAndMails;
- extern NSString * const kCapabilityLockedOneToOneRooms;
- extern NSString * const kCapabilityWebinaryLobby;
- extern NSString * const kCapabilityChatReadMarker;
- extern NSString * const kCapabilityStartCallFlag;
- extern NSString * const kCapabilityCirclesSupport;
- extern NSString * const kCapabilityChatReferenceId;
- extern NSString * const kCapabilityPhonebookSearch;
- extern NSString * const kCapabilityChatReadStatus;
- extern NSString * const kCapabilityReadOnlyRooms;
- extern NSString * const kCapabilityListableRooms;
- extern NSString * const kCapabilityDeleteMessages;
- extern NSString * const kCapabilityCallFlags;
- extern NSString * const kCapabilityRoomDescription;
- extern NSString * const kCapabilityTempUserAvatarAPI;
- extern NSString * const kCapabilityLocationSharing;
- extern NSString * const kCapabilityConversationV4;
- extern NSString * const kCapabilitySIPSupport;
- extern NSString * const kCapabilitySIPSupportNoPIN;
- extern NSString * const kCapabilityVoiceMessage;
- extern NSString * const kCapabilitySignalingV3;
- extern NSString * const kCapabilityClearHistory;
- extern NSString * const kCapabilityDirectMentionFlag;
- extern NSString * const kCapabilityNotificationCalls;
- extern NSString * const kCapabilityConversationPermissions;
- extern NSString * const kCapabilityChatUnread;
- extern NSString * const kCapabilityReactions;
- extern NSString * const kCapabilityRichObjectListMedia;
- extern NSString * const kCapabilityRichObjectDelete;
- extern NSString * const kCapabilityUnifiedSearch;
- extern NSString * const kCapabilityChatPermission;
- extern NSString * const kCapabilityMessageExpiration;
- extern NSString * const kCapabilitySilentSend;
- extern NSString * const kCapabilitySilentCall;
- extern NSString * const kCapabilitySendCallNotification;
- extern NSString * const kCapabilityTalkPolls;
- extern NSString * const kCapabilityRaiseHand;
- extern NSString * const kCapabilityRecordingV1;
- extern NSString * const kCapabilitySingleConvStatus;
- extern NSString * const kCapabilityChatKeepNotifications;
- extern NSString * const kCapabilityConversationAvatars;
- extern NSString * const kCapabilityTypingIndicators;
- extern NSString * const kCapabilityPublishingPermissions;
- extern NSString * const kCapabilityRemindMeLater;
- extern NSString * const kCapabilityMarkdownMessages;
- extern NSString * const kCapabilityNoteToSelf;
- extern NSString * const kCapabilityMediaCaption;
- extern NSString * const kCapabilityEditMessages;
- extern NSString * const kCapabilityDeleteMessagesUnlimited;
- extern NSString * const kCapabilityFederationV1;
- extern NSString * const kCapabilityFederationV2;
- extern NSString * const kCapabilityChatReadLast;
- extern NSString * const kCapabilityBanV1;
- extern NSString * const kCapabilityMentionPermissions;
- extern NSString * const kCapabilityEditMessagesNoteToSelf;
- extern NSString * const kNotificationsCapabilityExists;
- extern NSString * const kMinimumRequiredTalkCapability;
- extern NSString * const NCDatabaseManagerPendingFederationInvitationsDidChange;
- extern NSString * const NCDatabaseManagerRoomCapabilitiesChangedNotification;
- @interface NCTranslation : NSObject
- @property (nonatomic, copy) NSString *from;
- @property (nonatomic, copy) NSString *fromLabel;
- @property (nonatomic, copy) NSString *to;
- @property (nonatomic, copy) NSString *toLabel;
- @end
- @interface NCDatabaseManager : NSObject
- + (instancetype)sharedInstance;
- - (NSInteger)numberOfAccounts;
- - (TalkAccount *)activeAccount;
- - (NSArray *)allAccounts;
- - (NSArray *)inactiveAccounts;
- - (TalkAccount * _Nullable)talkAccountForAccountId:(NSString *)accountId;
- - (TalkAccount *)talkAccountForUserId:(NSString *)userId inServer:(NSString *)server;
- - (void)setActiveAccountWithAccountId:(NSString *)accountId;
- - (NSString *)accountIdForUser:(NSString *)user inServer:(NSString *)server;
- - (void)createAccountForUser:(NSString *)user inServer:(NSString *)server;
- - (void)removeAccountWithAccountId:(NSString *)accountId;
- - (void)increaseUnreadBadgeNumberForAccountId:(NSString *)accountId;
- - (void)decreaseUnreadBadgeNumberForAccountId:(NSString *)accountId;
- - (void)resetUnreadBadgeNumberForAccountId:(NSString *)accountId;
- - (NSInteger)numberOfUnreadNotifications;
- - (NSInteger)numberOfInactiveAccountsWithUnreadNotifications;
- - (void)removeUnreadNotificationForInactiveAccounts;
- - (void)updateTalkConfigurationHashForAccountId:(NSString *)accountId withHash:(NSString *)hash;
- - (void)updateLastModifiedSinceForAccountId:(NSString *)accountId with:(nonnull NSString *)modifiedSince;
- // Rooms
- - (NCRoom * _Nullable)roomWithToken:(NSString *)token forAccountId:(NSString *)accountId;
- // FederatedCapabilities
- - (FederatedCapabilities * __nullable)federatedCapabilitiesForAccountId:(NSString *)accountId remoteServer:(NSString *)remoteServer roomToken:(NSString *)roomToken;
- - (void)setFederatedCapabilities:(NSDictionary *)federatedCapabilitiesDict forAccountId:(NSString *)accountId remoteServer:(NSString *)remoteServer roomToken:(NSString *)roomToken withProxyHash:(NSString *)proxyHash;
- // RoomCapabilities
- - (BOOL)roomHasTalkCapability:(NSString *)capability forRoom:(NCRoom *)room;
- - (TalkCapabilities * __nullable)roomTalkCapabilitiesForRoom:(NCRoom *)room;
- // ServerCapabilities
- - (ServerCapabilities *)serverCapabilities;
- - (ServerCapabilities * __nullable)serverCapabilitiesForAccountId:(NSString *)accountId;
- - (void)setServerCapabilities:(NSDictionary *)serverCapabilities forAccountId:(NSString *)accountId;
- - (BOOL)serverHasTalkCapability:(NSString *)capability;
- - (BOOL)serverHasTalkCapability:(NSString *)capability forAccountId:(NSString *)accountId;
- - (BOOL)serverHasNotificationsCapability:(NSString *)capability forAccountId:(NSString *)accountId;
- - (BOOL)serverCanInviteFederatedUsersforAccountId:(NSString *)accountId;
- - (void)setExternalSignalingServerVersion:(NSString *)version forAccountId:(NSString *)accountId;
- - (BOOL)hasAvailableTranslationsForAccountId:(NSString *)accountId;
- - (BOOL)hasTranslationProvidersForAccountId:(NSString *)accountId;
- - (NSArray<NCTranslation *> *)availableTranslationsForAccountId:(NSString *)accountId;
- - (NSArray *)translationsFromTranslationsArray:(NSArray *)translations;
- // Federation invitations
- - (void)increasePendingFederationInvitationForAccountId:(NSString *)accountId;
- - (void)decreasePendingFederationInvitationForAccountId:(NSString *)accountId;
- - (void)setPendingFederationInvitationForAccountId:(NSString *)accountId with:(NSInteger)numberOfPendingInvitations;
- - (void)updateLastFederationInvitationUpdateForAccountId:(NSString *)accountId withTimestamp:(NSInteger)timestamp;
- @end
- NS_ASSUME_NONNULL_END
|