diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index c6dbe092db..39627b74c3 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -4,6 +4,7 @@ + delete(Manga manga) { + return db.delete() + .object(manga) + .prepare() + .createObservable(); + } + + public Observable> delete(List mangas) { + return db.delete() + .objects(mangas) + .prepare() + .createObservable(); + } + } diff --git a/app/src/main/java/eu/kanade/mangafeed/presenter/LibraryPresenter.java b/app/src/main/java/eu/kanade/mangafeed/presenter/LibraryPresenter.java index 35a8a82d9c..585f867ea0 100644 --- a/app/src/main/java/eu/kanade/mangafeed/presenter/LibraryPresenter.java +++ b/app/src/main/java/eu/kanade/mangafeed/presenter/LibraryPresenter.java @@ -1,6 +1,7 @@ package eu.kanade.mangafeed.presenter; import android.content.Intent; +import android.util.SparseBooleanArray; import javax.inject.Inject; @@ -11,6 +12,8 @@ import eu.kanade.mangafeed.data.models.Manga; import eu.kanade.mangafeed.ui.activity.MangaDetailActivity; import eu.kanade.mangafeed.ui.adapter.LibraryAdapter; import eu.kanade.mangafeed.view.LibraryView; +import rx.Observable; +import rx.schedulers.Schedulers; import static rx.android.schedulers.AndroidSchedulers.mainThread; @@ -59,4 +62,14 @@ public class LibraryPresenter extends BasePresenter { adapter.getFilter().filter(query); } + public void onDelete(SparseBooleanArray checkedItems) { + Observable.range(0, checkedItems.size()) + .observeOn(Schedulers.io()) + .map(checkedItems::keyAt) + .map(adapter::getItem) + .toList() + .flatMap(db.manga::delete) + .subscribe(); + } + } diff --git a/app/src/main/java/eu/kanade/mangafeed/ui/fragment/LibraryFragment.java b/app/src/main/java/eu/kanade/mangafeed/ui/fragment/LibraryFragment.java index 425f72f422..33532d260c 100644 --- a/app/src/main/java/eu/kanade/mangafeed/ui/fragment/LibraryFragment.java +++ b/app/src/main/java/eu/kanade/mangafeed/ui/fragment/LibraryFragment.java @@ -83,7 +83,6 @@ public class LibraryFragment extends BaseFragment implements LibraryView { }); } - // LibraryView public void setAdapter(EasyAdapter adapter) { @@ -118,6 +117,12 @@ public class LibraryFragment extends BaseFragment implements LibraryView { @Override public boolean onActionItemClicked(ActionMode mode, MenuItem item) { + switch (item.getItemId()) { + case R.id.action_delete: + presenter.onDelete(grid.getCheckedItemPositions()); + mode.finish(); + return true; + } return false; }