diff --git a/app/build.gradle b/app/build.gradle index 28ae802c2..c2313674c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -124,7 +124,3 @@ spotless { licenseHeaderFile("NOTICE") } } - -afterEvaluate { - preDebugBuild.dependsOn spotlessApply -} \ No newline at end of file diff --git a/app/src/main/java/org/oxycblt/auxio/home/HomeViewModel.kt b/app/src/main/java/org/oxycblt/auxio/home/HomeViewModel.kt index 9238af08f..2cd9d8adf 100644 --- a/app/src/main/java/org/oxycblt/auxio/home/HomeViewModel.kt +++ b/app/src/main/java/org/oxycblt/auxio/home/HomeViewModel.kt @@ -138,6 +138,7 @@ class HomeViewModel(application: Application) : override fun onLibraryChanged(library: MusicStore.Library?) { if (library != null) { + logD("Library changed, refreshing library") _songs.value = settings.libSongSort.songs(library.songs) _albums.value = settings.libAlbumSort.albums(library.albums) _artists.value = settings.libArtistSort.artists(library.artists) diff --git a/app/src/main/java/org/oxycblt/auxio/music/Music.kt b/app/src/main/java/org/oxycblt/auxio/music/Music.kt index 5530ed8df..530e5509e 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/Music.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/Music.kt @@ -34,7 +34,6 @@ import org.oxycblt.auxio.music.storage.albumCoverUri import org.oxycblt.auxio.music.storage.audioUri import org.oxycblt.auxio.settings.Settings import org.oxycblt.auxio.ui.recycler.Item -import org.oxycblt.auxio.util.logD import org.oxycblt.auxio.util.nonZeroOrNull import org.oxycblt.auxio.util.unlikelyToBeNull import java.security.MessageDigest @@ -204,6 +203,11 @@ sealed class Music : Item { sealed class MusicParent : Music() { /** The songs that this parent owns. */ abstract val songs: List + + override fun hashCode() = 31 * uid.hashCode() + songs.hashCode() + + override fun equals(other: Any?) = + other is MusicParent && javaClass == other.javaClass && uid == other.uid && songs == other.songs } /** @@ -511,8 +515,6 @@ class Album constructor(raw: Raw, override val songs: List) : MusicParent( totalDuration += song.durationMs } - logD(earliestDateAdded) - date = earliestDate durationMs = totalDuration dateAdded = earliestDateAdded diff --git a/app/src/main/java/org/oxycblt/auxio/music/system/Indexer.kt b/app/src/main/java/org/oxycblt/auxio/music/system/Indexer.kt index e64134331..d771816fb 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/system/Indexer.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/system/Indexer.kt @@ -24,6 +24,7 @@ import android.os.Build import androidx.core.content.ContextCompat import kotlinx.coroutines.CancellationException import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.delay import kotlinx.coroutines.withContext import kotlinx.coroutines.yield import org.oxycblt.auxio.BuildConfig @@ -135,6 +136,8 @@ class Indexer { * complete, a new completion state will be pushed to each callback. */ suspend fun index(context: Context) { + delay(2000) + val notGranted = ContextCompat.checkSelfPermission(context, PERMISSION_READ_AUDIO) == PackageManager.PERMISSION_DENIED diff --git a/app/src/main/java/org/oxycblt/auxio/search/SearchViewModel.kt b/app/src/main/java/org/oxycblt/auxio/search/SearchViewModel.kt index 409216af1..09b04eb8e 100644 --- a/app/src/main/java/org/oxycblt/auxio/search/SearchViewModel.kt +++ b/app/src/main/java/org/oxycblt/auxio/search/SearchViewModel.kt @@ -65,6 +65,10 @@ class SearchViewModel(application: Application) : private var lastQuery: String? = null private var currentSearchJob: Job? = null + init { + musicStore.addCallback(this) + } + /** * Use [query] to perform a search of the music library. Will push results to [searchResults]. */ @@ -175,6 +179,7 @@ class SearchViewModel(application: Application) : override fun onLibraryChanged(library: MusicStore.Library?) { if (library != null) { + logD("Library changed, re-searching") // Make sure our query is up to date with the music library. search(lastQuery) }