add same fix for private groups

This commit is contained in:
ialokim
2023-07-02 22:08:38 +02:00
parent 606739b93d
commit e617cab427

View File

@@ -13,6 +13,7 @@ import org.briarproject.bramble.api.data.MetadataParser;
import org.briarproject.bramble.api.db.DatabaseComponent;
import org.briarproject.bramble.api.db.DbException;
import org.briarproject.bramble.api.db.Metadata;
import org.briarproject.bramble.api.db.NoSuchGroupException;
import org.briarproject.bramble.api.db.Transaction;
import org.briarproject.bramble.api.identity.Author;
import org.briarproject.bramble.api.lifecycle.LifecycleManager.OpenDatabaseHook;
@@ -117,7 +118,23 @@ class GroupInvitationManagerImpl extends ConversationClientImpl
// Create a local group to indicate that we've set this client up
Group localGroup = contactGroupFactory.createLocalGroup(CLIENT_ID,
MAJOR_VERSION);
if (db.containsGroup(txn, localGroup.getId())) return;
if (db.containsGroup(txn, localGroup.getId())) {
// Check each contact one by one and see if a group already exists.
// If none exists, call addingContact() for that contact.
for (Contact c : db.getContacts(txn)) {
try {
getGroupCount(txn, c.getId());
} catch (NoSuchGroupException e) {
System.out.println(
"no such group for " + c.getAuthor().getName() +
" " +
c.getAlias());
addingContact(txn, c);
}
}
return;
}
db.addGroup(txn, localGroup);
// Set things up for any pre-existing contacts
for (Contact c : db.getContacts(txn)) addingContact(txn, c);