mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-02 21:32:34 +00:00
Merge branch 'develop' into feature/valere/timeline_active_call_rendering
This commit is contained in:
+6
@@ -12,6 +12,8 @@ import io.element.android.libraries.matrix.api.core.UserId
|
||||
import org.matrix.rustcomponents.sdk.MembershipState
|
||||
import org.matrix.rustcomponents.sdk.PowerLevel
|
||||
import org.matrix.rustcomponents.sdk.RoomMember
|
||||
import org.matrix.rustcomponents.sdk.UserCall
|
||||
import org.matrix.rustcomponents.sdk.UserStatus
|
||||
import uniffi.matrix_sdk.RoomMemberRole
|
||||
|
||||
internal fun aRustRoomMember(
|
||||
@@ -25,6 +27,8 @@ internal fun aRustRoomMember(
|
||||
role: RoomMemberRole = RoomMemberRole.USER,
|
||||
membershipChangeReason: String? = null,
|
||||
isServiceMember: Boolean = false,
|
||||
status: UserStatus? = null,
|
||||
call: UserCall? = null,
|
||||
) = RoomMember(
|
||||
userId = userId.value,
|
||||
displayName = displayName,
|
||||
@@ -36,4 +40,6 @@ internal fun aRustRoomMember(
|
||||
suggestedRoleForPowerLevel = role,
|
||||
membershipChangeReason = membershipChangeReason,
|
||||
isServiceMember = isServiceMember,
|
||||
status = status,
|
||||
call = call,
|
||||
)
|
||||
|
||||
+14
-2
@@ -105,13 +105,21 @@ class NotificationBroadcastReceiverHandler(
|
||||
@Suppress("unused")
|
||||
private fun handleMarkAsRead(sessionId: SessionId, roomId: RoomId, threadId: ThreadId?) = appCoroutineScope.launch {
|
||||
val client = matrixClientProvider.getOrRestore(sessionId).getOrNull() ?: return@launch
|
||||
val isSendPublicReadReceiptsEnabled = sessionPreferencesStore.get(sessionId, this).isSendPublicReadReceiptsEnabled().first()
|
||||
val isSendPublicReadReceiptsEnabled = sessionPreferencesStore.get(
|
||||
sessionId = sessionId,
|
||||
// Make sure `sessionCoroutineScope` is used here, otherwise we'll have several instances using different coroutines,
|
||||
// and it will not work as expected.
|
||||
sessionCoroutineScope = client.sessionCoroutineScope,
|
||||
).isSendPublicReadReceiptsEnabled().first()
|
||||
val receiptType = if (isSendPublicReadReceiptsEnabled) {
|
||||
ReceiptType.READ
|
||||
} else {
|
||||
ReceiptType.READ_PRIVATE
|
||||
}
|
||||
val room = client.getJoinedRoom(roomId) ?: return@launch
|
||||
|
||||
val (room, needsDestroy) = activeRoomsHolder.getActiveRoomMatching(sessionId, roomId)?.let { it to false }
|
||||
?: client.getJoinedRoom(roomId)?.let { it to true }
|
||||
?: return@launch
|
||||
val timeline = if (threadId != null) {
|
||||
room.createTimeline(CreateTimelineParams.Threaded(threadId)).getOrNull()
|
||||
} else {
|
||||
@@ -131,6 +139,10 @@ class NotificationBroadcastReceiverHandler(
|
||||
if (timeline?.mode != Timeline.Mode.Live) {
|
||||
timeline?.close()
|
||||
}
|
||||
|
||||
if (needsDestroy) {
|
||||
room.destroy()
|
||||
}
|
||||
}
|
||||
|
||||
private fun handleSmartReply(
|
||||
|
||||
Reference in New Issue
Block a user