mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-02 21:32:34 +00:00
Threads - first iteration (#5165)
* Initial threads support: parse `ThreadSummary`. Replace several `isThreaded` values with `EventThreadInfo`, which contains the info about the event either being the root of a thread or part of it. * Add `Threaded` timeline mode * Add a `liveTimeline` parameter to `TimelineController`'s constructor. This way we can customise which timeline will be used as the 'live' one. Also add `@LiveTimeline` DI qualifier for the actual live timeline of the room. * Create `ThreadedMessagesNode`. Allow opening a thread in a separate screen. * Add the callbacks for the list menu actions - even if they're the wrong ones and will send the data to the room instead * Send attachments and location in threads * Fix polls in threads, add support for sending voice messages in threads * Display thread summaries only when the feature flag is enabled * Use 'Reply' instead of 'Reply in thread' when in threaded timeline mode * Remove incorrect usage of `Timeline` in `MessageComposerPresenter`. This led to replies to threaded events not appearing as actual replies. --------- Co-authored-by: ElementBot <android@element.io>
This commit is contained in:
committed by
GitHub
parent
cc10ba41fd
commit
35928e3630
+2
-1
@@ -9,6 +9,7 @@ package io.element.android.features.poll.test.actions
|
||||
|
||||
import io.element.android.features.poll.api.actions.EndPollAction
|
||||
import io.element.android.libraries.matrix.api.core.EventId
|
||||
import io.element.android.libraries.matrix.api.timeline.Timeline
|
||||
|
||||
class FakeEndPollAction : EndPollAction {
|
||||
private var executionCount = 0
|
||||
@@ -17,7 +18,7 @@ class FakeEndPollAction : EndPollAction {
|
||||
assert(executionCount == count)
|
||||
}
|
||||
|
||||
override suspend fun execute(pollStartId: EventId): Result<Unit> {
|
||||
override suspend fun execute(timeline: Timeline, pollStartId: EventId): Result<Unit> {
|
||||
executionCount++
|
||||
return Result.success(Unit)
|
||||
}
|
||||
|
||||
+2
-1
@@ -9,6 +9,7 @@ package io.element.android.features.poll.test.actions
|
||||
|
||||
import io.element.android.features.poll.api.actions.SendPollResponseAction
|
||||
import io.element.android.libraries.matrix.api.core.EventId
|
||||
import io.element.android.libraries.matrix.api.timeline.Timeline
|
||||
|
||||
class FakeSendPollResponseAction : SendPollResponseAction {
|
||||
private var executionCount = 0
|
||||
@@ -17,7 +18,7 @@ class FakeSendPollResponseAction : SendPollResponseAction {
|
||||
assert(executionCount == count)
|
||||
}
|
||||
|
||||
override suspend fun execute(pollStartId: EventId, answerId: String): Result<Unit> {
|
||||
override suspend fun execute(timeline: Timeline, pollStartId: EventId, answerId: String): Result<Unit> {
|
||||
executionCount++
|
||||
return Result.success(Unit)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user