From 20585afbc534d48b0930a8e8a156495c0afa8c88 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Mon, 6 Jun 2016 11:58:29 +0200 Subject: [PATCH] Removed useless invalidate() in chat causing bad performances + updated linphone to fix sqlite vfs error --- src/org/linphone/ChatFragment.java | 28 ++++++++++++++-------------- submodules/linphone | 2 +- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/org/linphone/ChatFragment.java b/src/org/linphone/ChatFragment.java index 40372e916..16e983611 100644 --- a/src/org/linphone/ChatFragment.java +++ b/src/org/linphone/ChatFragment.java @@ -213,7 +213,7 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC if (from.asStringUriOnly().equals(sipUri)) { LinphoneService.instance().removeMessageNotification(); cr.markAsRead(); - invalidate(); + adapter.addMessage(cr.getHistory(1)[0]); messagesList.setSelection(adapter.getCount()-1); String externalBodyUrl = message.getExternalBodyUrl(); @@ -464,13 +464,19 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC contact = ContactsManager.getInstance().findContactFromAddress(lAddress); if (chatRoom != null) { displayChatHeader(lAddress); - dispayMessageList(); + displayMessageList(); } } } } + + private void redrawMessageList() { + if (adapter != null) { + adapter.notifyDataSetChanged(); + } + } - public void dispayMessageList() { + private void displayMessageList() { if(chatRoom != null) { if (adapter != null) { adapter.refreshHistory(); @@ -631,7 +637,7 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC isEditMode = false; editList.setVisibility(View.GONE); topBar.setVisibility(View.VISIBLE); - dispayMessageList(); + redrawMessageList(); } private void removeChats(){ @@ -702,7 +708,7 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC topBar.setVisibility(View.INVISIBLE); editList.setVisibility(View.VISIBLE); isEditMode = true; - dispayMessageList(); + redrawMessageList(); //TODO refaire la liste } if(id == R.id.start_call){ @@ -718,11 +724,6 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC message.setText(""); } - private void displayBubbleChat(LinphoneChatMessage message){ - adapter.addMessage(message); - adapter.notifyDataSetChanged(); - } - private void sendTextMessage(String messageToSend) { LinphoneCore lc = LinphoneManager.getLcIfManagerNotDestroyedOrNull(); boolean isNetworkReachable = lc == null ? false : lc.isNetworkReachable(); @@ -748,7 +749,7 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC if (newChatConversation) { exitNewConversationMode(lAddress.asStringUriOnly()); } else { - displayBubbleChat(message); + adapter.addMessage(message); } Log.i("Sent message current status: " + message.getStatus()); @@ -767,7 +768,6 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC initChatRoom(address); } } - invalidate(); if (chatRoom != null && path != null && path.length() > 0 && isNetworkReachable) { try { @@ -924,7 +924,7 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC LinphoneManager.getInstance().setUploadingImageStream(mUploadingImageStream); chatRoom.sendChatMessage(message); - displayBubbleChat(message); + adapter.addMessage(message); } } @@ -1103,7 +1103,7 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC //LinphoneChatMessage Listener @Override public void onLinphoneChatMessageStateChanged(LinphoneChatMessage msg, State state) { - invalidate(); + redrawMessageList(); } @Override diff --git a/submodules/linphone b/submodules/linphone index 34cd736aa..f426902eb 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit 34cd736aa2bee6de4bc8c264a0fb7c49f191401b +Subproject commit f426902ebe60f1467eb72c12d5aa493087eaf09d