package org.qii.weiciyuan.ui.userinfo; import org.qii.weiciyuan.bean.UserBean; import org.qii.weiciyuan.bean.UserListBean; import org.qii.weiciyuan.bean.android.AsyncTaskLoaderResult; import org.qii.weiciyuan.support.utils.GlobalContext; import org.qii.weiciyuan.ui.actionmenu.MyFriendSingleChoiceModeListener; import org.qii.weiciyuan.ui.actionmenu.NormalFriendShipSingleChoiceModeListener; import org.qii.weiciyuan.ui.basefragment.AbstractFriendsFanListFragment; import org.qii.weiciyuan.ui.loader.FriendUserLoader; import android.os.Bundle; import android.support.v4.content.Loader; import android.view.View; import android.widget.AdapterView; /** * User: Jiang Qi * Date: 12-8-16 */ public class FriendsListFragment extends AbstractFriendsFanListFragment { public static FriendsListFragment newInstance(UserBean userBean) { FriendsListFragment fragment = new FriendsListFragment(); Bundle bundle = new Bundle(); bundle.putParcelable("userBean", userBean); fragment.setArguments(bundle); return fragment; } public FriendsListFragment() { } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); getListView().setOnItemLongClickListener(new FriendListOnItemLongClickListener()); } @Override protected UserBean getCurrentUser() { return getArguments().getParcelable("userBean"); } private class FriendListOnItemLongClickListener implements AdapterView.OnItemLongClickListener { @Override public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { if (position - 1 < getList().getUsers().size() && position - 1 >= 0) { if (actionMode != null) { actionMode.finish(); actionMode = null; getListView().setItemChecked(position, true); getAdapter().notifyDataSetChanged(); if (getCurrentUser().getId() .equals(GlobalContext.getInstance().getCurrentAccountId())) { actionMode = getActivity().startActionMode( new MyFriendSingleChoiceModeListener(getListView(), getAdapter(), FriendsListFragment.this, bean.getUsers().get(position - 1))); } else { actionMode = getActivity().startActionMode( new NormalFriendShipSingleChoiceModeListener(getListView(), getAdapter(), FriendsListFragment.this, bean.getUsers().get(position - 1))); } return true; } else { getListView().setItemChecked(position, true); getAdapter().notifyDataSetChanged(); if (getCurrentUser().getId() .equals(GlobalContext.getInstance().getCurrentAccountId())) { actionMode = getActivity().startActionMode( new MyFriendSingleChoiceModeListener(getListView(), getAdapter(), FriendsListFragment.this, bean.getUsers().get(position - 1))); } else { actionMode = getActivity().startActionMode( new NormalFriendShipSingleChoiceModeListener(getListView(), getAdapter(), FriendsListFragment.this, bean.getUsers().get(position - 1))); } return true; } } return false; } } @Override protected Loader<AsyncTaskLoaderResult<UserListBean>> onCreateNewUserLoader(int id, Bundle args) { String token = GlobalContext.getInstance().getSpecialToken(); String cursor = String.valueOf(0); return new FriendUserLoader(getActivity(), token, getCurrentUser().getId(), cursor); } @Override protected Loader<AsyncTaskLoaderResult<UserListBean>> onCreateOldUserLoader(int id, Bundle args) { if (getList().getUsers().size() > 0 && Integer.valueOf(getList().getNext_cursor()) == 0) { return null; } String token = GlobalContext.getInstance().getSpecialToken(); String cursor = String.valueOf(bean.getNext_cursor()); return new FriendUserLoader(getActivity(), token, getCurrentUser().getId(), cursor); } }