mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-04-22 01:22:46 +02:00
b298dedc22
Merge commit 'f823ab9aae70e8d15ed7cc079210dd9bbbb6c8e1' into feature/foss_update_1_11_19 * commit 'f823ab9aae70e8d15ed7cc079210dd9bbbb6c8e1': finish version++ version++ comments update submodule remove obsolete tests removed unused code update submodule fix Libolm removal update license macro update license Prepare for new sprint # Conflicts: # Config/AppVersion.xcconfig # IDETemplateMacros.plist # LICENSE # README.md # Riot/Categories/MXSession+Riot.m # Riot/Managers/EncryptionKeyManager/EncryptionKeyManager.swift # Riot/Managers/KeyValueStorage/Extensions/Keychain.swift # Riot/Managers/KeyValueStorage/KeyValueStore.swift # Riot/Managers/KeyValueStorage/KeychainStore.swift # Riot/Managers/KeyValueStorage/MemoryStore.swift # Riot/Managers/PushNotification/PushNotificationService.m # Riot/Managers/Settings/RiotSettings.swift # Riot/Managers/Settings/Shared/RiotSharedSettings.swift # Riot/Modules/Analytics/AnalyticsUIElement.swift # Riot/Modules/Application/AppCoordinator.swift # Riot/Modules/Application/LegacyAppDelegate.h # Riot/Modules/Application/LegacyAppDelegate.m # Riot/Modules/Authentication/Legacy/AuthenticationViewController.h # Riot/Modules/Authentication/Legacy/AuthenticationViewController.m # Riot/Modules/Authentication/Legacy/Views/AuthInputsView.h # Riot/Modules/Authentication/Legacy/Views/AuthInputsView.m # Riot/Modules/Common/Recents/DataSources/RecentsDataSource.m # Riot/Modules/Common/Recents/RecentsViewController.m # Riot/Modules/Common/WebViewController/WebViewViewController.m # Riot/Modules/Contacts/Details/ContactDetailsViewController.m # Riot/Modules/Contacts/Views/ContactTableViewCell.m # Riot/Modules/Favorites/FavouritesViewController.h # Riot/Modules/Favorites/FavouritesViewController.m # Riot/Modules/GlobalSearch/UnifiedSearchViewController.m # Riot/Modules/People/PeopleViewController.h # Riot/Modules/People/PeopleViewController.m # Riot/Modules/Room/ContextualMenu/ReactionsMenu/ReactionsMenuViewModel.swift # Riot/Modules/Room/DataSources/RoomDataSource.m # Riot/Modules/Room/Files/RoomFilesViewController.m # Riot/Modules/Room/Members/Detail/RoomMemberDetailsViewController.m # Riot/Modules/Room/Members/RoomParticipantsViewController.m # Riot/Modules/Room/RoomViewController.m # Riot/Modules/Room/Settings/RoomSettingsViewController.m # Riot/Modules/Room/TimelineCells/RoomCreationIntro/RoomCreationIntroCell.swift # Riot/Modules/Room/TimelineCells/RoomCreationIntro/RoomCreationIntroCellContentView.swift # Riot/Modules/Room/TimelineCells/RoomCreationIntro/RoomCreationIntroViewData.swift # Riot/Modules/Room/TimelineCells/RoomTimelineCellIdentifier.h # Riot/Modules/Rooms/RoomsViewController.h # Riot/Modules/Rooms/ShowDirectory/Cells/Network/DirectoryNetworkTableHeaderFooterView.swift # Riot/Modules/Rooms/ShowDirectory/Cells/Room/DirectoryRoomTableViewCell.swift # Riot/Modules/Rooms/ShowDirectory/PublicRoomsDirectoryViewModel.swift # Riot/Modules/Secrets/Recover/RecoverWithKey/SecretsRecoveryWithKeyCoordinator.swift # Riot/Modules/Secrets/Recover/RecoverWithKey/SecretsRecoveryWithKeyViewController.swift # Riot/Modules/Secrets/Recover/RecoverWithPassphrase/SecretsRecoveryWithPassphraseCoordinator.swift # Riot/Modules/Secrets/Recover/RecoverWithPassphrase/SecretsRecoveryWithPassphraseViewController.swift # Riot/Modules/Secrets/Recover/SecretsRecoveryCoordinator.swift # Riot/Modules/SecureBackup/Setup/Intro/SecureBackupSetupIntroViewController.swift # Riot/Modules/SecureBackup/Setup/Intro/SecureBackupSetupIntroViewModel.swift # Riot/Modules/SecureBackup/Setup/Intro/SecureBackupSetupIntroViewModelType.swift # Riot/Modules/SetPinCode/PinCodePreferences.swift # Riot/Modules/SetPinCode/SetupBiometrics/BiometricsAuthenticationPresenter.swift # Riot/Modules/Settings/Security/ManageSession/ManageSessionViewController.m # Riot/Modules/Settings/Security/SecurityViewController.m # Riot/Modules/Settings/SettingsViewController.m # Riot/Modules/SplitView/SplitViewCoordinator.swift # Riot/Modules/SplitView/SplitViewCoordinatorType.swift # Riot/Modules/StartChat/StartChatViewController.m # Riot/Modules/TabBar/MasterTabBarController.h # Riot/Modules/TabBar/MasterTabBarController.m # Riot/Utils/EventFormatter.m # Riot/Utils/HTMLFormatter.swift # Riot/Utils/Tools.m # RiotNSE/NotificationService.swift
148 lines
4.7 KiB
Objective-C
148 lines
4.7 KiB
Objective-C
/*
|
|
Copyright 2024 New Vector Ltd.
|
|
Copyright 2015 OpenMarket Ltd
|
|
|
|
SPDX-License-Identifier: AGPL-3.0-only
|
|
Please see LICENSE in the repository root for full details.
|
|
*/
|
|
|
|
#import "MatrixKit.h"
|
|
|
|
@protocol MXBeaconInfoSummaryProtocol;
|
|
|
|
extern NSString *const URLPreviewDidUpdateNotification;
|
|
|
|
// Custom tags for MXKRoomBubbleCellDataStoring.tag
|
|
typedef NS_ENUM(NSInteger, RoomBubbleCellDataTag)
|
|
{
|
|
RoomBubbleCellDataTagMessage = 0, // Default value used for messages
|
|
RoomBubbleCellDataTagMembership = 1, // bwi: default value for the room membership changes (status messages)
|
|
RoomBubbleCellDataTagRoomCreateConfiguration = 2, // bwi: default value for the room configuration (status messages)
|
|
RoomBubbleCellDataTagRoomCreateWithPredecessor,
|
|
RoomBubbleCellDataTagKeyVerificationNoDisplay,
|
|
RoomBubbleCellDataTagKeyVerificationRequestIncomingApproval,
|
|
RoomBubbleCellDataTagKeyVerificationRequest,
|
|
RoomBubbleCellDataTagKeyVerificationConclusion,
|
|
RoomBubbleCellDataTagCall,
|
|
RoomBubbleCellDataTagGroupCall,
|
|
RoomBubbleCellDataTagRoomCreationIntro,
|
|
RoomBubbleCellDataTagPoll,
|
|
RoomBubbleCellDataTagLocation,
|
|
RoomBubbleCellDataTagLiveLocation,
|
|
RoomBubbleCellDataTagVoiceBroadcastRecord,
|
|
RoomBubbleCellDataTagVoiceBroadcastPlayback,
|
|
RoomBubbleCellDataTagVoiceBroadcastNoDisplay,
|
|
RoomBubbleCellDataTagACL,
|
|
RoomBubbleCellDataTagRoomConfiguration
|
|
};
|
|
|
|
/**
|
|
`RoomBubbleCellData` defines Vector bubble cell data model.
|
|
*/
|
|
@interface RoomBubbleCellData : MXKRoomBubbleCellDataWithAppendingMode
|
|
|
|
/**
|
|
A Boolean value that determines whether this bubble contains the current last message.
|
|
Used to keep displaying the timestamp of the last message.
|
|
*/
|
|
@property(nonatomic) BOOL containsLastMessage;
|
|
|
|
/**
|
|
Indicate true to display the timestamp of the selected component.
|
|
*/
|
|
@property(nonatomic) BOOL showTimestampForSelectedComponent;
|
|
|
|
/**
|
|
Indicate true to display the timestamp of the selected component on the left if possible (YES by default).
|
|
*/
|
|
@property(nonatomic) BOOL displayTimestampForSelectedComponentOnLeftWhenPossible;
|
|
|
|
/**
|
|
The event id of the current selected event inside the bubble. Default is nil.
|
|
*/
|
|
@property(nonatomic) NSString *selectedEventId;
|
|
|
|
/**
|
|
The index of the oldest component (component with a timestamp, and an actual display). NSNotFound by default.
|
|
*/
|
|
@property(nonatomic, readonly) NSInteger oldestComponentIndex;
|
|
|
|
/**
|
|
The index of the most recent component (component with a timestamp, and an actual display). NSNotFound by default.
|
|
*/
|
|
@property(nonatomic, readonly) NSInteger mostRecentComponentIndex;
|
|
|
|
/**
|
|
The index of the current selected component. NSNotFound by default.
|
|
*/
|
|
@property(nonatomic, readonly) NSInteger selectedComponentIndex;
|
|
|
|
/**
|
|
Return additional content height (read receipts, reactions).
|
|
*/
|
|
@property(nonatomic, readonly) CGFloat additionalContentHeight;
|
|
|
|
/**
|
|
MXKeyVerification object associated to key verification event when using key verification by direct message.
|
|
*/
|
|
@property(nonatomic, strong) MXKeyVerification *keyVerification;
|
|
|
|
/**
|
|
Indicate if there is a pending operation that updates `keyVerification` property.
|
|
*/
|
|
@property(nonatomic) BOOL isKeyVerificationOperationPending;
|
|
|
|
@property(nonatomic, strong) id<MXBeaconInfoSummaryProtocol> beaconInfoSummary;
|
|
|
|
/**
|
|
Index of the component which needs a sent tick displayed. -1 if none.
|
|
*/
|
|
@property(nonatomic) NSInteger componentIndexOfSentMessageTick;
|
|
|
|
@property(nonatomic, strong) NSString *voiceBroadcastState;
|
|
|
|
/**
|
|
Indicate that both the text message layout and any additional content height are no longer
|
|
valid and should be recomputed before presentation in a bubble cell. This could be due
|
|
to a content change, or the available space for the cell has been updated.
|
|
|
|
This is a convenience method that calls `invalidateTextLayout` and
|
|
`setNeedsUpdateAdditionalContentHeight` together.
|
|
*/
|
|
- (void)invalidateLayout;
|
|
|
|
/**
|
|
Indicate to update additional content height.
|
|
*/
|
|
- (void)setNeedsUpdateAdditionalContentHeight;
|
|
|
|
/**
|
|
Update additional content height if needed.
|
|
*/
|
|
- (void)updateAdditionalContentHeightIfNeeded;
|
|
|
|
/**
|
|
The index of the first visible component. NSNotFound by default.
|
|
*/
|
|
- (NSInteger)firstVisibleComponentIndex;
|
|
|
|
/**
|
|
Returns the bubble component for the specified event ID, but only if that component
|
|
has detected a link in the event's body. Otherwise returns `nil`.
|
|
|
|
This will also return `nil` If URL previews have been disabled by the user.
|
|
*/
|
|
- (MXKRoomBubbleComponent *)bubbleComponentWithLinkForEventId:(NSString *)eventId;
|
|
|
|
#pragma mark - Show all reactions
|
|
|
|
- (BOOL)showAllReactionsForEvent:(NSString*)eventId;
|
|
- (void)setShowAllReactions:(BOOL)showAllReactions forEvent:(NSString*)eventId;
|
|
|
|
|
|
#pragma mark - Accessibility
|
|
|
|
- (NSString*)accessibilityLabel;
|
|
|
|
@end
|