Merge pull request #549 from hjubb/fix_deleting_necessary_empty_threads

Don't Auto-Delete Empty Open Groups
This commit is contained in:
Niels Andriesse 2021-05-20 15:50:37 +10:00 committed by GitHub
commit 8e9deba756
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 9 deletions

View file

@ -513,9 +513,9 @@ public class ThreadDatabase extends Database {
MmsSmsDatabase mmsSmsDatabase = DatabaseFactory.getMmsSmsDatabase(context);
long count = mmsSmsDatabase.getConversationCount(threadId);
boolean shouldDeleteEmptyThread = deleteThreadOnEmpty(threadId);
if (count == 0) {
if (count == 0 && shouldDeleteEmptyThread) {
deleteThread(threadId);
notifyConversationListListeners();
return true;
@ -534,9 +534,12 @@ public class ThreadDatabase extends Database {
notifyConversationListListeners();
return false;
} else {
deleteThread(threadId);
notifyConversationListListeners();
return true;
if (shouldDeleteEmptyThread) {
deleteThread(threadId);
notifyConversationListListeners();
return true;
}
return false;
}
} finally {
if (reader != null)
@ -544,6 +547,11 @@ public class ThreadDatabase extends Database {
}
}
private boolean deleteThreadOnEmpty(long threadId) {
Recipient threadRecipient = getRecipientForThreadId(threadId);
return threadRecipient != null && !threadRecipient.isOpenGroupRecipient();
}
private @NonNull String getFormattedBodyFor(@NonNull MessageRecord messageRecord) {
if (messageRecord.isMms()) {
MmsMessageRecord record = (MmsMessageRecord) messageRecord;

View file

@ -70,10 +70,6 @@ public class GroupManager {
final ThreadDatabase threadDatabase = DatabaseFactory.getThreadDatabase(context);
final Recipient groupRecipient = Recipient.from(context, Address.fromSerialized(groupId), false);
if (!groupDatabase.getGroup(groupId).isPresent()) {
return false;
}
long threadId = threadDatabase.getThreadIdIfExistsFor(groupRecipient);
if (threadId != -1L) {
threadDatabase.deleteConversation(threadId);