Fix thread update with drafts bugs.

* Fix thread not updating correctly when drafts are present.
* Fix thread delete bug during first message drafting.
main
Cody Henthorne 2022-11-17 11:26:29 -05:00
rodzic 9ee10512fb
commit dfb913cb98
3 zmienionych plików z 13 dodań i 2 usunięć

Wyświetl plik

@ -48,8 +48,8 @@ class DraftRepository(
draftDatabase.replaceDrafts(actualThreadId, drafts)
threadDatabase.updateSnippet(actualThreadId, drafts.getSnippet(context), drafts.uriSnippet, System.currentTimeMillis(), MmsSmsColumns.Types.BASE_DRAFT_TYPE, true)
} else if (threadId > 0) {
threadDatabase.update(threadId, false)
draftDatabase.clearDrafts(threadId)
threadDatabase.update(threadId, unarchive = false, allowDeletion = false)
}
}
}

Wyświetl plik

@ -110,7 +110,7 @@ class DraftViewModel @JvmOverloads constructor(
return repository
.loadDrafts(threadId)
.doOnSuccess { drafts ->
store.update { it.copyAndSetDrafts(threadId, drafts.drafts) }
store.update { saveDrafts(it.copyAndSetDrafts(threadId, drafts.drafts)) }
}
.observeOn(AndroidSchedulers.mainThread())
}

Wyświetl plik

@ -1327,6 +1327,17 @@ class ThreadDatabase(context: Context, databaseHelper: SignalDatabase) : Databas
return true
}
val drafts: DraftDatabase.Drafts = SignalDatabase.drafts.getDrafts(threadId)
if (drafts.isNotEmpty()) {
val threadRecord: ThreadRecord? = getThreadRecord(threadId)
if (threadRecord != null &&
threadRecord.type == MmsSmsColumns.Types.BASE_DRAFT_TYPE &&
threadRecord.date > record.timestamp
) {
return false
}
}
updateThread(
threadId = threadId,
meaningfulMessages = meaningfulMessages,