mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-11-03 23:58:55 +01:00 
			
		
		
		
	Added library sort by mean Tracker score (#10005)
This commit is contained in:
		@@ -30,6 +30,7 @@ data class LibrarySort(
 | 
			
		||||
        data object LatestChapter : Type(0b00010100)
 | 
			
		||||
        data object ChapterFetchDate : Type(0b00011000)
 | 
			
		||||
        data object DateAdded : Type(0b00011100)
 | 
			
		||||
        data object TrackerMean : Type(0b000100000)
 | 
			
		||||
 | 
			
		||||
        companion object {
 | 
			
		||||
            fun valueOf(flag: Long): Type {
 | 
			
		||||
@@ -75,6 +76,7 @@ data class LibrarySort(
 | 
			
		||||
                Type.LatestChapter,
 | 
			
		||||
                Type.ChapterFetchDate,
 | 
			
		||||
                Type.DateAdded,
 | 
			
		||||
                Type.TrackerMean,
 | 
			
		||||
            )
 | 
			
		||||
        }
 | 
			
		||||
        val directions by lazy { setOf(Direction.Ascending, Direction.Descending) }
 | 
			
		||||
@@ -101,6 +103,7 @@ data class LibrarySort(
 | 
			
		||||
                    "LATEST_CHAPTER" -> Type.LatestChapter
 | 
			
		||||
                    "CHAPTER_FETCH_DATE" -> Type.ChapterFetchDate
 | 
			
		||||
                    "DATE_ADDED" -> Type.DateAdded
 | 
			
		||||
                    "TRACKER_MEAN" -> Type.TrackerMean
 | 
			
		||||
                    else -> Type.Alphabetical
 | 
			
		||||
                }
 | 
			
		||||
                val ascending = if (values[1] == "ASCENDING") Direction.Ascending else Direction.Descending
 | 
			
		||||
@@ -121,6 +124,7 @@ data class LibrarySort(
 | 
			
		||||
            Type.LatestChapter -> "LATEST_CHAPTER"
 | 
			
		||||
            Type.ChapterFetchDate -> "CHAPTER_FETCH_DATE"
 | 
			
		||||
            Type.DateAdded -> "DATE_ADDED"
 | 
			
		||||
            Type.TrackerMean -> "TRACKER_MEAN"
 | 
			
		||||
        }
 | 
			
		||||
        val direction = if (direction == Direction.Ascending) "ASCENDING" else "DESCENDING"
 | 
			
		||||
        return "$type,$direction"
 | 
			
		||||
 
 | 
			
		||||
@@ -2,19 +2,14 @@ package tachiyomi.domain.track.interactor
 | 
			
		||||
 | 
			
		||||
import kotlinx.coroutines.flow.Flow
 | 
			
		||||
import kotlinx.coroutines.flow.map
 | 
			
		||||
import tachiyomi.domain.track.model.Track
 | 
			
		||||
import tachiyomi.domain.track.repository.TrackRepository
 | 
			
		||||
 | 
			
		||||
class GetTracksPerManga(
 | 
			
		||||
    private val trackRepository: TrackRepository,
 | 
			
		||||
) {
 | 
			
		||||
 | 
			
		||||
    fun subscribe(): Flow<Map<Long, List<Long>>> {
 | 
			
		||||
        return trackRepository.getTracksAsFlow().map { tracks ->
 | 
			
		||||
            tracks
 | 
			
		||||
                .groupBy { it.mangaId }
 | 
			
		||||
                .mapValues { entry ->
 | 
			
		||||
                    entry.value.map { it.syncId }
 | 
			
		||||
                }
 | 
			
		||||
        }
 | 
			
		||||
    fun subscribe(): Flow<Map<Long, List<Track>>> {
 | 
			
		||||
        return trackRepository.getTracksAsFlow().map { tracks -> tracks.groupBy { it.mangaId } }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user