add AndroidSocialBackupModule

This commit is contained in:
ameba23
2021-03-11 11:10:38 +01:00
parent a9edf43df2
commit 6c3df2a3d4
2 changed files with 97 additions and 1 deletions

View File

@@ -40,7 +40,6 @@ public class DistributedBackupActivity extends BriarActivity implements
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_distributed_backup);
// TODO here we should check if we already have a backup
try {
db.transaction(false, txn -> {

View File

@@ -0,0 +1,97 @@
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.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) {
lifecycleManager.registerOpenDatabaseHook(socialBackupManager);
contactManager.registerContactHook(socialBackupManager);
validationManager.registerIncomingMessageHook(CLIENT_ID,
MAJOR_VERSION, socialBackupManager);
clientVersioningManager.registerClient(CLIENT_ID, MAJOR_VERSION,
MINOR_VERSION, 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;
}
}