package com.gzsll.hupu.data.local; import com.gzsll.hupu.data.ForumDataSource; import com.gzsll.hupu.db.Forum; import com.gzsll.hupu.db.ForumDao; import java.util.List; import javax.inject.Inject; import rx.Observable; import rx.Subscriber; import rx.schedulers.Schedulers; /** * Created by sll on 2016/6/3. */ public class ForumLocalDataSource implements ForumDataSource { private final ForumDao mForumDao; @Inject public ForumLocalDataSource(ForumDao mForumDao) { this.mForumDao = mForumDao; } @Override public Observable<List<Forum>> getForumList(final String forumId) { return Observable.create(new Observable.OnSubscribe<List<Forum>>() { @Override public void call(Subscriber<? super List<Forum>> subscriber) { List<Forum> forumList = mForumDao.queryBuilder().where(ForumDao.Properties.ForumId.eq(forumId)).list(); subscriber.onNext(forumList); subscriber.onCompleted(); } }).subscribeOn(Schedulers.io()); } public void saveForum(Forum forum) { mForumDao.queryBuilder() .where(ForumDao.Properties.ForumId.eq(forum.getForumId()), ForumDao.Properties.Fid.eq(forum.getFid())) .buildDelete() .executeDeleteWithoutDetachingEntities(); mForumDao.insert(forum); } @Override public Observable<Boolean> removeForum(String fid) { return null; } }