Skip to content

Instantly share code, notes, and snippets.

@ReginFell
Created May 11, 2016 11:42
Show Gist options
  • Save ReginFell/24548cc997550ef5f7710a3b12353d57 to your computer and use it in GitHub Desktop.
Save ReginFell/24548cc997550ef5f7710a3b12353d57 to your computer and use it in GitHub Desktop.
class SearchFragment : BaseFragment(), ValueEventListener {
override fun getResId() = R.layout.fragment_search;
override fun getOptionsId() = R.menu.menu_search;
private val recyclerView: RecyclerView by bindView(R.id.recyclerView);
lateinit private var searchView: SearchView;
var search by bindArgument<String>();
@Inject
lateinit var additiveManager: IAdditiveManager;
lateinit private var adapter: AdditiveAdapter;
override fun injectComponent() = Application.getApplication().additiveComponent.inject(this);
override fun afterViews() {
adapter = AdditiveAdapter(context, {
startActivity(AdditiveDetailsActivity.newInstance(context, adapter.filteredList as ArrayList<Additive>, it))
}, {
val forceDialog = ForceFragmentDialog();
forceDialog.show(childFragmentManager, null);
});
recyclerView.adapter = adapter;
additiveManager.addAdditiveListener(this);
}
override fun onCreateOptionsMenu(menu: Menu?, inflater: MenuInflater?) {
super.onCreateOptionsMenu(menu, inflater)
var searchMenuItem = menu?.findItem(R.id.action_search);
searchMenuItem?.expandActionView();
searchView = searchMenuItem?.actionView as SearchView;
searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
override fun onQueryTextSubmit(query: String): Boolean {
return false;
}
override fun onQueryTextChange(query: String): Boolean {
adapter.search(query);
return false;
}
});
}
override fun onDataChange(dataSnapshot: DataSnapshot) {
var additiveList = ArrayList<Additive>();
for (postSnapshot in dataSnapshot.children) {
var additive = postSnapshot.getValue(Additive::class.java);
additiveList.add(additive);
}
adapter.additiveList = additiveList;
searchView.setQuery(search, false);
}
override public fun onCancelled(firebaseError: FirebaseError) {
}
public companion object {
public fun newInstance(search: String): SearchFragment = SearchFragment().apply {
this.search = search;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment