use of butter.droid.base.manager.internal.provider.model.ProviderWrapper in project butter-android by butterproject.
the class TVSearchPresenterImpl method getProviderRequests.
private List<Single<SearchResult>> getProviderRequests(String query) {
List<Single<SearchResult>> requests = new ArrayList<>();
ProviderWrapper[] providers = providerManager.getProviders();
for (int i = 0; i < providers.length; i++) {
MediaProvider provider = providers[i].getMediaProvider();
final int providerId = i;
// TODO: 6/17/17 Define title of search row
requests.add(provider.items(new Filter(null, null, query), new Pager(null)).flatMapObservable(w -> Observable.fromIterable(w.getMedia())).map(m -> new MediaWrapper(m, providerId)).toList().map(l -> new SearchResult(R.string.movie_results, l)));
}
return requests;
}
use of butter.droid.base.manager.internal.provider.model.ProviderWrapper in project butter-android by butterproject.
the class MainPresenterImpl method displayProviderData.
private void displayProviderData(final int providerId) {
this.selectedProviderId = providerId;
final ProviderWrapper provider = providerManager.getProvider(providerId);
final MediaProvider mediaProvider = provider.getMediaProvider();
unsubscribeProviderId(providerId);
Observable.concat(mediaProvider.genres().filter(genres -> genres != null && genres.size() > 0).map(g -> new NavInfo(R.id.nav_item_genre, 0, R.string.genres, providerId)).toObservable(), mediaProvider.navigation().flatMapObservable(Observable::fromIterable).map(item -> new NavInfo(item, providerId))).toList().subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new SingleObserver<List<NavInfo>>() {
@Override
public void onSubscribe(final Disposable d) {
providerDataDisposable.add(providerId, d);
}
@Override
public void onSuccess(final List<NavInfo> value) {
// TODO: 8/5/17 Do we need this
// boolean hasGenres = value.first != null && value.first.size() > 0;
view.displayProvider(provider.getDisplayName(), value);
}
@Override
public void onError(final Throwable e) {
// TODO: 8/5/17 Display error
}
});
}
use of butter.droid.base.manager.internal.provider.model.ProviderWrapper in project butter-android by butterproject.
the class NavigationDrawerPresenterImpl method getNavigationItems.
private List<NavigationDrawerFragment.AbsNavDrawerItem> getNavigationItems() {
List<AbsNavDrawerItem> navItems = new ArrayList<>();
navItems.add(new HeaderNavDrawerItem());
ProviderWrapper[] providers = providerManager.getProviders();
for (int i = 0; i < providers.length; i++) {
final ProviderWrapper provider = providers[i];
navItems.add(new ProviderNavDrawerItem(provider.getDisplayName(), provider.getIcon(), i));
}
navItems.add(new ScreenNavDrawerItem(R.string.preferences, R.drawable.ic_nav_settings, PreferencesActivity.class));
navItems.get(selectedPosition).setSelected(true);
return navItems;
}
use of butter.droid.base.manager.internal.provider.model.ProviderWrapper in project butter-android by butterproject.
the class ProviderModule method provideVodoWrapper.
@Provides
@ProviderScope
@ElementsIntoSet
Set<ProviderWrapper> provideVodoWrapper(final VodoProvider vodoProvider, final OpenSubsProvider openSubsProvider, final MockMediaProvider mockProvider, final MockSubsProvider mockSubsProvider) {
Set<ProviderWrapper> set = new TreeSet<>((o1, o2) -> o2.getPosition() - o1.getPosition());
set.add(new ProviderWrapper(vodoProvider, openSubsProvider, R.string.vodo_label, R.drawable.ic_nav_movies, 0));
set.add(new ProviderWrapper(mockProvider, mockSubsProvider, butter.droid.provider.mock.R.string.title_movies, butter.droid.provider.mock.R.drawable.ic_nav_movies, 1));
return set;
}
Aggregations