mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-17 21:29:54 +01:00
RemoteWipeModule should register with ClientVersioningManager, add contact hook
This commit is contained in:
@@ -46,7 +46,8 @@ import static org.briarproject.briar.socialbackup.SocialBackupConstants.MSG_KEY_
|
|||||||
import static org.briarproject.briar.socialbackup.SocialBackupConstants.MSG_KEY_TIMESTAMP;
|
import static org.briarproject.briar.socialbackup.SocialBackupConstants.MSG_KEY_TIMESTAMP;
|
||||||
|
|
||||||
public class RemoteWipeManagerImpl extends ConversationClientImpl
|
public class RemoteWipeManagerImpl extends ConversationClientImpl
|
||||||
implements RemoteWipeManager, LifecycleManager.OpenDatabaseHook {
|
implements RemoteWipeManager, ContactManager.ContactHook,
|
||||||
|
ClientVersioningManager.ClientVersioningHook, LifecycleManager.OpenDatabaseHook {
|
||||||
|
|
||||||
private final ClientVersioningManager clientVersioningManager;
|
private final ClientVersioningManager clientVersioningManager;
|
||||||
private final Group localGroup;
|
private final Group localGroup;
|
||||||
@@ -79,17 +80,7 @@ public class RemoteWipeManagerImpl extends ConversationClientImpl
|
|||||||
if (db.containsGroup(txn, localGroup.getId())) return;
|
if (db.containsGroup(txn, localGroup.getId())) return;
|
||||||
db.addGroup(txn, localGroup);
|
db.addGroup(txn, localGroup);
|
||||||
// Set things up for any pre-existing contacts
|
// Set things up for any pre-existing contacts
|
||||||
for (Contact c : db.getContacts(txn)) {
|
for (Contact c : db.getContacts(txn)) addingContact(txn, c);
|
||||||
// Create a group to share with the contact
|
|
||||||
Group g = getContactGroup(c);
|
|
||||||
db.addGroup(txn, g);
|
|
||||||
// Apply the client's visibility to the contact group
|
|
||||||
Group.Visibility client = clientVersioningManager.getClientVisibility(txn,
|
|
||||||
c.getId(), CLIENT_ID, MAJOR_VERSION);
|
|
||||||
db.setGroupVisibility(txn, c.getId(), g.getId(), client);
|
|
||||||
// Attach the contact ID to the group
|
|
||||||
setContactId(txn, g.getId(), c.getId());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setContactId(Transaction txn, GroupId g, ContactId c)
|
private void setContactId(Transaction txn, GroupId g, ContactId c)
|
||||||
@@ -277,4 +268,30 @@ public class RemoteWipeManagerImpl extends ConversationClientImpl
|
|||||||
throw new DbException(e);
|
throw new DbException(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onClientVisibilityChanging(Transaction txn, Contact c,
|
||||||
|
Group.Visibility v) throws DbException {
|
||||||
|
// Apply the client's visibility to the contact group
|
||||||
|
Group g = getContactGroup(c);
|
||||||
|
db.setGroupVisibility(txn, c.getId(), g.getId(), v);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addingContact(Transaction txn, Contact c) throws DbException {
|
||||||
|
// Create a group to share with the contact
|
||||||
|
Group g = getContactGroup(c);
|
||||||
|
db.addGroup(txn, g);
|
||||||
|
// Apply the client's visibility to the contact group
|
||||||
|
Group.Visibility client = clientVersioningManager.getClientVisibility(txn,
|
||||||
|
c.getId(), CLIENT_ID, MAJOR_VERSION);
|
||||||
|
db.setGroupVisibility(txn, c.getId(), g.getId(), client);
|
||||||
|
// Attach the contact ID to the group
|
||||||
|
setContactId(txn, g.getId(), c.getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void removingContact(Transaction txn, Contact c) throws DbException {
|
||||||
|
db.removeGroup(txn, getContactGroup(c));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
package org.briarproject.briar.remotewipe;
|
package org.briarproject.briar.remotewipe;
|
||||||
|
|
||||||
|
import org.briarproject.bramble.api.contact.ContactManager;
|
||||||
import org.briarproject.bramble.api.lifecycle.LifecycleManager;
|
import org.briarproject.bramble.api.lifecycle.LifecycleManager;
|
||||||
import org.briarproject.bramble.api.sync.validation.ValidationManager;
|
import org.briarproject.bramble.api.sync.validation.ValidationManager;
|
||||||
|
import org.briarproject.bramble.api.versioning.ClientVersioningManager;
|
||||||
import org.briarproject.briar.api.conversation.ConversationManager;
|
import org.briarproject.briar.api.conversation.ConversationManager;
|
||||||
import org.briarproject.briar.api.remotewipe.RemoteWipeManager;
|
import org.briarproject.briar.api.remotewipe.RemoteWipeManager;
|
||||||
|
|
||||||
@@ -11,6 +13,10 @@ import javax.inject.Singleton;
|
|||||||
import dagger.Module;
|
import dagger.Module;
|
||||||
import dagger.Provides;
|
import dagger.Provides;
|
||||||
|
|
||||||
|
import static org.briarproject.briar.api.socialbackup.SocialBackupManager.CLIENT_ID;
|
||||||
|
import static org.briarproject.briar.api.socialbackup.SocialBackupManager.MAJOR_VERSION;
|
||||||
|
import static org.briarproject.briar.api.socialbackup.SocialBackupManager.MINOR_VERSION;
|
||||||
|
|
||||||
@Module
|
@Module
|
||||||
public class RemoteWipeModule {
|
public class RemoteWipeModule {
|
||||||
public static class EagerSingletons {
|
public static class EagerSingletons {
|
||||||
@@ -24,11 +30,17 @@ public class RemoteWipeModule {
|
|||||||
LifecycleManager lifecycleManager,
|
LifecycleManager lifecycleManager,
|
||||||
ValidationManager validationManager,
|
ValidationManager validationManager,
|
||||||
ConversationManager conversationManager,
|
ConversationManager conversationManager,
|
||||||
|
ContactManager contactManager,
|
||||||
|
ClientVersioningManager clientVersioningManager,
|
||||||
RemoteWipeManagerImpl remoteWipeManager) {
|
RemoteWipeManagerImpl remoteWipeManager) {
|
||||||
lifecycleManager.registerOpenDatabaseHook(remoteWipeManager);
|
lifecycleManager.registerOpenDatabaseHook(remoteWipeManager);
|
||||||
validationManager
|
validationManager
|
||||||
.registerIncomingMessageHook(RemoteWipeManager.CLIENT_ID,
|
.registerIncomingMessageHook(RemoteWipeManager.CLIENT_ID,
|
||||||
RemoteWipeManager.MAJOR_VERSION, remoteWipeManager);
|
RemoteWipeManager.MAJOR_VERSION, remoteWipeManager);
|
||||||
|
|
||||||
|
contactManager.registerContactHook(remoteWipeManager);
|
||||||
|
clientVersioningManager.registerClient(CLIENT_ID, MAJOR_VERSION,
|
||||||
|
MINOR_VERSION, remoteWipeManager);
|
||||||
conversationManager.registerConversationClient(remoteWipeManager);
|
conversationManager.registerConversationClient(remoteWipeManager);
|
||||||
return remoteWipeManager;
|
return remoteWipeManager;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -89,6 +89,7 @@ public class RemoteWipeIntegrationTest extends BriarIntegrationTest<BriarIntegra
|
|||||||
Collection<ConversationMessageHeader> messages0At1 =
|
Collection<ConversationMessageHeader> messages0At1 =
|
||||||
getMessages0At1();
|
getMessages0At1();
|
||||||
assertEquals(1, messages0At1.size());
|
assertEquals(1, messages0At1.size());
|
||||||
|
System.out.println("mmmm" + messages0At1.size());
|
||||||
for (ConversationMessageHeader h : messages0At1) {
|
for (ConversationMessageHeader h : messages0At1) {
|
||||||
assertTrue(h instanceof RemoteWipeMessageHeader);
|
assertTrue(h instanceof RemoteWipeMessageHeader);
|
||||||
RemoteWipeMessageHeader r = (RemoteWipeMessageHeader) h;
|
RemoteWipeMessageHeader r = (RemoteWipeMessageHeader) h;
|
||||||
|
|||||||
Reference in New Issue
Block a user