package tk.djcrazy.MyCC98.fragment;
import java.util.Iterator;
import java.util.List;
import tk.djcrazy.MyCC98.SettingsActivity;
import tk.djcrazy.MyCC98.adapter.BaseItemListAdapter;
import tk.djcrazy.MyCC98.adapter.PostListViewAdapter;
import tk.djcrazy.libCC98.NewCC98Service;
import tk.djcrazy.libCC98.data.PostEntity;
import tk.djcrazy.libCC98.data.PostType;
import tk.djcrazy.libCC98.util.RequestResultListener;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.view.View;
import android.widget.ListView;
import com.google.inject.Inject;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
public class PostListFragment extends PagedPullTofreshListFragment<PostEntity> {
private static final String TAG = "PostListFragment";
private static final String BOARD_ID = "boardId";
private static final String BOARD_NAME = "boardName";
@Inject
private NewCC98Service service;
private String boardId;
private String boardName;
private boolean enableTopPost;
public static PostListFragment createInstance(String boardId,
String boardName) {
PostListFragment fragment = new PostListFragment();
Bundle bundle = new Bundle();
bundle.putString(BOARD_ID, boardId);
bundle.putString(BOARD_NAME, boardName);
fragment.setArguments(bundle);
return fragment;
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
Bundle bundle = getArguments();
boardId = bundle.getString(BOARD_ID);
boardName = bundle.getString(BOARD_NAME);
SharedPreferences sharedPref = PreferenceManager
.getDefaultSharedPreferences(getActivity());
enableTopPost = sharedPref.getBoolean(
SettingsActivity.SHOW_TOP, true);
super.onViewCreated(view, savedInstanceState);
}
@Override
public void onRequestComplete(List<PostEntity> result) {
if (!enableTopPost) {
Iterator<PostEntity> iterator = result.iterator();
while (iterator.hasNext()) {
PostEntity postEntity = (PostEntity) iterator.next();
if (postEntity.getPostType().equals(PostType.TOP)|
postEntity.getPostType().equals(PostType.Z_TOP)|
postEntity.getPostType().equals(PostType.TOP_B)) {
iterator.remove();
}
}
}
super.onRequestComplete(result);
}
@Override
public void onRefresh(PullToRefreshBase<ListView> refreshView) {
super.onRefresh(refreshView);
service.submitPostList(this.getClass(), boardId, 1, this);
}
@Override
public void onLoadMore(int page, RequestResultListener<List<PostEntity>> listener) {
service.submitPostList(this.getClass(), boardId, page, listener);
}
@Override
public int getTotalPage() {
return 32767;
}
@Override
public void onCancelRequest() {
service.cancelRequest(this.getClass());
}
@Override
protected BaseItemListAdapter<PostEntity> createAdapter(
List<PostEntity> items) {
return new PostListViewAdapter(getActivity(), items, boardId, boardName);
}
}