Merge branch 'social-backup-eager-singletons' into 'social-backup-poc'

Dark Crystal: Inject social backup eager singletons when Briar core is created

See merge request briar/briar!1414
This commit is contained in:
peg
2021-03-22 16:37:20 +00:00
11 changed files with 50 additions and 118 deletions

View File

@@ -48,7 +48,7 @@ import org.briarproject.briar.api.android.DozeWatchdog;
import org.briarproject.briar.api.android.LockManager; import org.briarproject.briar.api.android.LockManager;
import org.briarproject.briar.api.android.ScreenFilterMonitor; import org.briarproject.briar.api.android.ScreenFilterMonitor;
import org.briarproject.briar.api.test.TestAvatarCreator; import org.briarproject.briar.api.test.TestAvatarCreator;
import org.briarproject.briar.socialbackup.AndroidSocialBackupModule; import org.briarproject.briar.socialbackup.AndroidDarkCrystalModule;
import java.io.File; import java.io.File;
import java.security.GeneralSecurityException; import java.security.GeneralSecurityException;
@@ -83,7 +83,7 @@ import static org.briarproject.briar.android.TestingConstants.IS_DEBUG_BUILD;
SettingsModule.class, SettingsModule.class,
DevReportModule.class, DevReportModule.class,
ContactListModule.class, ContactListModule.class,
AndroidSocialBackupModule.class, AndroidDarkCrystalModule.class,
// below need to be within same scope as ViewModelProvider.Factory // below need to be within same scope as ViewModelProvider.Factory
ForumModule.class, ForumModule.class,
GroupListModule.class, GroupListModule.class,

View File

@@ -0,0 +1,16 @@
package org.briarproject.briar.socialbackup;
import org.briarproject.briar.android.socialbackup.DarkCrystalImpl;
import org.briarproject.briar.api.socialbackup.DarkCrystal;
import dagger.Module;
import dagger.Provides;
@Module
public class AndroidDarkCrystalModule {
@Provides
DarkCrystal darkCrystal(DarkCrystalImpl darkCrystal) {
return darkCrystal;
}
}

View File

@@ -1,100 +0,0 @@
package org.briarproject.briar.socialbackup;
import org.briarproject.bramble.api.client.ClientHelper;
import org.briarproject.bramble.api.contact.ContactManager;
import org.briarproject.bramble.api.data.MetadataEncoder;
import org.briarproject.bramble.api.lifecycle.LifecycleManager;
import org.briarproject.bramble.api.sync.validation.ValidationManager;
import org.briarproject.bramble.api.system.Clock;
import org.briarproject.bramble.api.versioning.ClientVersioningManager;
import org.briarproject.briar.android.socialbackup.DarkCrystalImpl;
import org.briarproject.briar.api.conversation.ConversationManager;
import org.briarproject.briar.api.socialbackup.DarkCrystal;
import org.briarproject.briar.api.socialbackup.SocialBackupManager;
import javax.inject.Inject;
import javax.inject.Singleton;
import dagger.Module;
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
public class AndroidSocialBackupModule {
public static class EagerSingletons {
@Inject
SocialBackupManager socialBackupManager;
@Inject
SocialBackupValidator socialBackupValidator;
}
@Provides
@Singleton
SocialBackupManager socialBackupManager(
LifecycleManager lifecycleManager,
ContactManager contactManager,
ValidationManager validationManager,
ClientVersioningManager clientVersioningManager,
SocialBackupManagerImpl socialBackupManager,
ConversationManager conversationManager) {
lifecycleManager.registerOpenDatabaseHook(socialBackupManager);
contactManager.registerContactHook(socialBackupManager);
validationManager.registerIncomingMessageHook(CLIENT_ID,
MAJOR_VERSION, socialBackupManager);
clientVersioningManager.registerClient(CLIENT_ID, MAJOR_VERSION,
MINOR_VERSION, socialBackupManager);
conversationManager.registerConversationClient(socialBackupManager);
return socialBackupManager;
}
@Provides
@Singleton
SocialBackupValidator socialBackupValidator(
ValidationManager validationManager,
ClientHelper clientHelper,
MetadataEncoder metadataEncoder,
Clock clock) {
SocialBackupValidator validator =
new SocialBackupValidator(clientHelper, metadataEncoder, clock);
validationManager.registerMessageValidator(CLIENT_ID, MAJOR_VERSION,
validator);
return validator;
}
@Provides
BackupMetadataParser backupMetadataParser(
BackupMetadataParserImpl backupMetadataParser) {
return backupMetadataParser;
}
@Provides
BackupMetadataEncoder backupMetadataEncoder(
BackupMetadataEncoderImpl backupMetadataEncoder) {
return backupMetadataEncoder;
}
@Provides
BackupPayloadEncoder backupPayloadEncoder(
BackupPayloadEncoderImpl backupPayloadEncoder) {
return backupPayloadEncoder;
}
@Provides
MessageEncoder messageEncoder(MessageEncoderImpl messageEncoder) {
return messageEncoder;
}
@Provides
MessageParser messageParser(MessageParserImpl messageParser) {
return messageParser;
}
@Provides
DarkCrystal darkCrystal(DarkCrystalImpl darkCrystal) {
return darkCrystal;
}
}

