package tk.djcrazy.MyCC98.fragment;
import java.util.List;
import tk.djcrazy.MyCC98.PostContentsJSActivity;
import tk.djcrazy.MyCC98.adapter.BaseItemListAdapter;
import tk.djcrazy.MyCC98.adapter.NewTopicListAdapter;
import tk.djcrazy.libCC98.NewCC98Service;
import tk.djcrazy.libCC98.data.SearchResultEntity;
import tk.djcrazy.libCC98.util.RequestResultListener;
import android.os.Bundle;
import android.view.View;
import android.widget.ListView;
import com.google.inject.Inject;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
public class PostSearchListFragment extends PagedPullTofreshListFragment<SearchResultEntity> {
@Inject
private NewCC98Service mService;
private static final String SEARCH_TYPE="search_type";
private static final String SEARCH_KEYWORD="search_keyword";
private static final String SEARCH_BOARDID="search_boardid";
private String mType="0";
private String mKeyword="";
private String mBoardId="0";
private int totalPage = 1;
public static PostSearchListFragment createFragment(String keyword, String boardId, String type) {
PostSearchListFragment fragment = new PostSearchListFragment();
Bundle bundle = new Bundle();
bundle.putString(SEARCH_TYPE, type);
bundle.putString(SEARCH_KEYWORD, keyword);
bundle.putString(SEARCH_BOARDID, boardId);
fragment.setArguments(bundle);
return fragment;
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
mType = getArguments().getString(SEARCH_TYPE);
mKeyword = getArguments().getString(SEARCH_KEYWORD);
mBoardId = getArguments().getString(SEARCH_BOARDID);
super.onViewCreated(view, savedInstanceState);
}
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
startActivity(PostContentsJSActivity.createIntent(items.get(position-1).getBoardId(), items.get(position-1).getPostId()));
}
@Override
protected BaseItemListAdapter<SearchResultEntity> createAdapter(List<SearchResultEntity> items) {
return new NewTopicListAdapter(getActivity(), items);
}
@Override
public void onRefresh(PullToRefreshBase<ListView> refreshView) {
super.onRefresh(refreshView);
mService.submitPostSearch(this.getClass(), mKeyword, mBoardId, mType, 1, this);
}
@Override
public void onRequestComplete(List<SearchResultEntity> result) {
totalPage = result.size()>0? (int)Math.ceil(Integer.parseInt(result.get(0).getTotalResult())*1.0/25):0;
super.onRequestComplete(result);
}
@Override
public void onLoadMore(int page, RequestResultListener<List<SearchResultEntity>> listener) {
mService.submitPostSearch(this.getClass(), mKeyword, mBoardId, mType, page, listener);
}
@Override
public int getTotalPage() {
return totalPage;
}
@Override
public void onCancelRequest() {
mService.cancelRequest(this.getClass());
}
}