1
0
mirror of https://github.com/KokaKiwi/BarInsta synced 2024-11-25 08:07:29 +00:00

fix marking first item in dm thread as read

This commit is contained in:
Austin Huang 2021-07-17 10:36:45 -04:00
parent 8717c8587e
commit 70570560d7
No known key found for this signature in database
GPG Key ID: 84C23AA04587A91F

View File

@ -169,21 +169,19 @@ class DirectThreadViewModel(
val items = thread.items val items = thread.items
if (items.isNullOrEmpty()) return successEventResObjectLiveData if (items.isNullOrEmpty()) return successEventResObjectLiveData
val directItem = items.firstOrNull { (_, userId) -> userId != currentUser.pk } ?: return successEventResObjectLiveData val directItem = items.firstOrNull { (_, userId) -> userId != currentUser.pk } ?: return successEventResObjectLiveData
val lastSeenAt = thread.lastSeenAt val lastSeenAt = thread.lastSeenAt ?: return threadManager.markAsSeen(directItem, viewModelScope)
if (lastSeenAt != null) { val seenAt = lastSeenAt[currentUser.pk] ?: return threadManager.markAsSeen(directItem, viewModelScope)
val seenAt = lastSeenAt[currentUser.pk] ?: return successEventResObjectLiveData try {
try { val timestamp = seenAt.timestamp ?: return threadManager.markAsSeen(directItem, viewModelScope)
val timestamp = seenAt.timestamp ?: return successEventResObjectLiveData val itemIdMatches = seenAt.itemId == directItem.itemId
val itemIdMatches = seenAt.itemId == directItem.itemId val timestampMatches = timestamp.toLong() >= directItem.getTimestamp()
val timestampMatches = timestamp.toLong() >= directItem.getTimestamp() if (itemIdMatches || timestampMatches) {
if (itemIdMatches || timestampMatches) {
return successEventResObjectLiveData
}
} catch (ignored: Exception) {
return successEventResObjectLiveData return successEventResObjectLiveData
} }
return threadManager.markAsSeen(directItem, viewModelScope)
} catch (ignored: Exception) {
return successEventResObjectLiveData
} }
return threadManager.markAsSeen(directItem, viewModelScope)
} }
private val successEventResObjectLiveData: MutableLiveData<Resource<Any?>> private val successEventResObjectLiveData: MutableLiveData<Resource<Any?>>