diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/GroupDatabase.java b/app/src/main/java/org/thoughtcrime/securesms/database/GroupDatabase.java index bd215a6499..0aa9f70802 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/GroupDatabase.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/GroupDatabase.java @@ -228,12 +228,16 @@ public final class GroupDatabase extends Database { return getGroupsContainingMember(recipientId, true); } - @WorkerThread public @NonNull List getGroupsContainingMember(@NonNull RecipientId recipientId, boolean pushOnly) { + return getGroupsContainingMember(recipientId, pushOnly, false); + } + + @WorkerThread + public @NonNull List getGroupsContainingMember(@NonNull RecipientId recipientId, boolean pushOnly, boolean includeInactive) { SQLiteDatabase database = databaseHelper.getReadableDatabase(); String table = TABLE_NAME + " INNER JOIN " + ThreadDatabase.TABLE_NAME + " ON " + TABLE_NAME + "." + RECIPIENT_ID + " = " + ThreadDatabase.TABLE_NAME + "." + ThreadDatabase.RECIPIENT_ID; String query = MEMBERS + " LIKE ?"; - String[] args = new String[]{"%" + recipientId.serialize() + "%"}; + String[] args = SqlUtil.buildArgs("%" + recipientId.serialize() + "%"); String orderBy = ThreadDatabase.TABLE_NAME + "." + ThreadDatabase.DATE + " DESC"; if (pushOnly) { @@ -241,6 +245,11 @@ public final class GroupDatabase extends Database { args = SqlUtil.appendArg(args, "0"); } + if (!includeInactive) { + query += " AND " + ACTIVE + " = ?"; + args = SqlUtil.appendArg(args, "1"); + } + List groups = new LinkedList<>(); try (Cursor cursor = database.query(table, null, query, args, null, null, orderBy)) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/RecipientDatabase.java b/app/src/main/java/org/thoughtcrime/securesms/database/RecipientDatabase.java index e8221090a0..ad4e103ba5 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/RecipientDatabase.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/RecipientDatabase.java @@ -2290,7 +2290,7 @@ public class RecipientDatabase extends Database { // Groups GroupDatabase groupDatabase = DatabaseFactory.getGroupDatabase(context); - for (GroupDatabase.GroupRecord group : groupDatabase.getGroupsContainingMember(byE164, false)) { + for (GroupDatabase.GroupRecord group : groupDatabase.getGroupsContainingMember(byE164, false, true)) { List newMembers = new ArrayList<>(group.getMembers()); newMembers.remove(byE164);