Improve chat messages memory usage

This commit is contained in:
Sylvain Berfini 2016-04-08 15:54:58 +02:00
parent ba1f78b60e
commit fa11864c41
2 changed files with 9 additions and 2 deletions

View file

@ -334,6 +334,10 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC
this.context = context; this.context = context;
} }
public void destroy() {
this.history = null;
}
public void refreshHistory() { public void refreshHistory() {
this.history = null; this.history = null;
this.history = chatRoom.getHistory(); this.history = chatRoom.getHistory();
@ -473,6 +477,7 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC
public void dispayMessageList() { public void dispayMessageList() {
messagesList.setChoiceMode(AbsListView.CHOICE_MODE_MULTIPLE); messagesList.setChoiceMode(AbsListView.CHOICE_MODE_MULTIPLE);
if(chatRoom != null) { if(chatRoom != null) {
if (adapter != null) adapter.destroy();
adapter = new ChatMessageAdapter(getActivity(), chatRoom.getHistory()); adapter = new ChatMessageAdapter(getActivity(), chatRoom.getHistory());
messagesList.setAdapter(adapter); messagesList.setAdapter(adapter);
} }
@ -779,7 +784,9 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC
} }
private LinphoneChatMessage getMessageForId(int id) { private LinphoneChatMessage getMessageForId(int id) {
for (LinphoneChatMessage message : chatRoom.getHistory()) { if (adapter == null) return null;
for (int i = 0; i < adapter.getCount(); i++) {
LinphoneChatMessage message = adapter.getItem(i);
if (message.getStorageId() == id) { if (message.getStorageId() == id) {
return message; return message;
} }

@ -1 +1 @@
Subproject commit fae2bf32e5df948f7db07d849cfcf9f1260a8f82 Subproject commit f0cd38ef228cf26bfdd0fd8bd037fd74fb1e1c5a