Fix detected forbidden pattern.
This commit is contained in:
parent
7054224451
commit
8cf61eaa55
7 changed files with 39 additions and 32 deletions
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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 {
|
||||||
|
|
|
||||||
|
|
@ -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? {
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
)
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue