mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-27 20:24:32 +01:00
Update last seen logic to used last read message instead of now timestamp.
This commit is contained in:
committed by
Greyson Parrelli
parent
d7221a384b
commit
b82d16abcb
@@ -58,7 +58,7 @@ public class ConversationRepository {
|
||||
boolean showUniversalExpireTimerUpdate = false;
|
||||
|
||||
if (lastSeen > 0) {
|
||||
lastSeenPosition = SignalDatabase.messages().getMessagePositionOnOrAfterTimestamp(threadId, lastSeen);
|
||||
lastSeenPosition = SignalDatabase.messages().getMessagePositionByDateReceivedTimestamp(threadId, lastSeen, false);
|
||||
}
|
||||
|
||||
if (lastSeenPosition <= 0) {
|
||||
@@ -66,7 +66,7 @@ public class ConversationRepository {
|
||||
}
|
||||
|
||||
if (lastSeen == 0 && lastScrolled > 0) {
|
||||
lastScrolledPosition = SignalDatabase.messages().getMessagePositionOnOrAfterTimestamp(threadId, lastScrolled);
|
||||
lastScrolledPosition = SignalDatabase.messages().getMessagePositionByDateReceivedTimestamp(threadId, lastScrolled, true);
|
||||
}
|
||||
|
||||
if (!isMessageRequestAccepted) {
|
||||
|
||||
@@ -62,7 +62,7 @@ public class MarkReadHelper {
|
||||
debouncer.publish(() -> {
|
||||
EXECUTOR.execute(() -> {
|
||||
ThreadTable threadTable = SignalDatabase.threads();
|
||||
List<MessageTable.MarkedMessageInfo> infos = threadTable.setReadSince(conversationId, false, timestamp);
|
||||
List<MessageTable.MarkedMessageInfo> infos = threadTable.setReadSince(conversationId, timestamp);
|
||||
|
||||
Log.d(TAG, "Marking " + infos.size() + " messages as read.");
|
||||
|
||||
|
||||
@@ -702,8 +702,6 @@ class ConversationFragment :
|
||||
|
||||
inputPanel.onPause()
|
||||
|
||||
viewModel.markLastSeen()
|
||||
|
||||
EventBus.getDefault().unregister(this)
|
||||
}
|
||||
|
||||
|
||||
@@ -542,12 +542,6 @@ class ConversationRepository(
|
||||
AppDependencies.expiringMessageManager.scheduleDeletion(expirationInfos)
|
||||
}
|
||||
|
||||
fun markLastSeen(threadId: Long) {
|
||||
SignalExecutors.BOUNDED_IO.execute {
|
||||
SignalDatabase.threads.setLastSeen(threadId)
|
||||
}
|
||||
}
|
||||
|
||||
fun getEarliestMessageSentDate(threadId: Long): Single<Long> {
|
||||
return Single
|
||||
.fromCallable { SignalDatabase.messages.getEarliestMessageSentDate(threadId) }
|
||||
|
||||
@@ -577,10 +577,6 @@ class ConversationViewModel(
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
}
|
||||
|
||||
fun markLastSeen() {
|
||||
repository.markLastSeen(threadId)
|
||||
}
|
||||
|
||||
fun onChatSearchOpened() {
|
||||
// Trigger the lazy load, so we can race initialization of the validator
|
||||
_jumpToDateValidator
|
||||
|
||||
Reference in New Issue
Block a user