Fix message timer for chat updates.

This commit is contained in:
Michelle Tang
2026-01-05 15:40:56 -05:00
committed by jeffrey-signal
parent 92c71b3630
commit e1467480e9
2 changed files with 6 additions and 3 deletions

View File

@@ -817,7 +817,7 @@ public final class ConversationUpdateItem extends FrameLayout
private void presentTimer(UpdateDescription updateDescription) {
if (updateDescription.hasExpiration() && messageRecord.getExpiresIn() > 0) {
timer = new ExpirationTimer(messageRecord.getTimestamp(), messageRecord.getExpiresIn());
timer = new ExpirationTimer(messageRecord.getExpireStarted(), messageRecord.getExpiresIn());
handler.post(timerUpdateRunnable);
} else {
latestFrame = 0;

View File

@@ -2823,7 +2823,7 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat
retrieved.type == MessageType.IDENTITY_VERIFIED ||
retrieved.type == MessageType.IDENTITY_UPDATE
val read = silent || retrieved.type == MessageType.EXPIRATION_UPDATE || MessageTypes.isPinnedMessageUpdate(type)
val read = silent || retrieved.type == MessageType.EXPIRATION_UPDATE
val contentValues = contentValuesOf(
DATE_SENT to retrieved.sentTimeMillis,
@@ -2882,6 +2882,8 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat
.readToSingleInt(0)
contentValues.put(NOTIFIED, notified.toInt())
} else if (MessageTypes.isPinnedMessageUpdate(type)) {
contentValues.put(NOTIFIED, 1)
}
val updateThread = retrieved.storyType === StoryType.NONE && !silent
@@ -4748,10 +4750,11 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat
}
fun getUnreadCount(threadId: Long): Int {
val pinnedMessageClause = "($TYPE & ${MessageTypes.SPECIAL_TYPES_MASK}) != ${MessageTypes.SPECIAL_TYPE_PINNED_MESSAGE}"
return readableDatabase
.select("COUNT(*)")
.from("$TABLE_NAME INDEXED BY $INDEX_THREAD_UNREAD_COUNT")
.where("$THREAD_ID = $threadId AND $STORY_TYPE = 0 AND $PARENT_STORY_ID <= 0 AND $ORIGINAL_MESSAGE_ID IS NULL AND $SCHEDULED_DATE = -1 AND $READ = 0")
.where("$THREAD_ID = $threadId AND $STORY_TYPE = 0 AND $PARENT_STORY_ID <= 0 AND $ORIGINAL_MESSAGE_ID IS NULL AND $SCHEDULED_DATE = -1 AND $READ = 0 AND $pinnedMessageClause")
.run()
.readToSingleInt()
}