Skip to content

Instantly share code, notes, and snippets.

View matdziu's full-sized avatar

Mateusz Dziubek matdziu

View GitHub Profile
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
return true;
}
@Override
public boolean onQueryTextChange(String newText) {
if (!newText.isEmpty()) {
RecyclerView.Adapter adapter = new NamesAdapter(namesAPI.searchForName(newText));
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
return true;
}
@Override
public boolean onQueryTextChange(String newText) {
if (!newText.isEmpty()) {
adapter.setNamesList(namesAPI.searchForName(query));
@Override
public boolean onQueryTextChange(String newText) {
if (!newText.isEmpty()) {
adapter.setNamesList(namesAPI.searchForName(query));
adapter.notifyDataSetChanged();
apiCallsTextView.setText("API CALLS: " + apiCalls++);
}
return true;
}
public class RxSearch {
public static Observable<String> fromSearchView(@NonNull final SearchView searchView) {
final BehaviorSubject<String> subject = BehaviorSubject.create("");
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
subject.onCompleted();
RxSearch.fromSearchView(searchView)
.debounce(300, TimeUnit.MILLISECONDS)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(query -> {
adapter.setNamesList(namesAPI.searchForName(query));
adapter.notifyDataSetChanged();
apiCallsTextView.setText("API CALLS: " + apiCalls++);
});
RxSearch.fromSearchView(searchView)
.debounce(300, TimeUnit.MILLISECONDS)
.filter(item -> item.length() > 1)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(query -> {
adapter.setNamesList(namesAPI.searchForName(query));
adapter.notifyDataSetChanged();
apiCallsTextView.setText("API CALLS: " + apiCalls++);
});
import json
from flask import Flask, Response
app = Flask(__name__)
data = {
'id': 7,
'name': 'James',
'surname': 'Bond',
'sex': 'male',
'status': 'M.I.A.'
public class DataModel {
private String status;
private String sex;
private String surname;
private String name;
public class DataDeserializer implements JsonDeserializer<DataModel> {
@Override
public DataModel deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
JsonObject jsonDataObject = json.getAsJsonObject();
String status = jsonDataObject.get("status").getAsString();
String sex = jsonDataObject.get("sex").getAsString();
String surname = jsonDataObject.get("surname").getAsString();
String name = jsonDataObject.get("name").getAsString();
public class BaseDeserializerTest {
protected InputStream getResourceInputStream(String name) {
return this.getClass().getClassLoader().getResourceAsStream(name);
}
protected Reader getResourceReader(String name) {
return new InputStreamReader(getResourceInputStream(name));
}
}