Skip to content

Commit 352c805

Browse files
committed
add entrance of blogerbloglist in searchlist
1 parent f26c49f commit 352c805

File tree

3 files changed

+49
-1
lines changed

3 files changed

+49
-1
lines changed

app/src/main/java/com/brian/csdnblog/activity/SearchActivity.java

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,10 @@
66
import android.os.Bundle;
77
import android.os.Handler;
88
import android.os.Message;
9+
import android.text.Spannable;
10+
import android.text.SpannableStringBuilder;
911
import android.text.TextUtils;
12+
import android.text.style.ForegroundColorSpan;
1013
import android.view.KeyEvent;
1114
import android.view.View;
1215
import android.view.View.OnClickListener;
@@ -28,9 +31,12 @@
2831
import com.brian.csdnblog.manager.DataFetcher.Result;
2932
import com.brian.csdnblog.manager.ThreadManager;
3033
import com.brian.csdnblog.manager.UsageStatsManager;
34+
import com.brian.csdnblog.model.Bloger;
3135
import com.brian.csdnblog.model.SearchResult;
3236
import com.brian.csdnblog.parser.CSDNHtmlParser;
3337
import com.brian.csdnblog.util.CommonAdapter;
38+
import com.brian.csdnblog.util.LogUtil;
39+
import com.brian.csdnblog.util.ResourceUtil;
3440
import com.brian.csdnblog.util.ToastUtil;
3541
import com.brian.csdnblog.util.UIUtil;
3642
import com.brian.csdnblog.util.WeakRefHandler;
@@ -82,13 +88,38 @@ private void initUI() {
8288
mTitleBar.setRightImageVisible(View.INVISIBLE);
8389

8490
mAdapter = new CommonAdapter<SearchResult>(Env.getContext(), null, R.layout.item_list_search) {
85-
91+
private ForegroundColorSpan mColorSpanName = new ForegroundColorSpan(ResourceUtil.getColor(R.color.light_blue));
8692
@Override
8793
public void convert(ViewHolder holder, final SearchResult item) {
8894
holder.setText(R.id.title, item.title);
8995
holder.setText(R.id.authorTime, item.authorTime);
9096
holder.setText(R.id.searchDetail, item.searchDetail);
9197

98+
TextView nameView = holder.getView(R.id.authorTime);
99+
Bloger bloger = Bloger.fromJson(item.blogerJson);
100+
if (bloger != null && !TextUtils.isEmpty(bloger.nickName) && !TextUtils.isEmpty(item.authorTime)) {
101+
SpannableStringBuilder builder = new SpannableStringBuilder(item.authorTime);
102+
int indexStart = item.authorTime.indexOf(bloger.nickName);
103+
builder.setSpan(mColorSpanName, indexStart, indexStart + bloger.nickName.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
104+
nameView.setText(builder);
105+
} else {
106+
nameView.setText(item.authorTime);
107+
}
108+
109+
nameView.setOnClickListener(new OnClickListener() {
110+
@Override
111+
public void onClick(View v) {
112+
if (!TextUtils.isEmpty(item.blogerID)) {
113+
LogUtil.log(item.blogerJson);
114+
Bloger bloger = Bloger.fromJson(item.blogerJson);
115+
if (bloger != null) {
116+
BlogerBlogListActivity.startActivity(SearchActivity.this, item.type, bloger);
117+
UsageStatsManager.sendUsageData(UsageStatsManager.USAGE_BLOGER_ENTR, "bloglist");
118+
}
119+
}
120+
}
121+
});
122+
92123
holder.setOnClickListener(new OnClickListener() {
93124
@Override
94125
public void onClick(View v) {

app/src/main/java/com/brian/csdnblog/model/SearchResult.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ public class SearchResult implements Serializable {
88
public String authorTime = "";
99
public String searchDetail = "";
1010
public String link = "";
11+
public String blogerJson = "";
12+
public String blogerID = "";
1113
public int type;
1214

1315
@Override

app/src/main/java/com/brian/csdnblog/parser/CSDNHtmlParser.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,21 @@ private List<SearchResult> doGetSearchResultList(String strResult) {
294294
} else {
295295
temp.link = link.select("a").attr("href");
296296
}
297+
298+
String homePageUrl = element.getElementsByClass("author-time").get(0).select("a").attr("href");
299+
if (!TextUtils.isEmpty(homePageUrl)) {
300+
Bloger bloger = new Bloger();
301+
bloger.blogerType = TYPE;
302+
bloger.nickName = element.getElementsByClass("author-time").get(0).select("a").text();
303+
// bloger.headUrl = element.getElementsByClass("head").get(0).select("img").attr("src");
304+
bloger.homePageUrl = homePageUrl.replace("my.csdn.net", "blog.csdn.net");
305+
bloger.blogerID = Bloger.getBlogerId(bloger.homePageUrl);
306+
307+
// BlogerTable.getInstance().insert(bloger);//保存用户信息
308+
temp.blogerJson = bloger.toJson();
309+
temp.blogerID = bloger.blogerID;
310+
}
311+
297312
resultList.add(temp);
298313
}
299314
return resultList;

0 commit comments

Comments
 (0)