Stop conversations without meaningful messages from showing in list.
This commit is contained in:
parent
724f3e872b
commit
cdc2e74f68
3 changed files with 29 additions and 1 deletions
|
@ -254,6 +254,13 @@ public class MmsSmsDatabase extends Database {
|
|||
DatabaseFactory.getMmsDatabase(context).getMessageCountForThread(threadId, beforeTime);
|
||||
}
|
||||
|
||||
public int getConversationCountForThreadSummary(long threadId) {
|
||||
int count = DatabaseFactory.getSmsDatabase(context).getMessageCountForThreadSummary(threadId);
|
||||
count += DatabaseFactory.getMmsDatabase(context).getMessageCountForThread(threadId);
|
||||
|
||||
return count;
|
||||
}
|
||||
|
||||
public int getInsecureSentCount(long threadId) {
|
||||
int count = DatabaseFactory.getSmsDatabase(context).getInsecureMessagesSentForThread(threadId);
|
||||
count += DatabaseFactory.getMmsDatabase(context).getInsecureMessagesSentForThread(threadId);
|
||||
|
|
|
@ -48,6 +48,7 @@ import org.thoughtcrime.securesms.sms.IncomingTextMessage;
|
|||
import org.thoughtcrime.securesms.sms.OutgoingTextMessage;
|
||||
import org.thoughtcrime.securesms.util.Base64;
|
||||
import org.thoughtcrime.securesms.util.JsonUtils;
|
||||
import org.thoughtcrime.securesms.util.SqlUtil;
|
||||
import org.thoughtcrime.securesms.util.TextSecurePreferences;
|
||||
import org.whispersystems.libsignal.util.guava.Optional;
|
||||
|
||||
|
@ -226,6 +227,26 @@ public class SmsDatabase extends MessagingDatabase {
|
|||
}
|
||||
}
|
||||
|
||||
public int getMessageCountForThreadSummary(long threadId) {
|
||||
SQLiteDatabase db = databaseHelper.getReadableDatabase();
|
||||
|
||||
String[] cols = { "COUNT(*)" };
|
||||
String query = THREAD_ID + " = ? AND (NOT " + TYPE + " & ? AND TYPE != ?)";
|
||||
long type = Types.END_SESSION_BIT | Types.KEY_EXCHANGE_IDENTITY_UPDATE_BIT | Types.KEY_EXCHANGE_IDENTITY_VERIFIED_BIT;
|
||||
String[] args = SqlUtil.buildArgs(threadId, type, Types.PROFILE_CHANGE_TYPE);
|
||||
|
||||
try (Cursor cursor = db.query(TABLE_NAME, cols, query, args, null, null, null)) {
|
||||
if (cursor != null && cursor.moveToFirst()) {
|
||||
int count = cursor.getInt(0);
|
||||
if (count > 0) {
|
||||
return getMessageCountForThread(threadId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
public int getMessageCountForThread(long threadId) {
|
||||
SQLiteDatabase db = databaseHelper.getReadableDatabase();
|
||||
|
||||
|
|
|
@ -887,7 +887,7 @@ public class ThreadDatabase extends Database {
|
|||
|
||||
public boolean update(long threadId, boolean unarchive, boolean allowDeletion) {
|
||||
MmsSmsDatabase mmsSmsDatabase = DatabaseFactory.getMmsSmsDatabase(context);
|
||||
long count = mmsSmsDatabase.getConversationCount(threadId);
|
||||
long count = mmsSmsDatabase.getConversationCountForThreadSummary(threadId);
|
||||
|
||||
if (count == 0) {
|
||||
if (allowDeletion) {
|
||||
|
|
Loading…
Add table
Reference in a new issue