package org.qii.weiciyuan.ui.basefragment;
import org.qii.weiciyuan.R;
import org.qii.weiciyuan.bean.UserBean;
import org.qii.weiciyuan.bean.UserListBean;
import org.qii.weiciyuan.support.settinghelper.SettingUtility;
import org.qii.weiciyuan.support.utils.AppConfig;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.os.Handler;
import android.text.TextUtils;
import android.widget.AbsListView;
import java.util.List;
/**
* User: qii
* Date: 12-11-10
*/
public abstract class AbstractFriendsFanListFragment extends AbstractUserListFragment {
public AbstractFriendsFanListFragment() {
}
//this api has bug, check cursor before add data
@Override
protected void oldUserLoaderSuccessCallback(UserListBean newValue) {
if (newValue != null && newValue.getUsers().size() > 0
&& newValue.getPrevious_cursor() != bean.getPrevious_cursor()) {
List<UserBean> list = newValue.getUsers();
getList().getUsers().addAll(list);
bean.setNext_cursor(newValue.getNext_cursor());
buildActionBarSubtitle();
}
}
@Override
protected void newUserLoaderSuccessCallback() {
buildActionBarSubtitle();
}
protected void buildActionBarSubtitle() {
if (!TextUtils.isEmpty(getCurrentUser().getFriends_count())) {
int size = Integer.valueOf(getCurrentUser().getFriends_count());
int newSize = bean.getTotal_number();
String number = "";
if (size >= newSize) {
number = bean.getUsers().size() + "/" + size;
} else {
number = bean.getUsers().size() + "/" + newSize;
}
getActivity().getActionBar().setSubtitle(number);
}
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
switch (getCurrentState(savedInstanceState)) {
case FIRST_TIME_START:
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
if (getActivity() != null) {
pullToRefreshListView.setRefreshing();
loadNewMsg();
}
}
}, AppConfig.REFRESH_DELAYED_MILL_SECOND_TIME);
break;
case SCREEN_ROTATE:
//nothing
refreshLayout(bean);
break;
case ACTIVITY_DESTROY_AND_CREATE:
clearAndReplaceValue((UserListBean) savedInstanceState.getParcelable("bean"));
getAdapter().notifyDataSetChanged();
break;
}
refreshLayout(bean);
getListView().setChoiceMode(AbsListView.CHOICE_MODE_SINGLE);
if (SettingUtility.isFollowingOrFanListFirstShow()) {
new AlertDialog.Builder(getActivity()).setTitle(R.string.tip)
.setMessage(R.string.following_and_fan_list_tip)
.setPositiveButton(R.string.confirm, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
}).show();
}
}
protected abstract UserBean getCurrentUser();
}