package me.ccrama.redditslide.Activities; import android.os.Bundle; import android.support.v7.widget.RecyclerView; import android.text.Editable; import android.text.TextWatcher; import android.widget.EditText; import net.dean.jraw.models.CommentNode; import java.util.ArrayList; import java.util.List; import me.ccrama.redditslide.Adapters.CommentAdapterSearch; import me.ccrama.redditslide.Adapters.CommentItem; import me.ccrama.redditslide.Adapters.CommentObject; import me.ccrama.redditslide.DataShare; import me.ccrama.redditslide.R; import me.ccrama.redditslide.Views.PreCachingLayoutManager; /** * Created by ccrama on 9/17/2015. * <p/> * This activity takes the shared comment data and allows for searching through the text of the * CommentNodes. */ public class CommentSearch extends BaseActivityAnim { @Override public void onCreate(Bundle savedInstance) { overrideRedditSwipeAnywhere(); super.onCreate(savedInstance); applyColorTheme(); setContentView(R.layout.activity_filtercomments); final EditText search = (EditText) findViewById(R.id.search); RecyclerView rv = (RecyclerView) findViewById(R.id.vertical_content); final PreCachingLayoutManager mLayoutManager; mLayoutManager = new PreCachingLayoutManager(this); rv.setLayoutManager(mLayoutManager); ArrayList<CommentNode> comments = new ArrayList<>(); List<CommentObject> commentsOld = DataShare.sharedComments; if (commentsOld != null && !commentsOld.isEmpty()) for (CommentObject o : commentsOld) { if (o instanceof CommentItem) comments.add(o.comment); } else finish(); final CommentAdapterSearch adapter = new CommentAdapterSearch(this, comments); rv.setAdapter(adapter); search.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) { } @Override public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) { } @Override public void afterTextChanged(Editable editable) { String result = search.getText().toString(); adapter.setResult(result); adapter.getFilter().filter(result); } }); } }