package org.aisen.weibo.sina.ui.fragment.topics; import org.aisen.weibo.sina.R; import org.aisen.weibo.sina.support.utils.AppContext; import org.aisen.weibo.sina.ui.fragment.timeline.ATimelineFragment; import org.sina.android.SinaSDK; import org.sina.android.bean.StatusContent; import org.sina.android.bean.StatusContents; import android.os.Bundle; import android.view.LayoutInflater; import com.m.support.paging.IPaging; import com.m.support.paging.PageIndexPaging; import com.m.support.task.TaskException; import com.m.ui.fragment.ABaseFragment; /** * 搜索某一话题下的微博 * * @author wangdan * */ public class TopicsFragment extends ATimelineFragment { public static ABaseFragment newInstance(String q) { ABaseFragment fragment = new TopicsFragment(); Bundle args = new Bundle(); args.putString("q", q); fragment.setArguments(args); return fragment; } private String query; @Override protected void layoutInit(LayoutInflater inflater, Bundle savedInstanceSate) { super.layoutInit(inflater, savedInstanceSate); query = savedInstanceSate != null ? savedInstanceSate.getString("q") : getArguments().getString("q"); getActivity().getActionBar().setTitle(R.string.title_topics); getActivity().getActionBar().setSubtitle(query); getActivity().getActionBar().setDisplayShowHomeEnabled(false); getActivity().getActionBar().setDisplayHomeAsUpEnabled(true); } @Override protected RefreshListType configListType() { return RefreshListType.actionbarPulltorefresh; } @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putString("q", query); } @Override protected void requestData(RefreshMode mode) { new TopicsTimelineTask(mode == RefreshMode.refresh ? RefreshMode.reset : mode).execute(); } @Override protected IPaging<StatusContent, StatusContents> configPaging() { return new PageIndexPaging<StatusContent, StatusContents>("total_number"); } class TopicsTimelineTask extends TimelineTask { public TopicsTimelineTask(RefreshMode mode) { super(mode); } @Override protected StatusContents workInBackground(RefreshMode mode, String previousPage, String nextPage, Void... params) throws TaskException { return SinaSDK.getInstance(AppContext.getToken()).searchTopics(nextPage, query, "30"); } } }