diff --git a/app/src/main/java/fr/free/nrw/commons/bookmarks/locations/BookmarkLocationsController.kt b/app/src/main/java/fr/free/nrw/commons/bookmarks/locations/BookmarkLocationsController.kt index 3509f4e73..7739c20a7 100644 --- a/app/src/main/java/fr/free/nrw/commons/bookmarks/locations/BookmarkLocationsController.kt +++ b/app/src/main/java/fr/free/nrw/commons/bookmarks/locations/BookmarkLocationsController.kt @@ -1,6 +1,8 @@ package fr.free.nrw.commons.bookmarks.locations import fr.free.nrw.commons.nearby.Place +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.flow import javax.inject.Inject import javax.inject.Singleton @@ -13,5 +15,6 @@ class BookmarkLocationsController @Inject constructor( * Load bookmarked locations from the database. * @return a list of Place objects. */ - fun loadFavoritesLocations(): List = listOf() + fun loadFavoritesLocations(): Flow> = + bookmarkLocationDao.getAllBookmarksLocationsPlace() } diff --git a/app/src/main/java/fr/free/nrw/commons/bookmarks/locations/BookmarkLocationsDao.kt b/app/src/main/java/fr/free/nrw/commons/bookmarks/locations/BookmarkLocationsDao.kt index b7096fd64..d2c0a6fe8 100644 --- a/app/src/main/java/fr/free/nrw/commons/bookmarks/locations/BookmarkLocationsDao.kt +++ b/app/src/main/java/fr/free/nrw/commons/bookmarks/locations/BookmarkLocationsDao.kt @@ -9,6 +9,7 @@ import fr.free.nrw.commons.nearby.NearbyController import fr.free.nrw.commons.nearby.Place import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.flow +import kotlinx.coroutines.flow.map @Dao abstract class BookmarkLocationsDao { @@ -17,7 +18,7 @@ abstract class BookmarkLocationsDao { abstract suspend fun addBookmarkLocation(bookmarkLocation: BookmarksLocations) @Query("SELECT * FROM bookmarks_locations") - abstract suspend fun getAllBookmarksLocations(): List + abstract fun getAllBookmarksLocations(): Flow> @Query("SELECT EXISTS (SELECT 1 FROM bookmarks_locations WHERE location_name = :name)") abstract suspend fun findBookmarkLocation(name: String): Boolean @@ -44,6 +45,6 @@ abstract class BookmarkLocationsDao { } fun getAllBookmarksLocationsPlace(): Flow> { - return flow { getAllBookmarksLocations().map { it.toPlace() } } + return flow { getAllBookmarksLocations().map { it.map { it1 -> it1.toPlace() } } } } } \ No newline at end of file diff --git a/app/src/main/java/fr/free/nrw/commons/bookmarks/locations/BookmarkLocationsFragment.kt b/app/src/main/java/fr/free/nrw/commons/bookmarks/locations/BookmarkLocationsFragment.kt index 64213ae1d..e334d8bbf 100644 --- a/app/src/main/java/fr/free/nrw/commons/bookmarks/locations/BookmarkLocationsFragment.kt +++ b/app/src/main/java/fr/free/nrw/commons/bookmarks/locations/BookmarkLocationsFragment.kt @@ -15,8 +15,10 @@ import fr.free.nrw.commons.R import fr.free.nrw.commons.contributions.ContributionController import fr.free.nrw.commons.databinding.FragmentBookmarksLocationsBinding import fr.free.nrw.commons.filepicker.FilePicker +import fr.free.nrw.commons.nearby.Place import fr.free.nrw.commons.nearby.fragments.CommonPlaceClickActions import fr.free.nrw.commons.nearby.fragments.PlaceAdapter +import kotlinx.coroutines.launch import javax.inject.Inject @@ -128,7 +130,13 @@ class BookmarkLocationsFragment : DaggerFragment() { } private fun initList() { - val places = controller.loadFavoritesLocations() + var places: List = listOf() + viewLifecycleOwner.lifecycleScope.launch { + controller.loadFavoritesLocations().collect { + adapter.items = it + places = it + } + } adapter.items = places binding?.loadingImagesProgressBar?.visibility = View.GONE if (places.isEmpty()) { diff --git a/app/src/main/java/fr/free/nrw/commons/bookmarks/locations/BookmarkLocationsViewModel.kt b/app/src/main/java/fr/free/nrw/commons/bookmarks/locations/BookmarkLocationsViewModel.kt index 2ee924423..b22723c0f 100644 --- a/app/src/main/java/fr/free/nrw/commons/bookmarks/locations/BookmarkLocationsViewModel.kt +++ b/app/src/main/java/fr/free/nrw/commons/bookmarks/locations/BookmarkLocationsViewModel.kt @@ -8,8 +8,8 @@ class BookmarkLocationsViewModel( private val bookmarkLocationsDao: BookmarkLocationsDao ): ViewModel() { - fun getAllBookmarkLocations(): Flow> { - return bookmarkLocationsDao.getAllBookmarksLocationsPlace() - } +// fun getAllBookmarkLocations(): List { +// return bookmarkLocationsDao.getAllBookmarksLocationsPlace() +// } } \ No newline at end of file