package com.florianmski.tracktoid.ui.fragments.recommendations; import com.florianmski.tracktoid.data.TraktoidItem; import com.florianmski.tracktoid.image.Type; import com.florianmski.tracktoid.rx.observables.TraktObservable; import com.florianmski.tracktoid.ui.fragments.base.trakt.TraktItemsFragment; import com.uwetrottmann.trakt.v2.entities.Genre; import com.uwetrottmann.trakt.v2.exceptions.OAuthUnauthorizedException; import java.util.List; import retrofit.client.Response; import rx.Observable; public abstract class RecommendationFragment<E extends TraktoidItem> extends TraktItemsFragment<E> { public RecommendationFragment() {} public abstract Response fireDismiss(String id) throws OAuthUnauthorizedException; public abstract List<E> fireRecommendations() throws OAuthUnauthorizedException; public abstract List<Genre> fireGenres(); @Override protected Observable<List<E>> createObservable() { return Observable.create(new TraktObservable<List<E>>() { @Override public List<E> fire() throws OAuthUnauthorizedException { return fireRecommendations(); } }); } @Override protected Type getImageType() { return Type.FANART; } }