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);
|
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) {
|
public int getInsecureSentCount(long threadId) {
|
||||||
int count = DatabaseFactory.getSmsDatabase(context).getInsecureMessagesSentForThread(threadId);
|
int count = DatabaseFactory.getSmsDatabase(context).getInsecureMessagesSentForThread(threadId);
|
||||||
count += DatabaseFactory.getMmsDatabase(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.sms.OutgoingTextMessage;
|
||||||
import org.thoughtcrime.securesms.util.Base64;
|
import org.thoughtcrime.securesms.util.Base64;
|
||||||
import org.thoughtcrime.securesms.util.JsonUtils;
|
import org.thoughtcrime.securesms.util.JsonUtils;
|
||||||
|
import org.thoughtcrime.securesms.util.SqlUtil;
|
||||||
import org.thoughtcrime.securesms.util.TextSecurePreferences;
|
import org.thoughtcrime.securesms.util.TextSecurePreferences;
|
||||||
import org.whispersystems.libsignal.util.guava.Optional;
|
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) {
|
public int getMessageCountForThread(long threadId) {
|
||||||
SQLiteDatabase db = databaseHelper.getReadableDatabase();
|
SQLiteDatabase db = databaseHelper.getReadableDatabase();
|
||||||
|
|
||||||
|
|
|
@ -887,7 +887,7 @@ public class ThreadDatabase extends Database {
|
||||||
|
|
||||||
public boolean update(long threadId, boolean unarchive, boolean allowDeletion) {
|
public boolean update(long threadId, boolean unarchive, boolean allowDeletion) {
|
||||||
MmsSmsDatabase mmsSmsDatabase = DatabaseFactory.getMmsSmsDatabase(context);
|
MmsSmsDatabase mmsSmsDatabase = DatabaseFactory.getMmsSmsDatabase(context);
|
||||||
long count = mmsSmsDatabase.getConversationCount(threadId);
|
long count = mmsSmsDatabase.getConversationCountForThreadSummary(threadId);
|
||||||
|
|
||||||
if (count == 0) {
|
if (count == 0) {
|
||||||
if (allowDeletion) {
|
if (allowDeletion) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue