lydavid / MusicSearch

An Android app for browsing songs, artists, and anything related to them
https://lydavid.github.io/MusicSearch/
Apache License 2.0
23 stars 0 forks source link

cannot use app.cash.paging here due to: #535

Closed github-actions[bot] closed 5 months ago

github-actions[bot] commented 11 months ago

Cannot inline bytecode built with JVM target 11 into bytecode that is being built

with JVM target 1.8. Please specify proper '-jvm-target' option

https://api.github.com/lydavid/MusicSearch/blob/67b049c0d9a27a19c7449198730792217fe18b1c/data/repository/src/commonMain/kotlin/ly/david/musicsearch/data/repository/NowPlayingHistoryRepositoryImpl.kt#L33


package ly.david.musicsearch.data.repository

import androidx.paging.Pager
import androidx.paging.insertSeparators
import androidx.paging.map
import kotlinx.coroutines.flow.map
import ly.david.musicsearch.data.core.common.getDateFormatted
import ly.david.musicsearch.data.core.history.NowPlayingHistory
import ly.david.musicsearch.data.core.listitem.ListSeparator
import ly.david.musicsearch.data.core.listitem.NowPlayingHistoryListItemModel
import ly.david.musicsearch.data.core.listitem.toNowPlayingHistoryListItemModel
import ly.david.musicsearch.data.database.dao.NowPlayingHistoryDao
import ly.david.musicsearch.data.repository.internal.paging.CommonPagingConfig
import ly.david.musicsearch.domain.nowplaying.NowPlayingHistoryRepository

class NowPlayingHistoryRepositoryImpl(
    private val nowPlayingHistoryDao: NowPlayingHistoryDao,
) : NowPlayingHistoryRepository {
    override fun upsert(nowPlayingHistory: NowPlayingHistory) {
        nowPlayingHistoryDao.upsert(nowPlayingHistory)
    }

    override fun observeNowPlayingHistory(query: String) =
        Pager(
            config = CommonPagingConfig.pagingConfig,
            pagingSourceFactory = {
                nowPlayingHistoryDao.getAllNowPlayingHistory(
                    query = "%$query%",
                )
            }
        ).flow.map { pagingData ->
            pagingData
                // TODO: cannot use app.cash.paging here due to:
                //  Cannot inline bytecode built with JVM target 11 into bytecode that is being built
                //  with JVM target 1.8. Please specify proper '-jvm-target' option
                .map(NowPlayingHistory::toNowPlayingHistoryListItemModel)
                .insertSeparators(generator = ::generator)
        }

    private fun generator(
        before: NowPlayingHistoryListItemModel?,
        after: NowPlayingHistoryListItemModel?,
    ): ListSeparator? {
        val beforeDate = before?.lastPlayed?.getDateFormatted()
        val afterDate = after?.lastPlayed?.getDateFormatted()
        return if (beforeDate != afterDate && afterDate != null) {
            ListSeparator(
                id = afterDate,
                text = afterDate,
            )
        } else {
            null
        }
    }

    // TODO: consider whether to support undo delete for now playing history
//    fun markHistoryAsDeleted(mbid: String) {
//        nowPlayingHistoryDao.markAsDeleted(mbid, true)
//    }
//
//    fun undoDeleteHistory(mbid: String) {
//        nowPlayingHistoryDao.markAsDeleted(mbid, false)
//    }
//
//    fun markAllHistoryAsDeleted() {
//        nowPlayingHistoryDao.markAllAsDeleted(true)
//    }
//
//    fun undoDeleteAllHistory() {
//        nowPlayingHistoryDao.markAllAsDeleted(false)
//    }

    override fun delete(raw: String) {
        nowPlayingHistoryDao.delete(raw)
    }

    // TODO: support deleting all now playing history
//    fun deleteAllHistory() {
//        nowPlayingHistoryDao.deleteAll()
//    }
}
Checklist - [X] ``data/repository/src/commonMain/kotlin/ly/david/musicsearch/data/repository/NowPlayingHistoryRepositoryImpl.kt`` āœ… Commit 49bbb2e
sweep-ai[bot] commented 11 months ago

Here's the PR! https://github.com/lydavid/MusicSearch/pull/543.

āš” Sweep Free Trial: I'm creating this ticket using GPT-4. You have 4 GPT-4 tickets left for the month and 2 for the day. For more GPT-4 tickets, visit our payment portal.

Actions (click)


Step 1: šŸ”Ž Searching

I found the following snippets in your repository. I will now analyze these snippets and come up with a plan.

Some code snippets I looked at (click to expand). If some file is missing from here, you can mention the path in the ticket description. https://github.com/lydavid/MusicSearch/blob/84dbde8521953ec7f54d81a5cef4e2d1ab4f0d7a/data/database/src/commonMain/sqldelight/ly.david.musicsearch.data.database/now_playing_history.sq#L1-L33 https://github.com/lydavid/MusicSearch/blob/84dbde8521953ec7f54d81a5cef4e2d1ab4f0d7a/data/database/src/commonMain/sqldelight/ly.david.musicsearch.data.database/lookup_history.sq#L1-L80 https://github.com/lydavid/MusicSearch/blob/84dbde8521953ec7f54d81a5cef4e2d1ab4f0d7a/data/database/src/commonMain/sqldelight/ly.david.musicsearch.data.database/search_history.sq#L1-L42 https://github.com/lydavid/MusicSearch/blob/84dbde8521953ec7f54d81a5cef4e2d1ab4f0d7a/data/database/src/commonMain/sqldelight/ly.david.musicsearch.data.database/recording.sq#L1-L20 https://github.com/lydavid/MusicSearch/blob/84dbde8521953ec7f54d81a5cef4e2d1ab4f0d7a/data/database/src/commonMain/sqldelight/ly.david.musicsearch.data.database/release.sq#L1-L56
I also found the following external resources that might be helpful: **Summaries of links found in the content:** https://api.github.com/lydavid/MusicSearch/blob/67b049c0d9a27a19c7449198730792217fe18b1c/data/repository/src/commonMain/kotlin/ly/david/musicsearch/data/repository/NowPlayingHistoryRepositoryImpl.kt#L33: The page you provided is not found. Please make sure the URL is correct.

Step 2: āŒØļø Coding


Step 3: šŸ” Code Review

I have finished reviewing the code for completeness. I did not find errors for sweep/jvm-target-issue.

.


šŸŽ‰ Latest improvements to Sweep:


šŸ’” To recreate the pull request edit the issue title or description. To tweak the pull request, leave a comment on the pull request. Join Our Discord

lydavid commented 11 months ago

We can still build and run the app, so it might be an issue between multiplatform paging lib and AS