View File

@@ -10,6 +10,7 @@ import org.briarproject.briar.messaging.MessagingModule;
import org.briarproject.briar.privategroup.PrivateGroupModule; import org.briarproject.briar.privategroup.PrivateGroupModule;
import org.briarproject.briar.privategroup.invitation.GroupInvitationModule; import org.briarproject.briar.privategroup.invitation.GroupInvitationModule;
import org.briarproject.briar.sharing.SharingModule; import org.briarproject.briar.sharing.SharingModule;
import org.briarproject.briar.socialbackup.SocialBackupModule;
//import org.briarproject.briar.socialbackup.DefaultSocialBackupModule; //import org.briarproject.briar.socialbackup.DefaultSocialBackupModule;
public interface BriarCoreEagerSingletons { public interface BriarCoreEagerSingletons {
@@ -34,7 +35,7 @@ public interface BriarCoreEagerSingletons {
void inject(SharingModule.EagerSingletons init); void inject(SharingModule.EagerSingletons init);
// void inject(DefaultSocialBackupModule.EagerSingletons init); void inject(SocialBackupModule.EagerSingletons init);
class Helper { class Helper {
@@ -49,7 +50,7 @@ public interface BriarCoreEagerSingletons {
c.inject(new SharingModule.EagerSingletons()); c.inject(new SharingModule.EagerSingletons());
c.inject(new IdentityModule.EagerSingletons()); c.inject(new IdentityModule.EagerSingletons());
c.inject(new IntroductionModule.EagerSingletons()); c.inject(new IntroductionModule.EagerSingletons());
// c.inject(new DefaultSocialBackupModule.EagerSingletons()); c.inject(new SocialBackupModule.EagerSingletons());
} }
} }
} }

View File

