package com.jakewharton.rxbinding2.support.v17.leanback.widget;
import android.support.annotation.CheckResult;
import android.support.annotation.NonNull;
import android.support.v17.leanback.widget.SearchBar;
import io.reactivex.Observable;
import io.reactivex.functions.Consumer;
import static com.jakewharton.rxbinding2.internal.Preconditions.checkNotNull;
/**
* Static factory methods for creating {@linkplain Observable observables} and {@linkplain Consumer
* actions} for {@link SearchBar}.
*/
public final class RxSearchBar {
/**
* Create an observable of {@linkplain SearchBarSearchQueryEvent search query events} on {@code
* view}.
* <p>
* <em>Warning:</em> The created observable keeps a strong reference to {@code view}. Unsubscribe
* to free this reference.
* <p>
*/
@CheckResult
@NonNull
public static Observable<SearchBarSearchQueryEvent> searchQueryChangeEvents(
@NonNull SearchBar view) {
checkNotNull(view, "view == null");
return new SearchBarSearchQueryChangeEventsOnSubscribe(view);
}
/**
* Create an observable of String values for search query changes on {@code view}.
* <p>
* <em>Warning:</em> The created observable keeps a strong reference to {@code view}. Unsubscribe
* to free this reference.
* <p>
*/
@CheckResult @NonNull
public static Observable<String> searchQueryChanges(@NonNull SearchBar view) {
checkNotNull(view, "view == null");
return new SearchBarSearchQueryChangesOnSubscribe(view);
}
/**
* An action which sets the searchQuery property of {@code view} with String values.
* <p>
* <em>Warning:</em> The created observable keeps a strong reference to {@code view}. Unsubscribe
* to free this reference.
*/
@CheckResult @NonNull
public static Consumer<? super String> searchQuery(@NonNull final SearchBar view) {
checkNotNull(view, "view == null");
return new Consumer<String>() {
@Override public void accept(String text) throws Exception {
view.setSearchQuery(text);
}
};
}
private RxSearchBar() {
throw new AssertionError("No instances.");
}
}