package com.socks.jiandan.cache; import android.content.Context; import com.google.gson.reflect.TypeToken; import com.socks.greendao.SisterCacheDao; import com.socks.jiandan.base.JDApplication; import com.socks.jiandan.model.Picture; import com.socks.jiandan.net.JSONParser; import java.util.ArrayList; import de.greenrobot.dao.query.QueryBuilder; public class SisterCache extends BaseCache { private static SisterCache instance; private static SisterCacheDao mPictureCacheDao; private SisterCache() { } public static SisterCache getInstance(Context context) { if (instance == null) { synchronized (SisterCache.class) { if (instance == null) { instance = new SisterCache(); } } mDaoSession = JDApplication.getDaoSession(context); mPictureCacheDao = mDaoSession.getSisterCacheDao(); } return instance; } public void clearAllCache() { mPictureCacheDao.deleteAll(); } @Override public ArrayList<Picture> getCacheByPage(int page) { QueryBuilder<com.socks.greendao.SisterCache> query = mPictureCacheDao.queryBuilder().where(SisterCacheDao .Properties.Page.eq(Integer.toString(page))); if (query.list().size() > 0) { return (ArrayList<Picture>) JSONParser.toObject(query.list().get(0).getResult(), new TypeToken<ArrayList<Picture>>() { }.getType()); } else { return new ArrayList<>(); } } @Override public void addResultCache(String result, int page) { com.socks.greendao.SisterCache pictureCache = new com.socks.greendao.SisterCache(); pictureCache.setResult(result); pictureCache.setPage(page); pictureCache.setTime(System.currentTimeMillis()); mPictureCacheDao.insert(pictureCache); } }