scroll fixes
This commit is contained in:
parent
1d23c7e7fb
commit
c282ef4645
|
@ -819,15 +819,15 @@ public class XmppConnectionService extends Service {
|
|||
}
|
||||
});
|
||||
}
|
||||
|
||||
public List<Message> getMoreMessages(Conversation conversation,
|
||||
long timestamp) {
|
||||
|
||||
public int loadMoreMessages(Conversation conversation, long timestamp) {
|
||||
List<Message> messages = databaseBackend.getMessages(conversation, 50,
|
||||
timestamp);
|
||||
for (Message message : messages) {
|
||||
message.setConversation(conversation);
|
||||
}
|
||||
return messages;
|
||||
conversation.getMessages().addAll(0, messages);
|
||||
return messages.size();
|
||||
}
|
||||
|
||||
public List<Account> getAccounts() {
|
||||
|
|
|
@ -165,14 +165,15 @@ public class ConversationFragment extends Fragment {
|
|||
if (firstVisibleItem == 0 && messagesLoaded) {
|
||||
long timestamp = messageList.get(0).getTimeSent();
|
||||
messagesLoaded = false;
|
||||
List<Message> messages = activity.xmppConnectionService
|
||||
.getMoreMessages(conversation, timestamp);
|
||||
messageList.addAll(0, messages);
|
||||
int size = activity.xmppConnectionService.loadMoreMessages(
|
||||
conversation, timestamp);
|
||||
messageList.clear();
|
||||
messageList.addAll(conversation.getMessages());
|
||||
messageListAdapter.notifyDataSetChanged();
|
||||
if (messages.size() != 0) {
|
||||
if (size != 0) {
|
||||
messagesLoaded = true;
|
||||
}
|
||||
messagesView.setSelectionFromTop(messages.size() + 1, 0);
|
||||
messagesView.setSelectionFromTop(size + 1, 0);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -492,7 +493,7 @@ public class ConversationFragment extends Fragment {
|
|||
|
||||
private void messageSent() {
|
||||
int size = this.messageList.size();
|
||||
if (size >= 1) {
|
||||
if (size >= 1 && this.messagesView.getLastVisiblePosition() != size - 1) {
|
||||
messagesView.setSelection(size - 1);
|
||||
}
|
||||
mEditMessage.setText("");
|
||||
|
|
Loading…
Reference in New Issue