From 679c89b2ea441d64ceae957a362b7e58f1563d50 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Mon, 12 Aug 2013 14:04:40 +0200 Subject: [PATCH] Fix issue in display of messages when using liblinphone storage --- src/org/linphone/ChatFragment.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/org/linphone/ChatFragment.java b/src/org/linphone/ChatFragment.java index cbca3a4f3..1337a19ba 100644 --- a/src/org/linphone/ChatFragment.java +++ b/src/org/linphone/ChatFragment.java @@ -365,7 +365,15 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC scrollToEnd(); } + private int checkId(int id) { + if (id <= 0) { + return previousMessageID + 1; + } + return id; + } + private void displayMessage(int id, String message, String time, boolean isIncoming, LinphoneChatMessage.State status, RelativeLayout layout) { + id = checkId(id); BubbleChat bubble = new BubbleChat(layout.getContext(), id, message, null, time, isIncoming, status, previousMessageID); if (!isIncoming) { lastSentMessageBubble = bubble; @@ -377,13 +385,15 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC registerForContextMenu(v); } - private void displayImageMessage(final int id, Bitmap image, String time, boolean isIncoming, LinphoneChatMessage.State status, RelativeLayout layout, final String url) { + private void displayImageMessage(int id, Bitmap image, String time, boolean isIncoming, LinphoneChatMessage.State status, RelativeLayout layout, final String url) { + id = checkId(id); BubbleChat bubble = new BubbleChat(layout.getContext(), id, null, image, time, isIncoming, status, previousMessageID); if (!isIncoming) { lastSentMessageBubble = bubble; } final View v = bubble.getView(); + final int finalId = id; bubble.setDownloadImageButtonListener(new OnClickListener() { @Override public void onClick(View view) { @@ -392,7 +402,7 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC public void run() { final Bitmap bm = ChatFragment.downloadImage(url); if (bm != null) { - LinphoneActivity.instance().getChatStorage().saveImage(id, bm); + LinphoneActivity.instance().getChatStorage().saveImage(finalId, bm); mHandler.post(new Runnable() { @Override public void run() {