mirror of
https://github.com/SchildiChat/SchildiChat-android.git
synced 2024-11-26 19:36:08 +03:00
MatrixItem: create extension and check ids
This commit is contained in:
parent
3dfd6f5a69
commit
c9ed95ed21
18 changed files with 76 additions and 42 deletions
|
@ -16,6 +16,7 @@
|
||||||
|
|
||||||
package im.vector.matrix.android.api.util
|
package im.vector.matrix.android.api.util
|
||||||
|
|
||||||
|
import im.vector.matrix.android.BuildConfig
|
||||||
import im.vector.matrix.android.api.session.group.model.GroupSummary
|
import im.vector.matrix.android.api.session.group.model.GroupSummary
|
||||||
import im.vector.matrix.android.api.session.room.model.RoomSummary
|
import im.vector.matrix.android.api.session.room.model.RoomSummary
|
||||||
import im.vector.matrix.android.api.session.room.model.roomdirectory.PublicRoom
|
import im.vector.matrix.android.api.session.room.model.roomdirectory.PublicRoom
|
||||||
|
@ -30,32 +31,58 @@ sealed class MatrixItem(
|
||||||
data class UserItem(override val id: String,
|
data class UserItem(override val id: String,
|
||||||
override val displayName: String? = null,
|
override val displayName: String? = null,
|
||||||
override val avatarUrl: String? = null)
|
override val avatarUrl: String? = null)
|
||||||
: MatrixItem(id, displayName?.removeSuffix(ircPattern), avatarUrl)
|
: MatrixItem(id, displayName?.removeSuffix(ircPattern), avatarUrl) {
|
||||||
|
init {
|
||||||
|
if (BuildConfig.DEBUG) checkId()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
data class EventItem(override val id: String,
|
data class EventItem(override val id: String,
|
||||||
override val displayName: String? = null,
|
override val displayName: String? = null,
|
||||||
override val avatarUrl: String? = null)
|
override val avatarUrl: String? = null)
|
||||||
: MatrixItem(id, displayName, avatarUrl)
|
: MatrixItem(id, displayName, avatarUrl) {
|
||||||
|
init {
|
||||||
|
if (BuildConfig.DEBUG) checkId()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
data class RoomItem(override val id: String,
|
data class RoomItem(override val id: String,
|
||||||
override val displayName: String? = null,
|
override val displayName: String? = null,
|
||||||
override val avatarUrl: String? = null)
|
override val avatarUrl: String? = null)
|
||||||
: MatrixItem(id, displayName, avatarUrl)
|
: MatrixItem(id, displayName, avatarUrl) {
|
||||||
|
init {
|
||||||
|
if (BuildConfig.DEBUG) checkId()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
data class RoomAliasItem(override val id: String,
|
data class RoomAliasItem(override val id: String,
|
||||||
override val displayName: String? = null,
|
override val displayName: String? = null,
|
||||||
override val avatarUrl: String? = null)
|
override val avatarUrl: String? = null)
|
||||||
: MatrixItem(id, displayName, avatarUrl)
|
: MatrixItem(id, displayName, avatarUrl) {
|
||||||
|
init {
|
||||||
|
if (BuildConfig.DEBUG) checkId()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
data class GroupItem(override val id: String,
|
data class GroupItem(override val id: String,
|
||||||
override val displayName: String? = null,
|
override val displayName: String? = null,
|
||||||
override val avatarUrl: String? = null)
|
override val avatarUrl: String? = null)
|
||||||
: MatrixItem(id, displayName, avatarUrl)
|
: MatrixItem(id, displayName, avatarUrl) {
|
||||||
|
init {
|
||||||
|
if (BuildConfig.DEBUG) checkId()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fun getBestName(): String {
|
fun getBestName(): String {
|
||||||
return displayName?.takeIf { it.isNotBlank() } ?: id
|
return displayName?.takeIf { it.isNotBlank() } ?: id
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected fun checkId() {
|
||||||
|
if (!id.startsWith(getIdPrefix())) {
|
||||||
|
error("Wrong usage of MatrixItem: check the id $id should start with ${getIdPrefix()}")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return the prefix as defined in the matrix spec (and not extracted from the id)
|
* Return the prefix as defined in the matrix spec (and not extracted from the id)
|
||||||
*/
|
*/
|
||||||
|
@ -104,10 +131,14 @@ sealed class MatrixItem(
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private const val ircPattern = " (IRC)"
|
private const val ircPattern = " (IRC)"
|
||||||
|
|
||||||
fun from(user: User) = UserItem(user.userId, user.displayName, user.avatarUrl)
|
|
||||||
fun from(groupSummary: GroupSummary) = GroupItem(groupSummary.groupId, groupSummary.displayName, groupSummary.avatarUrl)
|
|
||||||
fun from(roomSummary: RoomSummary) = RoomItem(roomSummary.roomId, roomSummary.displayName, roomSummary.avatarUrl)
|
|
||||||
fun from(publicRoom: PublicRoom) = RoomItem(publicRoom.roomId, publicRoom.name, publicRoom.avatarUrl)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ==========================================================================================
|
||||||
|
* Extensions to create MatrixItem
|
||||||
|
* ========================================================================================== */
|
||||||
|
|
||||||
|
fun User.toMatrixItem() = MatrixItem.UserItem(userId, displayName, avatarUrl)
|
||||||
|
fun GroupSummary.toMatrixItem() = MatrixItem.GroupItem(groupId, displayName, avatarUrl)
|
||||||
|
fun RoomSummary.toMatrixItem() = MatrixItem.RoomItem(roomId, displayName, avatarUrl)
|
||||||
|
fun PublicRoom.toMatrixItem() = MatrixItem.RoomItem(roomId, name, avatarUrl)
|
||||||
|
|
|
@ -24,6 +24,7 @@ import androidx.preference.Preference
|
||||||
import androidx.preference.PreferenceViewHolder
|
import androidx.preference.PreferenceViewHolder
|
||||||
import im.vector.matrix.android.api.session.Session
|
import im.vector.matrix.android.api.session.Session
|
||||||
import im.vector.matrix.android.api.util.MatrixItem
|
import im.vector.matrix.android.api.util.MatrixItem
|
||||||
|
import im.vector.matrix.android.api.util.toMatrixItem
|
||||||
import im.vector.riotx.R
|
import im.vector.riotx.R
|
||||||
import im.vector.riotx.core.extensions.vectorComponent
|
import im.vector.riotx.core.extensions.vectorComponent
|
||||||
import im.vector.riotx.features.home.AvatarRenderer
|
import im.vector.riotx.features.home.AvatarRenderer
|
||||||
|
@ -60,7 +61,7 @@ open class UserAvatarPreference : Preference {
|
||||||
val session = mSession ?: return
|
val session = mSession ?: return
|
||||||
val view = mAvatarView ?: return
|
val view = mAvatarView ?: return
|
||||||
session.getUser(session.myUserId)?.let {
|
session.getUser(session.myUserId)?.let {
|
||||||
avatarRenderer.render(MatrixItem.from(it), view)
|
avatarRenderer.render(it.toMatrixItem(), view)
|
||||||
} ?: run {
|
} ?: run {
|
||||||
avatarRenderer.render(MatrixItem.UserItem(session.myUserId), view)
|
avatarRenderer.render(MatrixItem.UserItem(session.myUserId), view)
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,7 @@ package im.vector.riotx.features.autocomplete.user
|
||||||
|
|
||||||
import com.airbnb.epoxy.TypedEpoxyController
|
import com.airbnb.epoxy.TypedEpoxyController
|
||||||
import im.vector.matrix.android.api.session.user.model.User
|
import im.vector.matrix.android.api.session.user.model.User
|
||||||
import im.vector.matrix.android.api.util.MatrixItem
|
import im.vector.matrix.android.api.util.toMatrixItem
|
||||||
import im.vector.riotx.features.autocomplete.AutocompleteClickListener
|
import im.vector.riotx.features.autocomplete.AutocompleteClickListener
|
||||||
import im.vector.riotx.features.home.AvatarRenderer
|
import im.vector.riotx.features.home.AvatarRenderer
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
@ -36,7 +36,7 @@ class AutocompleteUserController @Inject constructor() : TypedEpoxyController<Li
|
||||||
data.forEach { user ->
|
data.forEach { user ->
|
||||||
autocompleteUserItem {
|
autocompleteUserItem {
|
||||||
id(user.userId)
|
id(user.userId)
|
||||||
matrixItem(MatrixItem.from(user))
|
matrixItem(user.toMatrixItem())
|
||||||
avatarRenderer(avatarRenderer)
|
avatarRenderer(avatarRenderer)
|
||||||
clickListener { _ ->
|
clickListener { _ ->
|
||||||
listener?.onItemClick(user)
|
listener?.onItemClick(user)
|
||||||
|
|
|
@ -23,6 +23,7 @@ import butterknife.BindView
|
||||||
import butterknife.OnClick
|
import butterknife.OnClick
|
||||||
import im.vector.matrix.android.api.session.crypto.sas.IncomingSasVerificationTransaction
|
import im.vector.matrix.android.api.session.crypto.sas.IncomingSasVerificationTransaction
|
||||||
import im.vector.matrix.android.api.util.MatrixItem
|
import im.vector.matrix.android.api.util.MatrixItem
|
||||||
|
import im.vector.matrix.android.api.util.toMatrixItem
|
||||||
import im.vector.riotx.R
|
import im.vector.riotx.R
|
||||||
import im.vector.riotx.core.platform.VectorBaseFragment
|
import im.vector.riotx.core.platform.VectorBaseFragment
|
||||||
import im.vector.riotx.features.home.AvatarRenderer
|
import im.vector.riotx.features.home.AvatarRenderer
|
||||||
|
@ -58,7 +59,7 @@ class SASVerificationIncomingFragment @Inject constructor(
|
||||||
otherDeviceTextView.text = viewModel.otherDeviceId
|
otherDeviceTextView.text = viewModel.otherDeviceId
|
||||||
|
|
||||||
viewModel.otherUser?.let {
|
viewModel.otherUser?.let {
|
||||||
avatarRenderer.render(MatrixItem.from(it), avatarImageView)
|
avatarRenderer.render(it.toMatrixItem(), avatarImageView)
|
||||||
} ?: run {
|
} ?: run {
|
||||||
// Fallback to what we know
|
// Fallback to what we know
|
||||||
avatarRenderer.render(MatrixItem.UserItem(viewModel.otherUserId ?: "", viewModel.otherUserId), avatarImageView)
|
avatarRenderer.render(MatrixItem.UserItem(viewModel.otherUserId ?: "", viewModel.otherUserId), avatarImageView)
|
||||||
|
|
|
@ -27,7 +27,7 @@ import com.google.android.material.bottomnavigation.BottomNavigationItemView
|
||||||
import com.google.android.material.bottomnavigation.BottomNavigationMenuView
|
import com.google.android.material.bottomnavigation.BottomNavigationMenuView
|
||||||
import im.vector.matrix.android.api.session.crypto.keysbackup.KeysBackupState
|
import im.vector.matrix.android.api.session.crypto.keysbackup.KeysBackupState
|
||||||
import im.vector.matrix.android.api.session.group.model.GroupSummary
|
import im.vector.matrix.android.api.session.group.model.GroupSummary
|
||||||
import im.vector.matrix.android.api.util.MatrixItem
|
import im.vector.matrix.android.api.util.toMatrixItem
|
||||||
import im.vector.riotx.R
|
import im.vector.riotx.R
|
||||||
import im.vector.riotx.core.extensions.commitTransactionNow
|
import im.vector.riotx.core.extensions.commitTransactionNow
|
||||||
import im.vector.riotx.core.platform.ToolbarConfigurable
|
import im.vector.riotx.core.platform.ToolbarConfigurable
|
||||||
|
@ -75,7 +75,7 @@ class HomeDetailFragment @Inject constructor(
|
||||||
|
|
||||||
private fun onGroupChange(groupSummary: GroupSummary?) {
|
private fun onGroupChange(groupSummary: GroupSummary?) {
|
||||||
groupSummary?.let {
|
groupSummary?.let {
|
||||||
avatarRenderer.render(MatrixItem.from(it), groupToolbarAvatarImageView)
|
avatarRenderer.render(it.toMatrixItem(), groupToolbarAvatarImageView)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ package im.vector.riotx.features.home
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import im.vector.matrix.android.api.session.Session
|
import im.vector.matrix.android.api.session.Session
|
||||||
import im.vector.matrix.android.api.util.MatrixItem
|
import im.vector.matrix.android.api.util.toMatrixItem
|
||||||
import im.vector.riotx.R
|
import im.vector.riotx.R
|
||||||
import im.vector.riotx.core.extensions.observeK
|
import im.vector.riotx.core.extensions.observeK
|
||||||
import im.vector.riotx.core.extensions.replaceChildFragment
|
import im.vector.riotx.core.extensions.replaceChildFragment
|
||||||
|
@ -43,7 +43,7 @@ class HomeDrawerFragment @Inject constructor(
|
||||||
session.liveUser(session.myUserId).observeK(this) { optionalUser ->
|
session.liveUser(session.myUserId).observeK(this) { optionalUser ->
|
||||||
val user = optionalUser?.getOrNull()
|
val user = optionalUser?.getOrNull()
|
||||||
if (user != null) {
|
if (user != null) {
|
||||||
avatarRenderer.render(MatrixItem.from(user), homeDrawerHeaderAvatarView)
|
avatarRenderer.render(user.toMatrixItem(), homeDrawerHeaderAvatarView)
|
||||||
homeDrawerUsernameView.text = user.displayName
|
homeDrawerUsernameView.text = user.displayName
|
||||||
homeDrawerUserIdView.text = user.userId
|
homeDrawerUserIdView.text = user.userId
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,7 +30,7 @@ import com.squareup.inject.assisted.AssistedInject
|
||||||
import im.vector.matrix.android.api.session.Session
|
import im.vector.matrix.android.api.session.Session
|
||||||
import im.vector.matrix.android.api.session.room.model.create.CreateRoomParams
|
import im.vector.matrix.android.api.session.room.model.create.CreateRoomParams
|
||||||
import im.vector.matrix.android.api.session.user.model.User
|
import im.vector.matrix.android.api.session.user.model.User
|
||||||
import im.vector.matrix.android.api.util.MatrixItem
|
import im.vector.matrix.android.api.util.toMatrixItem
|
||||||
import im.vector.matrix.rx.rx
|
import im.vector.matrix.rx.rx
|
||||||
import im.vector.riotx.core.extensions.postLiveEvent
|
import im.vector.riotx.core.extensions.postLiveEvent
|
||||||
import im.vector.riotx.core.platform.VectorViewModel
|
import im.vector.riotx.core.platform.VectorViewModel
|
||||||
|
@ -142,7 +142,7 @@ class CreateDirectRoomViewModel @AssistedInject constructor(@Assisted
|
||||||
session.rx()
|
session.rx()
|
||||||
.searchUsersDirectory(search, 50, emptySet())
|
.searchUsersDirectory(search, 50, emptySet())
|
||||||
.map { users ->
|
.map { users ->
|
||||||
users.sortedBy { MatrixItem.from(it).firstLetterOfDisplayName() }
|
users.sortedBy { it.toMatrixItem().firstLetterOfDisplayName() }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stream.toAsync {
|
stream.toAsync {
|
||||||
|
|
|
@ -25,7 +25,7 @@ import com.airbnb.mvrx.Success
|
||||||
import com.airbnb.mvrx.Uninitialized
|
import com.airbnb.mvrx.Uninitialized
|
||||||
import im.vector.matrix.android.api.session.Session
|
import im.vector.matrix.android.api.session.Session
|
||||||
import im.vector.matrix.android.api.session.user.model.User
|
import im.vector.matrix.android.api.session.user.model.User
|
||||||
import im.vector.matrix.android.api.util.MatrixItem
|
import im.vector.matrix.android.api.util.toMatrixItem
|
||||||
import im.vector.riotx.R
|
import im.vector.riotx.R
|
||||||
import im.vector.riotx.core.epoxy.errorWithRetryItem
|
import im.vector.riotx.core.epoxy.errorWithRetryItem
|
||||||
import im.vector.riotx.core.epoxy.loadingItem
|
import im.vector.riotx.core.epoxy.loadingItem
|
||||||
|
@ -98,7 +98,7 @@ class DirectoryUsersController @Inject constructor(private val session: Session,
|
||||||
createDirectRoomUserItem {
|
createDirectRoomUserItem {
|
||||||
id(user.userId)
|
id(user.userId)
|
||||||
selected(isSelected)
|
selected(isSelected)
|
||||||
matrixItem(MatrixItem.from(user))
|
matrixItem(user.toMatrixItem())
|
||||||
avatarRenderer(avatarRenderer)
|
avatarRenderer(avatarRenderer)
|
||||||
clickListener { _ ->
|
clickListener { _ ->
|
||||||
callback?.onItemClick(user)
|
callback?.onItemClick(user)
|
||||||
|
|
|
@ -23,7 +23,7 @@ import com.airbnb.mvrx.Incomplete
|
||||||
import com.airbnb.mvrx.Uninitialized
|
import com.airbnb.mvrx.Uninitialized
|
||||||
import im.vector.matrix.android.api.session.Session
|
import im.vector.matrix.android.api.session.Session
|
||||||
import im.vector.matrix.android.api.session.user.model.User
|
import im.vector.matrix.android.api.session.user.model.User
|
||||||
import im.vector.matrix.android.api.util.MatrixItem
|
import im.vector.matrix.android.api.util.toMatrixItem
|
||||||
import im.vector.riotx.R
|
import im.vector.riotx.R
|
||||||
import im.vector.riotx.core.epoxy.EmptyItem_
|
import im.vector.riotx.core.epoxy.EmptyItem_
|
||||||
import im.vector.riotx.core.epoxy.loadingItem
|
import im.vector.riotx.core.epoxy.loadingItem
|
||||||
|
@ -68,7 +68,7 @@ class KnownUsersController @Inject constructor(private val session: Session,
|
||||||
CreateDirectRoomUserItem_()
|
CreateDirectRoomUserItem_()
|
||||||
.id(item.userId)
|
.id(item.userId)
|
||||||
.selected(isSelected)
|
.selected(isSelected)
|
||||||
.matrixItem(MatrixItem.from(item))
|
.matrixItem(item.toMatrixItem())
|
||||||
.avatarRenderer(avatarRenderer)
|
.avatarRenderer(avatarRenderer)
|
||||||
.clickListener { _ ->
|
.clickListener { _ ->
|
||||||
callback?.onItemClick(item)
|
callback?.onItemClick(item)
|
||||||
|
|
|
@ -36,7 +36,7 @@ import im.vector.riotx.core.utils.LiveEvent
|
||||||
import io.reactivex.Observable
|
import io.reactivex.Observable
|
||||||
import io.reactivex.functions.BiFunction
|
import io.reactivex.functions.BiFunction
|
||||||
|
|
||||||
const val ALL_COMMUNITIES_GROUP_ID = "ALL_COMMUNITIES_GROUP_ID"
|
const val ALL_COMMUNITIES_GROUP_ID = "+ALL_COMMUNITIES_GROUP_ID"
|
||||||
|
|
||||||
class GroupListViewModel @AssistedInject constructor(@Assisted initialState: GroupListViewState,
|
class GroupListViewModel @AssistedInject constructor(@Assisted initialState: GroupListViewState,
|
||||||
private val selectedGroupStore: SelectedGroupDataSource,
|
private val selectedGroupStore: SelectedGroupDataSource,
|
||||||
|
|
|
@ -18,7 +18,7 @@ package im.vector.riotx.features.home.group
|
||||||
|
|
||||||
import com.airbnb.epoxy.EpoxyController
|
import com.airbnb.epoxy.EpoxyController
|
||||||
import im.vector.matrix.android.api.session.group.model.GroupSummary
|
import im.vector.matrix.android.api.session.group.model.GroupSummary
|
||||||
import im.vector.matrix.android.api.util.MatrixItem
|
import im.vector.matrix.android.api.util.toMatrixItem
|
||||||
import im.vector.riotx.features.home.AvatarRenderer
|
import im.vector.riotx.features.home.AvatarRenderer
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
@ -50,7 +50,7 @@ class GroupSummaryController @Inject constructor(private val avatarRenderer: Ava
|
||||||
groupSummaryItem {
|
groupSummaryItem {
|
||||||
avatarRenderer(avatarRenderer)
|
avatarRenderer(avatarRenderer)
|
||||||
id(groupSummary.groupId)
|
id(groupSummary.groupId)
|
||||||
matrixItem(MatrixItem.from(groupSummary))
|
matrixItem(groupSummary.toMatrixItem())
|
||||||
selected(isSelected)
|
selected(isSelected)
|
||||||
listener { callback?.onGroupSelected(groupSummary) }
|
listener { callback?.onGroupSelected(groupSummary) }
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,7 @@ package im.vector.riotx.features.home.room.breadcrumbs
|
||||||
|
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import com.airbnb.epoxy.EpoxyController
|
import com.airbnb.epoxy.EpoxyController
|
||||||
import im.vector.matrix.android.api.util.MatrixItem
|
import im.vector.matrix.android.api.util.toMatrixItem
|
||||||
import im.vector.riotx.core.utils.DebouncedClickListener
|
import im.vector.riotx.core.utils.DebouncedClickListener
|
||||||
import im.vector.riotx.features.home.AvatarRenderer
|
import im.vector.riotx.features.home.AvatarRenderer
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
@ -53,7 +53,7 @@ class BreadcrumbsController @Inject constructor(
|
||||||
breadcrumbsItem {
|
breadcrumbsItem {
|
||||||
id(it.roomId)
|
id(it.roomId)
|
||||||
avatarRenderer(avatarRenderer)
|
avatarRenderer(avatarRenderer)
|
||||||
matrixItem(MatrixItem.from(it))
|
matrixItem(it.toMatrixItem())
|
||||||
unreadNotificationCount(it.notificationCount)
|
unreadNotificationCount(it.notificationCount)
|
||||||
showHighlighted(it.highlightCount > 0)
|
showHighlighted(it.highlightCount > 0)
|
||||||
hasUnreadMessage(it.hasUnreadMessages)
|
hasUnreadMessage(it.hasUnreadMessages)
|
||||||
|
|
|
@ -67,6 +67,7 @@ import im.vector.matrix.android.api.session.room.timeline.TimelineEvent
|
||||||
import im.vector.matrix.android.api.session.room.timeline.getLastMessageContent
|
import im.vector.matrix.android.api.session.room.timeline.getLastMessageContent
|
||||||
import im.vector.matrix.android.api.session.user.model.User
|
import im.vector.matrix.android.api.session.user.model.User
|
||||||
import im.vector.matrix.android.api.util.MatrixItem
|
import im.vector.matrix.android.api.util.MatrixItem
|
||||||
|
import im.vector.matrix.android.api.util.toMatrixItem
|
||||||
import im.vector.riotx.R
|
import im.vector.riotx.R
|
||||||
import im.vector.riotx.core.dialogs.withColoredButton
|
import im.vector.riotx.core.dialogs.withColoredButton
|
||||||
import im.vector.riotx.core.epoxy.LayoutManagerStateRestorer
|
import im.vector.riotx.core.epoxy.LayoutManagerStateRestorer
|
||||||
|
@ -600,7 +601,7 @@ class RoomDetailFragment @Inject constructor(
|
||||||
}
|
}
|
||||||
|
|
||||||
// Replace the word by its completion
|
// Replace the word by its completion
|
||||||
val matrixItem = MatrixItem.from(item)
|
val matrixItem = item.toMatrixItem()
|
||||||
val displayName = matrixItem.getBestName()
|
val displayName = matrixItem.getBestName()
|
||||||
|
|
||||||
// with a trailing space
|
// with a trailing space
|
||||||
|
@ -711,7 +712,7 @@ class RoomDetailFragment @Inject constructor(
|
||||||
activity?.finish()
|
activity?.finish()
|
||||||
} else {
|
} else {
|
||||||
roomToolbarTitleView.text = it.displayName
|
roomToolbarTitleView.text = it.displayName
|
||||||
avatarRenderer.render(MatrixItem.from(it), roomToolbarAvatarImageView)
|
avatarRenderer.render(it.toMatrixItem(), roomToolbarAvatarImageView)
|
||||||
roomToolbarSubtitleView.setTextOrHide(it.topic)
|
roomToolbarSubtitleView.setTextOrHide(it.topic)
|
||||||
}
|
}
|
||||||
jumpToBottomView.count = it.notificationCount
|
jumpToBottomView.count = it.notificationCount
|
||||||
|
|
|
@ -21,7 +21,7 @@ import im.vector.matrix.android.api.session.events.model.EventType
|
||||||
import im.vector.matrix.android.api.session.room.model.Membership
|
import im.vector.matrix.android.api.session.room.model.Membership
|
||||||
import im.vector.matrix.android.api.session.room.model.RoomSummary
|
import im.vector.matrix.android.api.session.room.model.RoomSummary
|
||||||
import im.vector.matrix.android.api.session.room.timeline.getLastMessageContent
|
import im.vector.matrix.android.api.session.room.timeline.getLastMessageContent
|
||||||
import im.vector.matrix.android.api.util.MatrixItem
|
import im.vector.matrix.android.api.util.toMatrixItem
|
||||||
import im.vector.riotx.R
|
import im.vector.riotx.R
|
||||||
import im.vector.riotx.core.date.VectorDateFormatter
|
import im.vector.riotx.core.date.VectorDateFormatter
|
||||||
import im.vector.riotx.core.epoxy.VectorEpoxyModel
|
import im.vector.riotx.core.epoxy.VectorEpoxyModel
|
||||||
|
@ -70,7 +70,7 @@ class RoomSummaryItemFactory @Inject constructor(private val noticeEventFormatte
|
||||||
return RoomInvitationItem_()
|
return RoomInvitationItem_()
|
||||||
.id(roomSummary.roomId)
|
.id(roomSummary.roomId)
|
||||||
.avatarRenderer(avatarRenderer)
|
.avatarRenderer(avatarRenderer)
|
||||||
.matrixItem(MatrixItem.from(roomSummary))
|
.matrixItem(roomSummary.toMatrixItem())
|
||||||
.secondLine(secondLine)
|
.secondLine(secondLine)
|
||||||
.invitationAcceptInProgress(joiningRoomsIds.contains(roomSummary.roomId))
|
.invitationAcceptInProgress(joiningRoomsIds.contains(roomSummary.roomId))
|
||||||
.invitationAcceptInError(joiningErrorRoomsIds.contains(roomSummary.roomId))
|
.invitationAcceptInError(joiningErrorRoomsIds.contains(roomSummary.roomId))
|
||||||
|
@ -124,7 +124,7 @@ class RoomSummaryItemFactory @Inject constructor(private val noticeEventFormatte
|
||||||
return RoomSummaryItem_()
|
return RoomSummaryItem_()
|
||||||
.id(roomSummary.roomId)
|
.id(roomSummary.roomId)
|
||||||
.avatarRenderer(avatarRenderer)
|
.avatarRenderer(avatarRenderer)
|
||||||
.matrixItem(MatrixItem.from(roomSummary))
|
.matrixItem(roomSummary.toMatrixItem())
|
||||||
.lastEventTime(latestEventTime)
|
.lastEventTime(latestEventTime)
|
||||||
.lastFormattedEvent(latestFormattedEvent)
|
.lastFormattedEvent(latestFormattedEvent)
|
||||||
.showHighlighted(showHighlighted)
|
.showHighlighted(showHighlighted)
|
||||||
|
|
|
@ -18,7 +18,7 @@ package im.vector.riotx.features.home.room.list.actions
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import com.airbnb.epoxy.TypedEpoxyController
|
import com.airbnb.epoxy.TypedEpoxyController
|
||||||
import im.vector.matrix.android.api.session.room.notification.RoomNotificationState
|
import im.vector.matrix.android.api.session.room.notification.RoomNotificationState
|
||||||
import im.vector.matrix.android.api.util.MatrixItem
|
import im.vector.matrix.android.api.util.toMatrixItem
|
||||||
import im.vector.riotx.core.epoxy.bottomsheet.bottomSheetActionItem
|
import im.vector.riotx.core.epoxy.bottomsheet.bottomSheetActionItem
|
||||||
import im.vector.riotx.core.epoxy.bottomsheet.bottomSheetRoomPreviewItem
|
import im.vector.riotx.core.epoxy.bottomsheet.bottomSheetRoomPreviewItem
|
||||||
import im.vector.riotx.core.epoxy.bottomsheet.bottomSheetSeparatorItem
|
import im.vector.riotx.core.epoxy.bottomsheet.bottomSheetSeparatorItem
|
||||||
|
@ -40,7 +40,7 @@ class RoomListQuickActionsEpoxyController @Inject constructor(private val avatar
|
||||||
bottomSheetRoomPreviewItem {
|
bottomSheetRoomPreviewItem {
|
||||||
id("preview")
|
id("preview")
|
||||||
avatarRenderer(avatarRenderer)
|
avatarRenderer(avatarRenderer)
|
||||||
matrixItem(MatrixItem.from(roomSummary))
|
matrixItem(roomSummary.toMatrixItem())
|
||||||
settingsClickListener(View.OnClickListener { listener?.didSelectMenuAction(RoomListQuickActionsSharedAction.Settings(roomSummary.roomId)) })
|
settingsClickListener(View.OnClickListener { listener?.didSelectMenuAction(RoomListQuickActionsSharedAction.Settings(roomSummary.roomId)) })
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@ import android.view.View
|
||||||
import androidx.constraintlayout.widget.ConstraintLayout
|
import androidx.constraintlayout.widget.ConstraintLayout
|
||||||
import androidx.core.view.updateLayoutParams
|
import androidx.core.view.updateLayoutParams
|
||||||
import im.vector.matrix.android.api.session.user.model.User
|
import im.vector.matrix.android.api.session.user.model.User
|
||||||
import im.vector.matrix.android.api.util.MatrixItem
|
import im.vector.matrix.android.api.util.toMatrixItem
|
||||||
import im.vector.riotx.R
|
import im.vector.riotx.R
|
||||||
import im.vector.riotx.core.di.HasScreenInjector
|
import im.vector.riotx.core.di.HasScreenInjector
|
||||||
import im.vector.riotx.features.home.AvatarRenderer
|
import im.vector.riotx.features.home.AvatarRenderer
|
||||||
|
@ -57,7 +57,7 @@ class VectorInviteView @JvmOverloads constructor(context: Context, attrs: Attrib
|
||||||
fun render(sender: User, mode: Mode = Mode.LARGE) {
|
fun render(sender: User, mode: Mode = Mode.LARGE) {
|
||||||
if (mode == Mode.LARGE) {
|
if (mode == Mode.LARGE) {
|
||||||
updateLayoutParams { height = LayoutParams.MATCH_CONSTRAINT }
|
updateLayoutParams { height = LayoutParams.MATCH_CONSTRAINT }
|
||||||
avatarRenderer.render(MatrixItem.from(sender), inviteAvatarView)
|
avatarRenderer.render(sender.toMatrixItem(), inviteAvatarView)
|
||||||
inviteIdentifierView.text = sender.userId
|
inviteIdentifierView.text = sender.userId
|
||||||
inviteNameView.text = sender.displayName
|
inviteNameView.text = sender.displayName
|
||||||
inviteLabelView.text = context.getString(R.string.send_you_invite)
|
inviteLabelView.text = context.getString(R.string.send_you_invite)
|
||||||
|
|
|
@ -22,7 +22,7 @@ import com.airbnb.mvrx.Fail
|
||||||
import com.airbnb.mvrx.Incomplete
|
import com.airbnb.mvrx.Incomplete
|
||||||
import com.airbnb.mvrx.Success
|
import com.airbnb.mvrx.Success
|
||||||
import im.vector.matrix.android.api.session.room.model.roomdirectory.PublicRoom
|
import im.vector.matrix.android.api.session.room.model.roomdirectory.PublicRoom
|
||||||
import im.vector.matrix.android.api.util.MatrixItem
|
import im.vector.matrix.android.api.util.toMatrixItem
|
||||||
import im.vector.riotx.R
|
import im.vector.riotx.R
|
||||||
import im.vector.riotx.core.epoxy.errorWithRetryItem
|
import im.vector.riotx.core.epoxy.errorWithRetryItem
|
||||||
import im.vector.riotx.core.epoxy.loadingItem
|
import im.vector.riotx.core.epoxy.loadingItem
|
||||||
|
@ -84,7 +84,7 @@ class PublicRoomsController @Inject constructor(private val stringProvider: Stri
|
||||||
publicRoomItem {
|
publicRoomItem {
|
||||||
avatarRenderer(avatarRenderer)
|
avatarRenderer(avatarRenderer)
|
||||||
id(publicRoom.roomId)
|
id(publicRoom.roomId)
|
||||||
matrixItem(MatrixItem.from(publicRoom))
|
matrixItem(publicRoom.toMatrixItem())
|
||||||
roomAlias(publicRoom.canonicalAlias)
|
roomAlias(publicRoom.canonicalAlias)
|
||||||
roomTopic(publicRoom.topic)
|
roomTopic(publicRoom.topic)
|
||||||
nbOfMembers(publicRoom.numJoinedMembers)
|
nbOfMembers(publicRoom.numJoinedMembers)
|
||||||
|
|
|
@ -18,7 +18,7 @@ package im.vector.riotx.features.settings.ignored
|
||||||
|
|
||||||
import com.airbnb.epoxy.EpoxyController
|
import com.airbnb.epoxy.EpoxyController
|
||||||
import im.vector.matrix.android.api.session.user.model.User
|
import im.vector.matrix.android.api.session.user.model.User
|
||||||
import im.vector.matrix.android.api.util.MatrixItem
|
import im.vector.matrix.android.api.util.toMatrixItem
|
||||||
import im.vector.riotx.R
|
import im.vector.riotx.R
|
||||||
import im.vector.riotx.core.epoxy.noResultItem
|
import im.vector.riotx.core.epoxy.noResultItem
|
||||||
import im.vector.riotx.core.resources.StringProvider
|
import im.vector.riotx.core.resources.StringProvider
|
||||||
|
@ -56,7 +56,7 @@ class IgnoredUsersController @Inject constructor(private val stringProvider: Str
|
||||||
userItem {
|
userItem {
|
||||||
id(user.userId)
|
id(user.userId)
|
||||||
avatarRenderer(avatarRenderer)
|
avatarRenderer(avatarRenderer)
|
||||||
matrixItem(MatrixItem.from(user))
|
matrixItem(user.toMatrixItem())
|
||||||
itemClickAction { callback?.onUserIdClicked(user.userId) }
|
itemClickAction { callback?.onUserIdClicked(user.userId) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue