package com.xabber.android.ui.adapter;
import android.app.Fragment;
import android.app.FragmentManager;
import android.support.annotation.NonNull;
import android.support.v13.app.FragmentPagerAdapter;
import android.view.ViewGroup;
import com.xabber.android.data.entity.AccountJid;
import com.xabber.android.data.entity.UserJid;
import com.xabber.android.ui.fragment.ChatFragment;
import com.xabber.android.ui.fragment.RecentChatFragment;
public class ChatViewerAdapter extends FragmentPagerAdapter {
private static final String LOG_TAG = ChatViewerAdapter.class.getSimpleName();
public static final int PAGE_POSITION_RECENT_CHATS = 0;
public static final int PAGE_POSITION_CHAT = 1;
public interface FinishUpdateListener {
void onChatViewAdapterFinishUpdate();
}
private AccountJid accountJid;
private UserJid userJid;
private int itemCount;
private FinishUpdateListener finishUpdateListener;
public ChatViewerAdapter(FragmentManager fragmentManager,
FinishUpdateListener finishUpdateListener) {
super(fragmentManager);
this.finishUpdateListener = finishUpdateListener;
itemCount = 1;
}
public ChatViewerAdapter(FragmentManager fragmentManager,
FinishUpdateListener finishUpdateListener,
@NonNull AccountJid accountJid,
@NonNull UserJid userJid) {
super(fragmentManager);
this.finishUpdateListener = finishUpdateListener;
setChat(accountJid, userJid);
}
public void selectChat(@NonNull AccountJid accountJid, @NonNull UserJid userJid) {
if (accountJid.equals(this.accountJid) && userJid.equals(this.userJid)) {
return;
}
setChat(accountJid, userJid);
notifyDataSetChanged();
}
private void setChat(@NonNull AccountJid accountJid, @NonNull UserJid userJid) {
itemCount = 2;
this.accountJid = accountJid;
this.userJid = userJid;
}
@Override
public Fragment getItem(int position) {
if (position == PAGE_POSITION_RECENT_CHATS) {
return RecentChatFragment.newInstance();
} else if (position == PAGE_POSITION_CHAT) {
return ChatFragment.newInstance(accountJid, userJid);
} else {
return null;
}
}
@Override
public int getCount() {
return itemCount;
}
@Override
public void finishUpdate(ViewGroup container) {
super.finishUpdate(container);
finishUpdateListener.onChatViewAdapterFinishUpdate();
}
}