mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-02 21:33:26 +00:00
Plain composer suggestions and pills (#2751)
* Move ComposerToolbar files to withing the RoomScreen folder (as it's not a screen on its own) * Switch the plain composer to NSAttributedStrings * Enable suggestions on the plain composer * Introduce a new `MatrixUserDisplayName` attributed string attributed and use it for mention building * Implement mention pill rendering and sending on the plain message composer * Fix plain composer snapshot tests * Fix broken formatting options layout * Add clarifying comment.
This commit is contained in:
@@ -3985,6 +3985,45 @@ class CompletionSuggestionServiceMock: CompletionSuggestionServiceProtocol {
|
||||
}
|
||||
var underlyingSuggestionsPublisher: AnyPublisher<[SuggestionItem], Never>!
|
||||
|
||||
//MARK: - processTextMessage
|
||||
|
||||
var processTextMessageUnderlyingCallsCount = 0
|
||||
var processTextMessageCallsCount: Int {
|
||||
get {
|
||||
if Thread.isMainThread {
|
||||
return processTextMessageUnderlyingCallsCount
|
||||
} else {
|
||||
var returnValue: Int? = nil
|
||||
DispatchQueue.main.sync {
|
||||
returnValue = processTextMessageUnderlyingCallsCount
|
||||
}
|
||||
|
||||
return returnValue!
|
||||
}
|
||||
}
|
||||
set {
|
||||
if Thread.isMainThread {
|
||||
processTextMessageUnderlyingCallsCount = newValue
|
||||
} else {
|
||||
DispatchQueue.main.sync {
|
||||
processTextMessageUnderlyingCallsCount = newValue
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
var processTextMessageCalled: Bool {
|
||||
return processTextMessageCallsCount > 0
|
||||
}
|
||||
var processTextMessageReceivedTextMessage: String?
|
||||
var processTextMessageReceivedInvocations: [String?] = []
|
||||
var processTextMessageClosure: ((String?) -> Void)?
|
||||
|
||||
func processTextMessage(_ textMessage: String?) {
|
||||
processTextMessageCallsCount += 1
|
||||
processTextMessageReceivedTextMessage = textMessage
|
||||
processTextMessageReceivedInvocations.append(textMessage)
|
||||
processTextMessageClosure?(textMessage)
|
||||
}
|
||||
//MARK: - setSuggestionTrigger
|
||||
|
||||
var setSuggestionTriggerUnderlyingCallsCount = 0
|
||||
@@ -4014,11 +4053,11 @@ class CompletionSuggestionServiceMock: CompletionSuggestionServiceProtocol {
|
||||
var setSuggestionTriggerCalled: Bool {
|
||||
return setSuggestionTriggerCallsCount > 0
|
||||
}
|
||||
var setSuggestionTriggerReceivedSuggestionTrigger: SuggestionPattern?
|
||||
var setSuggestionTriggerReceivedInvocations: [SuggestionPattern?] = []
|
||||
var setSuggestionTriggerClosure: ((SuggestionPattern?) -> Void)?
|
||||
var setSuggestionTriggerReceivedSuggestionTrigger: SuggestionTrigger?
|
||||
var setSuggestionTriggerReceivedInvocations: [SuggestionTrigger?] = []
|
||||
var setSuggestionTriggerClosure: ((SuggestionTrigger?) -> Void)?
|
||||
|
||||
func setSuggestionTrigger(_ suggestionTrigger: SuggestionPattern?) {
|
||||
func setSuggestionTrigger(_ suggestionTrigger: SuggestionTrigger?) {
|
||||
setSuggestionTriggerCallsCount += 1
|
||||
setSuggestionTriggerReceivedSuggestionTrigger = suggestionTrigger
|
||||
setSuggestionTriggerReceivedInvocations.append(suggestionTrigger)
|
||||
|
||||
Reference in New Issue
Block a user