package de.thedevstack.conversationsplus.ui.listeners; import android.support.v4.widget.SwipeRefreshLayout; import android.util.Log; import android.widget.ListView; import java.util.List; import de.thedevstack.conversationsplus.Config; import de.thedevstack.conversationsplus.entities.Message; import de.thedevstack.conversationsplus.ui.ConversationActivity; import de.thedevstack.conversationsplus.ui.ConversationFragment; import de.thedevstack.conversationsplus.ui.adapter.MessageAdapter; /** * This listener starts loading messages from the server. */ public class ConversationSwipeRefreshListener implements SwipeRefreshLayout.OnRefreshListener { private List messageList; private ConversationFragment fragment; private ConversationMoreMessagesLoadedListener listener; public ConversationSwipeRefreshListener(List messageList, SwipeRefreshLayout swipeLayout, ConversationFragment fragment, ListView messagesView, MessageAdapter messageListAdapter) { this.messageList = messageList; this.fragment = fragment; this.listener = new ConversationMoreMessagesLoadedListener(swipeLayout, messageList, fragment, messagesView, messageListAdapter); } @Override public void onRefresh() { Log.d(Config.LOGTAG, "Refresh swipe container"); synchronized (this.messageList) { long timestamp; if (messageList.isEmpty()) { timestamp = System.currentTimeMillis(); } else { timestamp = this.messageList.get(0).getTimeSent(); // works only because of the ordering (last msg = first msg in list) } ConversationActivity activity = (ConversationActivity) fragment.getActivity(); activity.xmppConnectionService.loadMoreMessages(activity.getSelectedConversation(), timestamp, this.listener); } Log.d(Config.LOGTAG, "End Refresh swipe container"); } }