package net.dev123.yibo; import net.dev123.mblog.entity.User; import net.dev123.yibo.common.theme.ThemeUtil; import net.dev123.yibo.db.LocalAccount; import net.dev123.yibo.service.adapter.GroupListAdapter; import net.dev123.yibo.service.adapter.SocialGraphListAdapter; import net.dev123.yibo.service.listener.GoBackClickListener; import net.dev123.yibo.service.listener.GroupTabChangeListener; import net.dev123.yibo.service.listener.UserRecyclerListener; import net.dev123.yibo.service.task.GroupTask; import net.dev123.yibo.service.task.SocialGraphTask; import net.dev123.yibo.widget.TabButton; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.TextView; public class GroupActivity extends BaseActivity { public static final int TAB_TYPE_ALL = 0; public static final int TAB_TYPE_GROUP = 1; private YiBoApplication yibo; private LocalAccount currentAccount; private SocialGraphListAdapter sgAdapter; private GroupListAdapter groupAdapter; private int tabType; private int socialGraphType = SocialGraphTask.TYPE_FRIENDS; private User user; private Button btnTabLeft; private Button btnTabRight; private ListView lvUser; private View listFooter; private UserRecyclerListener userRecyclerListener; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.group); yibo = (YiBoApplication) getApplication(); currentAccount = yibo.getCurrentAccount(); initComponents(); bindEvent(); //executeTask(); } private void initComponents() { LinearLayout llRoot = (LinearLayout)this.findViewById(R.id.llRoot); LinearLayout llHeaderBase = (LinearLayout)this.findViewById(R.id.llHeaderBase); LinearLayout llTabHeader = (LinearLayout)this.findViewById(R.id.llTabHeader); lvUser = (ListView)this.findViewById(R.id.lvUser); ThemeUtil.setRootBackground(llRoot); ThemeUtil.setSecondaryHeader(llHeaderBase); ThemeUtil.setHeaderToggleTab(llTabHeader); ThemeUtil.setListViewStyle(lvUser); Intent intent = this.getIntent(); user = (User)intent.getSerializableExtra("USER"); if (user == null) { return; } tabType = intent.getIntExtra("TAB_TYPE", TAB_TYPE_ALL); TextView tvTitle = (TextView)this.findViewById(R.id.tvTitle); String title = this.getString(R.string.title_group, user.getFriendsCount()); tvTitle.setText(title); btnTabLeft = (Button) this.findViewById(R.id.btnTabLeft); btnTabLeft.setText(R.string.label_tab_all); btnTabRight = (Button) this.findViewById(R.id.btnTabRight); btnTabRight.setText(R.string.label_tab_group); lvUser.setFastScrollEnabled(yibo.isSliderEnabled()); userRecyclerListener = new UserRecyclerListener(); lvUser.setRecyclerListener(userRecyclerListener); setBack2Top(lvUser); } private void bindEvent() { Button btnBack = (Button)this.findViewById(R.id.btnBack); btnBack.setOnClickListener(new GoBackClickListener()); btnTabLeft = (Button) this.findViewById(R.id.btnTabLeft); btnTabRight = (Button) this.findViewById(R.id.btnTabRight); TabButton tabButton = new TabButton(); tabButton.addButton(btnTabLeft); tabButton.addButton(btnTabRight); GroupTabChangeListener tabChangeListener = new GroupTabChangeListener(this); tabButton.setOnTabChangeListener(tabChangeListener); if (tabType == TAB_TYPE_ALL) { tabButton.toggleButton(btnTabLeft); } else if (tabType == TAB_TYPE_GROUP) { tabButton.toggleButton(btnTabRight); } } private void executeTask() { if (!btnTabLeft.isEnabled()) { new SocialGraphTask(sgAdapter, user).execute(); } else { new GroupTask(groupAdapter).execute(); } } public void showLoadingFooter() { if (listFooter != null) { lvUser.removeFooterView(listFooter); } listFooter = getLayoutInflater().inflate(R.layout.list_item_loading, null); ThemeUtil.setListViewLoading(listFooter); lvUser.addFooterView(listFooter); } public void showMoreFooter() { if (listFooter != null) { lvUser.removeFooterView(listFooter); } listFooter = getLayoutInflater().inflate(R.layout.list_item_more, null); ThemeUtil.setListViewMore(listFooter); listFooter.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { executeTask(); } }); lvUser.addFooterView(listFooter); } public void showNoMoreFooter() { if (listFooter != null) { lvUser.removeFooterView(listFooter); } listFooter = getLayoutInflater().inflate(R.layout.list_item_more, null); ThemeUtil.setListViewMore(listFooter); TextView tvFooter = (TextView) listFooter.findViewById(R.id.tvFooter); tvFooter.setText(R.string.label_no_more); lvUser.addFooterView(listFooter); } public SocialGraphListAdapter getSgAdapter() { return sgAdapter; } public void setSgAdapter(SocialGraphListAdapter sgAdapter) { this.sgAdapter = sgAdapter; } public GroupListAdapter getGroupAdapter() { return groupAdapter; } public void setGroupAdapter(GroupListAdapter groupAdapter) { this.groupAdapter = groupAdapter; } public int getSocialGraphType() { return socialGraphType; } public void setSocialGraphType(int socialGraphType) { this.socialGraphType = socialGraphType; } public LocalAccount getCurrentAccount() { return currentAccount; } public void setCurrentAccount(LocalAccount currentAccount) { this.currentAccount = currentAccount; } public User getUser() { return user; } }