mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-21 15:19:53 +01:00
Create and use method in MessagingManager for checking for image support
This commit is contained in:
@@ -26,7 +26,6 @@ import org.briarproject.bramble.api.settings.Settings;
|
|||||||
import org.briarproject.bramble.api.settings.SettingsManager;
|
import org.briarproject.bramble.api.settings.SettingsManager;
|
||||||
import org.briarproject.bramble.api.sync.GroupId;
|
import org.briarproject.bramble.api.sync.GroupId;
|
||||||
import org.briarproject.bramble.api.sync.Message;
|
import org.briarproject.bramble.api.sync.Message;
|
||||||
import org.briarproject.bramble.api.versioning.ClientVersioningManager;
|
|
||||||
import org.briarproject.briar.android.util.UiUtils;
|
import org.briarproject.briar.android.util.UiUtils;
|
||||||
import org.briarproject.briar.api.messaging.Attachment;
|
import org.briarproject.briar.api.messaging.Attachment;
|
||||||
import org.briarproject.briar.api.messaging.AttachmentHeader;
|
import org.briarproject.briar.api.messaging.AttachmentHeader;
|
||||||
@@ -54,7 +53,6 @@ import static org.briarproject.bramble.util.LogUtils.logException;
|
|||||||
import static org.briarproject.bramble.util.LogUtils.now;
|
import static org.briarproject.bramble.util.LogUtils.now;
|
||||||
import static org.briarproject.briar.android.settings.SettingsFragment.SETTINGS_NAMESPACE;
|
import static org.briarproject.briar.android.settings.SettingsFragment.SETTINGS_NAMESPACE;
|
||||||
import static org.briarproject.briar.android.util.UiUtils.observeForeverOnce;
|
import static org.briarproject.briar.android.util.UiUtils.observeForeverOnce;
|
||||||
import static org.briarproject.briar.api.messaging.MessagingManager.CLIENT_ID;
|
|
||||||
|
|
||||||
@NotNullByDefault
|
@NotNullByDefault
|
||||||
public class ConversationViewModel extends AndroidViewModel {
|
public class ConversationViewModel extends AndroidViewModel {
|
||||||
@@ -70,12 +68,12 @@ public class ConversationViewModel extends AndroidViewModel {
|
|||||||
private final Executor dbExecutor;
|
private final Executor dbExecutor;
|
||||||
@CryptoExecutor
|
@CryptoExecutor
|
||||||
private final Executor cryptoExecutor;
|
private final Executor cryptoExecutor;
|
||||||
|
// TODO replace with TransactionManager once it exists
|
||||||
private final DatabaseComponent db;
|
private final DatabaseComponent db;
|
||||||
private final MessagingManager messagingManager;
|
private final MessagingManager messagingManager;
|
||||||
private final ContactManager contactManager;
|
private final ContactManager contactManager;
|
||||||
private final SettingsManager settingsManager;
|
private final SettingsManager settingsManager;
|
||||||
private final PrivateMessageFactory privateMessageFactory;
|
private final PrivateMessageFactory privateMessageFactory;
|
||||||
private final ClientVersioningManager clientVersioningManager;
|
|
||||||
private final AttachmentController attachmentController;
|
private final AttachmentController attachmentController;
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
@@ -106,8 +104,7 @@ public class ConversationViewModel extends AndroidViewModel {
|
|||||||
@CryptoExecutor Executor cryptoExecutor, DatabaseComponent db,
|
@CryptoExecutor Executor cryptoExecutor, DatabaseComponent db,
|
||||||
MessagingManager messagingManager, ContactManager contactManager,
|
MessagingManager messagingManager, ContactManager contactManager,
|
||||||
SettingsManager settingsManager,
|
SettingsManager settingsManager,
|
||||||
PrivateMessageFactory privateMessageFactory,
|
PrivateMessageFactory privateMessageFactory) {
|
||||||
ClientVersioningManager clientVersioningManager) {
|
|
||||||
super(application);
|
super(application);
|
||||||
this.dbExecutor = dbExecutor;
|
this.dbExecutor = dbExecutor;
|
||||||
this.cryptoExecutor = cryptoExecutor;
|
this.cryptoExecutor = cryptoExecutor;
|
||||||
@@ -116,7 +113,6 @@ public class ConversationViewModel extends AndroidViewModel {
|
|||||||
this.contactManager = contactManager;
|
this.contactManager = contactManager;
|
||||||
this.settingsManager = settingsManager;
|
this.settingsManager = settingsManager;
|
||||||
this.privateMessageFactory = privateMessageFactory;
|
this.privateMessageFactory = privateMessageFactory;
|
||||||
this.clientVersioningManager = clientVersioningManager;
|
|
||||||
this.attachmentController = new AttachmentController(messagingManager,
|
this.attachmentController = new AttachmentController(messagingManager,
|
||||||
application.getResources());
|
application.getResources());
|
||||||
contactDeleted.setValue(false);
|
contactDeleted.setValue(false);
|
||||||
@@ -189,11 +185,8 @@ public class ConversationViewModel extends AndroidViewModel {
|
|||||||
@DatabaseExecutor
|
@DatabaseExecutor
|
||||||
private void checkFeaturesAndOnboarding(ContactId c) throws DbException {
|
private void checkFeaturesAndOnboarding(ContactId c) throws DbException {
|
||||||
// check if images are supported
|
// check if images are supported
|
||||||
int minorVersion = db.transactionWithResult(true, txn ->
|
boolean imagesSupported = db.transactionWithResult(true, txn ->
|
||||||
clientVersioningManager
|
messagingManager.contactSupportsImages(txn, c));
|
||||||
.getClientMinorVersion(txn, c, CLIENT_ID, 0));
|
|
||||||
// support was added in 0.1
|
|
||||||
boolean imagesSupported = minorVersion == 1;
|
|
||||||
imageSupport.postValue(imagesSupported);
|
imageSupport.postValue(imagesSupported);
|
||||||
|
|
||||||
// check if introductions are supported
|
// check if introductions are supported
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package org.briarproject.briar.api.messaging;
|
|||||||
|
|
||||||
import org.briarproject.bramble.api.contact.ContactId;
|
import org.briarproject.bramble.api.contact.ContactId;
|
||||||
import org.briarproject.bramble.api.db.DbException;
|
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.nullsafety.NotNullByDefault;
|
||||||
import org.briarproject.bramble.api.sync.ClientId;
|
import org.briarproject.bramble.api.sync.ClientId;
|
||||||
import org.briarproject.bramble.api.sync.GroupId;
|
import org.briarproject.bramble.api.sync.GroupId;
|
||||||
@@ -60,4 +61,13 @@ public interface MessagingManager extends ConversationClient {
|
|||||||
*/
|
*/
|
||||||
Attachment getAttachment(MessageId m) throws DbException;
|
Attachment getAttachment(MessageId m) throws DbException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns true if the contact with the given {@link ContactId} does support
|
||||||
|
* image attachments.
|
||||||
|
*
|
||||||
|
* Added: 2019-01-01
|
||||||
|
*/
|
||||||
|
boolean contactSupportsImages(Transaction txn, ContactId c)
|
||||||
|
throws DbException;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -248,4 +248,13 @@ class MessagingManagerImpl extends ConversationClientImpl
|
|||||||
return new Attachment(new ByteArrayInputStream(bytes));
|
return new Attachment(new ByteArrayInputStream(bytes));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean contactSupportsImages(Transaction txn, ContactId c)
|
||||||
|
throws DbException {
|
||||||
|
int minorVersion = clientVersioningManager
|
||||||
|
.getClientMinorVersion(txn, c, CLIENT_ID, 0);
|
||||||
|
// support was added in 0.1
|
||||||
|
return minorVersion == 1;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user