package com.kickstarter.viewmodels.outputs; import android.util.Pair; import com.kickstarter.models.Category; import com.kickstarter.services.DiscoveryParams; import com.kickstarter.services.apiresponses.InternalBuildEnvelope; import com.kickstarter.ui.adapters.data.NavigationDrawerData; import java.util.List; import rx.Observable; public interface DiscoveryViewModelOutputs { /** * Emits a boolean that determines if the drawer is open or not. */ Observable<Boolean> drawerIsOpen(); /** * Emits a booelan that determines if the sort tab layout should be expanded/collapsed. */ Observable<Boolean> expandSortTabLayout(); /** * Emits when params change so that the tool bar can adjust accordingly. */ Observable<DiscoveryParams> updateToolbarWithParams(); /** * Emits when the params of a particular page should be updated. The page will be responsible for * taking those params and creating paginating projects from it. */ Observable<DiscoveryParams> updateParamsForPage(); Observable<NavigationDrawerData> navigationDrawerData(); /** * Emits the root categories and position. Position is used to determine the appropriate fragment * to pass the categories to. */ Observable<Pair<List<Category>, Integer>> rootCategoriesAndPosition(); /** * Emits a list of pages that should be cleared of all their content. */ Observable<List<Integer>> clearPages(); /** * Emits when a newer build is available and an alert should be shown. */ Observable<InternalBuildEnvelope> showBuildCheckAlert(); Observable<Void> showLoginTout(); Observable<Void> showProfile(); Observable<Void> showSettings(); Observable<Void> showInternalTools(); }