Inject social backup eager singletons when Briar core is created.

This commit is contained in:
akwizgran
2021-03-22 15:17:00 +00:00
parent b1f5d71a4e
commit 45d2e2ce06
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.ScreenFilterMonitor;
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.security.GeneralSecurityException;
@@ -83,7 +83,7 @@ import static org.briarproject.briar.android.TestingConstants.IS_DEBUG_BUILD;
SettingsModule.class,
DevReportModule.class,
ContactListModule.class,
AndroidSocialBackupModule.class,
AndroidDarkCrystalModule.class,
// below need to be within same scope as ViewModelProvider.Factory
ForumModule.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.invitation.GroupInvitationModule;
import org.briarproject.briar.sharing.SharingModule;
import org.briarproject.briar.socialbackup.SocialBackupModule;
//import org.briarproject.briar.socialbackup.DefaultSocialBackupModule;
public interface BriarCoreEagerSingletons {
@@ -34,7 +35,7 @@ public interface BriarCoreEagerSingletons {
void inject(SharingModule.EagerSingletons init);
// void inject(DefaultSocialBackupModule.EagerSingletons init);
void inject(SocialBackupModule.EagerSingletons init);
class Helper {
@@ -49,7 +50,7 @@ public interface BriarCoreEagerSingletons {
c.inject(new SharingModule.EagerSingletons());
c.inject(new IdentityModule.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.invitation.GroupInvitationModule;
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 dagger.Module;
@@ -32,6 +32,7 @@ import dagger.Module;
MessagingModule.class,
PrivateGroupModule.class,
SharingModule.class,
SocialBackupModule.class,
TestModule.class
})
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.versioning.ClientVersioningManager;
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;
@@ -22,7 +21,7 @@ import static org.briarproject.briar.api.socialbackup.SocialBackupManager.MAJOR_
import static org.briarproject.briar.api.socialbackup.SocialBackupManager.MINOR_VERSION;
@Module
public class DefaultSocialBackupModule {
public class SocialBackupModule {
public static class EagerSingletons {
@Inject
@@ -91,9 +90,4 @@ public class DefaultSocialBackupModule {
MessageParser messageParser(MessageParserImpl 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.test.BrambleCoreIntegrationTestModule;
import org.briarproject.briar.BriarCoreModule;
import org.briarproject.briar.socialbackup.DefaultSocialBackupModule;
import org.briarproject.briar.socialbackup.DefaultDarkCrystalModule;
import org.briarproject.briar.test.BriarIntegrationTestComponent;
import javax.inject.Singleton;
@@ -15,7 +15,7 @@ import dagger.Component;
BrambleCoreIntegrationTestModule.class,
BrambleCoreModule.class,
BriarCoreModule.class,
DefaultSocialBackupModule.class
DefaultDarkCrystalModule.class
})
interface IntroductionIntegrationTestComponent
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.invitation.GroupInvitationModule;
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;
@@ -48,7 +49,7 @@ import dagger.Component;
BrambleCoreIntegrationTestModule.class,
BrambleCoreModule.class,
BriarCoreModule.class,
DefaultSocialBackupModule.class
DefaultDarkCrystalModule.class
})
public interface BriarIntegrationTestComponent
extends BrambleCoreIntegrationTestEagerSingletons {
@@ -73,7 +74,7 @@ public interface BriarIntegrationTestComponent
void inject(SharingModule.EagerSingletons init);
void inject(DefaultSocialBackupModule.EagerSingletons init);
void inject(SocialBackupModule.EagerSingletons init);
LifecycleManager getLifecycleManager();
@@ -138,7 +139,7 @@ public interface BriarIntegrationTestComponent
c.inject(new MessagingModule.EagerSingletons());
c.inject(new PrivateGroupModule.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.forums.HeadlessForumModule
import org.briarproject.briar.headless.messaging.HeadlessMessagingModule
import org.briarproject.briar.socialbackup.DefaultDarkCrystalModule
import java.io.File
import java.util.Collections.emptyList
import javax.inject.Singleton
@@ -37,6 +38,7 @@ import javax.inject.Singleton
AccountModule::class,
CircumventionModule::class,
DefaultBatteryManagerModule::class,
DefaultDarkCrystalModule::class, // FIXME: Real implementation needed
DefaultEventExecutorModule::class,
DefaultTaskSchedulerModule::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.forums.HeadlessForumModule
import org.briarproject.briar.headless.messaging.HeadlessMessagingModule
import org.briarproject.briar.socialbackup.DefaultDarkCrystalModule
import java.io.File
import java.util.Collections.emptyList
import javax.inject.Singleton
@@ -34,6 +35,7 @@ import javax.inject.Singleton
JavaSystemModule::class,
AccountModule::class,
CircumventionModule::class,
DefaultDarkCrystalModule::class,
DefaultEventExecutorModule::class,
DefaultTaskSchedulerModule::class,
DefaultWakefulIoExecutorModule::class,