@@ -13,7 +13,7 @@ import org.briarproject.briar.messaging.MessagingModule;
import org.briarproject.briar.privategroup.PrivateGroupModule; import org.briarproject.briar.privategroup.PrivateGroupModule;
import org.briarproject.briar.privategroup.invitation.GroupInvitationModule; import org.briarproject.briar.privategroup.invitation.GroupInvitationModule;
import org.briarproject.briar.sharing.SharingModule; import org.briarproject.briar.sharing.SharingModule;
import org.briarproject.briar.socialbackup.DefaultSocialBackupModule; import org.briarproject.briar.socialbackup.SocialBackupModule;
import org.briarproject.briar.test.TestModule; import org.briarproject.briar.test.TestModule;
import dagger.Module; import dagger.Module;
@@ -32,6 +32,7 @@ import dagger.Module;
MessagingModule.class, MessagingModule.class,
PrivateGroupModule.class, PrivateGroupModule.class,
SharingModule.class, SharingModule.class,
SocialBackupModule.class,
TestModule.class TestModule.class
}) })
public class BriarCoreModule { public class BriarCoreModule {

View File

@@ -0,0 +1,15 @@
package org.briarproject.briar.socialbackup;
import org.briarproject.briar.api.socialbackup.DarkCrystal;
import dagger.Module;
import dagger.Provides;
@Module
public class DefaultDarkCrystalModule {
@Provides
DarkCrystal darkCrystal(DarkCrystalStub darkCrystal) {
return darkCrystal;
}
}

View File

@@ -8,7 +8,6 @@ import org.briarproject.bramble.api.sync.validation.ValidationManager;
import org.briarproject.bramble.api.system.Clock; import org.briarproject.bramble.api.system.Clock;
import org.briarproject.bramble.api.versioning.ClientVersioningManager; 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.socialbackup.DarkCrystal;
import org.briarproject.briar.api.socialbackup.SocialBackupManager; import org.briarproject.briar.api.socialbackup.SocialBackupManager;
import javax.inject.Inject; import javax.inject.Inject;
@@ -22,7 +21,7 @@ import static org.briarproject.briar.api.socialbackup.SocialBackupManager.MAJOR_
import static org.briarproject.briar.api.socialbackup.SocialBackupManager.MINOR_VERSION; import static org.briarproject.briar.api.socialbackup.SocialBackupManager.MINOR_VERSION;
@Module @Module
public class DefaultSocialBackupModule { public class SocialBackupModule {
public static class EagerSingletons { public static class EagerSingletons {
@Inject @Inject
@@ -91,9 +90,4 @@ public class DefaultSocialBackupModule {
MessageParser messageParser(MessageParserImpl messageParser) { MessageParser messageParser(MessageParserImpl messageParser) {
return messageParser; return messageParser;
} }
@Provides
DarkCrystal darkCrystal(DarkCrystalStub darkCrystal) {
return darkCrystal;
}
} }

View File

@@ -3,7 +3,7 @@ package org.briarproject.briar.introduction;
import org.briarproject.bramble.BrambleCoreModule; import org.briarproject.bramble.BrambleCoreModule;
import org.briarproject.bramble.test.BrambleCoreIntegrationTestModule; import org.briarproject.bramble.test.BrambleCoreIntegrationTestModule;
import org.briarproject.briar.BriarCoreModule; import org.briarproject.briar.BriarCoreModule;
import org.briarproject.briar.socialbackup.DefaultSocialBackupModule; import org.briarproject.briar.socialbackup.DefaultDarkCrystalModule;
import org.briarproject.briar.test.BriarIntegrationTestComponent; import org.briarproject.briar.test.BriarIntegrationTestComponent;
import javax.inject.Singleton; import javax.inject.Singleton;
@@ -15,7 +15,7 @@ import dagger.Component;
BrambleCoreIntegrationTestModule.class, BrambleCoreIntegrationTestModule.class,
BrambleCoreModule.class, BrambleCoreModule.class,
BriarCoreModule.class, BriarCoreModule.class,
DefaultSocialBackupModule.class DefaultDarkCrystalModule.class
}) })
interface IntroductionIntegrationTestComponent interface IntroductionIntegrationTestComponent
extends BriarIntegrationTestComponent { extends BriarIntegrationTestComponent {

View File

@@ -37,7 +37,8 @@ import org.briarproject.briar.messaging.MessagingModule;
import org.briarproject.briar.privategroup.PrivateGroupModule; import org.briarproject.briar.privategroup.PrivateGroupModule;
import org.briarproject.briar.privategroup.invitation.GroupInvitationModule; import org.briarproject.briar.privategroup.invitation.GroupInvitationModule;
import org.briarproject.briar.sharing.SharingModule; import org.briarproject.briar.sharing.SharingModule;
import org.briarproject.briar.socialbackup.DefaultSocialBackupModule; import org.briarproject.briar.socialbackup.DefaultDarkCrystalModule;
import org.briarproject.briar.socialbackup.SocialBackupModule;
import javax.inject.Singleton; import javax.inject.Singleton;
@@ -48,7 +49,7 @@ import dagger.Component;
BrambleCoreIntegrationTestModule.class, BrambleCoreIntegrationTestModule.class,
BrambleCoreModule.class, BrambleCoreModule.class,
BriarCoreModule.class, BriarCoreModule.class,
DefaultSocialBackupModule.class DefaultDarkCrystalModule.class
}) })
public interface BriarIntegrationTestComponent public interface BriarIntegrationTestComponent
extends BrambleCoreIntegrationTestEagerSingletons { extends BrambleCoreIntegrationTestEagerSingletons {
@@ -73,7 +74,7 @@ public interface BriarIntegrationTestComponent
void inject(SharingModule.EagerSingletons init); void inject(SharingModule.EagerSingletons init);
void inject(DefaultSocialBackupModule.EagerSingletons init); void inject(SocialBackupModule.EagerSingletons init);
LifecycleManager getLifecycleManager(); LifecycleManager getLifecycleManager();
@@ -138,7 +139,7 @@ public interface BriarIntegrationTestComponent
c.inject(new MessagingModule.EagerSingletons()); c.inject(new MessagingModule.EagerSingletons());
c.inject(new PrivateGroupModule.EagerSingletons()); c.inject(new PrivateGroupModule.EagerSingletons());
c.inject(new SharingModule.EagerSingletons()); c.inject(new SharingModule.EagerSingletons());
c.inject(new DefaultSocialBackupModule.EagerSingletons()); c.inject(new SocialBackupModule.EagerSingletons());
} }
} }
} }

