diff --git a/app/src/main/java/fr/free/nrw/commons/bookmarks/pictures/BookmarkPicturesController.java b/app/src/main/java/fr/free/nrw/commons/bookmarks/pictures/BookmarkPicturesController.java deleted file mode 100644 index 7b644586c..000000000 --- a/app/src/main/java/fr/free/nrw/commons/bookmarks/pictures/BookmarkPicturesController.java +++ /dev/null @@ -1,63 +0,0 @@ -package fr.free.nrw.commons.bookmarks.pictures; - -import fr.free.nrw.commons.Media; -import fr.free.nrw.commons.bookmarks.models.Bookmark; -import fr.free.nrw.commons.media.MediaClient; -import io.reactivex.Observable; -import io.reactivex.ObservableSource; -import io.reactivex.Single; -import io.reactivex.functions.Function; -import java.util.ArrayList; -import java.util.List; -import javax.inject.Inject; -import javax.inject.Singleton; - -@Singleton -public class BookmarkPicturesController { - - private final MediaClient mediaClient; - private final BookmarkPicturesDao bookmarkDao; - - private List currentBookmarks; - - @Inject - public BookmarkPicturesController(MediaClient mediaClient, BookmarkPicturesDao bookmarkDao) { - this.mediaClient = mediaClient; - this.bookmarkDao = bookmarkDao; - currentBookmarks = new ArrayList<>(); - } - - /** - * Loads the Media objects from the raw data stored in DB and the API. - * @return a list of bookmarked Media object - */ - Single> loadBookmarkedPictures() { - List bookmarks = bookmarkDao.getAllBookmarks(); - currentBookmarks = bookmarks; - return Observable.fromIterable(bookmarks) - .flatMap((Function>) this::getMediaFromBookmark) - .toList(); - } - - private Observable getMediaFromBookmark(Bookmark bookmark) { - return mediaClient.getMedia(bookmark.getMediaName()) - .toObservable() - .onErrorResumeNext(Observable.empty()); - } - - /** - * Loads the Media objects from the raw data stored in DB and the API. - * @return a list of bookmarked Media object - */ - boolean needRefreshBookmarkedPictures() { - List bookmarks = bookmarkDao.getAllBookmarks(); - return bookmarks.size() != currentBookmarks.size(); - } - - /** - * Cancels the requests to the API and the DB - */ - void stop() { - //noop - } -} diff --git a/app/src/main/java/fr/free/nrw/commons/bookmarks/pictures/BookmarkPicturesController.kt b/app/src/main/java/fr/free/nrw/commons/bookmarks/pictures/BookmarkPicturesController.kt new file mode 100644 index 000000000..5ee88d973 --- /dev/null +++ b/app/src/main/java/fr/free/nrw/commons/bookmarks/pictures/BookmarkPicturesController.kt @@ -0,0 +1,38 @@ +package fr.free.nrw.commons.bookmarks.pictures + +import fr.free.nrw.commons.Media +import fr.free.nrw.commons.bookmarks.models.Bookmark +import fr.free.nrw.commons.media.MediaClient +import io.reactivex.Observable +import io.reactivex.Single +import javax.inject.Inject +import javax.inject.Singleton + +@Singleton +class BookmarkPicturesController @Inject constructor( + private val mediaClient: MediaClient, + private val bookmarkDao: BookmarkPicturesDao +) { + private var currentBookmarks: List = listOf() + + /** + * Loads the Media objects from the raw data stored in DB and the API. + * @return a list of bookmarked Media object + */ + fun loadBookmarkedPictures(): Single> { + val bookmarks = bookmarkDao.getAllBookmarks() + currentBookmarks = bookmarks + return Observable.fromIterable(bookmarks).flatMap { + mediaClient.getMedia(it.mediaName) + .toObservable() + .onErrorResumeNext(Observable.empty()) + }.toList() + } + + fun needRefreshBookmarkedPictures(): Boolean { + val bookmarks = bookmarkDao.getAllBookmarks() + return bookmarks.size != currentBookmarks.size + } + + fun stop() = Unit +}