From 338c607ce62b5b6ee12037a02529d7f31975681e Mon Sep 17 00:00:00 2001 From: Sean Mac Gillicuddy Date: Wed, 14 Aug 2019 11:31:27 +0100 Subject: [PATCH] #1359 Unable to remove Bookmark from bottom bar --- .../org/kiwix/kiwixmobile/data/DataSource.java | 4 +--- .../org/kiwix/kiwixmobile/data/Repository.kt | 4 ++-- .../database/newdb/dao/NewBookmarksDao.kt | 18 +++++++++--------- .../kiwix/kiwixmobile/main/MainActivity.java | 6 ++---- .../kiwix/kiwixmobile/main/MainContract.java | 2 +- .../kiwix/kiwixmobile/main/MainPresenter.java | 4 ++-- 6 files changed, 17 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/org/kiwix/kiwixmobile/data/DataSource.java b/app/src/main/java/org/kiwix/kiwixmobile/data/DataSource.java index b34eb333e..ce7b183af 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/data/DataSource.java +++ b/app/src/main/java/org/kiwix/kiwixmobile/data/DataSource.java @@ -5,9 +5,7 @@ import io.reactivex.Flowable; import io.reactivex.Single; import java.util.List; import org.kiwix.kiwixmobile.bookmark.BookmarkItem; -import org.kiwix.kiwixmobile.data.local.entity.Bookmark; import org.kiwix.kiwixmobile.history.HistoryListItem; -import org.kiwix.kiwixmobile.library.entity.LibraryNetworkEntity; import org.kiwix.kiwixmobile.zim_manager.Language; import org.kiwix.kiwixmobile.zim_manager.fileselect_view.adapter.BooksOnDiskListItem; @@ -40,7 +38,7 @@ public interface DataSource { Completable deleteBookmarks(List bookmarks); - Completable deleteBookmark(BookmarkItem bookmark); + Completable deleteBookmark(String bookmarkUrl); Flowable> booksOnDiskAsListItems(); } diff --git a/app/src/main/java/org/kiwix/kiwixmobile/data/Repository.kt b/app/src/main/java/org/kiwix/kiwixmobile/data/Repository.kt index df2b6f528..1a503f3d8 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/data/Repository.kt +++ b/app/src/main/java/org/kiwix/kiwixmobile/data/Repository.kt @@ -109,8 +109,8 @@ class Repository @Inject internal constructor( Completable.fromAction { bookmarksDao.deleteBookmarks(bookmarks) } .subscribeOn(io) - override fun deleteBookmark(bookmark: BookmarkItem) = - Completable.fromAction { bookmarksDao.deleteBookmark(bookmark) } + override fun deleteBookmark(bookmarkUrl: String): Completable? = + Completable.fromAction { bookmarksDao.deleteBookmark(bookmarkUrl) } .subscribeOn(io) private fun foldOverAddingHeaders( diff --git a/app/src/main/java/org/kiwix/kiwixmobile/database/newdb/dao/NewBookmarksDao.kt b/app/src/main/java/org/kiwix/kiwixmobile/database/newdb/dao/NewBookmarksDao.kt index 1f321ed8b..0025aa5dd 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/database/newdb/dao/NewBookmarksDao.kt +++ b/app/src/main/java/org/kiwix/kiwixmobile/database/newdb/dao/NewBookmarksDao.kt @@ -27,14 +27,12 @@ import javax.inject.Inject class NewBookmarksDao @Inject constructor(val box: Box) { fun getBookmarks(fromCurrentBook: Boolean): List { - return box - .query { - if (fromCurrentBook) { - equal(BookmarkEntity_.zimId, ZimContentProvider.getId() ?: "") - } - order(BookmarkEntity_.bookmarkTitle) + return box.query { + if (fromCurrentBook) { + equal(BookmarkEntity_.zimId, ZimContentProvider.getId() ?: "") } - .find() + order(BookmarkEntity_.bookmarkTitle) + }.find() .map(::BookmarkItem) } @@ -57,7 +55,9 @@ class NewBookmarksDao @Inject constructor(val box: Box) { box.remove(bookmarks.map(::BookmarkEntity)) } - fun deleteBookmark(bookmark: BookmarkItem) { - box.remove(BookmarkEntity(bookmark)) + fun deleteBookmark(bookmarkUrl: String) { + box.query { + equal(BookmarkEntity_.bookmarkUrl, bookmarkUrl) + }.remove() } } diff --git a/app/src/main/java/org/kiwix/kiwixmobile/main/MainActivity.java b/app/src/main/java/org/kiwix/kiwixmobile/main/MainActivity.java index 321512eb4..a0f2c35af 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/main/MainActivity.java +++ b/app/src/main/java/org/kiwix/kiwixmobile/main/MainActivity.java @@ -1343,17 +1343,15 @@ public class MainActivity extends BaseActivity implements WebViewCallback, //Check maybe need refresh String articleUrl = getCurrentWebView().getUrl(); boolean isBookmark = false; - BookmarkItem bookmark = - BookmarkItem.fromZimContentProvider(getCurrentWebView().getTitle(), articleUrl); if (articleUrl != null && !bookmarks.contains(articleUrl)) { if (ZimContentProvider.getId() != null) { - presenter.saveBookmark(bookmark); + presenter.saveBookmark( BookmarkItem.fromZimContentProvider(getCurrentWebView().getTitle(), articleUrl)); } else { Toast.makeText(this, R.string.unable_to_add_to_bookmarks, Toast.LENGTH_SHORT).show(); } isBookmark = true; } else if (articleUrl != null) { - presenter.deleteBookmark(bookmark); + presenter.deleteBookmark(articleUrl); isBookmark = false; } popBookmarkSnackbar(isBookmark); diff --git a/app/src/main/java/org/kiwix/kiwixmobile/main/MainContract.java b/app/src/main/java/org/kiwix/kiwixmobile/main/MainContract.java index 5aa973afe..21bad0470 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/main/MainContract.java +++ b/app/src/main/java/org/kiwix/kiwixmobile/main/MainContract.java @@ -29,6 +29,6 @@ class MainContract { void saveBookmark(BookmarkItem bookmark); - void deleteBookmark(BookmarkItem bookmark); + void deleteBookmark(String bookmarkUrl); } } diff --git a/app/src/main/java/org/kiwix/kiwixmobile/main/MainPresenter.java b/app/src/main/java/org/kiwix/kiwixmobile/main/MainPresenter.java index 8e678f5ff..254c97c4c 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/main/MainPresenter.java +++ b/app/src/main/java/org/kiwix/kiwixmobile/main/MainPresenter.java @@ -119,8 +119,8 @@ class MainPresenter extends BasePresenter implements MainCont } @Override - public void deleteBookmark(BookmarkItem bookmark) { - dataSource.deleteBookmark(bookmark) + public void deleteBookmark(String bookmarkUrl) { + dataSource.deleteBookmark(bookmarkUrl) .subscribe(new CompletableObserver() { @Override public void onSubscribe(Disposable d) {