Fix detected forbidden pattern.

This commit is contained in:
Benoit Marty 2023-05-31 15:31:05 +02:00
parent 7054224451
commit 8cf61eaa55
7 changed files with 39 additions and 32 deletions

View file

@ -32,6 +32,7 @@ dependencies {
// api(projects.libraries.rustsdk) // api(projects.libraries.rustsdk)
implementation(libs.matrix.sdk) implementation(libs.matrix.sdk)
implementation(projects.libraries.di) implementation(projects.libraries.di)
implementation(projects.services.toolbox.api)
api(projects.libraries.matrix.api) api(projects.libraries.matrix.api)
implementation(libs.dagger) implementation(libs.dagger)
implementation(projects.libraries.core) implementation(projects.libraries.core)

View file

@ -44,6 +44,7 @@ import io.element.android.libraries.matrix.impl.usersearch.UserProfileMapper
import io.element.android.libraries.matrix.impl.usersearch.UserSearchResultMapper import io.element.android.libraries.matrix.impl.usersearch.UserSearchResultMapper
import io.element.android.libraries.matrix.impl.verification.RustSessionVerificationService import io.element.android.libraries.matrix.impl.verification.RustSessionVerificationService
import io.element.android.libraries.sessionstorage.api.SessionStore import io.element.android.libraries.sessionstorage.api.SessionStore
import io.element.android.services.toolbox.api.systemclock.SystemClock
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.ExperimentalCoroutinesApi
@ -77,6 +78,7 @@ class RustMatrixClient constructor(
private val coroutineScope: CoroutineScope, private val coroutineScope: CoroutineScope,
private val dispatchers: CoroutineDispatchers, private val dispatchers: CoroutineDispatchers,
private val baseDirectory: File, private val baseDirectory: File,
private val clock: SystemClock,
) : MatrixClient { ) : MatrixClient {
override val sessionId: UserId = UserId(client.userId()) override val sessionId: UserId = UserId(client.userId())
@ -215,6 +217,7 @@ class RustMatrixClient constructor(
innerRoom = fullRoom, innerRoom = fullRoom,
coroutineScope = coroutineScope, coroutineScope = coroutineScope,
coroutineDispatchers = dispatchers, coroutineDispatchers = dispatchers,
clock = clock,
) )
} }

View file

@ -25,10 +25,10 @@ import io.element.android.libraries.matrix.api.MatrixClient
import io.element.android.libraries.matrix.api.auth.MatrixAuthenticationService import io.element.android.libraries.matrix.api.auth.MatrixAuthenticationService
import io.element.android.libraries.matrix.api.auth.MatrixHomeServerDetails import io.element.android.libraries.matrix.api.auth.MatrixHomeServerDetails
import io.element.android.libraries.matrix.api.core.SessionId import io.element.android.libraries.matrix.api.core.SessionId
import io.element.android.libraries.matrix.api.core.UserId
import io.element.android.libraries.matrix.impl.RustMatrixClient import io.element.android.libraries.matrix.impl.RustMatrixClient
import io.element.android.libraries.sessionstorage.api.SessionData import io.element.android.libraries.sessionstorage.api.SessionData
import io.element.android.libraries.sessionstorage.api.SessionStore import io.element.android.libraries.sessionstorage.api.SessionStore
import io.element.android.services.toolbox.api.systemclock.SystemClock
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.MutableStateFlow
@ -49,6 +49,7 @@ class RustMatrixAuthenticationService @Inject constructor(
private val coroutineScope: CoroutineScope, private val coroutineScope: CoroutineScope,
private val coroutineDispatchers: CoroutineDispatchers, private val coroutineDispatchers: CoroutineDispatchers,
private val sessionStore: SessionStore, private val sessionStore: SessionStore,
private val clock: SystemClock,
) : MatrixAuthenticationService { ) : MatrixAuthenticationService {
private val authService: RustAuthenticationService = RustAuthenticationService(baseDirectory.absolutePath, null, null) private val authService: RustAuthenticationService = RustAuthenticationService(baseDirectory.absolutePath, null, null)
@ -115,6 +116,7 @@ class RustMatrixAuthenticationService @Inject constructor(
coroutineScope = coroutineScope, coroutineScope = coroutineScope,
dispatchers = coroutineDispatchers, dispatchers = coroutineDispatchers,
baseDirectory = baseDirectory, baseDirectory = baseDirectory,
clock = clock,
) )
} }
} }

View file

