diff --git a/briar-android/src/main/java/org/briarproject/briar/android/AndroidComponent.java b/briar-android/src/main/java/org/briarproject/briar/android/AndroidComponent.java index d2ee9dc7f..52bc9074b 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/AndroidComponent.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/AndroidComponent.java @@ -49,6 +49,7 @@ import org.briarproject.briar.api.forum.ForumManager; import org.briarproject.briar.api.forum.ForumSharingManager; import org.briarproject.briar.api.identity.AuthorManager; import org.briarproject.briar.api.introduction.IntroductionManager; +import org.briarproject.briar.api.media.AttachmentReader; import org.briarproject.briar.api.messaging.MessagingManager; import org.briarproject.briar.api.messaging.PrivateMessageFactory; import org.briarproject.briar.api.privategroup.GroupMessageFactory; @@ -95,6 +96,8 @@ public interface AndroidComponent IdentityManager identityManager(); + AttachmentReader attachmentReader(); + AuthorManager authorManager(); PluginManager pluginManager(); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/attachment/AttachmentCreationTask.java b/briar-android/src/main/java/org/briarproject/briar/android/attachment/AttachmentCreationTask.java index 58e2fb1ea..77c8ae8de 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/attachment/AttachmentCreationTask.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/attachment/AttachmentCreationTask.java @@ -35,7 +35,7 @@ import static org.briarproject.bramble.util.IoUtils.tryToClose; import static org.briarproject.bramble.util.LogUtils.logDuration; import static org.briarproject.bramble.util.LogUtils.logException; import static org.briarproject.bramble.util.LogUtils.now; -import static org.briarproject.briar.api.messaging.MessagingConstants.MAX_IMAGE_SIZE; +import static org.briarproject.briar.api.media.MediaConstants.MAX_IMAGE_SIZE; @NotNullByDefault class AttachmentCreationTask { diff --git a/briar-android/src/main/java/org/briarproject/briar/android/attachment/AttachmentCreatorImpl.java b/briar-android/src/main/java/org/briarproject/briar/android/attachment/AttachmentCreatorImpl.java index 650801c77..941c5e4f6 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/attachment/AttachmentCreatorImpl.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/attachment/AttachmentCreatorImpl.java @@ -36,7 +36,7 @@ import static java.util.logging.Logger.getLogger; import static org.briarproject.bramble.util.LogUtils.logException; import static org.briarproject.briar.android.attachment.AttachmentItem.State.ERROR; import static org.briarproject.briar.android.util.UiUtils.observeForeverOnce; -import static org.briarproject.briar.api.messaging.MessagingConstants.MAX_IMAGE_SIZE; +import static org.briarproject.briar.api.media.MediaConstants.MAX_IMAGE_SIZE; @NotNullByDefault class AttachmentCreatorImpl implements AttachmentCreator { diff --git a/briar-android/src/main/java/org/briarproject/briar/android/attachment/AttachmentRetrieverImpl.java b/briar-android/src/main/java/org/briarproject/briar/android/attachment/AttachmentRetrieverImpl.java index 8ac9666f6..7141abf6b 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/attachment/AttachmentRetrieverImpl.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/attachment/AttachmentRetrieverImpl.java @@ -8,7 +8,7 @@ import org.briarproject.bramble.api.sync.MessageId; import org.briarproject.briar.android.attachment.AttachmentItem.State; import org.briarproject.briar.api.media.Attachment; import org.briarproject.briar.api.media.AttachmentHeader; -import org.briarproject.briar.api.messaging.MessagingManager; +import org.briarproject.briar.api.media.AttachmentReader; import org.briarproject.briar.api.messaging.PrivateMessageHeader; import java.io.BufferedInputStream; @@ -43,7 +43,7 @@ class AttachmentRetrieverImpl implements AttachmentRetriever { @DatabaseExecutor private final Executor dbExecutor; - private final MessagingManager messagingManager; + private final AttachmentReader attachmentReader; private final ImageHelper imageHelper; private final ImageSizeCalculator imageSizeCalculator; private final int defaultSize; @@ -57,11 +57,10 @@ class AttachmentRetrieverImpl implements AttachmentRetriever { @Inject AttachmentRetrieverImpl(@DatabaseExecutor Executor dbExecutor, - MessagingManager messagingManager, - AttachmentDimensions dimensions, ImageHelper imageHelper, - ImageSizeCalculator imageSizeCalculator) { + AttachmentReader attachmentReader, AttachmentDimensions dimensions, + ImageHelper imageHelper, ImageSizeCalculator imageSizeCalculator) { this.dbExecutor = dbExecutor; - this.messagingManager = messagingManager; + this.attachmentReader = attachmentReader; this.imageHelper = imageHelper; this.imageSizeCalculator = imageSizeCalculator; defaultSize = dimensions.defaultSize; @@ -75,7 +74,7 @@ class AttachmentRetrieverImpl implements AttachmentRetriever { @DatabaseExecutor public Attachment getMessageAttachment(AttachmentHeader h) throws DbException { - return messagingManager.getAttachment(h); + return attachmentReader.getAttachment(h); } @Override @@ -86,13 +85,11 @@ class AttachmentRetrieverImpl implements AttachmentRetriever { boolean needsSize = headers.size() == 1; for (AttachmentHeader h : headers) { // try cache for existing item live data - MutableLiveData liveData; - if (needsSize) liveData = itemsWithSize.get(h.getMessageId()); - else { - // try items with size first, as they work as well - liveData = itemsWithSize.get(h.getMessageId()); - if (liveData == null) - liveData = itemsWithoutSize.get(h.getMessageId()); + MutableLiveData liveData = + itemsWithSize.get(h.getMessageId()); + if (!needsSize && liveData == null) { + // check cache for items that don't need the size + liveData = itemsWithoutSize.get(h.getMessageId()); } // create new live data with LOADING item if cache miss @@ -131,7 +128,7 @@ class AttachmentRetrieverImpl implements AttachmentRetriever { // If a live data is already cached we don't need to do anything if (itemsWithSize.containsKey(h.getMessageId())) return; try { - Attachment a = messagingManager.getAttachment(h); + Attachment a = attachmentReader.getAttachment(h); AttachmentItem item = createAttachmentItem(a, true); MutableLiveData liveData = new MutableLiveData<>(item); @@ -173,7 +170,7 @@ class AttachmentRetrieverImpl implements AttachmentRetriever { Attachment a; AttachmentItem item; try { - a = messagingManager.getAttachment(h); + a = attachmentReader.getAttachment(h); item = createAttachmentItem(a, needsSize); } catch (NoSuchMessageException e) { LOG.info("Attachment not received yet"); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/conversation/ImageViewModel.java b/briar-android/src/main/java/org/briarproject/briar/android/conversation/ImageViewModel.java index 3f3feba1a..cdb4f668c 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/conversation/ImageViewModel.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/conversation/ImageViewModel.java @@ -21,7 +21,7 @@ import org.briarproject.briar.android.viewmodel.DbViewModel; import org.briarproject.briar.android.viewmodel.LiveEvent; import org.briarproject.briar.android.viewmodel.MutableLiveEvent; import org.briarproject.briar.api.media.Attachment; -import org.briarproject.briar.api.messaging.MessagingManager; +import org.briarproject.briar.api.media.AttachmentReader; import org.briarproject.briar.api.messaging.event.AttachmentReceivedEvent; import java.io.File; @@ -56,7 +56,7 @@ public class ImageViewModel extends DbViewModel implements EventListener { private static final Logger LOG = getLogger(ImageViewModel.class.getName()); - private final MessagingManager messagingManager; + private final AttachmentReader attachmentReader; private final EventBus eventBus; @IoExecutor private final Executor ioExecutor; @@ -75,16 +75,13 @@ public class ImageViewModel extends DbViewModel implements EventListener { private int toolbarTop, toolbarBottom; @Inject - ImageViewModel(Application application, - MessagingManager messagingManager, - EventBus eventBus, - @DatabaseExecutor Executor dbExecutor, - LifecycleManager lifecycleManager, + ImageViewModel(Application application, AttachmentReader attachmentReader, + EventBus eventBus, @DatabaseExecutor Executor dbExecutor,LifecycleManager lifecycleManager, TransactionManager db, AndroidExecutor androidExecutor, @IoExecutor Executor ioExecutor) { super(application, dbExecutor, lifecycleManager, db, androidExecutor); - this.messagingManager = messagingManager; + this.attachmentReader = attachmentReader; this.eventBus = eventBus; this.ioExecutor = ioExecutor; @@ -202,7 +199,7 @@ public class ImageViewModel extends DbViewModel implements EventListener { runOnDbThread(() -> { try { Attachment a = - messagingManager.getAttachment(attachment.getHeader()); + attachmentReader.getAttachment(attachment.getHeader()); copyImageFromDb(a, osp, afterCopy); } catch (DbException e) { logException(LOG, WARNING, e); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/conversation/glide/BriarDataFetcher.java b/briar-android/src/main/java/org/briarproject/briar/android/conversation/glide/BriarDataFetcher.java index 758dd5ff3..e3cbf4104 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/conversation/glide/BriarDataFetcher.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/conversation/glide/BriarDataFetcher.java @@ -4,13 +4,12 @@ import com.bumptech.glide.Priority; import com.bumptech.glide.load.DataSource; import com.bumptech.glide.load.data.DataFetcher; -import org.briarproject.bramble.api.client.ClientHelper; import org.briarproject.bramble.api.db.DatabaseExecutor; import org.briarproject.bramble.api.db.DbException; import org.briarproject.bramble.api.nullsafety.NotNullByDefault; import org.briarproject.briar.android.attachment.AttachmentItem; import org.briarproject.briar.api.media.Attachment; -import org.briarproject.briar.media.AttachmentReader; +import org.briarproject.briar.api.media.AttachmentReader; import java.io.InputStream; import java.util.concurrent.Executor; @@ -31,7 +30,7 @@ class BriarDataFetcher implements DataFetcher { private final static Logger LOG = getLogger(BriarDataFetcher.class.getName()); - private final ClientHelper clientHelper; + private final AttachmentReader attachmentReader; @DatabaseExecutor private final Executor dbExecutor; private final AttachmentItem attachment; @@ -41,9 +40,9 @@ class BriarDataFetcher implements DataFetcher { private volatile boolean cancel = false; @Inject - BriarDataFetcher(ClientHelper clientHelper, + BriarDataFetcher(AttachmentReader attachmentReader, @DatabaseExecutor Executor dbExecutor, AttachmentItem attachment) { - this.clientHelper = clientHelper; + this.attachmentReader = attachmentReader; this.dbExecutor = dbExecutor; this.attachment = attachment; } @@ -54,8 +53,8 @@ class BriarDataFetcher implements DataFetcher { dbExecutor.execute(() -> { if (cancel) return; try { - Attachment a = AttachmentReader - .getAttachment(clientHelper, attachment.getHeader()); + Attachment a = + attachmentReader.getAttachment(attachment.getHeader()); inputStream = a.getStream(); callback.onDataReady(inputStream); } catch (DbException e) { diff --git a/briar-android/src/main/java/org/briarproject/briar/android/conversation/glide/BriarDataFetcherFactory.java b/briar-android/src/main/java/org/briarproject/briar/android/conversation/glide/BriarDataFetcherFactory.java index 08d528cfd..674f51e38 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/conversation/glide/BriarDataFetcherFactory.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/conversation/glide/BriarDataFetcherFactory.java @@ -1,9 +1,9 @@ package org.briarproject.briar.android.conversation.glide; -import org.briarproject.bramble.api.client.ClientHelper; import org.briarproject.bramble.api.db.DatabaseExecutor; import org.briarproject.bramble.api.nullsafety.NotNullByDefault; import org.briarproject.briar.android.attachment.AttachmentItem; +import org.briarproject.briar.api.media.AttachmentReader; import java.util.concurrent.Executor; @@ -12,19 +12,19 @@ import javax.inject.Inject; @NotNullByDefault public class BriarDataFetcherFactory { - private final ClientHelper clientHelper; + private final AttachmentReader attachmentReader; @DatabaseExecutor private final Executor dbExecutor; @Inject - public BriarDataFetcherFactory(ClientHelper clientHelper, + public BriarDataFetcherFactory(AttachmentReader attachmentReader, @DatabaseExecutor Executor dbExecutor) { - this.clientHelper = clientHelper; + this.attachmentReader = attachmentReader; this.dbExecutor = dbExecutor; } BriarDataFetcher createBriarDataFetcher(AttachmentItem model) { - return new BriarDataFetcher(clientHelper, dbExecutor, model); + return new BriarDataFetcher(attachmentReader, dbExecutor, model); } } diff --git a/briar-android/src/test/java/org/briarproject/briar/android/attachment/AttachmentRetrieverTest.java b/briar-android/src/test/java/org/briarproject/briar/android/attachment/AttachmentRetrieverTest.java index 7894acc67..950661b62 100644 --- a/briar-android/src/test/java/org/briarproject/briar/android/attachment/AttachmentRetrieverTest.java +++ b/briar-android/src/test/java/org/briarproject/briar/android/attachment/AttachmentRetrieverTest.java @@ -5,7 +5,7 @@ import org.briarproject.bramble.test.BrambleMockTestCase; import org.briarproject.bramble.test.ImmediateExecutor; import org.briarproject.briar.api.media.Attachment; import org.briarproject.briar.api.media.AttachmentHeader; -import org.briarproject.briar.api.messaging.MessagingManager; +import org.briarproject.briar.api.media.AttachmentReader; import org.jmock.Expectations; import org.jmock.lib.legacy.ClassImposteriser; import org.junit.Test; @@ -32,11 +32,11 @@ public class AttachmentRetrieverTest extends BrambleMockTestCase { public AttachmentRetrieverTest() { context.setImposteriser(ClassImposteriser.INSTANCE); - MessagingManager messagingManager = - context.mock(MessagingManager.class); + AttachmentReader attachmentReader = + context.mock(AttachmentReader.class); imageSizeCalculator = context.mock(ImageSizeCalculator.class); Executor dbExecutor = new ImmediateExecutor(); - retriever = new AttachmentRetrieverImpl(dbExecutor, messagingManager, + retriever = new AttachmentRetrieverImpl(dbExecutor, attachmentReader, dimensions, imageHelper, imageSizeCalculator); } diff --git a/briar-api/src/main/java/org/briarproject/briar/api/avatar/AvatarManager.java b/briar-api/src/main/java/org/briarproject/briar/api/avatar/AvatarManager.java index 5e839a533..c7fdf1e95 100644 --- a/briar-api/src/main/java/org/briarproject/briar/api/avatar/AvatarManager.java +++ b/briar-api/src/main/java/org/briarproject/briar/api/avatar/AvatarManager.java @@ -5,7 +5,6 @@ import org.briarproject.bramble.api.db.DbException; import org.briarproject.bramble.api.db.Transaction; import org.briarproject.bramble.api.nullsafety.NotNullByDefault; import org.briarproject.bramble.api.sync.ClientId; -import org.briarproject.briar.api.media.Attachment; import org.briarproject.briar.api.media.AttachmentHeader; import java.io.IOException; @@ -51,9 +50,4 @@ public interface AvatarManager { */ @Nullable AttachmentHeader getMyAvatarHeader(Transaction txn) throws DbException; - - /** - * Returns the profile image attachment for the given header. - */ - Attachment getAvatar(AttachmentHeader h) throws DbException; } diff --git a/briar-api/src/main/java/org/briarproject/briar/api/media/AttachmentReader.java b/briar-api/src/main/java/org/briarproject/briar/api/media/AttachmentReader.java new file mode 100644 index 000000000..a62c9da76 --- /dev/null +++ b/briar-api/src/main/java/org/briarproject/briar/api/media/AttachmentReader.java @@ -0,0 +1,16 @@ +package org.briarproject.briar.api.media; + +import org.briarproject.bramble.api.db.DbException; + +public interface AttachmentReader { + + /** + * Returns the attachment with the given attachment header. + * + * @throws InvalidAttachmentException If the header refers to a message + * that is not an attachment, or to an attachment that does not have the + * expected content type + */ + Attachment getAttachment(AttachmentHeader h) throws DbException; + +} diff --git a/briar-api/src/main/java/org/briarproject/briar/api/media/InvalidAttachmentException.java b/briar-api/src/main/java/org/briarproject/briar/api/media/InvalidAttachmentException.java index 8c8dea650..a1ec4a407 100644 --- a/briar-api/src/main/java/org/briarproject/briar/api/media/InvalidAttachmentException.java +++ b/briar-api/src/main/java/org/briarproject/briar/api/media/InvalidAttachmentException.java @@ -11,4 +11,11 @@ import org.briarproject.bramble.api.nullsafety.NotNullByDefault; */ @NotNullByDefault public class InvalidAttachmentException extends DbException { + public InvalidAttachmentException() { + super(); + } + + public InvalidAttachmentException(Throwable t) { + super(t); + } } diff --git a/briar-api/src/main/java/org/briarproject/briar/api/media/MediaConstants.java b/briar-api/src/main/java/org/briarproject/briar/api/media/MediaConstants.java new file mode 100644 index 000000000..763f0fab7 --- /dev/null +++ b/briar-api/src/main/java/org/briarproject/briar/api/media/MediaConstants.java @@ -0,0 +1,21 @@ +package org.briarproject.briar.api.media; + +import static org.briarproject.bramble.api.sync.SyncConstants.MAX_MESSAGE_BODY_LENGTH; + +public interface MediaConstants { + + // Metadata keys for messages + String MSG_KEY_CONTENT_TYPE = "contentType"; + String MSG_KEY_DESCRIPTOR_LENGTH = "descriptorLength"; + + /** + * The maximum length of an attachment's content type in UTF-8 bytes. + */ + int MAX_CONTENT_TYPE_BYTES = 50; + + /** + * The maximum allowed size of image attachments. + * TODO: Different limit for GIFs? + */ + int MAX_IMAGE_SIZE = MAX_MESSAGE_BODY_LENGTH - 100; // 6 * 1024 * 1024; +} diff --git a/briar-api/src/main/java/org/briarproject/briar/api/messaging/MessagingConstants.java b/briar-api/src/main/java/org/briarproject/briar/api/messaging/MessagingConstants.java index f957a404a..4a87775e0 100644 --- a/briar-api/src/main/java/org/briarproject/briar/api/messaging/MessagingConstants.java +++ b/briar-api/src/main/java/org/briarproject/briar/api/messaging/MessagingConstants.java @@ -14,15 +14,4 @@ public interface MessagingConstants { */ int MAX_ATTACHMENTS_PER_MESSAGE = 10; - /** - * The maximum length of an attachment's content type in UTF-8 bytes. - */ - int MAX_CONTENT_TYPE_BYTES = 50; - - /** - * The maximum allowed size of image attachments. - * TODO: Different limit for GIFs? - */ - int MAX_IMAGE_SIZE = MAX_MESSAGE_BODY_LENGTH - 100; // 6 * 1024 * 1024; - } diff --git a/briar-api/src/main/java/org/briarproject/briar/api/messaging/MessagingManager.java b/briar-api/src/main/java/org/briarproject/briar/api/messaging/MessagingManager.java index 1e255874d..fd3b7f77b 100644 --- a/briar-api/src/main/java/org/briarproject/briar/api/messaging/MessagingManager.java +++ b/briar-api/src/main/java/org/briarproject/briar/api/messaging/MessagingManager.java @@ -8,10 +8,8 @@ import org.briarproject.bramble.api.sync.ClientId; import org.briarproject.bramble.api.sync.GroupId; import org.briarproject.bramble.api.sync.MessageId; import org.briarproject.briar.api.conversation.ConversationManager.ConversationClient; -import org.briarproject.briar.api.media.Attachment; import org.briarproject.briar.api.media.AttachmentHeader; import org.briarproject.briar.api.media.FileTooBigException; -import org.briarproject.briar.api.media.InvalidAttachmentException; import java.io.IOException; import java.io.InputStream; @@ -71,15 +69,6 @@ public interface MessagingManager extends ConversationClient { @Nullable String getMessageText(MessageId m) throws DbException; - /** - * Returns the attachment with the given attachment header. - * - * @throws InvalidAttachmentException If the header refers to a message - * that is not an attachment, or to an attachment that does not have the - * expected content type - */ - Attachment getAttachment(AttachmentHeader h) throws DbException; - /** * Returns true if the contact with the given {@link ContactId} does support * image attachments. diff --git a/briar-api/src/test/java/org/briarproject/briar/api/identity/AuthorInfoTest.java b/briar-api/src/test/java/org/briarproject/briar/api/identity/AuthorInfoTest.java index 001d2701a..bb2503c07 100644 --- a/briar-api/src/test/java/org/briarproject/briar/api/identity/AuthorInfoTest.java +++ b/briar-api/src/test/java/org/briarproject/briar/api/identity/AuthorInfoTest.java @@ -9,7 +9,7 @@ import static org.briarproject.bramble.test.TestUtils.getRandomId; import static org.briarproject.bramble.util.StringUtils.getRandomString; import static org.briarproject.briar.api.identity.AuthorInfo.Status.NONE; import static org.briarproject.briar.api.identity.AuthorInfo.Status.VERIFIED; -import static org.briarproject.briar.api.messaging.MessagingConstants.MAX_CONTENT_TYPE_BYTES; +import static org.briarproject.briar.api.media.MediaConstants.MAX_CONTENT_TYPE_BYTES; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; diff --git a/briar-core/src/main/java/org/briarproject/briar/BriarCoreModule.java b/briar-core/src/main/java/org/briarproject/briar/BriarCoreModule.java index 06feeaa05..805499490 100644 --- a/briar-core/src/main/java/org/briarproject/briar/BriarCoreModule.java +++ b/briar-core/src/main/java/org/briarproject/briar/BriarCoreModule.java @@ -8,6 +8,7 @@ import org.briarproject.briar.feed.FeedModule; import org.briarproject.briar.forum.ForumModule; import org.briarproject.briar.identity.IdentityModule; import org.briarproject.briar.introduction.IntroductionModule; +import org.briarproject.briar.media.MediaModule; import org.briarproject.briar.messaging.MessagingModule; import org.briarproject.briar.privategroup.PrivateGroupModule; import org.briarproject.briar.privategroup.invitation.GroupInvitationModule; @@ -26,6 +27,7 @@ import dagger.Module; GroupInvitationModule.class, IdentityModule.class, IntroductionModule.class, + MediaModule.class, MessagingModule.class, PrivateGroupModule.class, SharingModule.class, diff --git a/briar-core/src/main/java/org/briarproject/briar/avatar/AvatarManagerImpl.java b/briar-core/src/main/java/org/briarproject/briar/avatar/AvatarManagerImpl.java index 0be3cae45..752a93ccf 100644 --- a/briar-core/src/main/java/org/briarproject/briar/avatar/AvatarManagerImpl.java +++ b/briar-core/src/main/java/org/briarproject/briar/avatar/AvatarManagerImpl.java @@ -30,10 +30,8 @@ import org.briarproject.bramble.api.versioning.ClientVersioningManager; import org.briarproject.bramble.api.versioning.ClientVersioningManager.ClientVersioningHook; import org.briarproject.briar.api.avatar.AvatarManager; import org.briarproject.briar.api.avatar.event.AvatarUpdatedEvent; -import org.briarproject.briar.api.media.Attachment; import org.briarproject.briar.api.media.AttachmentHeader; import org.briarproject.briar.api.media.FileTooBigException; -import org.briarproject.briar.media.AttachmentReader; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -49,8 +47,8 @@ import static org.briarproject.bramble.util.IoUtils.copyAndClose; import static org.briarproject.briar.avatar.AvatarConstants.GROUP_KEY_CONTACT_ID; import static org.briarproject.briar.avatar.AvatarConstants.MSG_KEY_VERSION; import static org.briarproject.briar.avatar.AvatarConstants.MSG_TYPE_UPDATE; -import static org.briarproject.briar.media.MediaConstants.MSG_KEY_CONTENT_TYPE; -import static org.briarproject.briar.media.MediaConstants.MSG_KEY_DESCRIPTOR_LENGTH; +import static org.briarproject.briar.api.media.MediaConstants.MSG_KEY_CONTENT_TYPE; +import static org.briarproject.briar.api.media.MediaConstants.MSG_KEY_DESCRIPTOR_LENGTH; @Immutable @NotNullByDefault @@ -249,11 +247,6 @@ class AvatarManagerImpl implements AvatarManager, OpenDatabaseHook, ContactHook, return new AttachmentHeader(latest.messageId, latest.contentType); } - @Override - public Attachment getAvatar(AttachmentHeader h) throws DbException { - return AttachmentReader.getAttachment(clientHelper, h); - } - @Nullable private LatestUpdate findLatest(Transaction txn, GroupId g) throws DbException, FormatException { diff --git a/briar-core/src/main/java/org/briarproject/briar/avatar/AvatarValidator.java b/briar-core/src/main/java/org/briarproject/briar/avatar/AvatarValidator.java index ac2e91ca1..1cd8d1f0c 100644 --- a/briar-core/src/main/java/org/briarproject/briar/avatar/AvatarValidator.java +++ b/briar-core/src/main/java/org/briarproject/briar/avatar/AvatarValidator.java @@ -26,11 +26,11 @@ import static org.briarproject.bramble.api.sync.SyncConstants.MAX_MESSAGE_BODY_L import static org.briarproject.bramble.api.transport.TransportConstants.MAX_CLOCK_DIFFERENCE; import static org.briarproject.bramble.util.ValidationUtils.checkLength; import static org.briarproject.bramble.util.ValidationUtils.checkSize; -import static org.briarproject.briar.api.messaging.MessagingConstants.MAX_CONTENT_TYPE_BYTES; +import static org.briarproject.briar.api.media.MediaConstants.MAX_CONTENT_TYPE_BYTES; import static org.briarproject.briar.avatar.AvatarConstants.MSG_KEY_VERSION; import static org.briarproject.briar.avatar.AvatarConstants.MSG_TYPE_UPDATE; -import static org.briarproject.briar.media.MediaConstants.MSG_KEY_CONTENT_TYPE; -import static org.briarproject.briar.media.MediaConstants.MSG_KEY_DESCRIPTOR_LENGTH; +import static org.briarproject.briar.api.media.MediaConstants.MSG_KEY_CONTENT_TYPE; +import static org.briarproject.briar.api.media.MediaConstants.MSG_KEY_DESCRIPTOR_LENGTH; @Immutable @NotNullByDefault diff --git a/briar-core/src/main/java/org/briarproject/briar/media/AttachmentReader.java b/briar-core/src/main/java/org/briarproject/briar/media/AttachmentReaderImpl.java similarity index 61% rename from briar-core/src/main/java/org/briarproject/briar/media/AttachmentReader.java rename to briar-core/src/main/java/org/briarproject/briar/media/AttachmentReaderImpl.java index 9186ad80a..6ab12e723 100644 --- a/briar-core/src/main/java/org/briarproject/briar/media/AttachmentReader.java +++ b/briar-core/src/main/java/org/briarproject/briar/media/AttachmentReaderImpl.java @@ -7,18 +7,28 @@ import org.briarproject.bramble.api.db.DbException; import org.briarproject.bramble.api.sync.MessageId; import org.briarproject.briar.api.media.Attachment; import org.briarproject.briar.api.media.AttachmentHeader; +import org.briarproject.briar.api.media.AttachmentReader; import org.briarproject.briar.api.media.InvalidAttachmentException; import java.io.ByteArrayInputStream; import java.io.InputStream; -import static org.briarproject.briar.media.MediaConstants.MSG_KEY_CONTENT_TYPE; -import static org.briarproject.briar.media.MediaConstants.MSG_KEY_DESCRIPTOR_LENGTH; +import javax.inject.Inject; -public class AttachmentReader { +import static org.briarproject.briar.api.media.MediaConstants.MSG_KEY_CONTENT_TYPE; +import static org.briarproject.briar.api.media.MediaConstants.MSG_KEY_DESCRIPTOR_LENGTH; - public static Attachment getAttachment(ClientHelper clientHelper, - AttachmentHeader h) throws DbException { +public class AttachmentReaderImpl implements AttachmentReader { + + private final ClientHelper clientHelper; + + @Inject + public AttachmentReaderImpl(ClientHelper clientHelper) { + this.clientHelper = clientHelper; + } + + @Override + public Attachment getAttachment(AttachmentHeader h) throws DbException { // TODO: Support large messages MessageId m = h.getMessageId(); byte[] body = clientHelper.getMessage(m).getBody(); @@ -27,17 +37,12 @@ public class AttachmentReader { String contentType = meta.getString(MSG_KEY_CONTENT_TYPE); if (!contentType.equals(h.getContentType())) throw new InvalidAttachmentException(); - int offset; - try { - offset = meta.getLong(MSG_KEY_DESCRIPTOR_LENGTH).intValue(); - } catch (FormatException e) { - throw new InvalidAttachmentException(); - } + int offset = meta.getLong(MSG_KEY_DESCRIPTOR_LENGTH).intValue(); InputStream stream = new ByteArrayInputStream(body, offset, body.length - offset); return new Attachment(h, stream); } catch (FormatException e) { - throw new DbException(e); + throw new InvalidAttachmentException(e); } } diff --git a/briar-core/src/main/java/org/briarproject/briar/media/MediaConstants.java b/briar-core/src/main/java/org/briarproject/briar/media/MediaConstants.java deleted file mode 100644 index 4ac03bab0..000000000 --- a/briar-core/src/main/java/org/briarproject/briar/media/MediaConstants.java +++ /dev/null @@ -1,8 +0,0 @@ -package org.briarproject.briar.media; - -public interface MediaConstants { - - // Metadata keys for messages - String MSG_KEY_CONTENT_TYPE = "contentType"; - String MSG_KEY_DESCRIPTOR_LENGTH = "descriptorLength"; -} diff --git a/briar-core/src/main/java/org/briarproject/briar/media/MediaModule.java b/briar-core/src/main/java/org/briarproject/briar/media/MediaModule.java new file mode 100644 index 000000000..ca3335fe8 --- /dev/null +++ b/briar-core/src/main/java/org/briarproject/briar/media/MediaModule.java @@ -0,0 +1,20 @@ +package org.briarproject.briar.media; + +import org.briarproject.briar.api.media.AttachmentReader; + +import javax.inject.Singleton; + +import dagger.Module; +import dagger.Provides; + +@Module +public class MediaModule { + + @Provides + @Singleton + AttachmentReader provideAttachmentReader( + AttachmentReaderImpl attachmentReader) { + return attachmentReader; + } + +} diff --git a/briar-core/src/main/java/org/briarproject/briar/messaging/MessagingManagerImpl.java b/briar-core/src/main/java/org/briarproject/briar/messaging/MessagingManagerImpl.java index be853d2aa..28a8c89b7 100644 --- a/briar-core/src/main/java/org/briarproject/briar/messaging/MessagingManagerImpl.java +++ b/briar-core/src/main/java/org/briarproject/briar/messaging/MessagingManagerImpl.java @@ -32,7 +32,6 @@ import org.briarproject.briar.api.client.MessageTracker.GroupCount; import org.briarproject.briar.api.conversation.ConversationManager.ConversationClient; import org.briarproject.briar.api.conversation.ConversationMessageHeader; import org.briarproject.briar.api.conversation.DeletionResult; -import org.briarproject.briar.api.media.Attachment; import org.briarproject.briar.api.media.AttachmentHeader; import org.briarproject.briar.api.media.FileTooBigException; import org.briarproject.briar.api.messaging.MessagingManager; @@ -40,7 +39,6 @@ import org.briarproject.briar.api.messaging.PrivateMessage; import org.briarproject.briar.api.messaging.PrivateMessageHeader; import org.briarproject.briar.api.messaging.event.AttachmentReceivedEvent; import org.briarproject.briar.api.messaging.event.PrivateMessageReceivedEvent; -import org.briarproject.briar.media.AttachmentReader; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -60,8 +58,8 @@ import static org.briarproject.bramble.api.sync.SyncConstants.MAX_MESSAGE_BODY_L import static org.briarproject.bramble.api.sync.validation.MessageState.DELIVERED; import static org.briarproject.bramble.util.IoUtils.copyAndClose; import static org.briarproject.briar.client.MessageTrackerConstants.MSG_KEY_READ; -import static org.briarproject.briar.media.MediaConstants.MSG_KEY_CONTENT_TYPE; -import static org.briarproject.briar.media.MediaConstants.MSG_KEY_DESCRIPTOR_LENGTH; +import static org.briarproject.briar.api.media.MediaConstants.MSG_KEY_CONTENT_TYPE; +import static org.briarproject.briar.api.media.MediaConstants.MSG_KEY_DESCRIPTOR_LENGTH; import static org.briarproject.briar.messaging.MessageTypes.ATTACHMENT; import static org.briarproject.briar.messaging.MessageTypes.PRIVATE_MESSAGE; import static org.briarproject.briar.messaging.MessagingConstants.GROUP_KEY_CONTACT_ID; @@ -399,11 +397,6 @@ class MessagingManagerImpl implements MessagingManager, IncomingMessageHook, } } - @Override - public Attachment getAttachment(AttachmentHeader h) throws DbException { - return AttachmentReader.getAttachment(clientHelper, h); - } - @Override public boolean contactSupportsImages(Transaction txn, ContactId c) throws DbException { diff --git a/briar-core/src/main/java/org/briarproject/briar/messaging/PrivateMessageValidator.java b/briar-core/src/main/java/org/briarproject/briar/messaging/PrivateMessageValidator.java index a1387d9f0..2ccdda35e 100644 --- a/briar-core/src/main/java/org/briarproject/briar/messaging/PrivateMessageValidator.java +++ b/briar-core/src/main/java/org/briarproject/briar/messaging/PrivateMessageValidator.java @@ -29,11 +29,11 @@ import static org.briarproject.bramble.api.transport.TransportConstants.MAX_CLOC import static org.briarproject.bramble.util.ValidationUtils.checkLength; import static org.briarproject.bramble.util.ValidationUtils.checkSize; import static org.briarproject.briar.api.messaging.MessagingConstants.MAX_ATTACHMENTS_PER_MESSAGE; -import static org.briarproject.briar.api.messaging.MessagingConstants.MAX_CONTENT_TYPE_BYTES; +import static org.briarproject.briar.api.media.MediaConstants.MAX_CONTENT_TYPE_BYTES; import static org.briarproject.briar.api.messaging.MessagingConstants.MAX_PRIVATE_MESSAGE_TEXT_LENGTH; import static org.briarproject.briar.client.MessageTrackerConstants.MSG_KEY_READ; -import static org.briarproject.briar.media.MediaConstants.MSG_KEY_CONTENT_TYPE; -import static org.briarproject.briar.media.MediaConstants.MSG_KEY_DESCRIPTOR_LENGTH; +import static org.briarproject.briar.api.media.MediaConstants.MSG_KEY_CONTENT_TYPE; +import static org.briarproject.briar.api.media.MediaConstants.MSG_KEY_DESCRIPTOR_LENGTH; import static org.briarproject.briar.messaging.MessageTypes.ATTACHMENT; import static org.briarproject.briar.messaging.MessageTypes.PRIVATE_MESSAGE; import static org.briarproject.briar.messaging.MessagingConstants.MSG_KEY_ATTACHMENT_HEADERS; diff --git a/briar-core/src/test/java/org/briarproject/briar/avatar/AvatarManagerImplTest.java b/briar-core/src/test/java/org/briarproject/briar/avatar/AvatarManagerImplTest.java index eecff7506..c7029cd34 100644 --- a/briar-core/src/test/java/org/briarproject/briar/avatar/AvatarManagerImplTest.java +++ b/briar-core/src/test/java/org/briarproject/briar/avatar/AvatarManagerImplTest.java @@ -53,12 +53,12 @@ import static org.briarproject.bramble.test.TestUtils.getRandomId; import static org.briarproject.bramble.util.StringUtils.getRandomString; import static org.briarproject.briar.api.avatar.AvatarManager.CLIENT_ID; import static org.briarproject.briar.api.avatar.AvatarManager.MAJOR_VERSION; -import static org.briarproject.briar.api.messaging.MessagingConstants.MAX_CONTENT_TYPE_BYTES; +import static org.briarproject.briar.api.media.MediaConstants.MAX_CONTENT_TYPE_BYTES; import static org.briarproject.briar.avatar.AvatarConstants.GROUP_KEY_CONTACT_ID; import static org.briarproject.briar.avatar.AvatarConstants.MSG_KEY_VERSION; import static org.briarproject.briar.avatar.AvatarConstants.MSG_TYPE_UPDATE; -import static org.briarproject.briar.media.MediaConstants.MSG_KEY_CONTENT_TYPE; -import static org.briarproject.briar.media.MediaConstants.MSG_KEY_DESCRIPTOR_LENGTH; +import static org.briarproject.briar.api.media.MediaConstants.MSG_KEY_CONTENT_TYPE; +import static org.briarproject.briar.api.media.MediaConstants.MSG_KEY_DESCRIPTOR_LENGTH; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; diff --git a/briar-core/src/test/java/org/briarproject/briar/avatar/AvatarManagerIntegrationTest.java b/briar-core/src/test/java/org/briarproject/briar/avatar/AvatarManagerIntegrationTest.java index fb2b03373..117100d59 100644 --- a/briar-core/src/test/java/org/briarproject/briar/avatar/AvatarManagerIntegrationTest.java +++ b/briar-core/src/test/java/org/briarproject/briar/avatar/AvatarManagerIntegrationTest.java @@ -4,6 +4,7 @@ import org.briarproject.bramble.test.TestDatabaseConfigModule; import org.briarproject.briar.api.avatar.AvatarManager; import org.briarproject.briar.api.media.Attachment; import org.briarproject.briar.api.media.AttachmentHeader; +import org.briarproject.briar.api.media.AttachmentReader; import org.briarproject.briar.test.BriarIntegrationTest; import org.briarproject.briar.test.BriarIntegrationTestComponent; import org.briarproject.briar.test.DaggerBriarIntegrationTestComponent; @@ -17,7 +18,7 @@ import java.io.InputStream; import static org.briarproject.bramble.test.TestUtils.getRandomBytes; import static org.briarproject.bramble.util.IoUtils.copyAndClose; import static org.briarproject.bramble.util.StringUtils.getRandomString; -import static org.briarproject.briar.api.messaging.MessagingConstants.MAX_CONTENT_TYPE_BYTES; +import static org.briarproject.briar.api.media.MediaConstants.MAX_CONTENT_TYPE_BYTES; import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; @@ -27,6 +28,7 @@ public class AvatarManagerIntegrationTest extends BriarIntegrationTest { private AvatarManager avatarManager0, avatarManager1; + private AttachmentReader attachmentReader0, attachmentReader1; private final String contentType = getRandomString(MAX_CONTENT_TYPE_BYTES); @@ -36,6 +38,8 @@ public class AvatarManagerIntegrationTest super.setUp(); avatarManager0 = c0.getAvatarManager(); avatarManager1 = c1.getAvatarManager(); + attachmentReader0 = c0.getAttachmentReader(); + attachmentReader1 = c1.getAttachmentReader(); } @Override @@ -90,7 +94,7 @@ public class AvatarManagerIntegrationTest assertNotNull(header0.getMessageId()); // 0 can retrieve their own avatar - Attachment attachment0 = avatarManager0.getAvatar(header0); + Attachment attachment0 = attachmentReader0.getAttachment(header0); assertEquals(contentType, attachment0.getHeader().getContentType()); assertStreamMatches(avatar0bytes, attachment0.getStream()); @@ -105,7 +109,8 @@ public class AvatarManagerIntegrationTest assertNotNull(header0From1.getMessageId()); // 1 can retrieve 0's avatar - Attachment attachment0From1 = avatarManager1.getAvatar(header0From1); + Attachment attachment0From1 = + attachmentReader1.getAttachment(header0From1); assertEquals(contentType, attachment0From1.getHeader().getContentType()); assertStreamMatches(avatar0bytes, attachment0From1.getStream()); @@ -127,7 +132,8 @@ public class AvatarManagerIntegrationTest assertNotNull(header1From0.getMessageId()); // 0 can retrieve 1's avatar - Attachment attachment1From0 = avatarManager0.getAvatar(header1From0); + Attachment attachment1From0 = + attachmentReader0.getAttachment(header1From0); assertEquals(contentType1, attachment1From0.getHeader().getContentType()); assertStreamMatches(avatar1bytes, attachment1From0.getStream()); @@ -144,7 +150,7 @@ public class AvatarManagerIntegrationTest AttachmentHeader header0 = db0.transactionWithResult(true, txn -> avatarManager0.getMyAvatarHeader(txn)); assertNotNull(header0); - Attachment attachment0 = avatarManager0.getAvatar(header0); + Attachment attachment0 = attachmentReader0.getAttachment(header0); assertStreamMatches(avatar0bytes, attachment0.getStream()); // send the avatar from 0 to 1 @@ -154,7 +160,8 @@ public class AvatarManagerIntegrationTest AttachmentHeader header0From1 = db1.transactionWithNullableResult(true, txn -> avatarManager1.getAvatarHeader(txn, contact0From1)); assertNotNull(header0From1); - Attachment attachment0From1 = avatarManager1.getAvatar(header0From1); + Attachment attachment0From1 = + attachmentReader1.getAttachment(header0From1); assertStreamMatches(avatar0bytes, attachment0From1.getStream()); // 0 adds a new avatar @@ -167,7 +174,7 @@ public class AvatarManagerIntegrationTest header0 = db0.transactionWithResult(true, txn -> avatarManager0.getMyAvatarHeader(txn)); assertNotNull(header0); - attachment0 = avatarManager0.getAvatar(header0); + attachment0 = attachmentReader0.getAttachment(header0); assertStreamMatches(avatar0bytes2, attachment0.getStream()); // send the new avatar from 0 to 1 @@ -177,7 +184,7 @@ public class AvatarManagerIntegrationTest header0From1 = db1.transactionWithNullableResult(true, txn -> avatarManager1.getAvatarHeader(txn, contact0From1)); assertNotNull(header0From1); - attachment0From1 = avatarManager1.getAvatar(header0From1); + attachment0From1 = attachmentReader1.getAttachment(header0From1); assertStreamMatches(avatar0bytes2, attachment0From1.getStream()); } diff --git a/briar-core/src/test/java/org/briarproject/briar/avatar/AvatarValidatorTest.java b/briar-core/src/test/java/org/briarproject/briar/avatar/AvatarValidatorTest.java index 3d1bb8ece..e8ef66246 100644 --- a/briar-core/src/test/java/org/briarproject/briar/avatar/AvatarValidatorTest.java +++ b/briar-core/src/test/java/org/briarproject/briar/avatar/AvatarValidatorTest.java @@ -23,11 +23,11 @@ import static org.briarproject.bramble.test.TestUtils.getClientId; import static org.briarproject.bramble.test.TestUtils.getGroup; import static org.briarproject.bramble.test.TestUtils.getMessage; import static org.briarproject.bramble.util.StringUtils.getRandomString; -import static org.briarproject.briar.api.messaging.MessagingConstants.MAX_CONTENT_TYPE_BYTES; +import static org.briarproject.briar.api.media.MediaConstants.MAX_CONTENT_TYPE_BYTES; import static org.briarproject.briar.avatar.AvatarConstants.MSG_KEY_VERSION; import static org.briarproject.briar.avatar.AvatarConstants.MSG_TYPE_UPDATE; -import static org.briarproject.briar.media.MediaConstants.MSG_KEY_CONTENT_TYPE; -import static org.briarproject.briar.media.MediaConstants.MSG_KEY_DESCRIPTOR_LENGTH; +import static org.briarproject.briar.api.media.MediaConstants.MSG_KEY_CONTENT_TYPE; +import static org.briarproject.briar.api.media.MediaConstants.MSG_KEY_DESCRIPTOR_LENGTH; import static org.junit.Assert.assertEquals; public class AvatarValidatorTest extends BrambleMockTestCase { diff --git a/briar-core/src/test/java/org/briarproject/briar/identity/AuthorManagerImplTest.java b/briar-core/src/test/java/org/briarproject/briar/identity/AuthorManagerImplTest.java index d7f1fd3bd..a4ea90ec2 100644 --- a/briar-core/src/test/java/org/briarproject/briar/identity/AuthorManagerImplTest.java +++ b/briar-core/src/test/java/org/briarproject/briar/identity/AuthorManagerImplTest.java @@ -30,7 +30,7 @@ import static org.briarproject.briar.api.identity.AuthorInfo.Status.OURSELVES; import static org.briarproject.briar.api.identity.AuthorInfo.Status.UNKNOWN; import static org.briarproject.briar.api.identity.AuthorInfo.Status.UNVERIFIED; import static org.briarproject.briar.api.identity.AuthorInfo.Status.VERIFIED; -import static org.briarproject.briar.api.messaging.MessagingConstants.MAX_CONTENT_TYPE_BYTES; +import static org.briarproject.briar.api.media.MediaConstants.MAX_CONTENT_TYPE_BYTES; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; diff --git a/briar-core/src/test/java/org/briarproject/briar/introduction/IntroductionIntegrationTestComponent.java b/briar-core/src/test/java/org/briarproject/briar/introduction/IntroductionIntegrationTestComponent.java index 7cd5b9226..fd52e3594 100644 --- a/briar-core/src/test/java/org/briarproject/briar/introduction/IntroductionIntegrationTestComponent.java +++ b/briar-core/src/test/java/org/briarproject/briar/introduction/IntroductionIntegrationTestComponent.java @@ -7,6 +7,7 @@ import org.briarproject.briar.blog.BlogModule; import org.briarproject.briar.client.BriarClientModule; import org.briarproject.briar.forum.ForumModule; import org.briarproject.briar.identity.IdentityModule; +import org.briarproject.briar.media.MediaModule; import org.briarproject.briar.messaging.MessagingModule; import org.briarproject.briar.privategroup.PrivateGroupModule; import org.briarproject.briar.privategroup.invitation.GroupInvitationModule; @@ -28,6 +29,7 @@ import dagger.Component; GroupInvitationModule.class, IdentityModule.class, IntroductionModule.class, + MediaModule.class, MessagingModule.class, PrivateGroupModule.class, SharingModule.class diff --git a/briar-core/src/test/java/org/briarproject/briar/messaging/MessageSizeIntegrationTest.java b/briar-core/src/test/java/org/briarproject/briar/messaging/MessageSizeIntegrationTest.java index 7ad320e86..4a9f98109 100644 --- a/briar-core/src/test/java/org/briarproject/briar/messaging/MessageSizeIntegrationTest.java +++ b/briar-core/src/test/java/org/briarproject/briar/messaging/MessageSizeIntegrationTest.java @@ -26,7 +26,7 @@ import static org.briarproject.bramble.test.TestUtils.getRandomId; import static org.briarproject.bramble.util.StringUtils.getRandomString; import static org.briarproject.briar.api.forum.ForumConstants.MAX_FORUM_POST_TEXT_LENGTH; import static org.briarproject.briar.api.messaging.MessagingConstants.MAX_ATTACHMENTS_PER_MESSAGE; -import static org.briarproject.briar.api.messaging.MessagingConstants.MAX_CONTENT_TYPE_BYTES; +import static org.briarproject.briar.api.media.MediaConstants.MAX_CONTENT_TYPE_BYTES; import static org.briarproject.briar.api.messaging.MessagingConstants.MAX_PRIVATE_MESSAGE_TEXT_LENGTH; import static org.junit.Assert.assertTrue; diff --git a/briar-core/src/test/java/org/briarproject/briar/messaging/PrivateMessageValidatorTest.java b/briar-core/src/test/java/org/briarproject/briar/messaging/PrivateMessageValidatorTest.java index 24c95240a..075518411 100644 --- a/briar-core/src/test/java/org/briarproject/briar/messaging/PrivateMessageValidatorTest.java +++ b/briar-core/src/test/java/org/briarproject/briar/messaging/PrivateMessageValidatorTest.java @@ -28,11 +28,11 @@ import static org.briarproject.bramble.test.TestUtils.getRandomBytes; import static org.briarproject.bramble.test.TestUtils.getRandomId; import static org.briarproject.bramble.util.StringUtils.getRandomString; import static org.briarproject.briar.api.messaging.MessagingConstants.MAX_ATTACHMENTS_PER_MESSAGE; -import static org.briarproject.briar.api.messaging.MessagingConstants.MAX_CONTENT_TYPE_BYTES; +import static org.briarproject.briar.api.media.MediaConstants.MAX_CONTENT_TYPE_BYTES; import static org.briarproject.briar.api.messaging.MessagingConstants.MAX_PRIVATE_MESSAGE_TEXT_LENGTH; import static org.briarproject.briar.client.MessageTrackerConstants.MSG_KEY_READ; -import static org.briarproject.briar.media.MediaConstants.MSG_KEY_CONTENT_TYPE; -import static org.briarproject.briar.media.MediaConstants.MSG_KEY_DESCRIPTOR_LENGTH; +import static org.briarproject.briar.api.media.MediaConstants.MSG_KEY_CONTENT_TYPE; +import static org.briarproject.briar.api.media.MediaConstants.MSG_KEY_DESCRIPTOR_LENGTH; import static org.briarproject.briar.messaging.MessageTypes.ATTACHMENT; import static org.briarproject.briar.messaging.MessageTypes.PRIVATE_MESSAGE; import static org.briarproject.briar.messaging.MessagingConstants.MSG_KEY_ATTACHMENT_HEADERS; diff --git a/briar-core/src/test/java/org/briarproject/briar/test/BriarIntegrationTestComponent.java b/briar-core/src/test/java/org/briarproject/briar/test/BriarIntegrationTestComponent.java index f09838228..77cbb6a37 100644 --- a/briar-core/src/test/java/org/briarproject/briar/test/BriarIntegrationTestComponent.java +++ b/briar-core/src/test/java/org/briarproject/briar/test/BriarIntegrationTestComponent.java @@ -21,6 +21,7 @@ import org.briarproject.briar.api.conversation.ConversationManager; import org.briarproject.briar.api.forum.ForumManager; import org.briarproject.briar.api.forum.ForumSharingManager; import org.briarproject.briar.api.introduction.IntroductionManager; +import org.briarproject.briar.api.media.AttachmentReader; import org.briarproject.briar.api.messaging.MessagingManager; import org.briarproject.briar.api.messaging.PrivateMessageFactory; import org.briarproject.briar.api.privategroup.PrivateGroupManager; @@ -31,6 +32,7 @@ import org.briarproject.briar.client.BriarClientModule; import org.briarproject.briar.forum.ForumModule; import org.briarproject.briar.identity.IdentityModule; import org.briarproject.briar.introduction.IntroductionModule; +import org.briarproject.briar.media.MediaModule; import org.briarproject.briar.messaging.MessagingModule; import org.briarproject.briar.privategroup.PrivateGroupModule; import org.briarproject.briar.privategroup.invitation.GroupInvitationModule; @@ -51,6 +53,7 @@ import dagger.Component; GroupInvitationModule.class, IdentityModule.class, IntroductionModule.class, + MediaModule.class, MessagingModule.class, PrivateGroupModule.class, SharingModule.class @@ -84,6 +87,8 @@ public interface BriarIntegrationTestComponent IdentityManager getIdentityManager(); + AttachmentReader getAttachmentReader(); + AvatarManager getAvatarManager(); ClientHelper getClientHelper();