package com.philosophicalhacker.philhackernews.data.repository; import android.content.Context; import android.database.Cursor; import android.support.v4.app.LoaderManager; import android.support.v4.content.CursorLoader; import com.philosophicalhacker.philhackernews.data.DataConverter; import com.philosophicalhacker.philhackernews.data.LoaderInitializingOnSubscribe; import com.philosophicalhacker.philhackernews.data.cache.HackerNewsData; import com.philosophicalhacker.philhackernews.model.Item; import java.util.List; import rx.Observable; /** * * Created by MattDupree on 7/20/15. */ public class CacheOnlyCommentRepository implements CommentRepository { private static final int COMMENT_LOADER = 1; private LoaderManager mLoaderManager; private Context mContext; private DataConverter<List<Item>, Cursor> mDataConverter; public CacheOnlyCommentRepository(LoaderManager loaderManager, Context context, DataConverter<List<Item>, Cursor> dataConverter) { mLoaderManager = loaderManager; mContext = context; mDataConverter = dataConverter; } @Override public Observable<List<Item>> getCommentsForStoryObservable(Item item) { CursorLoader cursorLoader = new CursorLoader(mContext, HackerNewsData.Items.CONTENT_URI, null, HackerNewsData.Items.Selection.COMMENTS_FOR_STORY, HackerNewsData.Items.Selection.getCommentsForStoryArgs(item.getId()), HackerNewsData.Items.SortOrder.SCORE_DESC_SORT_ORDER); return Observable.create(new LoaderInitializingOnSubscribe<>(COMMENT_LOADER, mLoaderManager, cursorLoader, mDataConverter)); } }