mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-02 12:07:28 +00:00
Merge branch 'develop' into feature/valere/timeline_active_call_rendering
This commit is contained in:
@@ -15,7 +15,7 @@ import io.element.android.libraries.matrix.api.MatrixClient
|
||||
|
||||
@ContributesBinding(AppScope::class)
|
||||
class DefaultSessionGraphFactory(
|
||||
private val appGraph: AppGraph
|
||||
private val appGraph: AppGraph,
|
||||
) : SessionGraphFactory {
|
||||
override fun create(client: MatrixClient): Any {
|
||||
return appGraph.sessionGraphFactory.create(client)
|
||||
|
||||
@@ -32,7 +32,7 @@ accompanist = "0.37.3"
|
||||
|
||||
# Test
|
||||
test_core = "1.7.0"
|
||||
roborazzi = "1.64.0"
|
||||
roborazzi = "1.67.0"
|
||||
|
||||
# Jetbrain
|
||||
datetime = "0.8.0"
|
||||
@@ -185,7 +185,7 @@ test_detekt_test = { module = "io.gitlab.arturbosch.detekt:detekt-test", version
|
||||
# https://github.com/matrix-org/matrix-rust-components-kotlin/commits/main/sdk/sdk-android/src/main/kotlin/org/matrix/rustcomponents/sdk/matrix_sdk_ffi.kt
|
||||
# All new features should not be implemented in the pull request that upgrades the version, developers should
|
||||
# only fix API breaks and may add some TODOs.
|
||||
matrix_sdk = "org.matrix.rustcomponents:sdk-android:26.07.13"
|
||||
matrix_sdk = "org.matrix.rustcomponents:sdk-android:26.07.15"
|
||||
|
||||
# Others
|
||||
coil = { module = "io.coil-kt.coil3:coil", version.ref = "coil" }
|
||||
|
||||
+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