package org.qii.weiciyuan.ui.search;
import org.qii.weiciyuan.bean.SearchStatusListBean;
import org.qii.weiciyuan.bean.android.AsyncTaskLoaderResult;
import org.qii.weiciyuan.support.utils.GlobalContext;
import org.qii.weiciyuan.ui.basefragment.AbstractMessageTimeLineFragment;
import org.qii.weiciyuan.ui.browser.BrowserWeiboMsgActivity;
import org.qii.weiciyuan.ui.loader.SearchStatusLoader;
import android.os.Bundle;
import android.support.v4.content.Loader;
import android.view.View;
import android.widget.AdapterView;
/**
* User: qii
* Date: 12-11-10
*/
public class SearchStatusFragment extends AbstractMessageTimeLineFragment<SearchStatusListBean> {
private int page = 1;
private SearchStatusListBean bean = new SearchStatusListBean();
@Override
public SearchStatusListBean getList() {
return bean;
}
public SearchStatusFragment() {
}
public void search() {
pullToRefreshListView.setRefreshing();
loadNewMsg();
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRetainInstance(false);
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putParcelable("bean", bean);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
if (savedInstanceState != null && bean.getItemList().size() == 0) {
clearAndReplaceValue((SearchStatusListBean) savedInstanceState.getParcelable("bean"));
timeLineAdapter.notifyDataSetChanged();
}
refreshLayout(bean);
}
protected void listViewItemClick(AdapterView parent, View view, int position, long id) {
startActivity(BrowserWeiboMsgActivity.newIntent(bean.getItem(position),
GlobalContext.getInstance().getSpecialToken()));
}
@Override
protected Loader<AsyncTaskLoaderResult<SearchStatusListBean>> onCreateNewMsgLoader(int id,
Bundle args) {
String token = GlobalContext.getInstance().getSpecialToken();
String word = ((SearchMainParentFragment) getParentFragment()).getSearchWord();
page = 1;
return new SearchStatusLoader(getActivity(), token, word, String.valueOf(page));
}
@Override
protected Loader<AsyncTaskLoaderResult<SearchStatusListBean>> onCreateOldMsgLoader(int id,
Bundle args) {
String token = GlobalContext.getInstance().getSpecialToken();
String word = ((SearchMainParentFragment) getParentFragment()).getSearchWord();
return new SearchStatusLoader(getActivity(), token, word, String.valueOf(page + 1));
}
@Override
protected void newMsgLoaderSuccessCallback(SearchStatusListBean newValue, Bundle loaderArgs) {
if (newValue != null && getActivity() != null && newValue.getSize() > 0) {
getList().addNewData(newValue);
getAdapter().notifyDataSetChanged();
getListView().setSelectionAfterHeaderView();
getActivity().invalidateOptionsMenu();
}
}
@Override
protected void oldMsgLoaderSuccessCallback(SearchStatusListBean newValue) {
if (newValue != null && newValue.getSize() > 0) {
getList().addOldData(newValue);
getAdapter().notifyDataSetChanged();
getActivity().invalidateOptionsMenu();
page++;
}
}
}