@ -31,6 +31,7 @@ import io.element.android.libraries.matrix.api.room.roomMembers
import io.element.android.libraries.matrix.api.timeline.MatrixTimeline import io.element.android.libraries.matrix.api.timeline.MatrixTimeline
import io.element.android.libraries.matrix.impl.media.map import io.element.android.libraries.matrix.impl.media.map
import io.element.android.libraries.matrix.impl.timeline.RustMatrixTimeline import io.element.android.libraries.matrix.impl.timeline.RustMatrixTimeline
import io.element.android.services.toolbox.api.systemclock.SystemClock
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.MutableStateFlow
@ -54,6 +55,7 @@ class RustMatrixRoom(
private val innerRoom: Room, private val innerRoom: Room,
private val coroutineScope: CoroutineScope, private val coroutineScope: CoroutineScope,
private val coroutineDispatchers: CoroutineDispatchers, private val coroutineDispatchers: CoroutineDispatchers,
private val clock: SystemClock,
) : MatrixRoom { ) : MatrixRoom {
override val membersStateFlow: StateFlow<MatrixRoomMembersState> override val membersStateFlow: StateFlow<MatrixRoomMembersState>
@ -77,9 +79,9 @@ class RustMatrixRoom(
it.rooms.contains(roomId.value) it.rooms.contains(roomId.value)
} }
.map { .map {
System.currentTimeMillis() clock.epochMillis()
} }
.onStart { emit(System.currentTimeMillis()) } .onStart { emit(clock.epochMillis()) }
} }
override fun timeline(): MatrixTimeline { override fun timeline(): MatrixTimeline {

View file

@ -115,8 +115,7 @@ class PushersManager @Inject constructor(
appDisplayName = appName, appDisplayName = appName,
deviceDisplayName = currentSession.sessionParams.deviceId ?: "MOBILE" deviceDisplayName = currentSession.sessionParams.deviceId ?: "MOBILE"
) )
*/
*/
} }
fun getPusherForCurrentSession() {}/*: Pusher? { fun getPusherForCurrentSession() {}/*: Pusher? {

View file

@ -71,32 +71,32 @@ class NotifiableEventResolver @Inject constructor(
return notificationData.asNotifiableEvent(sessionId) return notificationData.asNotifiableEvent(sessionId)
} }
}
private fun NotificationData.asNotifiableEvent(userId: SessionId): NotifiableEvent { private fun NotificationData.asNotifiableEvent(userId: SessionId): NotifiableEvent {
return NotifiableMessageEvent( return NotifiableMessageEvent(
sessionId = userId, sessionId = userId,
roomId = roomId, roomId = roomId,
eventId = eventId, eventId = eventId,
editedEventId = null, editedEventId = null,
canBeReplaced = true, canBeReplaced = true,
noisy = isNoisy, noisy = isNoisy,
timestamp = System.currentTimeMillis(), timestamp = clock.epochMillis(),
senderName = senderDisplayName, senderName = senderDisplayName,
senderId = senderId.value, senderId = senderId.value,
body = "Message ${eventId.value.take(8)}… in room ${roomId.value.take(8)}", body = "Message ${eventId.value.take(8)}… in room ${roomId.value.take(8)}",
imageUriString = null, imageUriString = null,
threadId = null, threadId = null,
roomName = null, roomName = null,
roomIsDirect = false, roomIsDirect = false,
roomAvatarPath = roomAvatarUrl, roomAvatarPath = roomAvatarUrl,
senderAvatarPath = senderAvatarUrl, senderAvatarPath = senderAvatarUrl,
soundName = null, soundName = null,
outGoingMessage = false, outGoingMessage = false,
outGoingMessageFailed = false, outGoingMessageFailed = false,
isRedacted = false, isRedacted = false,
isUpdated = false isUpdated = false
) )
}
} }
/** /**

View file

@ -34,10 +34,10 @@ object SessionStorageModule {
@SingleIn(AppScope::class) @SingleIn(AppScope::class)
fun provideMatrixDatabase(@ApplicationContext context: Context): SessionDatabase { fun provideMatrixDatabase(@ApplicationContext context: Context): SessionDatabase {
val name = "session_database" val name = "session_database"
val secretFile = context.getDatabasePath("$name.key") val secretFile = context.getDatabasePath("${name}.key")
val passphraseProvider = RandomSecretPassphraseProvider(context, secretFile) val passphraseProvider = RandomSecretPassphraseProvider(context, secretFile)
val driver = SqlCipherDriverFactory(passphraseProvider) val driver = SqlCipherDriverFactory(passphraseProvider)
.create(SessionDatabase.Schema, "$name.db", context) .create(SessionDatabase.Schema, "${name}.db", context)
return SessionDatabase(driver) return SessionDatabase(driver)
} }
} }