diff --git a/changelog.d/6924.wip b/changelog.d/6924.wip new file mode 100644 index 00000000000..11ff4a1eb2f --- /dev/null +++ b/changelog.d/6924.wip @@ -0,0 +1 @@ +[New Layout] Adds space invites diff --git a/vector/src/main/java/im/vector/app/features/grouplist/HomeSpaceSummaryItem.kt b/vector/src/main/java/im/vector/app/features/grouplist/HomeSpaceSummaryItem.kt index 8ca217636a2..3c1d20cc87e 100644 --- a/vector/src/main/java/im/vector/app/features/grouplist/HomeSpaceSummaryItem.kt +++ b/vector/src/main/java/im/vector/app/features/grouplist/HomeSpaceSummaryItem.kt @@ -40,7 +40,7 @@ abstract class HomeSpaceSummaryItem : VectorEpoxyModel views.drawerUnreadCounterBadgeView.render( - UnreadCounterBadgeView.State( + UnreadCounterBadgeView.State.Count( count = state.otherSpacesUnread.totalCount, highlighted = state.otherSpacesUnread.isHighlight ) diff --git a/vector/src/main/java/im/vector/app/features/home/room/breadcrumbs/BreadcrumbsItem.kt b/vector/src/main/java/im/vector/app/features/home/room/breadcrumbs/BreadcrumbsItem.kt index cfc9b124d76..a7b2ed6b96a 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/breadcrumbs/BreadcrumbsItem.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/breadcrumbs/BreadcrumbsItem.kt @@ -50,7 +50,7 @@ abstract class BreadcrumbsItem : VectorEpoxyModel(R.layo holder.unreadIndentIndicator.isVisible = hasUnreadMessage avatarRenderer.render(matrixItem, holder.avatarImageView) holder.avatarImageView.contentDescription = matrixItem.getBestName() - holder.unreadCounterBadgeView.render(UnreadCounterBadgeView.State(unreadNotificationCount, showHighlighted)) + holder.unreadCounterBadgeView.render(UnreadCounterBadgeView.State.Count(unreadNotificationCount, showHighlighted)) holder.draftIndentIndicator.isVisible = hasDraft holder.typingIndicator.isVisible = hasTypingUsers } diff --git a/vector/src/main/java/im/vector/app/features/home/room/list/RoomCategoryItem.kt b/vector/src/main/java/im/vector/app/features/home/room/list/RoomCategoryItem.kt index a7804bd0491..85c910f7e1c 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/list/RoomCategoryItem.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/list/RoomCategoryItem.kt @@ -46,7 +46,7 @@ abstract class RoomCategoryItem : VectorEpoxyModel(R.la val expandedArrowDrawable = ContextCompat.getDrawable(holder.rootView.context, expandedArrowDrawableRes)?.also { DrawableCompat.setTint(it, tintColor) } - holder.unreadCounterBadgeView.render(UnreadCounterBadgeView.State(unreadNotificationCount, showHighlighted)) + holder.unreadCounterBadgeView.render(UnreadCounterBadgeView.State.Count(unreadNotificationCount, showHighlighted)) holder.titleView.text = title holder.counterView.text = itemCount.takeIf { it > 0 }?.toString().orEmpty() holder.counterView.setCompoundDrawablesWithIntrinsicBounds(null, null, expandedArrowDrawable, null) diff --git a/vector/src/main/java/im/vector/app/features/home/room/list/RoomSummaryItem.kt b/vector/src/main/java/im/vector/app/features/home/room/list/RoomSummaryItem.kt index 8dc0ac0784b..58ae6520cf3 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/list/RoomSummaryItem.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/list/RoomSummaryItem.kt @@ -113,7 +113,7 @@ abstract class RoomSummaryItem : VectorEpoxyModel(R.layo itemLongClickListener?.onLongClick(it) ?: false } holder.titleView.text = matrixItem.getBestName() - holder.unreadCounterBadgeView.render(UnreadCounterBadgeView.State(unreadNotificationCount, showHighlighted)) + holder.unreadCounterBadgeView.render(UnreadCounterBadgeView.State.Count(unreadNotificationCount, showHighlighted)) holder.unreadIndentIndicator.isVisible = hasUnreadMessage holder.draftView.isVisible = hasDraft avatarRenderer.render(matrixItem, holder.avatarImageView) diff --git a/vector/src/main/java/im/vector/app/features/home/room/list/SectionHeaderAdapter.kt b/vector/src/main/java/im/vector/app/features/home/room/list/SectionHeaderAdapter.kt index 3f1dfebf7b6..6cbc4676280 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/list/SectionHeaderAdapter.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/list/SectionHeaderAdapter.kt @@ -97,7 +97,9 @@ class SectionHeaderAdapter constructor( binding.root.isClickable = roomsSectionData.isCollapsable binding.roomCategoryCounterView.setCompoundDrawablesWithIntrinsicBounds(null, null, collapsableArrowDrawable, null) binding.roomCategoryCounterView.text = roomsSectionData.itemCount.takeIf { it > 0 }?.toString().orEmpty() - binding.roomCategoryUnreadCounterBadgeView.render(UnreadCounterBadgeView.State(roomsSectionData.notificationCount, roomsSectionData.isHighlighted)) + binding.roomCategoryUnreadCounterBadgeView.render( + UnreadCounterBadgeView.State.Count(roomsSectionData.notificationCount, roomsSectionData.isHighlighted) + ) } companion object { diff --git a/vector/src/main/java/im/vector/app/features/home/room/list/UnreadCounterBadgeView.kt b/vector/src/main/java/im/vector/app/features/home/room/list/UnreadCounterBadgeView.kt index 9887e066545..0cc843ea55c 100755 --- a/vector/src/main/java/im/vector/app/features/home/room/list/UnreadCounterBadgeView.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/list/UnreadCounterBadgeView.kt @@ -30,22 +30,44 @@ class UnreadCounterBadgeView : MaterialTextView { constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(context, attrs, defStyleAttr) fun render(state: State) { - if (state.count == 0) { - visibility = View.INVISIBLE - } else { - visibility = View.VISIBLE - val bgRes = if (state.highlighted) { - R.drawable.bg_unread_highlight + when (state) { + is State.Count -> renderAsCount(state) + is State.Text -> renderAsText(state) + } + } + + private fun renderAsCount(state: State.Count) { + val view = this + + with(state) { + if (count == 0) { + visibility = View.INVISIBLE } else { - R.drawable.bg_unread_notification + visibility = View.VISIBLE + val bgRes = if (highlighted) { + R.drawable.bg_unread_highlight + } else { + R.drawable.bg_unread_notification + } + setBackgroundResource(bgRes) + view.text = RoomSummaryFormatter.formatUnreadMessagesCounter(count) } + } + } + + private fun renderAsText(state: State.Text) { + val view = this + + with(state) { + visibility = View.VISIBLE + val bgRes = if (highlighted) R.drawable.bg_unread_highlight else R.drawable.bg_unread_notification setBackgroundResource(bgRes) - text = RoomSummaryFormatter.formatUnreadMessagesCounter(state.count) + view.text = text } } - data class State( - val count: Int, - val highlighted: Boolean - ) + sealed class State { + data class Count(val count: Int, val highlighted: Boolean) : State() + data class Text(val text: String, val highlighted: Boolean) : State() + } } diff --git a/vector/src/main/java/im/vector/app/features/home/room/list/home/invites/InviteCounterItem.kt b/vector/src/main/java/im/vector/app/features/home/room/list/home/invites/InviteCounterItem.kt index 4bc292be271..7536bde10a5 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/list/home/invites/InviteCounterItem.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/list/home/invites/InviteCounterItem.kt @@ -33,7 +33,7 @@ abstract class InviteCounterItem : VectorEpoxyModel(R. override fun bind(holder: Holder) { super.bind(holder) holder.view.setOnClickListener(listener) - holder.unreadCounterBadgeView.render(UnreadCounterBadgeView.State(invitesCount, true)) + holder.unreadCounterBadgeView.render(UnreadCounterBadgeView.State.Count(invitesCount, true)) } class Holder : VectorEpoxyHolder() { diff --git a/vector/src/main/java/im/vector/app/features/home/room/list/home/recent/RecentRoomItem.kt b/vector/src/main/java/im/vector/app/features/home/room/list/home/recent/RecentRoomItem.kt index 6a575a2b6ab..d7c72ba5ede 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/list/home/recent/RecentRoomItem.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/list/home/recent/RecentRoomItem.kt @@ -58,7 +58,7 @@ abstract class RecentRoomItem : VectorEpoxyModel(R.layout avatarRenderer.render(matrixItem, holder.avatarImageView) holder.avatarImageView.contentDescription = matrixItem.getBestName() - holder.unreadCounterBadgeView.render(UnreadCounterBadgeView.State(unreadNotificationCount, showHighlighted)) + holder.unreadCounterBadgeView.render(UnreadCounterBadgeView.State.Count(unreadNotificationCount, showHighlighted)) holder.title.text = matrixItem.getBestName() } diff --git a/vector/src/main/java/im/vector/app/features/spaces/NewSpaceSummaryController.kt b/vector/src/main/java/im/vector/app/features/spaces/NewSpaceSummaryController.kt index 80421659dd5..24c7e13271c 100644 --- a/vector/src/main/java/im/vector/app/features/spaces/NewSpaceSummaryController.kt +++ b/vector/src/main/java/im/vector/app/features/spaces/NewSpaceSummaryController.kt @@ -27,6 +27,7 @@ import org.matrix.android.sdk.api.session.room.model.Membership import org.matrix.android.sdk.api.session.room.model.RoomSummary import org.matrix.android.sdk.api.session.room.model.SpaceChildInfo import org.matrix.android.sdk.api.session.room.summary.RoomAggregateNotificationCount +import org.matrix.android.sdk.api.session.user.model.User import org.matrix.android.sdk.api.util.toMatrixItem import javax.inject.Inject @@ -47,24 +48,13 @@ class NewSpaceSummaryController @Inject constructor( override fun buildModels() { val nonNullViewState = viewState ?: return - buildGroupModels( - nonNullViewState.spaces, - nonNullViewState.selectedSpace, - nonNullViewState.rootSpacesOrdered, - nonNullViewState.homeAggregateCount, - nonNullViewState.expandedStates, - ) + buildGroupModels(nonNullViewState) } - private fun buildGroupModels( - spaceSummaries: List?, - selectedSpace: RoomSummary?, - rootSpaces: List?, - homeCount: RoomAggregateNotificationCount, - expandedStates: Map, - ) { - addHomeItem(selectedSpace == null, homeCount) - addSpaces(spaceSummaries, selectedSpace, rootSpaces, expandedStates) + private fun buildGroupModels(viewState: SpaceListViewState) = with(viewState) { + addHomeItem(selectedSpace == null, homeAggregateCount) + addSpaces(spaces, selectedSpace, rootSpacesOrdered, expandedStates) + addInvites(selectedSpace, rootSpacesOrdered, inviters) addCreateItem() } @@ -74,7 +64,7 @@ class NewSpaceSummaryController @Inject constructor( id("space_home") text(host.stringProvider.getString(R.string.all_chats)) selected(selected) - countState(UnreadCounterBadgeView.State(homeCount.totalCount, homeCount.isHighlight)) + countState(UnreadCounterBadgeView.State.Count(homeCount.totalCount, homeCount.isHighlight)) listener { host.callback?.onSpaceSelected(null) } } } @@ -87,7 +77,7 @@ class NewSpaceSummaryController @Inject constructor( ) { val host = this - rootSpaces?.filter { it.membership != Membership.INVITE } + rootSpaces?.filterNot { it.membership == Membership.INVITE } ?.forEach { spaceSummary -> val subSpaces = spaceSummary.spaceChildren?.filter { spaceChild -> spaceSummaries.containsSpaceId(spaceChild.childRoomId) } val hasChildren = (subSpaces?.size ?: 0) > 0 @@ -97,7 +87,7 @@ class NewSpaceSummaryController @Inject constructor( newSpaceSummaryItem { id(spaceSummary.roomId) avatarRenderer(host.avatarRenderer) - countState(UnreadCounterBadgeView.State(spaceSummary.notificationCount, spaceSummary.highlightCount > 0)) + countState(UnreadCounterBadgeView.State.Count(spaceSummary.notificationCount, spaceSummary.highlightCount > 0)) expanded(expanded) hasChildren(hasChildren) matrixItem(spaceSummary.toMatrixItem()) @@ -128,7 +118,7 @@ class NewSpaceSummaryController @Inject constructor( val host = this val childSummary = spaceSummaries?.firstOrNull { it.roomId == info.childRoomId } ?: return val id = "$idPrefix:${childSummary.roomId}" - val countState = UnreadCounterBadgeView.State(childSummary.notificationCount, childSummary.highlightCount > 0) + val countState = UnreadCounterBadgeView.State.Count(childSummary.notificationCount, childSummary.highlightCount > 0) val expanded = expandedStates[childSummary.roomId] == true val isSelected = childSummary.roomId == selectedSpace?.roomId val subSpaces = childSummary.spaceChildren?.filter { childSpace -> spaceSummaries.containsSpaceId(childSpace.childRoomId) } @@ -155,6 +145,30 @@ class NewSpaceSummaryController @Inject constructor( } } + private fun addInvites( + selectedSpace: RoomSummary?, + rootSpaces: List?, + inviters: List, + ) { + val host = this + + rootSpaces?.filter { it.membership == Membership.INVITE } + ?.forEach { spaceSummary -> + val isSelected = spaceSummary.roomId == selectedSpace?.roomId + val inviter = inviters.find { it.userId == spaceSummary.inviterId } + + spaceInviteItem { + id(spaceSummary.roomId) + avatarRenderer(host.avatarRenderer) + inviter(inviter?.displayName.orEmpty()) + matrixItem(spaceSummary.toMatrixItem()) + onLongClickListener { host.callback?.onSpaceSettings(spaceSummary) } + onInviteSelectedListener { host.callback?.onSpaceInviteSelected(spaceSummary) } + selected(isSelected) + } + } + } + private fun addCreateItem() { val host = this newSpaceAddItem { diff --git a/vector/src/main/java/im/vector/app/features/spaces/NewSpaceSummaryItem.kt b/vector/src/main/java/im/vector/app/features/spaces/NewSpaceSummaryItem.kt index f6a47818608..e6e4aadb9c3 100644 --- a/vector/src/main/java/im/vector/app/features/spaces/NewSpaceSummaryItem.kt +++ b/vector/src/main/java/im/vector/app/features/spaces/NewSpaceSummaryItem.kt @@ -35,7 +35,7 @@ import org.matrix.android.sdk.api.util.MatrixItem abstract class NewSpaceSummaryItem : VectorEpoxyModel(R.layout.item_new_space) { @EpoxyAttribute(EpoxyAttribute.Option.DoNotHash) lateinit var avatarRenderer: AvatarRenderer - @EpoxyAttribute var countState: UnreadCounterBadgeView.State = UnreadCounterBadgeView.State(0, false) + @EpoxyAttribute var countState: UnreadCounterBadgeView.State = UnreadCounterBadgeView.State.Count(0, false) @EpoxyAttribute var expanded: Boolean = false @EpoxyAttribute var hasChildren: Boolean = false @EpoxyAttribute lateinit var matrixItem: MatrixItem diff --git a/vector/src/main/java/im/vector/app/features/spaces/NewSubSpaceSummaryItem.kt b/vector/src/main/java/im/vector/app/features/spaces/NewSubSpaceSummaryItem.kt index 8dd2aea9b3c..fae600917c4 100644 --- a/vector/src/main/java/im/vector/app/features/spaces/NewSubSpaceSummaryItem.kt +++ b/vector/src/main/java/im/vector/app/features/spaces/NewSubSpaceSummaryItem.kt @@ -38,7 +38,7 @@ import org.matrix.android.sdk.api.util.MatrixItem abstract class NewSubSpaceSummaryItem : VectorEpoxyModel(R.layout.item_new_sub_space) { @EpoxyAttribute(EpoxyAttribute.Option.DoNotHash) lateinit var avatarRenderer: AvatarRenderer - @EpoxyAttribute var countState: UnreadCounterBadgeView.State = UnreadCounterBadgeView.State(0, false) + @EpoxyAttribute var countState: UnreadCounterBadgeView.State = UnreadCounterBadgeView.State.Count(0, false) @EpoxyAttribute var expanded: Boolean = false @EpoxyAttribute var hasChildren: Boolean = false @EpoxyAttribute var indent: Int = 0 diff --git a/vector/src/main/java/im/vector/app/features/spaces/SpaceInviteItem.kt b/vector/src/main/java/im/vector/app/features/spaces/SpaceInviteItem.kt new file mode 100644 index 00000000000..59095a8dd11 --- /dev/null +++ b/vector/src/main/java/im/vector/app/features/spaces/SpaceInviteItem.kt @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2021 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package im.vector.app.features.spaces + +import android.widget.ImageView +import android.widget.TextView +import com.airbnb.epoxy.EpoxyAttribute +import com.airbnb.epoxy.EpoxyModelClass +import im.vector.app.R +import im.vector.app.core.epoxy.ClickListener +import im.vector.app.core.epoxy.VectorEpoxyHolder +import im.vector.app.core.epoxy.VectorEpoxyModel +import im.vector.app.core.epoxy.onClick +import im.vector.app.core.platform.CheckableConstraintLayout +import im.vector.app.features.home.AvatarRenderer +import im.vector.app.features.home.room.list.UnreadCounterBadgeView +import org.matrix.android.sdk.api.util.MatrixItem + +@EpoxyModelClass +abstract class SpaceInviteItem : VectorEpoxyModel(R.layout.item_space_invite) { + + @EpoxyAttribute(EpoxyAttribute.Option.DoNotHash) lateinit var avatarRenderer: AvatarRenderer + @EpoxyAttribute var inviter: String = "" + @EpoxyAttribute lateinit var matrixItem: MatrixItem + @EpoxyAttribute(EpoxyAttribute.Option.DoNotHash) var onLongClickListener: ClickListener? = null + @EpoxyAttribute(EpoxyAttribute.Option.DoNotHash) var onInviteSelectedListener: ClickListener? = null + @EpoxyAttribute var selected: Boolean = false + + override fun bind(holder: Holder) { + super.bind(holder) + val context = holder.root.context + holder.root.isChecked = selected + holder.root.onClick(onInviteSelectedListener) + holder.root.setOnLongClickListener { onLongClickListener?.invoke(holder.root).let { true } } + holder.name.text = matrixItem.displayName + holder.invitedBy.text = context.getString(R.string.invited_by, inviter) + + avatarRenderer.render(matrixItem, holder.avatar) + holder.notificationBadge.render(UnreadCounterBadgeView.State.Text("!", true)) + } + + override fun unbind(holder: Holder) { + avatarRenderer.clear(holder.avatar) + super.unbind(holder) + } + + class Holder : VectorEpoxyHolder() { + val root by bind(R.id.root) + val avatar by bind(R.id.avatar) + val name by bind(R.id.name) + val invitedBy by bind(R.id.invited_by) + val notificationBadge by bind(R.id.notification_badge) + } +} diff --git a/vector/src/main/java/im/vector/app/features/spaces/SpaceListViewModel.kt b/vector/src/main/java/im/vector/app/features/spaces/SpaceListViewModel.kt index c7f8e0d4112..9cd456b5d7c 100644 --- a/vector/src/main/java/im/vector/app/features/spaces/SpaceListViewModel.kt +++ b/vector/src/main/java/im/vector/app/features/spaces/SpaceListViewModel.kt @@ -271,11 +271,14 @@ class SpaceListViewModel @AssistedInject constructor( ?.content.toModel() ?.safeOrder() } + val inviterIds = spaces.mapNotNull { it.inviterId } + val inviters = inviterIds.mapNotNull { session.userService().getUser(it) } copy( asyncSpaces = asyncSpaces, spaces = spaces, + inviters = inviters, rootSpacesOrdered = rootSpaces.sortedWith(TopLevelSpaceComparator(orders)), - spaceOrderInfo = orders + spaceOrderInfo = orders, ) } diff --git a/vector/src/main/java/im/vector/app/features/spaces/SpaceListViewState.kt b/vector/src/main/java/im/vector/app/features/spaces/SpaceListViewState.kt index f75c336b5de..87aa7ddb486 100644 --- a/vector/src/main/java/im/vector/app/features/spaces/SpaceListViewState.kt +++ b/vector/src/main/java/im/vector/app/features/spaces/SpaceListViewState.kt @@ -21,6 +21,7 @@ import com.airbnb.mvrx.MavericksState import com.airbnb.mvrx.Uninitialized import org.matrix.android.sdk.api.session.room.model.RoomSummary import org.matrix.android.sdk.api.session.room.summary.RoomAggregateNotificationCount +import org.matrix.android.sdk.api.session.user.model.User import org.matrix.android.sdk.api.util.MatrixItem data class SpaceListViewState( @@ -28,6 +29,7 @@ data class SpaceListViewState( val asyncSpaces: Async> = Uninitialized, val spaces: List = emptyList(), val selectedSpace: RoomSummary? = null, + val inviters: List = emptyList(), val rootSpacesOrdered: List? = null, val spaceOrderInfo: Map? = null, val spaceOrderLocalEchos: Map? = null, diff --git a/vector/src/main/java/im/vector/app/features/spaces/SpaceSummaryController.kt b/vector/src/main/java/im/vector/app/features/spaces/SpaceSummaryController.kt index 233e33af184..ff8f5c38f77 100644 --- a/vector/src/main/java/im/vector/app/features/spaces/SpaceSummaryController.kt +++ b/vector/src/main/java/im/vector/app/features/spaces/SpaceSummaryController.kt @@ -76,7 +76,7 @@ class SpaceSummaryController @Inject constructor( avatarRenderer(host.avatarRenderer) id("invite_${roomSummary.roomId}") matrixItem(roomSummary.toMatrixItem()) - countState(UnreadCounterBadgeView.State(1, true)) + countState(UnreadCounterBadgeView.State.Count(1, true)) selected(false) description(host.stringProvider.getString(R.string.you_are_invited)) canDrag(false) @@ -87,7 +87,7 @@ class SpaceSummaryController @Inject constructor( homeSpaceSummaryItem { id("space_home") selected(selectedSpace == null) - countState(UnreadCounterBadgeView.State(homeCount.totalCount, homeCount.isHighlight)) + countState(UnreadCounterBadgeView.State.Count(homeCount.totalCount, homeCount.isHighlight)) listener { host.callback?.onSpaceSelected(null) } } @@ -117,7 +117,7 @@ class SpaceSummaryController @Inject constructor( listener { host.callback?.onSpaceSelected(roomSummary) } toggleExpand { host.callback?.onToggleExpand(roomSummary) } countState( - UnreadCounterBadgeView.State( + UnreadCounterBadgeView.State.Count( roomSummary.notificationCount, roomSummary.highlightCount > 0 ) @@ -169,7 +169,7 @@ class SpaceSummaryController @Inject constructor( toggleExpand { host.callback?.onToggleExpand(childSummary) } indent(currentDepth) countState( - UnreadCounterBadgeView.State( + UnreadCounterBadgeView.State.Count( childSummary.notificationCount, childSummary.highlightCount > 0 ) diff --git a/vector/src/main/java/im/vector/app/features/spaces/SpaceSummaryItem.kt b/vector/src/main/java/im/vector/app/features/spaces/SpaceSummaryItem.kt index 192c6c8781b..5c3f0c3df50 100644 --- a/vector/src/main/java/im/vector/app/features/spaces/SpaceSummaryItem.kt +++ b/vector/src/main/java/im/vector/app/features/spaces/SpaceSummaryItem.kt @@ -48,7 +48,7 @@ abstract class SpaceSummaryItem : VectorEpoxyModel(R.la @EpoxyAttribute var expanded: Boolean = false @EpoxyAttribute var hasChildren: Boolean = false @EpoxyAttribute var indent: Int = 0 - @EpoxyAttribute var countState: UnreadCounterBadgeView.State = UnreadCounterBadgeView.State(0, false) + @EpoxyAttribute var countState: UnreadCounterBadgeView.State = UnreadCounterBadgeView.State.Count(0, false) @EpoxyAttribute var description: String? = null @EpoxyAttribute var showSeparator: Boolean = false @EpoxyAttribute var canDrag: Boolean = true diff --git a/vector/src/main/java/im/vector/app/features/spaces/SubSpaceSummaryItem.kt b/vector/src/main/java/im/vector/app/features/spaces/SubSpaceSummaryItem.kt index 871605c9d84..54bba5ed7ac 100644 --- a/vector/src/main/java/im/vector/app/features/spaces/SubSpaceSummaryItem.kt +++ b/vector/src/main/java/im/vector/app/features/spaces/SubSpaceSummaryItem.kt @@ -46,7 +46,7 @@ abstract class SubSpaceSummaryItem : VectorEpoxyModel + + + + + + + + + + +