Created
May 13, 2015 17:33
-
-
Save ZakTaccardi/2cc7059587231122d522 to your computer and use it in GitHub Desktop.
Sharing a subscriber class between two observables
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class HomePresenter extends BasePresenter<HomeView> { | |
ArticleRepo articleRepo; | |
@Inject | |
public HomePresenter(ArticleRepo articleRepo) { | |
this.articleRepo = articleRepo; | |
} | |
@Override | |
public void onCreate(@Nullable PresenterBundle bundle) { | |
super.onCreate(bundle); | |
} | |
public void onEvent(ArticleCategoryClickedEvent event) { | |
Timber.v("Adapter position clicked at position: '%d'", event.getAdapterPosition()); | |
view.launchArticleActivity(event.getArticleCategory()); | |
} | |
public void onEvent(SeabeeOnlineExternalLinkClickedEvent event) { | |
view.launchExternalLink(event.getSeabeeOnlineExternalLink()); | |
} | |
public void loadArticleImages() { | |
articleRepo.getArticleBuckets() | |
.subscribeOn(Schedulers.io()) | |
.observeOn(AndroidSchedulers.mainThread()) | |
.subscribe(subscriber); | |
} | |
public void refreshData() { | |
articleRepo.refreshAndSaveArticles() | |
.flatMap(new Func1<List<ArticleEntity>, Observable<List<ImageArticleCategoryEntity>>>() { | |
@Override | |
public Observable<List<ImageArticleCategoryEntity>> call(List<ArticleEntity> articleEntityList) { | |
return articleRepo.getArticleBuckets(); | |
} | |
}).subscribeOn(Schedulers.io()) | |
.observeOn(AndroidSchedulers.mainThread()) | |
.subscribe(subscriber); | |
} | |
final Subscriber<List<ImageArticleCategoryEntity>> subscriber = new Subscriber<List<ImageArticleCategoryEntity>>() { | |
@Override | |
public void onCompleted() { | |
Timber.v("Loading article images complete!"); | |
view.hideLoadingAnimation(); | |
} | |
@Override | |
public void onError(Throwable e) { | |
Timber.e("Error loading article images", e); | |
Log.e("tag", "Error loading article images", e); | |
} | |
@Override | |
public void onNext(List<ImageArticleCategoryEntity> integerImageArticleCategoryEntityHashMap) { | |
view.loadArticleImages(integerImageArticleCategoryEntityHashMap); | |
} | |
}; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment