diff --git a/appcompose/src/main/java/com/readrops/app/compose/repositories/GetFoldersWithFeeds.kt b/appcompose/src/main/java/com/readrops/app/compose/repositories/GetFoldersWithFeeds.kt index 13f0b06c..86a1cf77 100644 --- a/appcompose/src/main/java/com/readrops/app/compose/repositories/GetFoldersWithFeeds.kt +++ b/appcompose/src/main/java/com/readrops/app/compose/repositories/GetFoldersWithFeeds.kt @@ -30,7 +30,6 @@ class GetFoldersWithFeeds( } else { null } - }, valueTransform = { Feed( @@ -52,7 +51,7 @@ class GetFoldersWithFeeds( } } - foldersWithFeeds + foldersWithFeeds.toSortedMap(nullsLast(Folder::compareTo)) } } } \ No newline at end of file diff --git a/db/src/main/java/com/readrops/db/dao/newdao/NewFolderDao.kt b/db/src/main/java/com/readrops/db/dao/newdao/NewFolderDao.kt index 0e78dd05..e7cfa4cd 100644 --- a/db/src/main/java/com/readrops/db/dao/newdao/NewFolderDao.kt +++ b/db/src/main/java/com/readrops/db/dao/newdao/NewFolderDao.kt @@ -9,11 +9,19 @@ import kotlinx.coroutines.flow.Flow @Dao interface NewFolderDao : NewBaseDao { - @Query("Select Feed.id As feedId, Feed.name As feedName, Feed.icon_url As feedIcon, Feed.url As feedUrl, " + - "Feed.siteUrl As feedSiteUrl, Feed.description as feedDescription, Feed.account_id As accountId, " + - "Folder.id As folderId, Folder.name As folderName, 0 as unreadCount " + - " From Feed Left Join Folder On Folder.id = Feed.folder_id " + - "Where Feed.folder_id is NULL OR Feed.folder_id is NOT NULL And Feed.account_id = :accountId Group By Feed.id") + @Query(""" + Select Feed.id As feedId, Feed.name As feedName, Feed.icon_url As feedIcon, Feed.url As feedUrl, + Feed.siteUrl As feedSiteUrl, Feed.description as feedDescription, + Folder.id As folderId, Folder.name As folderName, Feed.account_id as accountId + From Feed Left Join Folder On Folder.id = Feed.folder_id + Where Feed.folder_id is NULL OR Feed.folder_id is NOT NULL And Feed.id is NULL Or Feed.id is NOT NULL And Feed.account_id = :accountId Group By Feed.id + UNION ALL + Select Feed.id As feedId, Feed.name As feedName, Feed.icon_url As feedIcon, Feed.url As feedUrl, + Feed.siteUrl As feedSiteUrl, Feed.description as feedDescription, + Folder.id As folderId, Folder.name As folderName, Folder.account_id as accountId + From Folder Left Join Feed On Folder.id = Feed.folder_id + Where Feed.id is NULL And Folder.account_id = :accountId + """) fun selectFoldersAndFeeds(accountId: Int): Flow> @Query("Select * From Folder Where account_id = :accountId")