Merge pull request #1366 from kiwix/feature/macgills/#1359-delete-bookmark

#1359 Unable to remove Bookmark from bottom bar
This commit is contained in:
Seán Mac Gillicuddy 2019-08-14 13:21:16 +01:00 committed by GitHub
commit 0701c1aa7b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 17 additions and 21 deletions

View File

@ -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<BookmarkItem> bookmarks);
Completable deleteBookmark(BookmarkItem bookmark);
Completable deleteBookmark(String bookmarkUrl);
Flowable<List<BooksOnDiskListItem>> booksOnDiskAsListItems();
}

View File

@ -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 <SUPERTYPE, ITEM : SUPERTYPE, HEADER : SUPERTYPE> foldOverAddingHeaders(

View File

@ -27,14 +27,12 @@ import javax.inject.Inject
class NewBookmarksDao @Inject constructor(val box: Box<BookmarkEntity>) {
fun getBookmarks(fromCurrentBook: Boolean): List<BookmarkItem> {
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<BookmarkEntity>) {
box.remove(bookmarks.map(::BookmarkEntity))
}
fun deleteBookmark(bookmark: BookmarkItem) {
box.remove(BookmarkEntity(bookmark))
fun deleteBookmark(bookmarkUrl: String) {
box.query {
equal(BookmarkEntity_.bookmarkUrl, bookmarkUrl)
}.remove()
}
}

View File

@ -1360,17 +1360,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);

View File

@ -29,6 +29,6 @@ class MainContract {
void saveBookmark(BookmarkItem bookmark);
void deleteBookmark(BookmarkItem bookmark);
void deleteBookmark(String bookmarkUrl);
}
}

View File

@ -119,8 +119,8 @@ class MainPresenter extends BasePresenter<MainContract.View> 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) {