package com.gettingmobile.google.reader.db; import android.database.Cursor; import com.gettingmobile.google.reader.ElementId; import com.gettingmobile.google.reader.Item; import com.gettingmobile.google.reader.Resource; import java.util.Date; import static com.gettingmobile.google.reader.db.ItemTable.*; public class ItemCursorAdapter extends ElementCursorAdapter<Item> { private static final String TAG_ID = "tagId"; @Override public void init(Cursor c) { super.init(c); //To change body of overridden methods use File | Settings | File Templates. } @Override protected Item createEntity() { return new Item(); } @Override public Item readEntity(Cursor c) { final Item item = super.readEntity(c); item.setFeedId(new ElementId(c.getString(c.getColumnIndex(FEED_ID)))); item.setFeedTitle(c.getString(c.getColumnIndex(FEED_TITLE))); item.setRead(c.getInt(c.getColumnIndex(READ)) != 0); final int tagIdCol = c.getColumnIndex(TAG_ID); if (tagIdCol > -1) { final String tagId = c.getString(tagIdCol); if (tagId != null) { item.getTagIds().add(new ElementId(tagId)); } } final long timestamp = c.getLong(c.getColumnIndex(TIMESTAMP)); item.setTimestamp(timestamp > 0 ? new Date(timestamp) : null); final String alternateHref = c.getString(c.getColumnIndex(ALTERNATE_HREF)); if (alternateHref != null) { final Resource alternate = new Resource(); alternate.setHref(alternateHref); alternate.setMimeType(c.getString(c.getColumnIndex(ALTERNATE_MIME_TYPE))); item.setAlternate(alternate); } item.setAuthor(c.getString(c.getColumnIndex(AUTHOR))); final int summaryColumnIndex = c.getColumnIndex(SUMMARY); if (summaryColumnIndex >= 0) { item.setSummary(c.getString(summaryColumnIndex)); } final int contentColumnIndex = c.getColumnIndex(CONTENT); if (contentColumnIndex >= 0) { item.setContent(c.getString(contentColumnIndex)); } item.setHasSummary(c.getInt(c.getColumnIndex(HAS_SUMMARY)) > 0); item.setHasContent(c.getInt(c.getColumnIndex(HAS_CONTENT)) > 0); item.setIsExternalContent(c.getInt(c.getColumnIndex(IS_EXTERNAL_CONTENT)) > 0); item.setHasImages(c.getInt(c.getColumnIndex(HAS_IMAGES)) > 0); final int teaserColumnIndex = c.getColumnIndex(TEASER); if (teaserColumnIndex >= 0) { item.setTeaser(c.getString(teaserColumnIndex)); } return item; } @Override public void readEntityJoin(Item entity, Cursor c) { super.readEntityJoin(entity, c); final String tagId = c.getString(c.getColumnIndex(TAG_ID)); if (tagId != null) { entity.getTagIds().add(new ElementId(tagId)); } } }