mirror of
https://github.com/SchildiChat/SchildiChat-android.git
synced 2025-02-16 20:10:04 +03:00
Remove some code from main thread
This commit is contained in:
parent
4331d2ef47
commit
7bcae75314
4 changed files with 26 additions and 2 deletions
|
@ -79,6 +79,7 @@ internal abstract class SessionModule {
|
|||
@JvmStatic
|
||||
@UserId
|
||||
@Provides
|
||||
@SessionScope
|
||||
fun providesUserId(credentials: Credentials): String {
|
||||
return credentials.userId
|
||||
}
|
||||
|
@ -86,6 +87,7 @@ internal abstract class SessionModule {
|
|||
@JvmStatic
|
||||
@UserMd5
|
||||
@Provides
|
||||
@SessionScope
|
||||
fun providesUserMd5(@UserId userId: String): String {
|
||||
return userId.md5()
|
||||
}
|
||||
|
@ -93,6 +95,7 @@ internal abstract class SessionModule {
|
|||
@JvmStatic
|
||||
@SessionId
|
||||
@Provides
|
||||
@SessionScope
|
||||
fun providesSessionId(credentials: Credentials): String {
|
||||
return credentials.sessionId()
|
||||
}
|
||||
|
|
|
@ -311,7 +311,7 @@ class RoomDetailFragment @Inject constructor(
|
|||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe {
|
||||
when (it) {
|
||||
is RoomDetailViewEvents.Failure -> showErrorInSnackbar(it.throwable)
|
||||
is RoomDetailViewEvents.Failure -> showErrorInSnackbar(it.throwable)
|
||||
is RoomDetailViewEvents.OnNewTimelineEvents -> scrollOnNewMessageCallback.addNewTimelineEventIds(it.eventIds)
|
||||
}
|
||||
}
|
||||
|
@ -660,7 +660,7 @@ class RoomDetailFragment @Inject constructor(
|
|||
timelineEventController.update(state)
|
||||
inviteView.visibility = View.GONE
|
||||
val uid = session.myUserId
|
||||
val meMember = session.getRoom(state.roomId)?.getRoomMember(uid)
|
||||
val meMember = state.myRoomMember()
|
||||
avatarRenderer.render(MatrixItem.UserItem(uid, meMember?.displayName, meMember?.avatarUrl), composerLayout.composerAvatarImageView)
|
||||
} else if (summary?.membership == Membership.INVITE && inviter != null) {
|
||||
inviteView.visibility = View.VISIBLE
|
||||
|
|
|
@ -32,6 +32,7 @@ import com.squareup.inject.assisted.Assisted
|
|||
import com.squareup.inject.assisted.AssistedInject
|
||||
import im.vector.matrix.android.api.MatrixCallback
|
||||
import im.vector.matrix.android.api.MatrixPatterns
|
||||
import im.vector.matrix.android.api.query.QueryStringValue
|
||||
import im.vector.matrix.android.api.session.Session
|
||||
import im.vector.matrix.android.api.session.events.model.EventType
|
||||
import im.vector.matrix.android.api.session.events.model.isImageMessage
|
||||
|
@ -39,6 +40,7 @@ import im.vector.matrix.android.api.session.events.model.isTextMessage
|
|||
import im.vector.matrix.android.api.session.events.model.toModel
|
||||
import im.vector.matrix.android.api.session.file.FileService
|
||||
import im.vector.matrix.android.api.session.homeserver.HomeServerCapabilities
|
||||
import im.vector.matrix.android.api.session.room.members.roomMemberQueryParams
|
||||
import im.vector.matrix.android.api.session.room.model.Membership
|
||||
import im.vector.matrix.android.api.session.room.model.RoomMemberSummary
|
||||
import im.vector.matrix.android.api.session.room.model.RoomSummary
|
||||
|
@ -52,6 +54,7 @@ import im.vector.matrix.android.api.session.room.timeline.Timeline
|
|||
import im.vector.matrix.android.api.session.room.timeline.TimelineEvent
|
||||
import im.vector.matrix.android.api.session.room.timeline.TimelineSettings
|
||||
import im.vector.matrix.android.api.session.room.timeline.getTextEditableContent
|
||||
import im.vector.matrix.android.api.util.toOptional
|
||||
import im.vector.matrix.android.internal.crypto.attachments.toElementToDecrypt
|
||||
import im.vector.matrix.android.internal.crypto.model.event.EncryptedEventContent
|
||||
import im.vector.matrix.rx.rx
|
||||
|
@ -154,6 +157,7 @@ class RoomDetailViewModel @AssistedInject constructor(@Assisted initialState: Ro
|
|||
observeEventDisplayedActions()
|
||||
observeDrafts()
|
||||
observeUnreadState()
|
||||
observeMyRoomMember()
|
||||
room.getRoomSummaryLive()
|
||||
room.rx().loadRoomMembersIfNeeded().subscribeLogError().disposeOnClear()
|
||||
room.markAsRead(ReadService.MarkAsReadParams.READ_RECEIPT, object : MatrixCallback<Any> {})
|
||||
|
@ -161,6 +165,21 @@ class RoomDetailViewModel @AssistedInject constructor(@Assisted initialState: Ro
|
|||
session.onRoomDisplayed(initialState.roomId)
|
||||
}
|
||||
|
||||
private fun observeMyRoomMember() {
|
||||
val queryParams = roomMemberQueryParams {
|
||||
this.userId = QueryStringValue.Equals(session.myUserId, QueryStringValue.Case.SENSITIVE)
|
||||
}
|
||||
room.rx()
|
||||
.liveRoomMembers(queryParams)
|
||||
.map {
|
||||
it.firstOrNull().toOptional()
|
||||
}
|
||||
.unwrap()
|
||||
.execute {
|
||||
copy(myRoomMember = it)
|
||||
}
|
||||
}
|
||||
|
||||
override fun handle(action: RoomDetailAction) {
|
||||
when (action) {
|
||||
is RoomDetailAction.UserIsTyping -> handleUserIsTyping(action)
|
||||
|
|
|
@ -20,6 +20,7 @@ import com.airbnb.mvrx.Async
|
|||
import com.airbnb.mvrx.MvRxState
|
||||
import com.airbnb.mvrx.Uninitialized
|
||||
import im.vector.matrix.android.api.session.events.model.Event
|
||||
import im.vector.matrix.android.api.session.room.model.RoomMemberSummary
|
||||
import im.vector.matrix.android.api.session.room.model.RoomSummary
|
||||
import im.vector.matrix.android.api.session.room.timeline.TimelineEvent
|
||||
import im.vector.matrix.android.api.session.sync.SyncState
|
||||
|
@ -51,6 +52,7 @@ sealed class UnreadState {
|
|||
data class RoomDetailViewState(
|
||||
val roomId: String,
|
||||
val eventId: String?,
|
||||
val myRoomMember: Async<RoomMemberSummary> = Uninitialized,
|
||||
val asyncInviter: Async<User> = Uninitialized,
|
||||
val asyncRoomSummary: Async<RoomSummary> = Uninitialized,
|
||||
val typingRoomMembers: List<MatrixItem.UserItem>? = null,
|
||||
|
|
Loading…
Add table
Reference in a new issue