Eliminate ghost thread when all messages deleted in a thread.

Fixes #2262
Closes #2842

// FREEBIE
This commit is contained in:
Rhodey Orbits
2015-03-31 13:36:04 -07:00
committed by Moxie Marlinspike
parent dbc28746c0
commit 9ba19df2af
5 changed files with 28 additions and 10 deletions

View File

@@ -391,14 +391,14 @@ public class ThreadDatabase extends Database {
return null;
}
public void update(long threadId) {
public boolean update(long threadId) {
MmsSmsDatabase mmsSmsDatabase = DatabaseFactory.getMmsSmsDatabase(context);
long count = mmsSmsDatabase.getConversationCount(threadId);
if (count == 0) {
deleteThread(threadId);
notifyConversationListListeners();
return;
return true;
}
MmsSmsDatabase.Reader reader = null;
@@ -414,15 +414,17 @@ public class ThreadDatabase extends Database {
else timestamp = record.getDateReceived();
updateThread(threadId, count, record.getBody().getBody(), timestamp, record.getType());
notifyConversationListListeners();
return false;
} else {
deleteThread(threadId);
notifyConversationListListeners();
return true;
}
} finally {
if (reader != null)
reader.close();
}
notifyConversationListListeners();
}
public static interface ProgressListener {