Browse Source
fix marking first item in dm thread as read
renovate/androidx.fragment-fragment-ktx-1.x
Austin Huang
3 years ago
No known key found for this signature in database
GPG Key ID: 84C23AA04587A91F
1 changed files with
10 additions and
12 deletions
-
app/src/main/java/awais/instagrabber/viewmodels/DirectThreadViewModel.kt
|
|
@ -169,22 +169,20 @@ class DirectThreadViewModel( |
|
|
|
val items = thread.items |
|
|
|
if (items.isNullOrEmpty()) return successEventResObjectLiveData |
|
|
|
val directItem = items.firstOrNull { (_, userId) -> userId != currentUser.pk } ?: return successEventResObjectLiveData |
|
|
|
val lastSeenAt = thread.lastSeenAt |
|
|
|
if (lastSeenAt != null) { |
|
|
|
val seenAt = lastSeenAt[currentUser.pk] ?: return successEventResObjectLiveData |
|
|
|
val lastSeenAt = thread.lastSeenAt ?: return threadManager.markAsSeen(directItem, viewModelScope) |
|
|
|
val seenAt = lastSeenAt[currentUser.pk] ?: return threadManager.markAsSeen(directItem, viewModelScope) |
|
|
|
try { |
|
|
|
val timestamp = seenAt.timestamp ?: return successEventResObjectLiveData |
|
|
|
val timestamp = seenAt.timestamp ?: return threadManager.markAsSeen(directItem, viewModelScope) |
|
|
|
val itemIdMatches = seenAt.itemId == directItem.itemId |
|
|
|
val timestampMatches = timestamp.toLong() >= directItem.getTimestamp() |
|
|
|
if (itemIdMatches || timestampMatches) { |
|
|
|
return successEventResObjectLiveData |
|
|
|
} |
|
|
|
return threadManager.markAsSeen(directItem, viewModelScope) |
|
|
|
} catch (ignored: Exception) { |
|
|
|
return successEventResObjectLiveData |
|
|
|
} |
|
|
|
} |
|
|
|
return threadManager.markAsSeen(directItem, viewModelScope) |
|
|
|
} |
|
|
|
|
|
|
|
private val successEventResObjectLiveData: MutableLiveData<Resource<Any?>> |
|
|
|
get() { |
|
|
|