diff --git a/ring-android/app/src/main/java/cx/ring/services/NotificationServiceImpl.java b/ring-android/app/src/main/java/cx/ring/services/NotificationServiceImpl.java index 9861ef9010d432b56eab7c3faf0c908c0cc6af65..649ca69c55556c9819c993006318b64331bbc8f1 100644 --- a/ring-android/app/src/main/java/cx/ring/services/NotificationServiceImpl.java +++ b/ring-android/app/src/main/java/cx/ring/services/NotificationServiceImpl.java @@ -744,7 +744,7 @@ public class NotificationServiceImpl implements NotificationService { return; } InteractionStatus event = info.getStatus(); - if (event == null) { + if (event == null || event == InteractionStatus.FILE_AVAILABLE) { return; } android.net.Uri path = ConversationPath.toUri(conversation); diff --git a/ring-android/libringclient/src/main/java/net/jami/facades/ConversationFacade.java b/ring-android/libringclient/src/main/java/net/jami/facades/ConversationFacade.java index bf4812873b6032209ea28c28ff1428a372b955ef..fdcd012ab6ced1e600bdbbcfc14c80fe64a5130c 100644 --- a/ring-android/libringclient/src/main/java/net/jami/facades/ConversationFacade.java +++ b/ring-android/libringclient/src/main/java/net/jami/facades/ConversationFacade.java @@ -590,7 +590,8 @@ public class ConversationFacade { private void handleDataTransferEvent(DataTransfer transfer) { Conversation conversation = mAccountService.getAccount(transfer.getAccount()).onDataTransferEvent(transfer); - if (transfer.getStatus() == Interaction.InteractionStatus.TRANSFER_CREATED && !transfer.isOutgoing()) { + Interaction.InteractionStatus status = transfer.getStatus(); + if ((status == Interaction.InteractionStatus.TRANSFER_CREATED || status == Interaction.InteractionStatus.FILE_AVAILABLE) && !transfer.isOutgoing()) { if (transfer.canAutoAccept(mPreferencesService.getMaxFileAutoAccept(transfer.getAccount()))) { mAccountService.acceptFileTransfer(conversation, transfer.getFileId(), transfer); return; diff --git a/ring-android/libringclient/src/main/java/net/jami/model/Interaction.java b/ring-android/libringclient/src/main/java/net/jami/model/Interaction.java index d7f2c02dcf8be19206c25a150a979d389dcd487d..ddfa85cd52c8cdda0851efba4048e818960c483d 100644 --- a/ring-android/libringclient/src/main/java/net/jami/model/Interaction.java +++ b/ring-android/libringclient/src/main/java/net/jami/model/Interaction.java @@ -66,9 +66,9 @@ public class Interaction { String mExtraFlag = new JsonObject().toString(); // Swarm - private String mConversationId; - private String mMessageId; - private List<String> mParentIds; + private String mConversationId = null; + private String mMessageId = null; + private List<String> mParentIds = null; /* Needed by ORMLite */ public Interaction() { diff --git a/ring-android/libringclient/src/main/java/net/jami/services/AccountService.java b/ring-android/libringclient/src/main/java/net/jami/services/AccountService.java index 15bae636b9cf5f1ed75da16f36c0a8c848656b84..e1217c961f3beb1f4730762b4239887d962df290 100644 --- a/ring-android/libringclient/src/main/java/net/jami/services/AccountService.java +++ b/ring-android/libringclient/src/main/java/net/jami/services/AccountService.java @@ -1553,6 +1553,7 @@ public class AccountService { } interaction.setContact(contact); interaction.setSwarmInfo(conversation.getUri().getRawRingId(), id, parents); + interaction.setConversation(conversation); if (conversation.addSwarmElement(interaction)) { if (conversation.isVisible()) mHistoryService.setMessageRead(account.getAccountID(), conversation.getUri(), interaction.getMessageId()); @@ -1670,6 +1671,8 @@ public class AccountService { boolean isIncoming = !interaction.getContact().isUser(); if (isIncoming) { incomingSwarmMessageSubject.onNext(interaction); + if (interaction instanceof DataTransfer) + dataTransferSubject.onNext((DataTransfer)interaction); } } }