mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-20 16:49:40 +01:00
Add notification for failed story messages.
This commit is contained in:
@@ -1314,6 +1314,17 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat
|
||||
return markedMessageInfos
|
||||
}
|
||||
|
||||
fun markAllFailedStoriesNotified() {
|
||||
val where = "$IS_STORY_CLAUSE AND (${getOutgoingTypeClause()}) AND $NOTIFIED = 0 AND ($TYPE & ${MessageTypes.BASE_TYPE_MASK}) = ${MessageTypes.BASE_SENT_FAILED_TYPE}"
|
||||
|
||||
writableDatabase
|
||||
.update("$TABLE_NAME INDEXED BY $INDEX_THREAD_DATE")
|
||||
.values(NOTIFIED to 1)
|
||||
.where(where)
|
||||
.run()
|
||||
notifyConversationListListeners()
|
||||
}
|
||||
|
||||
fun markOnboardingStoryRead() {
|
||||
val recipientId = SignalStore.releaseChannelValues().releaseChannelRecipientId ?: return
|
||||
val where = "$IS_STORY_CLAUSE AND NOT (${getOutgoingTypeClause()}) AND $READ = 0 AND $RECIPIENT_ID = ?"
|
||||
@@ -1459,6 +1470,11 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat
|
||||
.readToList { RecipientId.from(it.getLong(0)) }
|
||||
}
|
||||
|
||||
fun hasFailedOutgoingStory(): Boolean {
|
||||
val where = "$IS_STORY_CLAUSE AND (${getOutgoingTypeClause()}) AND $NOTIFIED = 0 AND ($TYPE & ${MessageTypes.BASE_TYPE_MASK}) = ${MessageTypes.BASE_SENT_FAILED_TYPE}"
|
||||
return readableDatabase.exists(TABLE_NAME).where(where).run()
|
||||
}
|
||||
|
||||
fun getOrderedStoryRecipientsAndIds(isOutgoingOnly: Boolean): List<StoryResult> {
|
||||
val query = """
|
||||
SELECT
|
||||
@@ -2002,6 +2018,14 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat
|
||||
.run()
|
||||
}
|
||||
|
||||
fun markAsNotNotified(id: Long) {
|
||||
writableDatabase
|
||||
.update(TABLE_NAME)
|
||||
.values(NOTIFIED to 0)
|
||||
.where("$ID = ?", id)
|
||||
.run()
|
||||
}
|
||||
|
||||
fun setMessagesReadSince(threadId: Long, sinceTimestamp: Long): List<MarkedMessageInfo> {
|
||||
var query = """
|
||||
$THREAD_ID = ? AND
|
||||
|
||||
Reference in New Issue
Block a user