package com.wenming.weiswift.ui.common;
import android.text.TextUtils;
import com.wenming.weiswift.entity.Comment;
import com.wenming.weiswift.entity.Status;
import java.util.Random;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 在数据与UI控件绑定前,对数据进行进一步处理,使用正则表达式或者其他方式提取出里面的信息
* Created by wenmingvs on 16/6/10.
*/
public class FillContentHelper {
/**
* 提取Status中的微博来源的关键字字段
*
* @param status
*/
public static void setSource(Status status) {
//如果字段是空的,就没必要在接着下去了。服务器确实有时候会返回空
if (TextUtils.isEmpty(status.source)) {
return;
}
//如果已经提取过关键字,就不需要再处理
if (!status.source.contains("</a>")) {
return;
}
Pattern mpattern = Pattern.compile("<(.*?)>(.*?)</a>");
Matcher mmatcher = mpattern.matcher(status.source);
if (mmatcher.find()) {
String weibocomefrom = mmatcher.group(2);
status.source = weibocomefrom;
}
}
/**
* 提取Status中的微博来源的关键字字段
*
* @param comment
*/
public static void setSource(Comment comment) {
//如果字段是空的,就没必要在接着下去了。服务器确实有时候会返回空
if (TextUtils.isEmpty(comment.source)) {
return;
}
//如果已经提取过关键字,就不需要再处理
if (!comment.source.contains("</a>")) {
return;
}
Pattern mpattern = Pattern.compile("<(.*?)>(.*?)</a>");
Matcher mmatcher = mpattern.matcher(comment.source);
if (mmatcher.find()) {
String weibocomefrom = mmatcher.group(2);
comment.source = weibocomefrom;
}
if (comment.status != null) {
setSource(comment.status);
}
}
/**
* 设置三种类型图片的url地址
*
* @param status
*/
public static void setImgUrl(Status status) {
//如果微博存在图片
if (status.pic_urls != null && status.pic_urls.size() > 0) {
//如果本地私有字段已经被处理过了,就不需要再处理
if (status.bmiddle_pic_urls.size() > 0) {
return;
}
for (Status.PicUrlsBean picUrlsBean : status.pic_urls) {
status.thumbnail_pic_urls.add(picUrlsBean.thumbnail_pic);
status.bmiddle_pic_urls.add(picUrlsBean.thumbnail_pic.replace("thumbnail", "bmiddle"));
if (!picUrlsBean.thumbnail_pic.endsWith(".gif")) {
status.origin_pic_urls.add(picUrlsBean.thumbnail_pic.replace("thumbnail", "large"));
} else {
status.origin_pic_urls.add(picUrlsBean.thumbnail_pic.replace("thumbnail", "bmiddle"));
}
}
}
}
/**
* 如果这条微博只包含一张图,就给这张图片设置一个随机的尺寸,
* 注意:
* 这里使用status中的mlevel这个废弃的字段来作为变量
*
* @param status
*/
public static void setSingleImgSizeType(Status status) {
if (status.pic_urls != null && status.pic_urls.size() == 1) {
//从本地加载缓存,如果已经被赋值,就不再继续取随机数
if (!TextUtils.isEmpty(status.singleImgSizeType)) {
return;
}
status.singleImgSizeType = String.valueOf(new Random().nextInt(3) + 1);
}
}
}