package me.storm.ninegag.model; import android.database.Cursor; import android.media.Image; import com.google.gson.Gson; import java.util.ArrayList; import java.util.HashMap; import me.storm.ninegag.dao.FeedsDataHelper; /** * Created by storm on 14-3-25. */ public class Feed extends BaseModel { private static final HashMap<String, Feed> CACHE = new HashMap<String, Feed>(); public String id; public String caption; public String link; public Image images; public Vote votes; public class Image { public String small; public String normal; public String large; } private class Vote { public int count; } private static void addToCache(Feed feed) { CACHE.put(feed.id, feed); } private static Feed getFromCache(String id) { return CACHE.get(id); } public static Feed fromJson(String json) { return new Gson().fromJson(json, Feed.class); } public static Feed fromCursor(Cursor cursor) { String id = cursor.getString(cursor.getColumnIndex(FeedsDataHelper.FeedsDBInfo.ID)); Feed feed = getFromCache(id); if (feed != null) { return feed; } feed = new Gson().fromJson( cursor.getString(cursor.getColumnIndex(FeedsDataHelper.FeedsDBInfo.JSON)), Feed.class); addToCache(feed); return feed; } public static class FeedRequestData { public ArrayList<Feed> data; public Paging paging; public String getPage() { return paging.next; } } private class Paging { public String next; } }