View File

@@ -28,6 +28,7 @@ import org.briarproject.briar.headless.contact.HeadlessContactModule
import org.briarproject.briar.headless.event.HeadlessEventModule import org.briarproject.briar.headless.event.HeadlessEventModule
import org.briarproject.briar.headless.forums.HeadlessForumModule import org.briarproject.briar.headless.forums.HeadlessForumModule
import org.briarproject.briar.headless.messaging.HeadlessMessagingModule import org.briarproject.briar.headless.messaging.HeadlessMessagingModule
import org.briarproject.briar.socialbackup.DefaultDarkCrystalModule
import java.io.File import java.io.File
import java.util.Collections.emptyList import java.util.Collections.emptyList
import javax.inject.Singleton import javax.inject.Singleton
@@ -37,6 +38,7 @@ import javax.inject.Singleton
AccountModule::class, AccountModule::class,
CircumventionModule::class, CircumventionModule::class,
DefaultBatteryManagerModule::class, DefaultBatteryManagerModule::class,
DefaultDarkCrystalModule::class, // FIXME: Real implementation needed
DefaultEventExecutorModule::class, DefaultEventExecutorModule::class,
DefaultTaskSchedulerModule::class, DefaultTaskSchedulerModule::class,
DefaultWakefulIoExecutorModule::class, DefaultWakefulIoExecutorModule::class,

View File

@@ -24,6 +24,7 @@ import org.briarproject.briar.headless.contact.HeadlessContactModule
import org.briarproject.briar.headless.event.HeadlessEventModule import org.briarproject.briar.headless.event.HeadlessEventModule
import org.briarproject.briar.headless.forums.HeadlessForumModule import org.briarproject.briar.headless.forums.HeadlessForumModule
import org.briarproject.briar.headless.messaging.HeadlessMessagingModule import org.briarproject.briar.headless.messaging.HeadlessMessagingModule
import org.briarproject.briar.socialbackup.DefaultDarkCrystalModule
import java.io.File import java.io.File
import java.util.Collections.emptyList import java.util.Collections.emptyList
import javax.inject.Singleton import javax.inject.Singleton
@@ -34,6 +35,7 @@ import javax.inject.Singleton
JavaSystemModule::class, JavaSystemModule::class,
AccountModule::class, AccountModule::class,
CircumventionModule::class, CircumventionModule::class,
DefaultDarkCrystalModule::class,
DefaultEventExecutorModule::class, DefaultEventExecutorModule::class,
DefaultTaskSchedulerModule::class, DefaultTaskSchedulerModule::class,
DefaultWakefulIoExecutorModule::class, DefaultWakefulIoExecutorModule::class,