fixed performance regression in on scroll listener
This commit is contained in:
parent
4fdb0d92fe
commit
28733e052f
|
@ -1216,7 +1216,6 @@ public class XmppConnectionService extends Service implements OnPhoneContactsLoa
|
||||||
if (XmppConnectionService.this.getMessageArchiveService().queryInProgress(conversation, callback)) {
|
if (XmppConnectionService.this.getMessageArchiveService().queryInProgress(conversation, callback)) {
|
||||||
return;
|
return;
|
||||||
} else if (timestamp == 0) {
|
} else if (timestamp == 0) {
|
||||||
callback.onMoreMessagesLoaded(0, conversation);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Log.d(Config.LOGTAG, "load more messages for " + conversation.getName() + " prior to " + MessageGenerator.getTimestamp(timestamp));
|
Log.d(Config.LOGTAG, "load more messages for " + conversation.getName() + " prior to " + MessageGenerator.getTimestamp(timestamp));
|
||||||
|
@ -1230,7 +1229,8 @@ public class XmppConnectionService extends Service implements OnPhoneContactsLoa
|
||||||
checkDeletedFiles(conversation);
|
checkDeletedFiles(conversation);
|
||||||
callback.onMoreMessagesLoaded(messages.size(), conversation);
|
callback.onMoreMessagesLoaded(messages.size(), conversation);
|
||||||
} else if (conversation.hasMessagesLeftOnServer()
|
} else if (conversation.hasMessagesLeftOnServer()
|
||||||
&& account.isOnlineAndConnected()) {
|
&& account.isOnlineAndConnected()
|
||||||
|
&& conversation.getLastClearHistory() == 0) {
|
||||||
if ((conversation.getMode() == Conversation.MODE_SINGLE && account.getXmppConnection().getFeatures().mam())
|
if ((conversation.getMode() == Conversation.MODE_SINGLE && account.getXmppConnection().getFeatures().mam())
|
||||||
|| (conversation.getMode() == Conversation.MODE_MULTI && conversation.getMucOptions().mamSupport())) {
|
|| (conversation.getMode() == Conversation.MODE_MULTI && conversation.getMucOptions().mamSupport())) {
|
||||||
MessageArchiveService.Query query = getMessageArchiveService().query(conversation, 0, timestamp);
|
MessageArchiveService.Query query = getMessageArchiveService().query(conversation, 0, timestamp);
|
||||||
|
|
|
@ -146,7 +146,12 @@ public class ConversationFragment extends Fragment implements EditMessage.Keyboa
|
||||||
int visibleItemCount, int totalItemCount) {
|
int visibleItemCount, int totalItemCount) {
|
||||||
synchronized (ConversationFragment.this.messageList) {
|
synchronized (ConversationFragment.this.messageList) {
|
||||||
if (firstVisibleItem < 5 && messagesLoaded && messageList.size() > 0) {
|
if (firstVisibleItem < 5 && messagesLoaded && messageList.size() > 0) {
|
||||||
long timestamp = ConversationFragment.this.messageList.get(0).getTimeSent();
|
long timestamp;
|
||||||
|
if (messageList.get(0).getType() == Message.TYPE_STATUS && messageList.size() >= 2) {
|
||||||
|
timestamp = messageList.get(1).getTimeSent();
|
||||||
|
} else {
|
||||||
|
timestamp = messageList.get(0).getTimeSent();
|
||||||
|
}
|
||||||
messagesLoaded = false;
|
messagesLoaded = false;
|
||||||
activity.xmppConnectionService.loadMoreMessages(conversation, timestamp, new XmppConnectionService.OnMoreMessagesLoaded() {
|
activity.xmppConnectionService.loadMoreMessages(conversation, timestamp, new XmppConnectionService.OnMoreMessagesLoaded() {
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Reference in a new issue