Commit cfeed485 authored by Grigory Fedorov's avatar Grigory Fedorov

ChatViewerAdapter, ChatScroller: refactoring, unused core removed.

parent 1fdaade5
......@@ -6,13 +6,11 @@ import android.app.FragmentManager;
import android.support.v13.app.FragmentStatePagerAdapter;
import android.view.ViewGroup;
import com.xabber.android.data.LogManager;
import com.xabber.android.data.entity.BaseEntity;
import com.xabber.android.data.message.AbstractChat;
import com.xabber.android.data.message.MessageManager;
import com.xabber.android.ui.ChatViewerFragment;
import com.xabber.android.ui.RecentChatFragment;
import com.xabber.android.ui.helper.ChatScroller;
import com.xabber.xmpp.address.Jid;
import java.util.ArrayList;
......@@ -30,15 +28,10 @@ public class ChatViewerAdapter extends FragmentStatePagerAdapter {
*/
private final AbstractChat intent;
private ArrayList<AbstractChat> activeChats;
private FinishUpdateListener finishUpdateListener;
private RecentChatFragment.RecentChatFragmentInteractionListener recentChatFragmentInteractionListener;
private Fragment currentFragment;
public ChatViewerAdapter(FragmentManager fragmentManager, BaseEntity chat, ChatScroller chatScroller) {
public ChatViewerAdapter(FragmentManager fragmentManager, BaseEntity chat) {
super(fragmentManager);
finishUpdateListener = chatScroller;
recentChatFragmentInteractionListener = chatScroller;
activeChats = new ArrayList<>(MessageManager.getInstance().getActiveChats());
intent = MessageManager.getInstance().getOrCreateChat(chat.getAccount(), Jid.getBareAddress(chat.getUser()));
......@@ -46,10 +39,8 @@ public class ChatViewerAdapter extends FragmentStatePagerAdapter {
updateChats();
}
public ChatViewerAdapter(FragmentManager fragmentManager, ChatScroller chatScroller) {
public ChatViewerAdapter(FragmentManager fragmentManager) {
super(fragmentManager);
finishUpdateListener = chatScroller;
recentChatFragmentInteractionListener = chatScroller;
activeChats = new ArrayList<>(MessageManager.getInstance().getActiveChats());
intent = null;
......@@ -80,8 +71,6 @@ public class ChatViewerAdapter extends FragmentStatePagerAdapter {
}
public boolean updateChats() {
LogManager.i(this, "updateChats");
ArrayList<AbstractChat> newChats = new ArrayList<>(MessageManager.getInstance().getActiveChats());
if (intent != null && !newChats.contains(intent)) {
......@@ -102,15 +91,12 @@ public class ChatViewerAdapter extends FragmentStatePagerAdapter {
activeChats = newChats;
LogManager.i(this, "activeChats size " + activeChats.size());
notifyDataSetChanged();
return true;
}
public void clear() {
LogManager.i(this, "clear");
activeChats.clear();
notifyDataSetChanged();
}
......@@ -170,13 +156,6 @@ public class ChatViewerAdapter extends FragmentStatePagerAdapter {
return realPosition - 1;
}
@Override
public void finishUpdate(ViewGroup container) {
super.finishUpdate(container);
finishUpdateListener.onChatViewAdapterFinishUpdate();
}
public ArrayList<AbstractChat> getActiveChats() {
return activeChats;
}
......@@ -196,13 +175,4 @@ public class ChatViewerAdapter extends FragmentStatePagerAdapter {
currentFragment = (Fragment) object;
}
public Fragment getCurrentFragment() {
return currentFragment;
}
public interface FinishUpdateListener {
void onChatViewAdapterFinishUpdate();
}
}
\ No newline at end of file
......@@ -33,7 +33,6 @@ public class ChatScroller implements
OnContactChangedListener,
OnAccountChangedListener,
ViewPager.OnPageChangeListener,
ChatViewerAdapter.FinishUpdateListener,
RecentChatFragment.RecentChatFragmentInteractionListener,
ChatViewerFragment.ChatViewerFragmentListener {
......@@ -45,8 +44,6 @@ public class ChatScroller implements
Collection<ChatViewerFragment> registeredChats = new HashSet<>();
Collection<RecentChatFragment> recentChatFragments = new HashSet<>();
ChatScrollerListener listener;
private String extraText = null;
public ChatScroller(Activity activity) {
chatManager = ChatManager.getInstance();
this.activity = activity;
......@@ -75,9 +72,9 @@ public class ChatScroller implements
public void initChats() {
if (chatManager.getInitialChat() != null) {
chatViewerAdapter = new ChatViewerAdapter(activity.getFragmentManager(), chatManager.getInitialChat(), this);
chatViewerAdapter = new ChatViewerAdapter(activity.getFragmentManager(), chatManager.getInitialChat());
} else {
chatViewerAdapter = new ChatViewerAdapter(activity.getFragmentManager(), this);
chatViewerAdapter = new ChatViewerAdapter(activity.getFragmentManager());
}
viewPager.setAdapter(chatViewerAdapter);
......@@ -100,6 +97,10 @@ public class ChatScroller implements
selectPage();
}
public boolean isInitialized() {
return chatViewerAdapter != null;
}
private void selectPage() {
if (chatManager.getSelectedChat() == null) {
selectRecentChatsPage();
......@@ -249,6 +250,10 @@ public class ChatScroller implements
return chatViewerAdapter.getActiveChats();
}
/**
* ChatViewerFragmentListener
*/
@Override
public void onCloseChat(BaseEntity chat) {
update();
......@@ -269,42 +274,8 @@ public class ChatScroller implements
registeredChats.remove(chat);
}
/**
* FinishUpdateListener
*/
@Override
public void onChatViewAdapterFinishUpdate() {
insertExtraText();
}
private void insertExtraText() {
if (extraText == null) {
return;
}
boolean isExtraTextInserted = false;
for (ChatViewerFragment chat : registeredChats) {
if (chat.isEqual(ChatManager.getInstance().getSelectedChat())) {
chat.setInputText(extraText);
isExtraTextInserted = true;
}
}
if (isExtraTextInserted) {
extraText = null;
}
}
public boolean isInitialized() {
return chatViewerAdapter != null;
}
public interface ChatScrollerListener {
void onStatusBarNeedPaint(String account);
void onClose(BaseEntity chat);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment