package com.xinxin.everyxday.base.loopj.jsoncache;
import com.xinxin.everyxday.EveryXDayApplication;
import com.xinxin.everyxday.global.InterfaceUrlDefine;
import com.xinxin.everyxday.util.Md5Encode;
import com.xinxin.everyxday.util.StringUtil;
import java.io.File;
//TODO
/**
* 缓存策略类 指定缓存生成规则
* 列表数据缓存需要做 CommonResponseHeader(记录加载状态) 和 responseString(列表数据) 两个文件缓存
*/
public class ResponseCachePolicy extends ResponseCachePolicyBase {
private static ResponseCachePolicy responseCachePolicy;
public static ResponseCachePolicy getInstance() {
if (responseCachePolicy == null) {
responseCachePolicy = new ResponseCachePolicy();
}
return responseCachePolicy;
}
@Override
protected String getResponseHeaderCacheFilePath(String requestUrl, int page){
return EveryXDayApplication.getInstance().getLocalStorageUtil().getFileCacheAbsoluteDir() +
File.separator+ Md5Encode.getMD5(requestUrl + page + "header");
}
@Override
protected boolean isNeedResponseHeaderCache(String requestUrl, int page){
if (!StringUtil.isEmpty(requestUrl)) {
if (requestUrl.contains(InterfaceUrlDefine.GUIDES_MAIN_URL)) {
if (page == 1) {
return true;
}
}
}
return false;
}
//本地缓存文件规则
@Override
protected String getDataCacheFilePath(String requestUrl, int page){
return EveryXDayApplication.getInstance().getLocalStorageUtil().getFileCacheAbsoluteDir() +
File.separator+ Md5Encode.getMD5(requestUrl+page);
}
@Override
// 接口缓存规则 具体指定哪些数据需要缓存
protected boolean isNeedDataCache(String requestUrl, int page) {
if (!StringUtil.isEmpty(requestUrl)) {
if(page == 1){
if (requestUrl.contains(InterfaceUrlDefine.GUIDES_MAIN_URL)) {
return true;
}
}
}
return false;
}
}