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