package net.dev123.yibo.service.listener;
import net.dev123.commons.Paging;
import net.dev123.yibo.GroupActivity;
import net.dev123.yibo.R;
import net.dev123.yibo.service.adapter.GroupListAdapter;
import net.dev123.yibo.service.adapter.SocialGraphListAdapter;
import net.dev123.yibo.service.task.GroupTask;
import net.dev123.yibo.service.task.SocialGraphTask;
import net.dev123.yibo.widget.TabButton.OnTabChangeListener;
import android.view.View;
import android.widget.ListView;
public class GroupTabChangeListener implements OnTabChangeListener {
private GroupActivity context;
private SocialGraphItemClickListener socialGraphItemClickListener;
private GroupItemClickListener groupItemClickListener;
private GroupContextMenuListener groupContextMenuListener;
public GroupTabChangeListener(GroupActivity context) {
this.context = context;
this.groupItemClickListener = new GroupItemClickListener(context);
this.socialGraphItemClickListener = new SocialGraphItemClickListener(context);
}
@Override
public void onTabChange(View v, int which) {
ListView lvUser = (ListView) context.findViewById(R.id.lvUser);
Paging<?> paging = null;
boolean isInit = false;
switch (which) {
case 0:
SocialGraphListAdapter sgAdapter = context.getSgAdapter();
if (sgAdapter == null) {
sgAdapter = new SocialGraphListAdapter(context,
context.getCurrentAccount(), context.getSocialGraphType());
context.setSgAdapter(sgAdapter);
new SocialGraphTask(sgAdapter, context.getUser()).execute();
isInit = true;
}
paging = sgAdapter.getPaging();
lvUser.setAdapter(sgAdapter);
lvUser.setOnItemClickListener(socialGraphItemClickListener);
lvUser.setOnCreateContextMenuListener(null);
break;
case 1:
GroupListAdapter groupAdapter = context.getGroupAdapter();
if (groupAdapter == null) {
groupAdapter = new GroupListAdapter(context, context.getCurrentAccount());
context.setGroupAdapter(groupAdapter);
groupContextMenuListener = new GroupContextMenuListener(groupAdapter);
new GroupTask(groupAdapter).execute();
isInit = true;
}
paging = groupAdapter.getPaging();
lvUser.setAdapter(groupAdapter);
lvUser.setOnItemClickListener(groupItemClickListener);
lvUser.setOnCreateContextMenuListener(groupContextMenuListener);
break;
}
if (isInit) {
return;
}
if (paging.hasNext()) {
context.showMoreFooter();
} else {
context.showNoMoreFooter();
}
}
}