package com.jdroid.android.sample.ui.recyclerview;
import android.os.Bundle;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.TextView;
import com.jdroid.android.recycler.AbstractRecyclerFragment;
import com.jdroid.android.recycler.RecyclerViewAdapter;
import com.jdroid.android.recycler.RecyclerViewType;
import com.jdroid.android.sample.R;
import com.jdroid.android.recycler.AbstractSearchPaginatedRecyclerFragment;
import com.jdroid.android.usecase.SearchUseCase;
import java.util.List;
public class SearchPaginatedRecyclerFragment extends AbstractSearchPaginatedRecyclerFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setThreshold(3);
}
@Override
protected SearchUseCase createPaginatedUseCase() {
return new SampleSearchUseCase();
}
@Override
protected RecyclerViewAdapter createAdapter(List<Object> items) {
return new RecyclerViewAdapter(new StringRecyclerViewType(), items);
}
@Override
public boolean isSearchValueRequired() {
return true;
}
@Override
public Boolean isInstantSearchEnabled() {
return true;
}
@Override
protected Boolean isDividerItemDecorationEnabled() {
return true;
}
public class StringRecyclerViewType extends RecyclerViewType<String, StringViewHolder> {
@Override
protected Integer getLayoutResourceId() {
return R.layout.item;
}
@Override
protected Class<String> getItemClass() {
return String.class;
}
@Override
public RecyclerView.ViewHolder createViewHolderFromView(View view) {
StringViewHolder viewHolder = new StringViewHolder(view);
viewHolder.textView = findView(view, R.id.name);
return viewHolder;
}
@Override
public void fillHolderFromItem(String item, StringViewHolder holder) {
holder.textView.setText(item);
}
@Override
public AbstractRecyclerFragment getAbstractRecyclerFragment() {
return SearchPaginatedRecyclerFragment.this;
}
@Override
public void onItemSelected(String item, View view) {
getAdapter().removeItem(item);
}
}
public static class StringViewHolder extends RecyclerView.ViewHolder {
public TextView textView;
public StringViewHolder(View itemView) {
super(itemView);
}
}
}