From 018abaeba43c532851e88d54af8f6ead4a40751d Mon Sep 17 00:00:00 2001 From: Brieuc Viel Date: Fri, 7 Apr 2017 10:53:02 +0200 Subject: [PATCH] [imdm] update resend method + fix refresh problem --- src/android/org/linphone/ChatFragment.java | 31 +++++++++++++++------- submodules/linphone | 2 +- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/src/android/org/linphone/ChatFragment.java b/src/android/org/linphone/ChatFragment.java index 1d24c70a0..6bbd7a30c 100644 --- a/src/android/org/linphone/ChatFragment.java +++ b/src/android/org/linphone/ChatFragment.java @@ -422,10 +422,11 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC menu.add(v.getId(), MENU_COPY_TEXT, 0, getString(R.string.copy_text)); } - LinphoneChatMessage msg = getMessageForId(v.getId()); + /* LinphoneChatMessage msg = getMessageForId(v.getId()); if (msg != null && msg.getStatus() == LinphoneChatMessage.State.NotDelivered) { menu.add(v.getId(), MENU_RESEND_MESSAGE, 0, getString(R.string.retry)); } + */ } @Override @@ -443,9 +444,10 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC case MENU_COPY_TEXT: copyTextMessageToClipboard(item.getGroupId()); break; - case MENU_RESEND_MESSAGE: + /*case MENU_RESEND_MESSAGE: resendMessage(item.getGroupId()); break; + */ case MENU_PICTURE_SMALL: sendImageMessage(filePathToUpload, SIZE_SMALL); break; @@ -765,19 +767,23 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC chatRoom.markAsRead(); } - private void resendMessage(int id) { - LinphoneChatMessage message = getMessageForId(id); - if (message == null) + private void resendMessage(LinphoneChatMessage message) { + LinphoneCore lc = LinphoneManager.getLcIfManagerNotDestroyedOrNull(); + if (message == null || message.getStatus() != State.NotDelivered || !lc.isNetworkReachable()) return; - chatRoom.deleteMessage(getMessageForId(id)); + message.reSend(); invalidate(); + } - if (message.getText() != null && message.getText().length() > 0) { - sendTextMessage(message.getText()); - } else { - sendImageMessage(message.getAppData(), 0); + private void resendMessage(int id) { + LinphoneChatMessage message = getMessageForId(id); + LinphoneCore lc = LinphoneManager.getLcIfManagerNotDestroyedOrNull(); + if (message == null || message.getStatus() != State.NotDelivered || !lc.isNetworkReachable()){ + return; } + message.reSend(); + invalidate(); } private void copyTextMessageToClipboard(int id) { @@ -1153,6 +1159,10 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC LinphoneManager.getLc().getLimeEncryption() == LinphoneCore.LinphoneLimeState.Mandatory) { LinphoneUtils.displayErrorAlert(getString(R.string.message_not_encrypted), LinphoneActivity.instance()); } + if(message.getStatus() == State.NotDelivered) { + resendMessage(message); + //resendMessage(holder.id); + } } }); @@ -1309,6 +1319,7 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC } } }); + chatRoom.markAsRead(); } RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); diff --git a/submodules/linphone b/submodules/linphone index bcc130586..3bd323bec 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit bcc1305863186234746fd91487495773db93a511 +Subproject commit 3bd323bec3535cb599d523096b49dced43f16308