Fixes 4745 : Add bookmarked items to suggested depictions (#4746)

* Dialog can't be dismissed

* Dialog can't be dismissed

* Appended bookmarked items in searching

* Test fixed

* Resolve conflicts

* Resolve conflicts
This commit is contained in:
Ayan Sarkar 2023-09-29 12:25:26 +05:30 committed by GitHub
parent 9525409b9b
commit fec27ed914
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -3,6 +3,7 @@ package fr.free.nrw.commons.upload.depicts
import android.annotation.SuppressLint import android.annotation.SuppressLint
import androidx.lifecycle.LiveData import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData import androidx.lifecycle.MutableLiveData
import fr.free.nrw.commons.bookmarks.items.BookmarkItemsController
import fr.free.nrw.commons.Media import fr.free.nrw.commons.Media
import fr.free.nrw.commons.di.CommonsApplicationModule import fr.free.nrw.commons.di.CommonsApplicationModule
import fr.free.nrw.commons.repository.UploadRepository import fr.free.nrw.commons.repository.UploadRepository
@ -42,6 +43,13 @@ class DepictsPresenter @Inject constructor(
private var media: Media? = null private var media: Media? = null
@Inject @Inject
lateinit var depictsDao: DepictsDao lateinit var depictsDao: DepictsDao
/**
* Helps to get all bookmarked items
*/
@Inject
lateinit var controller: BookmarkItemsController
@Inject @Inject
lateinit var depictsHelper: DepictEditHelper lateinit var depictsHelper: DepictEditHelper
@ -82,7 +90,7 @@ class DepictsPresenter @Inject constructor(
if (media == null) { if (media == null) {
return repository.searchAllEntities(querystring) return repository.searchAllEntities(querystring)
.subscribeOn(ioScheduler) .subscribeOn(ioScheduler)
.map { repository.selectedDepictions + it + recentDepictedItemList } .map { repository.selectedDepictions + it + recentDepictedItemList + controller.loadFavoritesItems() }
.map { it.filterNot { item -> WikidataDisambiguationItems.isDisambiguationItem(item.instanceOfs) } } .map { it.filterNot { item -> WikidataDisambiguationItems.isDisambiguationItem(item.instanceOfs) } }
.map { it.distinctBy(DepictedItem::id) } .map { it.distinctBy(DepictedItem::id) }
@ -99,7 +107,7 @@ class DepictsPresenter @Inject constructor(
} }
) )
.subscribeOn(ioScheduler) .subscribeOn(ioScheduler)
.map { repository.selectedDepictions + it + recentDepictedItemList } .map { repository.selectedDepictions + it + recentDepictedItemList + controller.loadFavoritesItems() }
.map { it.filterNot { item -> WikidataDisambiguationItems.isDisambiguationItem(item.instanceOfs) } } .map { it.filterNot { item -> WikidataDisambiguationItems.isDisambiguationItem(item.instanceOfs) } }
.map { it.distinctBy(DepictedItem::id) } .map { it.distinctBy(DepictedItem::id) }