mirror of
https://github.com/SchildiChat/SchildiChat-android.git
synced 2025-02-01 11:46:57 +01:00
Treat manually unread chats as notifications in bottom tabs
Change-Id: I34cea91674843d8d60285295b449d2722cb061e9
This commit is contained in:
parent
f99398c3cb
commit
2c22f1e926
@ -109,6 +109,20 @@ data class RoomSummary constructor(
|
||||
}
|
||||
}
|
||||
|
||||
fun scNotificationCountWithManualUnread(): Int {
|
||||
return when {
|
||||
notificationCount > 0 -> {
|
||||
notificationCount
|
||||
}
|
||||
markedUnread -> {
|
||||
1
|
||||
}
|
||||
else -> {
|
||||
0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
const val NOT_IN_BREADCRUMBS = -1
|
||||
// SC addition
|
||||
|
@ -128,7 +128,7 @@ class HomeDetailViewModel @AssistedInject constructor(@Assisted initialState: Ho
|
||||
|
||||
val peopleNotifications = summaries
|
||||
.filter { it.isDirect }
|
||||
.map { it.notificationCount }
|
||||
.map { it.scNotificationCountWithManualUnread() }
|
||||
.sum()
|
||||
val peopleHasHighlight = summaries
|
||||
.filter { it.isDirect }
|
||||
@ -136,7 +136,7 @@ class HomeDetailViewModel @AssistedInject constructor(@Assisted initialState: Ho
|
||||
|
||||
val roomsNotifications = summaries
|
||||
.filter { !it.isDirect }
|
||||
.map { it.notificationCount }
|
||||
.map { it.scNotificationCountWithManualUnread() }
|
||||
.sum()
|
||||
val roomsHasHighlight = summaries
|
||||
.filter { !it.isDirect }
|
||||
|
@ -30,7 +30,7 @@ class RoomListDisplayModeFilter(private val displayMode: RoomListDisplayMode) :
|
||||
return when (displayMode) {
|
||||
RoomListDisplayMode.ALL -> true
|
||||
RoomListDisplayMode.NOTIFICATIONS ->
|
||||
roomSummary.notificationCount > 0 || roomSummary.membership == Membership.INVITE || roomSummary.userDrafts.isNotEmpty()
|
||||
roomSummary.scNotificationCountWithManualUnread() > 0 || roomSummary.membership == Membership.INVITE || roomSummary.userDrafts.isNotEmpty()
|
||||
RoomListDisplayMode.PEOPLE -> roomSummary.isDirect && roomSummary.membership.isActive()
|
||||
RoomListDisplayMode.ROOMS -> !roomSummary.isDirect && roomSummary.membership.isActive()
|
||||
RoomListDisplayMode.FILTERED -> roomSummary.membership == Membership.JOIN
|
||||
|
@ -29,7 +29,6 @@ import im.vector.app.features.home.room.filtered.filteredRoomFooterItem
|
||||
import org.matrix.android.sdk.api.session.room.members.ChangeMembershipState
|
||||
import org.matrix.android.sdk.api.session.room.model.Membership
|
||||
import org.matrix.android.sdk.api.session.room.model.RoomSummary
|
||||
import timber.log.Timber
|
||||
import javax.inject.Inject
|
||||
|
||||
class RoomSummaryController @Inject constructor(private val stringProvider: StringProvider,
|
||||
@ -135,7 +134,7 @@ class RoomSummaryController @Inject constructor(private val stringProvider: Stri
|
||||
0
|
||||
} else {
|
||||
// Count notifications + number of chats with no notifications marked as unread
|
||||
summaries.map { it }.sumBy { x -> if (x.notificationCount > 0) x.notificationCount else if (x.markedUnread) 1 else 0 }
|
||||
summaries.map { it }.sumBy { it.scNotificationCountWithManualUnread() }
|
||||
}
|
||||
val markedUnread = if (summaries.isEmpty()) {
|
||||
false
|
||||
|
Loading…
x
Reference in New Issue
Block a user