123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- package eu.kanade.mangafeed.ui.fragment;
- import android.os.Bundle;
- import android.support.v7.widget.SearchView;
- import android.view.ActionMode;
- import android.view.LayoutInflater;
- import android.view.Menu;
- import android.view.MenuInflater;
- import android.view.MenuItem;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.GridView;
- import butterknife.Bind;
- import butterknife.ButterKnife;
- import eu.kanade.mangafeed.R;
- import eu.kanade.mangafeed.data.models.Manga;
- import eu.kanade.mangafeed.presenter.LibraryPresenter;
- import eu.kanade.mangafeed.ui.activity.MainActivity;
- import eu.kanade.mangafeed.ui.adapter.LibraryAdapter;
- import nucleus.factory.RequiresPresenter;
- @RequiresPresenter(LibraryPresenter.class)
- public class LibraryFragment extends BaseFragment2<LibraryPresenter> {
- @Bind(R.id.gridView) GridView grid;
- private MainActivity activity;
- private LibraryAdapter<Manga> adapter;
- public static LibraryFragment newInstance() {
- LibraryFragment fragment = new LibraryFragment();
- Bundle args = new Bundle();
- fragment.setArguments(args);
- return fragment;
- }
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setHasOptionsMenu(true);
- activity = (MainActivity)getActivity();
- }
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState) {
- // Inflate the layout for this fragment
- View view = inflater.inflate(R.layout.fragment_library, container, false);
- activity.setToolbarTitle(getString(R.string.library_title));
- ButterKnife.bind(this, view);
- createAdapter();
- setMangaClickListener();
- return view;
- }
- @Override
- public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
- inflater.inflate(R.menu.library, menu);
- initializeSearch(menu);
- }
- private void initializeSearch(Menu menu) {
- final SearchView sv = (SearchView) menu.findItem(R.id.action_search).getActionView();
- sv.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
- @Override
- public boolean onQueryTextSubmit(String query) {
- return true;
- }
- @Override
- public boolean onQueryTextChange(String newText) {
- adapter.getFilter().filter(newText);
- return true;
- }
- });
- }
- public void createAdapter() {
- adapter = new LibraryAdapter<>(getActivity());
- grid.setAdapter(adapter);
- }
- public LibraryAdapter<Manga> getAdapter() {
- return adapter;
- }
- public void setMangaClickListener() {
- grid.setOnItemClickListener(
- (parent, view, position, id) ->
- getPresenter().onMangaClick(this, position)
- );
- grid.setMultiChoiceModeListener(new GridView.MultiChoiceModeListener() {
- @Override
- public void onItemCheckedStateChanged(ActionMode mode, int position, long id, boolean checked) {
- mode.setTitle(getResources().getString(R.string.library_selection_title)
- + ": " + grid.getCheckedItemCount());
- }
- @Override
- public boolean onCreateActionMode(ActionMode mode, Menu menu) {
- MenuInflater inflater = mode.getMenuInflater();
- inflater.inflate(R.menu.library_selection, menu);
- return true;
- }
- @Override
- public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
- return false;
- }
- @Override
- public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
- switch (item.getItemId()) {
- case R.id.action_delete:
- getPresenter().onDelete(grid.getCheckedItemPositions(), adapter);
- mode.finish();
- return true;
- }
- return false;
- }
- @Override
- public void onDestroyActionMode(ActionMode mode) {
- }
- });
- }
- }
|