package com.artemzin.qualitymatters.ui.presenters; import android.support.annotation.NonNull; import com.google.auto.value.AutoValue; import rx.Scheduler; // Such approach allows us configure presenter in runtime without hardcoded values. // Also, it allows us easily change some parts of the presenter configuration for tests. @AutoValue public abstract class ItemsPresenterConfiguration { @NonNull public static Builder builder() { return new AutoValue_ItemsPresenterConfiguration.Builder(); } @NonNull public abstract Scheduler ioScheduler(); @AutoValue.Builder public static abstract class Builder { @NonNull public abstract Builder ioScheduler(@NonNull Scheduler ioScheduler); @NonNull public abstract ItemsPresenterConfiguration build(); } }