package org.aisen.weibo.sina.ui.fragment.timeline; import android.os.Bundle; import android.text.TextUtils; import android.view.LayoutInflater; import org.aisen.android.network.http.Params; import org.aisen.android.network.task.TaskException; import org.aisen.android.support.paging.IPaging; import org.aisen.android.support.paging.PageIndexPaging; import org.aisen.android.ui.activity.basic.BaseActivity; import org.aisen.android.ui.fragment.ABaseFragment; import org.aisen.weibo.sina.base.AppContext; import org.aisen.weibo.sina.sinasdk.SinaSDK; import org.aisen.weibo.sina.sinasdk.bean.PicUrls; import org.aisen.weibo.sina.sinasdk.bean.StatusContent; import org.aisen.weibo.sina.sinasdk.bean.StatusContents; /** * 搜索某一话题下的微博 * * @author wangdan * */ public class TimelineTopicsFragment extends ATimelineFragment { public static ABaseFragment newInstance(String q) { ABaseFragment fragment = new TimelineTopicsFragment(); 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"); BaseActivity activity = (BaseActivity) getActivity(); activity.getSupportActionBar().setTitle(query); activity.getSupportActionBar().setDisplayShowHomeEnabled(false); activity.getSupportActionBar().setDisplayHomeAsUpEnabled(true); } @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putString("q", query); } @Override public void requestData(RefreshMode mode) { new TopicsTimelineTask(mode == RefreshMode.refresh ? RefreshMode.reset : mode).execute(); } @Override protected IPaging<StatusContent, StatusContents> newPaging() { return new PageIndexPaging<StatusContent, StatusContents>("total_number"); } class TopicsTimelineTask extends ATimelineTask { public TopicsTimelineTask(RefreshMode mode) { super(mode); } @Override public StatusContents getStatusContents(Params params) throws TaskException { // 搜索话题没有多图 String nextPage = "1"; if (!TextUtils.isEmpty(params.getParameter("max_id"))) { nextPage = params.getParameter("max_id"); params.remove("max_id"); } StatusContents statuses = SinaSDK.getInstance(AppContext.getAccount().getAdvancedToken()).searchTopics(nextPage, query, "30"); if (statuses != null && statuses.getStatuses().size() > 0) { for (StatusContent status : statuses.getStatuses()) { if (status.getRetweeted_status() != null) status = status.getRetweeted_status(); if (!TextUtils.isEmpty(status.getThumbnail_pic())) { status.setPic_urls(new PicUrls[1]); PicUrls picUrls = new PicUrls(); picUrls.setThumbnail_pic(status.getThumbnail_pic()); status.getPic_urls()[0] = picUrls; } } } return statuses; } } }