diff --git a/app/src/main/java/org/oxycblt/auxio/MainFragment.kt b/app/src/main/java/org/oxycblt/auxio/MainFragment.kt index 2efaaa31b..3ff668cff 100644 --- a/app/src/main/java/org/oxycblt/auxio/MainFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/MainFragment.kt @@ -50,10 +50,8 @@ import org.oxycblt.auxio.home.HomeViewModel import org.oxycblt.auxio.home.Outer import org.oxycblt.auxio.list.ListViewModel import org.oxycblt.auxio.music.IndexingState -import org.oxycblt.musikr.Music import org.oxycblt.auxio.music.MusicType import org.oxycblt.auxio.music.MusicViewModel -import org.oxycblt.musikr.Song import org.oxycblt.auxio.playback.OpenPanel import org.oxycblt.auxio.playback.PlaybackBottomSheetBehavior import org.oxycblt.auxio.playback.PlaybackViewModel @@ -70,6 +68,8 @@ import org.oxycblt.auxio.util.getDimen import org.oxycblt.auxio.util.lazyReflectedMethod import org.oxycblt.auxio.util.navigateSafe import org.oxycblt.auxio.util.unlikelyToBeNull +import org.oxycblt.musikr.Music +import org.oxycblt.musikr.Song import timber.log.Timber as L /** diff --git a/app/src/main/java/org/oxycblt/auxio/detail/AlbumDetailFragment.kt b/app/src/main/java/org/oxycblt/auxio/detail/AlbumDetailFragment.kt index aa9b5d985..db4dde242 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/AlbumDetailFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/AlbumDetailFragment.kt @@ -29,13 +29,8 @@ import org.oxycblt.auxio.detail.list.AlbumDetailListAdapter import org.oxycblt.auxio.list.Item import org.oxycblt.auxio.list.ListFragment import org.oxycblt.auxio.list.menu.Menu -import org.oxycblt.musikr.Album -import org.oxycblt.musikr.Music -import org.oxycblt.musikr.MusicParent import org.oxycblt.auxio.music.PlaylistDecision import org.oxycblt.auxio.music.PlaylistMessage -import org.oxycblt.musikr.Song -import org.oxycblt.musikr.resolveNames import org.oxycblt.auxio.playback.PlaybackDecision import org.oxycblt.auxio.playback.formatDurationMs import org.oxycblt.auxio.util.collect @@ -44,6 +39,11 @@ import org.oxycblt.auxio.util.getPlural import org.oxycblt.auxio.util.navigateSafe import org.oxycblt.auxio.util.showToast import org.oxycblt.auxio.util.unlikelyToBeNull +import org.oxycblt.musikr.Album +import org.oxycblt.musikr.Music +import org.oxycblt.musikr.MusicParent +import org.oxycblt.musikr.Song +import org.oxycblt.musikr.resolveNames import timber.log.Timber as L /** diff --git a/app/src/main/java/org/oxycblt/auxio/detail/ArtistDetailFragment.kt b/app/src/main/java/org/oxycblt/auxio/detail/ArtistDetailFragment.kt index 160c6be07..b96452422 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/ArtistDetailFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/ArtistDetailFragment.kt @@ -29,14 +29,8 @@ import org.oxycblt.auxio.detail.list.ArtistDetailListAdapter import org.oxycblt.auxio.list.Item import org.oxycblt.auxio.list.ListFragment import org.oxycblt.auxio.list.menu.Menu -import org.oxycblt.musikr.Album -import org.oxycblt.musikr.Artist -import org.oxycblt.musikr.Music -import org.oxycblt.musikr.MusicParent import org.oxycblt.auxio.music.PlaylistDecision import org.oxycblt.auxio.music.PlaylistMessage -import org.oxycblt.musikr.Song -import org.oxycblt.musikr.resolveNames import org.oxycblt.auxio.playback.PlaybackDecision import org.oxycblt.auxio.util.collect import org.oxycblt.auxio.util.collectImmediately @@ -44,6 +38,12 @@ import org.oxycblt.auxio.util.getPlural import org.oxycblt.auxio.util.navigateSafe import org.oxycblt.auxio.util.showToast import org.oxycblt.auxio.util.unlikelyToBeNull +import org.oxycblt.musikr.Album +import org.oxycblt.musikr.Artist +import org.oxycblt.musikr.Music +import org.oxycblt.musikr.MusicParent +import org.oxycblt.musikr.Song +import org.oxycblt.musikr.resolveNames import timber.log.Timber as L /** diff --git a/app/src/main/java/org/oxycblt/auxio/detail/DetailFragment.kt b/app/src/main/java/org/oxycblt/auxio/detail/DetailFragment.kt index 2875e0acd..16aff144f 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/DetailFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/DetailFragment.kt @@ -35,13 +35,13 @@ import org.oxycblt.auxio.list.ListFragment import org.oxycblt.auxio.list.ListViewModel import org.oxycblt.auxio.list.PlainDivider import org.oxycblt.auxio.list.PlainHeader -import org.oxycblt.musikr.Music -import org.oxycblt.musikr.MusicParent import org.oxycblt.auxio.music.MusicViewModel import org.oxycblt.auxio.playback.PlaybackViewModel import org.oxycblt.auxio.util.getDimenPixels import org.oxycblt.auxio.util.overrideOnOverflowMenuClick import org.oxycblt.auxio.util.setFullWidthLookup +import org.oxycblt.musikr.Music +import org.oxycblt.musikr.MusicParent abstract class DetailFragment

: ListFragment(), diff --git a/app/src/main/java/org/oxycblt/auxio/detail/DetailGenerator.kt b/app/src/main/java/org/oxycblt/auxio/detail/DetailGenerator.kt index 2e818b638..8ba06b5f7 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/DetailGenerator.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/DetailGenerator.kt @@ -23,13 +23,13 @@ import javax.inject.Inject import org.oxycblt.auxio.R import org.oxycblt.auxio.list.ListSettings import org.oxycblt.auxio.list.sort.Sort +import org.oxycblt.auxio.music.MusicRepository +import org.oxycblt.auxio.music.MusicType import org.oxycblt.musikr.Album import org.oxycblt.musikr.Artist import org.oxycblt.musikr.Genre import org.oxycblt.musikr.Music import org.oxycblt.musikr.MusicParent -import org.oxycblt.auxio.music.MusicRepository -import org.oxycblt.auxio.music.MusicType import org.oxycblt.musikr.Playlist import org.oxycblt.musikr.Song import org.oxycblt.musikr.tag.Disc diff --git a/app/src/main/java/org/oxycblt/auxio/detail/DetailViewModel.kt b/app/src/main/java/org/oxycblt/auxio/detail/DetailViewModel.kt index e40278ef6..d514db4cf 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/DetailViewModel.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/DetailViewModel.kt @@ -40,21 +40,21 @@ import org.oxycblt.auxio.list.PlainDivider import org.oxycblt.auxio.list.PlainHeader import org.oxycblt.auxio.list.adapter.UpdateInstructions import org.oxycblt.auxio.list.sort.Sort -import org.oxycblt.musikr.Album -import org.oxycblt.musikr.Artist -import org.oxycblt.musikr.Genre -import org.oxycblt.musikr.Music -import org.oxycblt.musikr.MusicParent import org.oxycblt.auxio.music.MusicRepository import org.oxycblt.auxio.music.MusicType -import org.oxycblt.musikr.Playlist -import org.oxycblt.musikr.Song -import org.oxycblt.musikr.metadata.AudioProperties import org.oxycblt.auxio.playback.PlaySong import org.oxycblt.auxio.playback.PlaybackSettings import org.oxycblt.auxio.util.Event import org.oxycblt.auxio.util.MutableEvent import org.oxycblt.auxio.util.unlikelyToBeNull +import org.oxycblt.musikr.Album +import org.oxycblt.musikr.Artist +import org.oxycblt.musikr.Genre +import org.oxycblt.musikr.Music +import org.oxycblt.musikr.MusicParent +import org.oxycblt.musikr.Playlist +import org.oxycblt.musikr.Song +import org.oxycblt.musikr.metadata.AudioProperties import timber.log.Timber as L /** diff --git a/app/src/main/java/org/oxycblt/auxio/detail/GenreDetailFragment.kt b/app/src/main/java/org/oxycblt/auxio/detail/GenreDetailFragment.kt index cfae353fd..5ec60d085 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/GenreDetailFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/GenreDetailFragment.kt @@ -29,13 +29,8 @@ import org.oxycblt.auxio.detail.list.GenreDetailListAdapter import org.oxycblt.auxio.list.Item import org.oxycblt.auxio.list.ListFragment import org.oxycblt.auxio.list.menu.Menu -import org.oxycblt.musikr.Artist -import org.oxycblt.musikr.Genre -import org.oxycblt.musikr.Music -import org.oxycblt.musikr.MusicParent import org.oxycblt.auxio.music.PlaylistDecision import org.oxycblt.auxio.music.PlaylistMessage -import org.oxycblt.musikr.Song import org.oxycblt.auxio.playback.PlaybackDecision import org.oxycblt.auxio.util.collect import org.oxycblt.auxio.util.collectImmediately @@ -43,6 +38,11 @@ import org.oxycblt.auxio.util.getPlural import org.oxycblt.auxio.util.navigateSafe import org.oxycblt.auxio.util.showToast import org.oxycblt.auxio.util.unlikelyToBeNull +import org.oxycblt.musikr.Artist +import org.oxycblt.musikr.Genre +import org.oxycblt.musikr.Music +import org.oxycblt.musikr.MusicParent +import org.oxycblt.musikr.Song import timber.log.Timber as L /** diff --git a/app/src/main/java/org/oxycblt/auxio/detail/PlaylistDetailFragment.kt b/app/src/main/java/org/oxycblt/auxio/detail/PlaylistDetailFragment.kt index 5c0961e1f..d729ffa0e 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/PlaylistDetailFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/PlaylistDetailFragment.kt @@ -35,13 +35,8 @@ import org.oxycblt.auxio.detail.list.PlaylistDragCallback import org.oxycblt.auxio.list.Item import org.oxycblt.auxio.list.ListFragment import org.oxycblt.auxio.list.menu.Menu -import org.oxycblt.musikr.Music -import org.oxycblt.musikr.MusicParent -import org.oxycblt.musikr.Playlist import org.oxycblt.auxio.music.PlaylistDecision import org.oxycblt.auxio.music.PlaylistMessage -import org.oxycblt.musikr.Song -import org.oxycblt.musikr.playlist.m3u.M3U import org.oxycblt.auxio.playback.PlaybackDecision import org.oxycblt.auxio.playback.formatDurationMs import org.oxycblt.auxio.ui.DialogAwareNavigationListener @@ -52,6 +47,11 @@ import org.oxycblt.auxio.util.getPlural import org.oxycblt.auxio.util.navigateSafe import org.oxycblt.auxio.util.showToast import org.oxycblt.auxio.util.unlikelyToBeNull +import org.oxycblt.musikr.Music +import org.oxycblt.musikr.MusicParent +import org.oxycblt.musikr.Playlist +import org.oxycblt.musikr.Song +import org.oxycblt.musikr.playlist.m3u.M3U import timber.log.Timber as L /** diff --git a/app/src/main/java/org/oxycblt/auxio/detail/SongDetailDialog.kt b/app/src/main/java/org/oxycblt/auxio/detail/SongDetailDialog.kt index 631c0f554..ef515357f 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/SongDetailDialog.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/SongDetailDialog.kt @@ -32,16 +32,16 @@ import org.oxycblt.auxio.databinding.DialogSongDetailBinding import org.oxycblt.auxio.detail.list.SongProperty import org.oxycblt.auxio.detail.list.SongPropertyAdapter import org.oxycblt.auxio.list.adapter.UpdateInstructions -import org.oxycblt.musikr.Music -import org.oxycblt.musikr.Song -import org.oxycblt.musikr.resolveNames -import org.oxycblt.musikr.metadata.AudioProperties -import org.oxycblt.musikr.tag.Name import org.oxycblt.auxio.playback.formatDurationMs import org.oxycblt.auxio.playback.replaygain.formatDb import org.oxycblt.auxio.ui.ViewBindingMaterialDialogFragment import org.oxycblt.auxio.util.collectImmediately import org.oxycblt.auxio.util.concatLocalized +import org.oxycblt.musikr.Music +import org.oxycblt.musikr.Song +import org.oxycblt.musikr.metadata.AudioProperties +import org.oxycblt.musikr.resolveNames +import org.oxycblt.musikr.tag.Name import timber.log.Timber as L /** diff --git a/app/src/main/java/org/oxycblt/auxio/detail/decision/ArtistShowChoice.kt b/app/src/main/java/org/oxycblt/auxio/detail/decision/ArtistShowChoice.kt index e01a190a9..a1d86fae2 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/decision/ArtistShowChoice.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/decision/ArtistShowChoice.kt @@ -25,9 +25,9 @@ import org.oxycblt.auxio.list.ClickableListListener import org.oxycblt.auxio.list.adapter.FlexibleListAdapter import org.oxycblt.auxio.list.adapter.SimpleDiffCallback import org.oxycblt.auxio.list.recycler.DialogRecyclerView -import org.oxycblt.musikr.Artist import org.oxycblt.auxio.util.context import org.oxycblt.auxio.util.inflater +import org.oxycblt.musikr.Artist /** * A [FlexibleListAdapter] that displays a list of [Artist] navigation choices, for use with diff --git a/app/src/main/java/org/oxycblt/auxio/detail/decision/DetailDecisionViewModel.kt b/app/src/main/java/org/oxycblt/auxio/detail/decision/DetailDecisionViewModel.kt index af3a4b4db..d57d18042 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/decision/DetailDecisionViewModel.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/decision/DetailDecisionViewModel.kt @@ -23,11 +23,11 @@ import dagger.hilt.android.lifecycle.HiltViewModel import javax.inject.Inject import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow +import org.oxycblt.auxio.music.MusicRepository import org.oxycblt.musikr.Album import org.oxycblt.musikr.Artist import org.oxycblt.musikr.Library import org.oxycblt.musikr.Music -import org.oxycblt.auxio.music.MusicRepository import org.oxycblt.musikr.Song import timber.log.Timber as L diff --git a/app/src/main/java/org/oxycblt/auxio/detail/decision/ShowArtistDialog.kt b/app/src/main/java/org/oxycblt/auxio/detail/decision/ShowArtistDialog.kt index e2defed2e..656147db0 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/decision/ShowArtistDialog.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/decision/ShowArtistDialog.kt @@ -32,9 +32,9 @@ import org.oxycblt.auxio.databinding.DialogMusicChoicesBinding import org.oxycblt.auxio.detail.DetailViewModel import org.oxycblt.auxio.list.ClickableListListener import org.oxycblt.auxio.list.adapter.UpdateInstructions -import org.oxycblt.musikr.Artist import org.oxycblt.auxio.ui.ViewBindingMaterialDialogFragment import org.oxycblt.auxio.util.collectImmediately +import org.oxycblt.musikr.Artist import timber.log.Timber as L /** diff --git a/app/src/main/java/org/oxycblt/auxio/detail/list/AlbumDetailListAdapter.kt b/app/src/main/java/org/oxycblt/auxio/detail/list/AlbumDetailListAdapter.kt index b1ec4cba2..de7fa331a 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/list/AlbumDetailListAdapter.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/list/AlbumDetailListAdapter.kt @@ -35,14 +35,14 @@ import org.oxycblt.auxio.list.Item import org.oxycblt.auxio.list.SelectableListListener import org.oxycblt.auxio.list.adapter.SelectionIndicatorAdapter import org.oxycblt.auxio.list.adapter.SimpleDiffCallback -import org.oxycblt.musikr.Album -import org.oxycblt.musikr.Song -import org.oxycblt.musikr.tag.Disc -import org.oxycblt.musikr.tag.resolveNumber import org.oxycblt.auxio.playback.formatDurationMs import org.oxycblt.auxio.util.context import org.oxycblt.auxio.util.getAttrColorCompat import org.oxycblt.auxio.util.inflater +import org.oxycblt.musikr.Album +import org.oxycblt.musikr.Song +import org.oxycblt.musikr.tag.Disc +import org.oxycblt.musikr.tag.resolveNumber /** * An [DetailListAdapter] implementing the header and sub-items for the [Album] detail view. diff --git a/app/src/main/java/org/oxycblt/auxio/detail/list/ArtistDetailListAdapter.kt b/app/src/main/java/org/oxycblt/auxio/detail/list/ArtistDetailListAdapter.kt index 4679ae668..5dc948707 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/list/ArtistDetailListAdapter.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/list/ArtistDetailListAdapter.kt @@ -29,12 +29,12 @@ import org.oxycblt.auxio.list.Item import org.oxycblt.auxio.list.SelectableListListener import org.oxycblt.auxio.list.adapter.SelectionIndicatorAdapter import org.oxycblt.auxio.list.adapter.SimpleDiffCallback +import org.oxycblt.auxio.util.context +import org.oxycblt.auxio.util.inflater import org.oxycblt.musikr.Album import org.oxycblt.musikr.Artist import org.oxycblt.musikr.Music import org.oxycblt.musikr.Song -import org.oxycblt.auxio.util.context -import org.oxycblt.auxio.util.inflater /** * A [DetailListAdapter] implementing the header and sub-items for the [Artist] detail view. diff --git a/app/src/main/java/org/oxycblt/auxio/detail/list/DetailListAdapter.kt b/app/src/main/java/org/oxycblt/auxio/detail/list/DetailListAdapter.kt index a823ae012..8feee699b 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/list/DetailListAdapter.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/list/DetailListAdapter.kt @@ -35,9 +35,9 @@ import org.oxycblt.auxio.list.adapter.SelectionIndicatorAdapter import org.oxycblt.auxio.list.adapter.SimpleDiffCallback import org.oxycblt.auxio.list.recycler.BasicHeaderViewHolder import org.oxycblt.auxio.list.recycler.DividerViewHolder -import org.oxycblt.musikr.Music import org.oxycblt.auxio.util.context import org.oxycblt.auxio.util.inflater +import org.oxycblt.musikr.Music /** * A [RecyclerView.Adapter] that implements shared behavior between lists of child items in the diff --git a/app/src/main/java/org/oxycblt/auxio/detail/list/PlaylistDetailListAdapter.kt b/app/src/main/java/org/oxycblt/auxio/detail/list/PlaylistDetailListAdapter.kt index 2645759dd..3cb8e60c2 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/list/PlaylistDetailListAdapter.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/list/PlaylistDetailListAdapter.kt @@ -40,12 +40,12 @@ import org.oxycblt.auxio.list.adapter.SelectionIndicatorAdapter import org.oxycblt.auxio.list.adapter.SimpleDiffCallback import org.oxycblt.auxio.list.recycler.MaterialDragCallback import org.oxycblt.auxio.list.recycler.SongViewHolder -import org.oxycblt.musikr.Playlist -import org.oxycblt.musikr.Song -import org.oxycblt.musikr.resolveNames import org.oxycblt.auxio.util.context import org.oxycblt.auxio.util.getAttrColorCompat import org.oxycblt.auxio.util.inflater +import org.oxycblt.musikr.Playlist +import org.oxycblt.musikr.Song +import org.oxycblt.musikr.resolveNames import timber.log.Timber as L /** diff --git a/app/src/main/java/org/oxycblt/auxio/detail/sort/AlbumSongSortDialog.kt b/app/src/main/java/org/oxycblt/auxio/detail/sort/AlbumSongSortDialog.kt index 6aeb51eea..4703c66f4 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/sort/AlbumSongSortDialog.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/sort/AlbumSongSortDialog.kt @@ -26,8 +26,8 @@ import org.oxycblt.auxio.databinding.DialogSortBinding import org.oxycblt.auxio.detail.DetailViewModel import org.oxycblt.auxio.list.sort.Sort import org.oxycblt.auxio.list.sort.SortDialog -import org.oxycblt.musikr.Album import org.oxycblt.auxio.util.collectImmediately +import org.oxycblt.musikr.Album import timber.log.Timber as L /** diff --git a/app/src/main/java/org/oxycblt/auxio/detail/sort/ArtistSongSortDialog.kt b/app/src/main/java/org/oxycblt/auxio/detail/sort/ArtistSongSortDialog.kt index 1362eef5f..9b2cc5542 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/sort/ArtistSongSortDialog.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/sort/ArtistSongSortDialog.kt @@ -26,8 +26,8 @@ import org.oxycblt.auxio.databinding.DialogSortBinding import org.oxycblt.auxio.detail.DetailViewModel import org.oxycblt.auxio.list.sort.Sort import org.oxycblt.auxio.list.sort.SortDialog -import org.oxycblt.musikr.Artist import org.oxycblt.auxio.util.collectImmediately +import org.oxycblt.musikr.Artist import timber.log.Timber as L /** diff --git a/app/src/main/java/org/oxycblt/auxio/detail/sort/GenreSongSortDialog.kt b/app/src/main/java/org/oxycblt/auxio/detail/sort/GenreSongSortDialog.kt index 5103d870f..b996c71f4 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/sort/GenreSongSortDialog.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/sort/GenreSongSortDialog.kt @@ -26,8 +26,8 @@ import org.oxycblt.auxio.databinding.DialogSortBinding import org.oxycblt.auxio.detail.DetailViewModel import org.oxycblt.auxio.list.sort.Sort import org.oxycblt.auxio.list.sort.SortDialog -import org.oxycblt.musikr.Genre import org.oxycblt.auxio.util.collectImmediately +import org.oxycblt.musikr.Genre import timber.log.Timber as L /** diff --git a/app/src/main/java/org/oxycblt/auxio/detail/sort/PlaylistSongSortDialog.kt b/app/src/main/java/org/oxycblt/auxio/detail/sort/PlaylistSongSortDialog.kt index 3e0df5289..090428035 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/sort/PlaylistSongSortDialog.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/sort/PlaylistSongSortDialog.kt @@ -26,8 +26,8 @@ import org.oxycblt.auxio.databinding.DialogSortBinding import org.oxycblt.auxio.detail.DetailViewModel import org.oxycblt.auxio.list.sort.Sort import org.oxycblt.auxio.list.sort.SortDialog -import org.oxycblt.musikr.Playlist import org.oxycblt.auxio.util.collectImmediately +import org.oxycblt.musikr.Playlist import timber.log.Timber as L /** diff --git a/app/src/main/java/org/oxycblt/auxio/home/HomeFragment.kt b/app/src/main/java/org/oxycblt/auxio/home/HomeFragment.kt index 946a5a69e..9d9c179bd 100644 --- a/app/src/main/java/org/oxycblt/auxio/home/HomeFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/home/HomeFragment.kt @@ -59,14 +59,10 @@ import org.oxycblt.auxio.list.ListViewModel import org.oxycblt.auxio.list.SelectionFragment import org.oxycblt.auxio.list.menu.Menu import org.oxycblt.auxio.music.IndexingState -import org.oxycblt.musikr.Music import org.oxycblt.auxio.music.MusicType import org.oxycblt.auxio.music.MusicViewModel -import org.oxycblt.musikr.Playlist import org.oxycblt.auxio.music.PlaylistDecision import org.oxycblt.auxio.music.PlaylistMessage -import org.oxycblt.musikr.IndexingProgress -import org.oxycblt.musikr.playlist.m3u.M3U import org.oxycblt.auxio.playback.PlaybackDecision import org.oxycblt.auxio.playback.PlaybackViewModel import org.oxycblt.auxio.util.collect @@ -75,6 +71,10 @@ import org.oxycblt.auxio.util.lazyReflectedField import org.oxycblt.auxio.util.lazyReflectedMethod import org.oxycblt.auxio.util.navigateSafe import org.oxycblt.auxio.util.showToast +import org.oxycblt.musikr.IndexingProgress +import org.oxycblt.musikr.Music +import org.oxycblt.musikr.Playlist +import org.oxycblt.musikr.playlist.m3u.M3U import timber.log.Timber as L /** diff --git a/app/src/main/java/org/oxycblt/auxio/home/HomeGenerator.kt b/app/src/main/java/org/oxycblt/auxio/home/HomeGenerator.kt index 657ebbe55..605088af6 100644 --- a/app/src/main/java/org/oxycblt/auxio/home/HomeGenerator.kt +++ b/app/src/main/java/org/oxycblt/auxio/home/HomeGenerator.kt @@ -22,11 +22,11 @@ import javax.inject.Inject import org.oxycblt.auxio.home.tabs.Tab import org.oxycblt.auxio.list.ListSettings import org.oxycblt.auxio.list.adapter.UpdateInstructions +import org.oxycblt.auxio.music.MusicRepository +import org.oxycblt.auxio.music.MusicType import org.oxycblt.musikr.Album import org.oxycblt.musikr.Artist import org.oxycblt.musikr.Genre -import org.oxycblt.auxio.music.MusicRepository -import org.oxycblt.auxio.music.MusicType import org.oxycblt.musikr.Playlist import org.oxycblt.musikr.Song import timber.log.Timber as L 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 969816c09..17ee96617 100644 --- a/app/src/main/java/org/oxycblt/auxio/home/HomeViewModel.kt +++ b/app/src/main/java/org/oxycblt/auxio/home/HomeViewModel.kt @@ -27,16 +27,16 @@ import org.oxycblt.auxio.home.tabs.Tab import org.oxycblt.auxio.list.ListSettings import org.oxycblt.auxio.list.adapter.UpdateInstructions import org.oxycblt.auxio.list.sort.Sort -import org.oxycblt.musikr.Album -import org.oxycblt.musikr.Artist -import org.oxycblt.musikr.Genre import org.oxycblt.auxio.music.MusicType -import org.oxycblt.musikr.Playlist -import org.oxycblt.musikr.Song import org.oxycblt.auxio.playback.PlaySong import org.oxycblt.auxio.playback.PlaybackSettings import org.oxycblt.auxio.util.Event import org.oxycblt.auxio.util.MutableEvent +import org.oxycblt.musikr.Album +import org.oxycblt.musikr.Artist +import org.oxycblt.musikr.Genre +import org.oxycblt.musikr.Playlist +import org.oxycblt.musikr.Song import timber.log.Timber as L /** diff --git a/app/src/main/java/org/oxycblt/auxio/home/list/AlbumListFragment.kt b/app/src/main/java/org/oxycblt/auxio/home/list/AlbumListFragment.kt index 3e9148417..e283e7fd5 100644 --- a/app/src/main/java/org/oxycblt/auxio/home/list/AlbumListFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/home/list/AlbumListFragment.kt @@ -37,16 +37,16 @@ import org.oxycblt.auxio.list.adapter.SelectionIndicatorAdapter import org.oxycblt.auxio.list.recycler.AlbumViewHolder import org.oxycblt.auxio.list.recycler.FastScrollRecyclerView import org.oxycblt.auxio.list.sort.Sort -import org.oxycblt.musikr.Album import org.oxycblt.auxio.music.IndexingState -import org.oxycblt.musikr.Music -import org.oxycblt.musikr.MusicParent import org.oxycblt.auxio.music.MusicViewModel -import org.oxycblt.musikr.Song import org.oxycblt.auxio.playback.PlaybackViewModel import org.oxycblt.auxio.playback.formatDurationMs import org.oxycblt.auxio.playback.secsToMs import org.oxycblt.auxio.util.collectImmediately +import org.oxycblt.musikr.Album +import org.oxycblt.musikr.Music +import org.oxycblt.musikr.MusicParent +import org.oxycblt.musikr.Song /** * A [ListFragment] that shows a list of [Album]s. diff --git a/app/src/main/java/org/oxycblt/auxio/home/list/ArtistListFragment.kt b/app/src/main/java/org/oxycblt/auxio/home/list/ArtistListFragment.kt index 747096b65..ecb1266a3 100644 --- a/app/src/main/java/org/oxycblt/auxio/home/list/ArtistListFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/home/list/ArtistListFragment.kt @@ -35,16 +35,16 @@ import org.oxycblt.auxio.list.adapter.SelectionIndicatorAdapter import org.oxycblt.auxio.list.recycler.ArtistViewHolder import org.oxycblt.auxio.list.recycler.FastScrollRecyclerView import org.oxycblt.auxio.list.sort.Sort -import org.oxycblt.musikr.Artist import org.oxycblt.auxio.music.IndexingState -import org.oxycblt.musikr.Music -import org.oxycblt.musikr.MusicParent import org.oxycblt.auxio.music.MusicViewModel -import org.oxycblt.musikr.Song import org.oxycblt.auxio.playback.PlaybackViewModel import org.oxycblt.auxio.playback.formatDurationMs import org.oxycblt.auxio.util.collectImmediately import org.oxycblt.auxio.util.positiveOrNull +import org.oxycblt.musikr.Artist +import org.oxycblt.musikr.Music +import org.oxycblt.musikr.MusicParent +import org.oxycblt.musikr.Song /** * A [ListFragment] that shows a list of [Artist]s. diff --git a/app/src/main/java/org/oxycblt/auxio/home/list/GenreListFragment.kt b/app/src/main/java/org/oxycblt/auxio/home/list/GenreListFragment.kt index b62b01ccc..5d9c472d0 100644 --- a/app/src/main/java/org/oxycblt/auxio/home/list/GenreListFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/home/list/GenreListFragment.kt @@ -35,15 +35,15 @@ import org.oxycblt.auxio.list.adapter.SelectionIndicatorAdapter import org.oxycblt.auxio.list.recycler.FastScrollRecyclerView import org.oxycblt.auxio.list.recycler.GenreViewHolder import org.oxycblt.auxio.list.sort.Sort -import org.oxycblt.musikr.Genre import org.oxycblt.auxio.music.IndexingState -import org.oxycblt.musikr.Music -import org.oxycblt.musikr.MusicParent import org.oxycblt.auxio.music.MusicViewModel -import org.oxycblt.musikr.Song import org.oxycblt.auxio.playback.PlaybackViewModel import org.oxycblt.auxio.playback.formatDurationMs import org.oxycblt.auxio.util.collectImmediately +import org.oxycblt.musikr.Genre +import org.oxycblt.musikr.Music +import org.oxycblt.musikr.MusicParent +import org.oxycblt.musikr.Song /** * A [ListFragment] that shows a list of [Genre]s. diff --git a/app/src/main/java/org/oxycblt/auxio/home/list/PlaylistListFragment.kt b/app/src/main/java/org/oxycblt/auxio/home/list/PlaylistListFragment.kt index 70f574c98..80b658812 100644 --- a/app/src/main/java/org/oxycblt/auxio/home/list/PlaylistListFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/home/list/PlaylistListFragment.kt @@ -35,14 +35,14 @@ import org.oxycblt.auxio.list.recycler.FastScrollRecyclerView import org.oxycblt.auxio.list.recycler.PlaylistViewHolder import org.oxycblt.auxio.list.sort.Sort import org.oxycblt.auxio.music.IndexingState -import org.oxycblt.musikr.Music -import org.oxycblt.musikr.MusicParent import org.oxycblt.auxio.music.MusicViewModel -import org.oxycblt.musikr.Playlist -import org.oxycblt.musikr.Song import org.oxycblt.auxio.playback.PlaybackViewModel import org.oxycblt.auxio.playback.formatDurationMs import org.oxycblt.auxio.util.collectImmediately +import org.oxycblt.musikr.Music +import org.oxycblt.musikr.MusicParent +import org.oxycblt.musikr.Playlist +import org.oxycblt.musikr.Song /** * A [ListFragment] that shows a list of [Playlist]s. diff --git a/app/src/main/java/org/oxycblt/auxio/home/list/SongListFragment.kt b/app/src/main/java/org/oxycblt/auxio/home/list/SongListFragment.kt index ee0470330..03d1b91dc 100644 --- a/app/src/main/java/org/oxycblt/auxio/home/list/SongListFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/home/list/SongListFragment.kt @@ -37,14 +37,14 @@ import org.oxycblt.auxio.list.recycler.FastScrollRecyclerView import org.oxycblt.auxio.list.recycler.SongViewHolder import org.oxycblt.auxio.list.sort.Sort import org.oxycblt.auxio.music.IndexingState -import org.oxycblt.musikr.Music -import org.oxycblt.musikr.MusicParent import org.oxycblt.auxio.music.MusicViewModel -import org.oxycblt.musikr.Song import org.oxycblt.auxio.playback.PlaybackViewModel import org.oxycblt.auxio.playback.formatDurationMs import org.oxycblt.auxio.playback.secsToMs import org.oxycblt.auxio.util.collectImmediately +import org.oxycblt.musikr.Music +import org.oxycblt.musikr.MusicParent +import org.oxycblt.musikr.Song /** * A [ListFragment] that shows a list of [Song]s. diff --git a/app/src/main/java/org/oxycblt/auxio/image/CoverView.kt b/app/src/main/java/org/oxycblt/auxio/image/CoverView.kt index 680138e64..1536402a3 100644 --- a/app/src/main/java/org/oxycblt/auxio/image/CoverView.kt +++ b/app/src/main/java/org/oxycblt/auxio/image/CoverView.kt @@ -53,18 +53,18 @@ import javax.inject.Inject import org.oxycblt.auxio.R import org.oxycblt.auxio.image.coil.RoundedRectTransformation import org.oxycblt.auxio.image.coil.SquareCropTransformation -import org.oxycblt.musikr.Album -import org.oxycblt.musikr.Artist -import org.oxycblt.musikr.Genre -import org.oxycblt.musikr.Playlist -import org.oxycblt.musikr.Song -import org.oxycblt.musikr.cover.Cover import org.oxycblt.auxio.ui.MaterialFader import org.oxycblt.auxio.ui.UISettings import org.oxycblt.auxio.util.getAttrColorCompat import org.oxycblt.auxio.util.getColorCompat import org.oxycblt.auxio.util.getDimenPixels import org.oxycblt.auxio.util.getDrawableCompat +import org.oxycblt.musikr.Album +import org.oxycblt.musikr.Artist +import org.oxycblt.musikr.Genre +import org.oxycblt.musikr.Playlist +import org.oxycblt.musikr.Song +import org.oxycblt.musikr.cover.Cover /** * Auxio's extension of [ImageView] that enables cover art loading and playing indicator and diff --git a/app/src/main/java/org/oxycblt/auxio/list/ListViewModel.kt b/app/src/main/java/org/oxycblt/auxio/list/ListViewModel.kt index d6bd43f8d..b2eccb15a 100644 --- a/app/src/main/java/org/oxycblt/auxio/list/ListViewModel.kt +++ b/app/src/main/java/org/oxycblt/auxio/list/ListViewModel.kt @@ -25,17 +25,17 @@ import javax.inject.Inject import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import org.oxycblt.auxio.list.menu.Menu +import org.oxycblt.auxio.music.MusicRepository +import org.oxycblt.auxio.playback.PlaySong +import org.oxycblt.auxio.util.Event +import org.oxycblt.auxio.util.MutableEvent import org.oxycblt.musikr.Album import org.oxycblt.musikr.Artist import org.oxycblt.musikr.Genre import org.oxycblt.musikr.Music import org.oxycblt.musikr.MusicParent -import org.oxycblt.auxio.music.MusicRepository import org.oxycblt.musikr.Playlist import org.oxycblt.musikr.Song -import org.oxycblt.auxio.playback.PlaySong -import org.oxycblt.auxio.util.Event -import org.oxycblt.auxio.util.MutableEvent import timber.log.Timber as L /** diff --git a/app/src/main/java/org/oxycblt/auxio/list/menu/Menu.kt b/app/src/main/java/org/oxycblt/auxio/list/menu/Menu.kt index e3dc2b341..3413e03f0 100644 --- a/app/src/main/java/org/oxycblt/auxio/list/menu/Menu.kt +++ b/app/src/main/java/org/oxycblt/auxio/list/menu/Menu.kt @@ -21,13 +21,13 @@ package org.oxycblt.auxio.list.menu import android.os.Parcelable import androidx.annotation.MenuRes import kotlinx.parcelize.Parcelize +import org.oxycblt.auxio.playback.PlaySong import org.oxycblt.musikr.Album import org.oxycblt.musikr.Artist import org.oxycblt.musikr.Genre import org.oxycblt.musikr.Music import org.oxycblt.musikr.Playlist import org.oxycblt.musikr.Song -import org.oxycblt.auxio.playback.PlaySong /** * Command to navigate to a specific menu dialog configuration. diff --git a/app/src/main/java/org/oxycblt/auxio/list/menu/MenuDialogFragmentImpl.kt b/app/src/main/java/org/oxycblt/auxio/list/menu/MenuDialogFragmentImpl.kt index c76e684f4..114b8f9f4 100644 --- a/app/src/main/java/org/oxycblt/auxio/list/menu/MenuDialogFragmentImpl.kt +++ b/app/src/main/java/org/oxycblt/auxio/list/menu/MenuDialogFragmentImpl.kt @@ -27,17 +27,17 @@ import org.oxycblt.auxio.R import org.oxycblt.auxio.databinding.DialogMenuBinding import org.oxycblt.auxio.detail.DetailViewModel import org.oxycblt.auxio.list.ListViewModel -import org.oxycblt.musikr.Artist -import org.oxycblt.musikr.Genre import org.oxycblt.auxio.music.MusicViewModel -import org.oxycblt.musikr.Playlist -import org.oxycblt.musikr.Song -import org.oxycblt.musikr.resolveNames import org.oxycblt.auxio.playback.PlaybackViewModel import org.oxycblt.auxio.playback.formatDurationMs import org.oxycblt.auxio.util.getPlural import org.oxycblt.auxio.util.share import org.oxycblt.auxio.util.showToast +import org.oxycblt.musikr.Artist +import org.oxycblt.musikr.Genre +import org.oxycblt.musikr.Playlist +import org.oxycblt.musikr.Song +import org.oxycblt.musikr.resolveNames /** * [MenuDialogFragment] implementation for a [Song]. diff --git a/app/src/main/java/org/oxycblt/auxio/list/menu/MenuViewModel.kt b/app/src/main/java/org/oxycblt/auxio/list/menu/MenuViewModel.kt index fa8e7dad9..ca3feb8e3 100644 --- a/app/src/main/java/org/oxycblt/auxio/list/menu/MenuViewModel.kt +++ b/app/src/main/java/org/oxycblt/auxio/list/menu/MenuViewModel.kt @@ -23,9 +23,9 @@ import dagger.hilt.android.lifecycle.HiltViewModel import javax.inject.Inject import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow -import org.oxycblt.musikr.MusicParent import org.oxycblt.auxio.music.MusicRepository import org.oxycblt.auxio.playback.PlaySong +import org.oxycblt.musikr.MusicParent import timber.log.Timber as L /** diff --git a/app/src/main/java/org/oxycblt/auxio/list/recycler/ViewHolders.kt b/app/src/main/java/org/oxycblt/auxio/list/recycler/ViewHolders.kt index 6c14f568e..4d7c0fb22 100644 --- a/app/src/main/java/org/oxycblt/auxio/list/recycler/ViewHolders.kt +++ b/app/src/main/java/org/oxycblt/auxio/list/recycler/ViewHolders.kt @@ -32,6 +32,9 @@ import org.oxycblt.auxio.list.PlainDivider import org.oxycblt.auxio.list.SelectableListListener import org.oxycblt.auxio.list.adapter.SelectionIndicatorAdapter import org.oxycblt.auxio.list.adapter.SimpleDiffCallback +import org.oxycblt.auxio.util.context +import org.oxycblt.auxio.util.getPlural +import org.oxycblt.auxio.util.inflater import org.oxycblt.musikr.Album import org.oxycblt.musikr.Artist import org.oxycblt.musikr.Genre @@ -39,9 +42,6 @@ import org.oxycblt.musikr.Playlist import org.oxycblt.musikr.Song import org.oxycblt.musikr.areNamesTheSame import org.oxycblt.musikr.resolveNames -import org.oxycblt.auxio.util.context -import org.oxycblt.auxio.util.getPlural -import org.oxycblt.auxio.util.inflater /** * A [RecyclerView.ViewHolder] that displays a [Song]. Use [from] to create an instance. diff --git a/app/src/main/java/org/oxycblt/auxio/music/MusicRepository.kt b/app/src/main/java/org/oxycblt/auxio/music/MusicRepository.kt index 543581d87..3fee8efe4 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/MusicRepository.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/MusicRepository.kt @@ -347,10 +347,10 @@ constructor(private val indexer: Indexer, private val musicSettings: MusicSettin } else { Name.Known.SimpleFactory } - val uris = musicSettings.musicLocations + val locations = musicSettings.musicLocations val newLibrary = - indexer.run(uris, Interpretation(nameFactory, separators), ::emitIndexingProgress) + indexer.run(locations, Interpretation(nameFactory, separators), ::emitIndexingProgress) emitIndexingCompletion(null) diff --git a/app/src/main/java/org/oxycblt/auxio/music/MusicSettings.kt b/app/src/main/java/org/oxycblt/auxio/music/MusicSettings.kt index 1c2da46bb..01181e9dd 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/MusicSettings.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/MusicSettings.kt @@ -69,7 +69,8 @@ constructor( set(value) { sharedPreferences.edit { putStringSet( - getString(R.string.set_key_music_locations), value.map { it.toString() }.toSet()) + getString(R.string.set_key_music_locations), + value.map { it.toString() }.toSet()) apply() } } diff --git a/app/src/main/java/org/oxycblt/auxio/music/MusicViewModel.kt b/app/src/main/java/org/oxycblt/auxio/music/MusicViewModel.kt index accfb5ff4..ed54a2886 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/MusicViewModel.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/MusicViewModel.kt @@ -29,8 +29,6 @@ import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.launch import org.oxycblt.auxio.R import org.oxycblt.auxio.list.ListSettings -import org.oxycblt.musikr.playlist.ExportConfig -import org.oxycblt.musikr.playlist.ExternalPlaylistManager import org.oxycblt.auxio.util.Event import org.oxycblt.auxio.util.MutableEvent import org.oxycblt.musikr.Album @@ -38,6 +36,8 @@ import org.oxycblt.musikr.Artist import org.oxycblt.musikr.Genre import org.oxycblt.musikr.Playlist import org.oxycblt.musikr.Song +import org.oxycblt.musikr.playlist.ExportConfig +import org.oxycblt.musikr.playlist.ExternalPlaylistManager import timber.log.Timber as L /** diff --git a/app/src/main/java/org/oxycblt/auxio/music/decision/AddToPlaylistDialog.kt b/app/src/main/java/org/oxycblt/auxio/music/decision/AddToPlaylistDialog.kt index 752b87427..321dd87ff 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/decision/AddToPlaylistDialog.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/decision/AddToPlaylistDialog.kt @@ -33,10 +33,10 @@ import org.oxycblt.auxio.databinding.DialogMusicChoicesBinding import org.oxycblt.auxio.list.ClickableListListener import org.oxycblt.auxio.music.MusicViewModel import org.oxycblt.auxio.music.PlaylistDecision -import org.oxycblt.musikr.Song import org.oxycblt.auxio.ui.ViewBindingMaterialDialogFragment import org.oxycblt.auxio.util.collectImmediately import org.oxycblt.auxio.util.navigateSafe +import org.oxycblt.musikr.Song import timber.log.Timber as L /** diff --git a/app/src/main/java/org/oxycblt/auxio/music/decision/DeletePlaylistDialog.kt b/app/src/main/java/org/oxycblt/auxio/music/decision/DeletePlaylistDialog.kt index e0b5d2445..322c9cd60 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/decision/DeletePlaylistDialog.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/decision/DeletePlaylistDialog.kt @@ -29,10 +29,10 @@ import dagger.hilt.android.AndroidEntryPoint import org.oxycblt.auxio.R import org.oxycblt.auxio.databinding.DialogDeletePlaylistBinding import org.oxycblt.auxio.music.MusicViewModel -import org.oxycblt.musikr.Playlist import org.oxycblt.auxio.ui.ViewBindingMaterialDialogFragment import org.oxycblt.auxio.util.collectImmediately import org.oxycblt.auxio.util.unlikelyToBeNull +import org.oxycblt.musikr.Playlist import timber.log.Timber as L /** diff --git a/app/src/main/java/org/oxycblt/auxio/music/decision/ExportPlaylistDialog.kt b/app/src/main/java/org/oxycblt/auxio/music/decision/ExportPlaylistDialog.kt index 6c86f9f11..74f40c38a 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/decision/ExportPlaylistDialog.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/decision/ExportPlaylistDialog.kt @@ -31,12 +31,12 @@ import dagger.hilt.android.AndroidEntryPoint import org.oxycblt.auxio.R import org.oxycblt.auxio.databinding.DialogPlaylistExportBinding import org.oxycblt.auxio.music.MusicViewModel -import org.oxycblt.musikr.Playlist -import org.oxycblt.musikr.playlist.ExportConfig -import org.oxycblt.musikr.playlist.m3u.M3U import org.oxycblt.auxio.ui.ViewBindingMaterialDialogFragment import org.oxycblt.auxio.util.collectImmediately import org.oxycblt.auxio.util.unlikelyToBeNull +import org.oxycblt.musikr.Playlist +import org.oxycblt.musikr.playlist.ExportConfig +import org.oxycblt.musikr.playlist.m3u.M3U import timber.log.Timber as L /** diff --git a/app/src/main/java/org/oxycblt/auxio/music/decision/PlaylistPickerViewModel.kt b/app/src/main/java/org/oxycblt/auxio/music/decision/PlaylistPickerViewModel.kt index 1f36fbcda..753900d0b 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/decision/PlaylistPickerViewModel.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/decision/PlaylistPickerViewModel.kt @@ -27,10 +27,10 @@ import kotlinx.coroutines.flow.StateFlow import org.oxycblt.auxio.R import org.oxycblt.auxio.list.Item import org.oxycblt.auxio.list.sort.Sort -import org.oxycblt.musikr.Music import org.oxycblt.auxio.music.MusicRepository -import org.oxycblt.musikr.Playlist import org.oxycblt.auxio.music.PlaylistDecision +import org.oxycblt.musikr.Music +import org.oxycblt.musikr.Playlist import org.oxycblt.musikr.Song import org.oxycblt.musikr.playlist.ExportConfig import timber.log.Timber as L diff --git a/app/src/main/java/org/oxycblt/auxio/music/locations/LocationAdapter.kt b/app/src/main/java/org/oxycblt/auxio/music/locations/LocationAdapter.kt index 2db1873b9..3a6ebe679 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/locations/LocationAdapter.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/locations/LocationAdapter.kt @@ -15,16 +15,14 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ - + package org.oxycblt.auxio.music.locations -import android.net.Uri import android.view.View import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import org.oxycblt.auxio.databinding.ItemMusicLocationBinding import org.oxycblt.auxio.list.recycler.DialogRecyclerView -import org.oxycblt.musikr.fs.Path import org.oxycblt.auxio.util.context import org.oxycblt.auxio.util.inflater import org.oxycblt.musikr.fs.MusicLocation diff --git a/app/src/main/java/org/oxycblt/auxio/music/locations/MusicSourcesDialog.kt b/app/src/main/java/org/oxycblt/auxio/music/locations/MusicSourcesDialog.kt index 8f0489c8b..444134714 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/locations/MusicSourcesDialog.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/locations/MusicSourcesDialog.kt @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ - + package org.oxycblt.auxio.music.locations import android.content.ActivityNotFoundException @@ -50,10 +50,8 @@ class MusicSourcesDialog : ViewBindingMaterialDialogFragment(), LocationAdapter.Listener { private val locationAdapter = LocationAdapter(this) private var openDocumentTreeLauncher: ActivityResultLauncher? = null - @Inject - lateinit var musicLocationFactory: MusicLocation.Factory - @Inject - lateinit var musicSettings: MusicSettings + @Inject lateinit var musicLocationFactory: MusicLocation.Factory + @Inject lateinit var musicSettings: MusicSettings override fun onCreateBinding(inflater: LayoutInflater) = DialogMusicLocationsBinding.inflate(inflater) @@ -77,9 +75,7 @@ class MusicSourcesDialog : ) { openDocumentTreeLauncher = registerForActivityResult( - ActivityResultContracts.OpenDocumentTree(), - ::addDocumentTreeUriToDirs - ) + ActivityResultContracts.OpenDocumentTree(), ::addDocumentTreeUriToDirs) binding.locationsAdd.apply { ViewCompat.setTooltipText(this, contentDescription) @@ -107,8 +103,7 @@ class MusicSourcesDialog : val locations = savedInstanceState?.getStringArrayList(KEY_PENDING_LOCATIONS)?.mapNotNull { musicLocationFactory.existing(Uri.parse(it)) - } - ?: musicSettings.musicLocations + } ?: musicSettings.musicLocations locationAdapter.addAll(locations) requireBinding().locationsEmpty.isVisible = locations.isEmpty() @@ -117,8 +112,7 @@ class MusicSourcesDialog : override fun onSaveInstanceState(outState: Bundle) { super.onSaveInstanceState(outState) outState.putStringArrayList( - KEY_PENDING_LOCATIONS, ArrayList(locationAdapter.locations.map { it.uri.toString() }) - ) + KEY_PENDING_LOCATIONS, ArrayList(locationAdapter.locations.map { it.uri.toString() })) } override fun onDestroyBinding(binding: DialogMusicLocationsBinding) { @@ -132,8 +126,7 @@ class MusicSourcesDialog : requireBinding().locationsEmpty.isVisible = locationAdapter.locations.isEmpty() } - @Inject - lateinit var contentResolver: ContentResolver + @Inject lateinit var contentResolver: ContentResolver /** * Add a Document Tree [Uri] chosen by the user to the current [MusicLocation]s. diff --git a/app/src/main/java/org/oxycblt/auxio/music/metadata/SeparatorsDialog.kt b/app/src/main/java/org/oxycblt/auxio/music/metadata/SeparatorsDialog.kt index 000daf45f..f2c5d0cec 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/metadata/SeparatorsDialog.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/metadata/SeparatorsDialog.kt @@ -29,8 +29,8 @@ import org.oxycblt.auxio.BuildConfig import org.oxycblt.auxio.R import org.oxycblt.auxio.databinding.DialogSeparatorsBinding import org.oxycblt.auxio.music.MusicSettings -import org.oxycblt.musikr.tag.interpret.Separators import org.oxycblt.auxio.ui.ViewBindingMaterialDialogFragment +import org.oxycblt.musikr.tag.interpret.Separators import timber.log.Timber as L /** diff --git a/app/src/main/java/org/oxycblt/auxio/music/service/IndexerNotifications.kt b/app/src/main/java/org/oxycblt/auxio/music/service/IndexerNotifications.kt index c5f9d3d37..f93cdfa7c 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/service/IndexerNotifications.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/service/IndexerNotifications.kt @@ -25,8 +25,8 @@ import org.oxycblt.auxio.BuildConfig import org.oxycblt.auxio.ForegroundServiceNotification import org.oxycblt.auxio.IntegerTable import org.oxycblt.auxio.R -import org.oxycblt.musikr.IndexingProgress import org.oxycblt.auxio.util.newMainPendingIntent +import org.oxycblt.musikr.IndexingProgress import timber.log.Timber as L /** diff --git a/app/src/main/java/org/oxycblt/auxio/music/service/IndexingHolder.kt b/app/src/main/java/org/oxycblt/auxio/music/service/IndexingHolder.kt index 95570eeb1..a24918bd5 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/service/IndexingHolder.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/service/IndexingHolder.kt @@ -30,11 +30,11 @@ import org.oxycblt.auxio.BuildConfig import org.oxycblt.auxio.ForegroundListener import org.oxycblt.auxio.ForegroundServiceNotification import org.oxycblt.auxio.music.IndexingState -import org.oxycblt.musikr.MusicParent import org.oxycblt.auxio.music.MusicRepository import org.oxycblt.auxio.music.MusicSettings import org.oxycblt.auxio.playback.state.PlaybackStateManager import org.oxycblt.auxio.util.getSystemServiceCompat +import org.oxycblt.musikr.MusicParent import timber.log.Timber as L class IndexingHolder diff --git a/app/src/main/java/org/oxycblt/auxio/music/service/MediaItemTranslation.kt b/app/src/main/java/org/oxycblt/auxio/music/service/MediaItemTranslation.kt index 896e3a7a1..b33836132 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/service/MediaItemTranslation.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/service/MediaItemTranslation.kt @@ -27,6 +27,8 @@ import androidx.annotation.StringRes import androidx.media.utils.MediaConstants import org.oxycblt.auxio.BuildConfig import org.oxycblt.auxio.R +import org.oxycblt.auxio.playback.formatDurationDs +import org.oxycblt.auxio.util.getPlural import org.oxycblt.musikr.Album import org.oxycblt.musikr.Artist import org.oxycblt.musikr.Genre @@ -35,8 +37,6 @@ import org.oxycblt.musikr.MusicParent import org.oxycblt.musikr.Playlist import org.oxycblt.musikr.Song import org.oxycblt.musikr.resolveNames -import org.oxycblt.auxio.playback.formatDurationDs -import org.oxycblt.auxio.util.getPlural sealed interface MediaSessionUID { data class Tab(val node: TabNode) : MediaSessionUID { diff --git a/app/src/main/java/org/oxycblt/auxio/music/service/MusicBrowser.kt b/app/src/main/java/org/oxycblt/auxio/music/service/MusicBrowser.kt index d21388eb9..a9d5b703d 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/service/MusicBrowser.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/service/MusicBrowser.kt @@ -27,16 +27,16 @@ import org.oxycblt.auxio.detail.DetailGenerator import org.oxycblt.auxio.detail.DetailSection import org.oxycblt.auxio.home.HomeGenerator import org.oxycblt.auxio.list.adapter.UpdateInstructions +import org.oxycblt.auxio.music.MusicRepository +import org.oxycblt.auxio.music.MusicType +import org.oxycblt.auxio.search.SearchEngine import org.oxycblt.musikr.Album import org.oxycblt.musikr.Artist import org.oxycblt.musikr.Genre import org.oxycblt.musikr.Music -import org.oxycblt.auxio.music.MusicRepository -import org.oxycblt.auxio.music.MusicType import org.oxycblt.musikr.Playlist import org.oxycblt.musikr.Song import org.oxycblt.musikr.tag.resolveNumber -import org.oxycblt.auxio.search.SearchEngine class MusicBrowser private constructor( diff --git a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackBarFragment.kt b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackBarFragment.kt index 77bb5ec6e..c4bda9307 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackBarFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackBarFragment.kt @@ -26,13 +26,13 @@ import dagger.hilt.android.AndroidEntryPoint import org.oxycblt.auxio.R import org.oxycblt.auxio.databinding.FragmentPlaybackBarBinding import org.oxycblt.auxio.detail.DetailViewModel -import org.oxycblt.musikr.Song -import org.oxycblt.musikr.resolveNames import org.oxycblt.auxio.playback.state.RepeatMode import org.oxycblt.auxio.ui.ViewBindingFragment import org.oxycblt.auxio.util.collectImmediately import org.oxycblt.auxio.util.getAttrColorCompat import org.oxycblt.auxio.util.getColorCompat +import org.oxycblt.musikr.Song +import org.oxycblt.musikr.resolveNames import timber.log.Timber as L /** diff --git a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackPanelFragment.kt b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackPanelFragment.kt index eb4c14325..028ef5e85 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackPanelFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackPanelFragment.kt @@ -35,9 +35,6 @@ import org.oxycblt.auxio.R import org.oxycblt.auxio.databinding.FragmentPlaybackPanelBinding import org.oxycblt.auxio.detail.DetailViewModel import org.oxycblt.auxio.list.ListViewModel -import org.oxycblt.musikr.MusicParent -import org.oxycblt.musikr.Song -import org.oxycblt.musikr.resolveNames import org.oxycblt.auxio.playback.state.RepeatMode import org.oxycblt.auxio.playback.ui.StyledSeekBar import org.oxycblt.auxio.playback.ui.SwipeCoverView @@ -45,6 +42,9 @@ import org.oxycblt.auxio.ui.ViewBindingFragment import org.oxycblt.auxio.util.collectImmediately import org.oxycblt.auxio.util.showToast import org.oxycblt.auxio.util.systemBarInsetsCompat +import org.oxycblt.musikr.MusicParent +import org.oxycblt.musikr.Song +import org.oxycblt.musikr.resolveNames import timber.log.Timber as L /** diff --git a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackViewModel.kt b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackViewModel.kt index 2895e2cbe..67d8160f7 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackViewModel.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackViewModel.kt @@ -28,12 +28,6 @@ import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.launch import org.oxycblt.auxio.list.ListSettings -import org.oxycblt.musikr.Album -import org.oxycblt.musikr.Artist -import org.oxycblt.musikr.Genre -import org.oxycblt.musikr.MusicParent -import org.oxycblt.musikr.Playlist -import org.oxycblt.musikr.Song import org.oxycblt.auxio.playback.state.DeferredPlayback import org.oxycblt.auxio.playback.state.PlaybackCommand import org.oxycblt.auxio.playback.state.PlaybackStateManager @@ -43,6 +37,12 @@ import org.oxycblt.auxio.playback.state.RepeatMode import org.oxycblt.auxio.playback.state.ShuffleMode import org.oxycblt.auxio.util.Event import org.oxycblt.auxio.util.MutableEvent +import org.oxycblt.musikr.Album +import org.oxycblt.musikr.Artist +import org.oxycblt.musikr.Genre +import org.oxycblt.musikr.MusicParent +import org.oxycblt.musikr.Playlist +import org.oxycblt.musikr.Song import timber.log.Timber as L /** diff --git a/app/src/main/java/org/oxycblt/auxio/playback/decision/ArtistPlaybackChoiceAdapter.kt b/app/src/main/java/org/oxycblt/auxio/playback/decision/ArtistPlaybackChoiceAdapter.kt index 991a04569..96067a8b8 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/decision/ArtistPlaybackChoiceAdapter.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/decision/ArtistPlaybackChoiceAdapter.kt @@ -25,9 +25,9 @@ import org.oxycblt.auxio.list.ClickableListListener import org.oxycblt.auxio.list.adapter.FlexibleListAdapter import org.oxycblt.auxio.list.adapter.SimpleDiffCallback import org.oxycblt.auxio.list.recycler.DialogRecyclerView -import org.oxycblt.musikr.Artist import org.oxycblt.auxio.util.context import org.oxycblt.auxio.util.inflater +import org.oxycblt.musikr.Artist /** * A [FlexibleListAdapter] that displays a list of [Artist] playback choices, for use with diff --git a/app/src/main/java/org/oxycblt/auxio/playback/decision/GenrePlaybackChoiceAdapter.kt b/app/src/main/java/org/oxycblt/auxio/playback/decision/GenrePlaybackChoiceAdapter.kt index 8d91321a6..b79614d8f 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/decision/GenrePlaybackChoiceAdapter.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/decision/GenrePlaybackChoiceAdapter.kt @@ -25,9 +25,9 @@ import org.oxycblt.auxio.list.ClickableListListener import org.oxycblt.auxio.list.adapter.FlexibleListAdapter import org.oxycblt.auxio.list.adapter.SimpleDiffCallback import org.oxycblt.auxio.list.recycler.DialogRecyclerView -import org.oxycblt.musikr.Genre import org.oxycblt.auxio.util.context import org.oxycblt.auxio.util.inflater +import org.oxycblt.musikr.Genre /** * A [FlexibleListAdapter] that displays a list of [Genre] playback choices, for use with diff --git a/app/src/main/java/org/oxycblt/auxio/playback/decision/PlayFromArtistDialog.kt b/app/src/main/java/org/oxycblt/auxio/playback/decision/PlayFromArtistDialog.kt index 12eeffb80..b51712e15 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/decision/PlayFromArtistDialog.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/decision/PlayFromArtistDialog.kt @@ -31,12 +31,12 @@ import org.oxycblt.auxio.R import org.oxycblt.auxio.databinding.DialogMusicChoicesBinding import org.oxycblt.auxio.list.ClickableListListener import org.oxycblt.auxio.list.adapter.UpdateInstructions -import org.oxycblt.musikr.Artist -import org.oxycblt.musikr.Song import org.oxycblt.auxio.playback.PlaybackViewModel import org.oxycblt.auxio.ui.ViewBindingMaterialDialogFragment import org.oxycblt.auxio.util.collectImmediately import org.oxycblt.auxio.util.unlikelyToBeNull +import org.oxycblt.musikr.Artist +import org.oxycblt.musikr.Song import timber.log.Timber as L /** diff --git a/app/src/main/java/org/oxycblt/auxio/playback/decision/PlayFromGenreDialog.kt b/app/src/main/java/org/oxycblt/auxio/playback/decision/PlayFromGenreDialog.kt index c0f263556..6b2ef64e5 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/decision/PlayFromGenreDialog.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/decision/PlayFromGenreDialog.kt @@ -31,12 +31,12 @@ import org.oxycblt.auxio.R import org.oxycblt.auxio.databinding.DialogMusicChoicesBinding import org.oxycblt.auxio.list.ClickableListListener import org.oxycblt.auxio.list.adapter.UpdateInstructions -import org.oxycblt.musikr.Genre -import org.oxycblt.musikr.Song import org.oxycblt.auxio.playback.PlaybackViewModel import org.oxycblt.auxio.ui.ViewBindingMaterialDialogFragment import org.oxycblt.auxio.util.collectImmediately import org.oxycblt.auxio.util.unlikelyToBeNull +import org.oxycblt.musikr.Genre +import org.oxycblt.musikr.Song import timber.log.Timber as L /** diff --git a/app/src/main/java/org/oxycblt/auxio/playback/decision/PlaybackPickerViewModel.kt b/app/src/main/java/org/oxycblt/auxio/playback/decision/PlaybackPickerViewModel.kt index 6df3fa0d9..95fae0c5a 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/decision/PlaybackPickerViewModel.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/decision/PlaybackPickerViewModel.kt @@ -23,9 +23,9 @@ import dagger.hilt.android.lifecycle.HiltViewModel import javax.inject.Inject import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow +import org.oxycblt.auxio.music.MusicRepository import org.oxycblt.musikr.Artist import org.oxycblt.musikr.Music -import org.oxycblt.auxio.music.MusicRepository import org.oxycblt.musikr.Song import timber.log.Timber as L diff --git a/app/src/main/java/org/oxycblt/auxio/playback/persist/PersistenceDatabase.kt b/app/src/main/java/org/oxycblt/auxio/playback/persist/PersistenceDatabase.kt index 2dd88f674..99805a0d5 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/persist/PersistenceDatabase.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/persist/PersistenceDatabase.kt @@ -28,8 +28,8 @@ import androidx.room.Query import androidx.room.RoomDatabase import androidx.room.TypeConverters import androidx.room.migration.Migration -import org.oxycblt.musikr.Music import org.oxycblt.auxio.playback.state.RepeatMode +import org.oxycblt.musikr.Music /** * Provides raw access to the database storing the persisted playback state. diff --git a/app/src/main/java/org/oxycblt/auxio/playback/persist/PersistenceRepository.kt b/app/src/main/java/org/oxycblt/auxio/playback/persist/PersistenceRepository.kt index 3ed14f2d7..5d800af34 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/persist/PersistenceRepository.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/persist/PersistenceRepository.kt @@ -19,9 +19,9 @@ package org.oxycblt.auxio.playback.persist import javax.inject.Inject -import org.oxycblt.musikr.MusicParent import org.oxycblt.auxio.music.MusicRepository import org.oxycblt.auxio.playback.state.PlaybackStateManager +import org.oxycblt.musikr.MusicParent import timber.log.Timber as L /** diff --git a/app/src/main/java/org/oxycblt/auxio/playback/queue/QueueAdapter.kt b/app/src/main/java/org/oxycblt/auxio/playback/queue/QueueAdapter.kt index 794e52e04..9bc857314 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/queue/QueueAdapter.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/queue/QueueAdapter.kt @@ -32,11 +32,11 @@ import org.oxycblt.auxio.list.adapter.FlexibleListAdapter import org.oxycblt.auxio.list.adapter.PlayingIndicatorAdapter import org.oxycblt.auxio.list.recycler.MaterialDragCallback import org.oxycblt.auxio.list.recycler.SongViewHolder -import org.oxycblt.musikr.Song -import org.oxycblt.musikr.resolveNames import org.oxycblt.auxio.util.context import org.oxycblt.auxio.util.getAttrColorCompat import org.oxycblt.auxio.util.inflater +import org.oxycblt.musikr.Song +import org.oxycblt.musikr.resolveNames import timber.log.Timber as L /** diff --git a/app/src/main/java/org/oxycblt/auxio/playback/queue/QueueFragment.kt b/app/src/main/java/org/oxycblt/auxio/playback/queue/QueueFragment.kt index 2cdfea7b7..ede1313e0 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/queue/QueueFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/queue/QueueFragment.kt @@ -30,10 +30,10 @@ import dagger.hilt.android.AndroidEntryPoint import kotlin.math.min import org.oxycblt.auxio.databinding.FragmentQueueBinding import org.oxycblt.auxio.list.EditClickListListener -import org.oxycblt.musikr.Song import org.oxycblt.auxio.playback.PlaybackViewModel import org.oxycblt.auxio.ui.ViewBindingFragment import org.oxycblt.auxio.util.collectImmediately +import org.oxycblt.musikr.Song import timber.log.Timber as L /** diff --git a/app/src/main/java/org/oxycblt/auxio/playback/queue/QueueViewModel.kt b/app/src/main/java/org/oxycblt/auxio/playback/queue/QueueViewModel.kt index b5fcc7bb0..5e1e2aa64 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/queue/QueueViewModel.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/queue/QueueViewModel.kt @@ -24,12 +24,12 @@ import javax.inject.Inject import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import org.oxycblt.auxio.list.adapter.UpdateInstructions -import org.oxycblt.musikr.MusicParent -import org.oxycblt.musikr.Song import org.oxycblt.auxio.playback.state.PlaybackStateManager import org.oxycblt.auxio.playback.state.QueueChange import org.oxycblt.auxio.util.Event import org.oxycblt.auxio.util.MutableEvent +import org.oxycblt.musikr.MusicParent +import org.oxycblt.musikr.Song import timber.log.Timber as L /** diff --git a/app/src/main/java/org/oxycblt/auxio/playback/replaygain/ReplayGainAudioProcessor.kt b/app/src/main/java/org/oxycblt/auxio/playback/replaygain/ReplayGainAudioProcessor.kt index 8672ecb00..5c2e27c41 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/replaygain/ReplayGainAudioProcessor.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/replaygain/ReplayGainAudioProcessor.kt @@ -26,12 +26,12 @@ import androidx.media3.common.audio.BaseAudioProcessor import java.nio.ByteBuffer import javax.inject.Inject import kotlin.math.pow -import org.oxycblt.musikr.Album -import org.oxycblt.musikr.MusicParent -import org.oxycblt.musikr.Song import org.oxycblt.auxio.playback.PlaybackSettings import org.oxycblt.auxio.playback.state.PlaybackStateManager import org.oxycblt.auxio.playback.state.QueueChange +import org.oxycblt.musikr.Album +import org.oxycblt.musikr.MusicParent +import org.oxycblt.musikr.Song import timber.log.Timber as L /** diff --git a/app/src/main/java/org/oxycblt/auxio/playback/service/ExoPlaybackStateHolder.kt b/app/src/main/java/org/oxycblt/auxio/playback/service/ExoPlaybackStateHolder.kt index 3a494babd..3b5944bd2 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/service/ExoPlaybackStateHolder.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/service/ExoPlaybackStateHolder.kt @@ -43,9 +43,7 @@ import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import kotlinx.coroutines.yield import org.oxycblt.auxio.image.ImageSettings -import org.oxycblt.musikr.MusicParent import org.oxycblt.auxio.music.MusicRepository -import org.oxycblt.musikr.Song import org.oxycblt.auxio.playback.PlaybackSettings import org.oxycblt.auxio.playback.msToSecs import org.oxycblt.auxio.playback.persist.PersistenceRepository @@ -59,6 +57,8 @@ import org.oxycblt.auxio.playback.state.RawQueue import org.oxycblt.auxio.playback.state.RepeatMode import org.oxycblt.auxio.playback.state.ShuffleMode import org.oxycblt.auxio.playback.state.StateAck +import org.oxycblt.musikr.MusicParent +import org.oxycblt.musikr.Song import timber.log.Timber as L class ExoPlaybackStateHolder( diff --git a/app/src/main/java/org/oxycblt/auxio/playback/service/MediaSessionHolder.kt b/app/src/main/java/org/oxycblt/auxio/playback/service/MediaSessionHolder.kt index 021128a99..f57643bca 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/service/MediaSessionHolder.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/service/MediaSessionHolder.kt @@ -36,9 +36,6 @@ import org.oxycblt.auxio.IntegerTable import org.oxycblt.auxio.R import org.oxycblt.auxio.image.BitmapProvider import org.oxycblt.auxio.image.ImageSettings -import org.oxycblt.musikr.MusicParent -import org.oxycblt.musikr.Song -import org.oxycblt.musikr.resolveNames import org.oxycblt.auxio.music.service.MediaSessionUID import org.oxycblt.auxio.music.service.toMediaDescription import org.oxycblt.auxio.playback.ActionMode @@ -49,6 +46,9 @@ import org.oxycblt.auxio.playback.state.QueueChange import org.oxycblt.auxio.playback.state.RepeatMode import org.oxycblt.auxio.util.newBroadcastPendingIntent import org.oxycblt.auxio.util.newMainPendingIntent +import org.oxycblt.musikr.MusicParent +import org.oxycblt.musikr.Song +import org.oxycblt.musikr.resolveNames import timber.log.Timber as L /** diff --git a/app/src/main/java/org/oxycblt/auxio/playback/service/MediaSessionInterface.kt b/app/src/main/java/org/oxycblt/auxio/playback/service/MediaSessionInterface.kt index 7fde57c78..0620bd55a 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/service/MediaSessionInterface.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/service/MediaSessionInterface.kt @@ -29,22 +29,22 @@ import dagger.hilt.android.qualifiers.ApplicationContext import javax.inject.Inject import org.apache.commons.text.similarity.JaroWinklerSimilarity import org.oxycblt.auxio.BuildConfig +import org.oxycblt.auxio.music.MusicRepository +import org.oxycblt.auxio.music.service.MediaSessionUID +import org.oxycblt.auxio.music.service.MusicBrowser +import org.oxycblt.auxio.playback.state.PlaybackCommand +import org.oxycblt.auxio.playback.state.PlaybackStateManager +import org.oxycblt.auxio.playback.state.RepeatMode +import org.oxycblt.auxio.playback.state.ShuffleMode import org.oxycblt.musikr.Album import org.oxycblt.musikr.Artist import org.oxycblt.musikr.Genre import org.oxycblt.musikr.Library import org.oxycblt.musikr.Music import org.oxycblt.musikr.MusicParent -import org.oxycblt.auxio.music.MusicRepository import org.oxycblt.musikr.Playlist import org.oxycblt.musikr.Song -import org.oxycblt.auxio.music.service.MediaSessionUID -import org.oxycblt.auxio.music.service.MusicBrowser import org.oxycblt.musikr.tag.Name -import org.oxycblt.auxio.playback.state.PlaybackCommand -import org.oxycblt.auxio.playback.state.PlaybackStateManager -import org.oxycblt.auxio.playback.state.RepeatMode -import org.oxycblt.auxio.playback.state.ShuffleMode import timber.log.Timber as L class MediaSessionInterface diff --git a/app/src/main/java/org/oxycblt/auxio/playback/state/PlaybackCommand.kt b/app/src/main/java/org/oxycblt/auxio/playback/state/PlaybackCommand.kt index bc58043b2..d7cbd2900 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/state/PlaybackCommand.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/state/PlaybackCommand.kt @@ -21,14 +21,14 @@ package org.oxycblt.auxio.playback.state import javax.inject.Inject import org.oxycblt.auxio.list.ListSettings import org.oxycblt.auxio.list.sort.Sort +import org.oxycblt.auxio.music.MusicRepository +import org.oxycblt.auxio.playback.PlaybackSettings import org.oxycblt.musikr.Album import org.oxycblt.musikr.Artist import org.oxycblt.musikr.Genre import org.oxycblt.musikr.MusicParent -import org.oxycblt.auxio.music.MusicRepository import org.oxycblt.musikr.Playlist import org.oxycblt.musikr.Song -import org.oxycblt.auxio.playback.PlaybackSettings /** * A playback command that can be passed to [PlaybackStateManager] to start new playback. diff --git a/app/src/main/java/org/oxycblt/auxio/playback/state/PlaybackStateManager.kt b/app/src/main/java/org/oxycblt/auxio/playback/state/PlaybackStateManager.kt index ecfe72b8e..e0aede3ab 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/state/PlaybackStateManager.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/state/PlaybackStateManager.kt @@ -21,10 +21,10 @@ package org.oxycblt.auxio.playback.state import javax.inject.Inject import org.oxycblt.auxio.BuildConfig import org.oxycblt.auxio.list.adapter.UpdateInstructions +import org.oxycblt.auxio.playback.state.PlaybackStateManager.Listener import org.oxycblt.musikr.Music import org.oxycblt.musikr.MusicParent import org.oxycblt.musikr.Song -import org.oxycblt.auxio.playback.state.PlaybackStateManager.Listener import timber.log.Timber as L /** diff --git a/app/src/main/java/org/oxycblt/auxio/search/SearchFragment.kt b/app/src/main/java/org/oxycblt/auxio/search/SearchFragment.kt index b522efedf..e6f39872d 100644 --- a/app/src/main/java/org/oxycblt/auxio/search/SearchFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/search/SearchFragment.kt @@ -44,17 +44,9 @@ import org.oxycblt.auxio.list.ListViewModel import org.oxycblt.auxio.list.PlainDivider import org.oxycblt.auxio.list.PlainHeader import org.oxycblt.auxio.list.menu.Menu -import org.oxycblt.musikr.Album -import org.oxycblt.musikr.Artist -import org.oxycblt.musikr.Genre -import org.oxycblt.musikr.Music -import org.oxycblt.musikr.MusicParent import org.oxycblt.auxio.music.MusicViewModel -import org.oxycblt.musikr.Playlist import org.oxycblt.auxio.music.PlaylistDecision import org.oxycblt.auxio.music.PlaylistMessage -import org.oxycblt.musikr.Song -import org.oxycblt.musikr.playlist.m3u.M3U import org.oxycblt.auxio.playback.PlaybackDecision import org.oxycblt.auxio.playback.PlaybackViewModel import org.oxycblt.auxio.util.collect @@ -64,6 +56,14 @@ import org.oxycblt.auxio.util.getSystemServiceCompat import org.oxycblt.auxio.util.navigateSafe import org.oxycblt.auxio.util.setFullWidthLookup import org.oxycblt.auxio.util.showToast +import org.oxycblt.musikr.Album +import org.oxycblt.musikr.Artist +import org.oxycblt.musikr.Genre +import org.oxycblt.musikr.Music +import org.oxycblt.musikr.MusicParent +import org.oxycblt.musikr.Playlist +import org.oxycblt.musikr.Song +import org.oxycblt.musikr.playlist.m3u.M3U import timber.log.Timber as L /** 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 372a72254..ec835c912 100644 --- a/app/src/main/java/org/oxycblt/auxio/search/SearchViewModel.kt +++ b/app/src/main/java/org/oxycblt/auxio/search/SearchViewModel.kt @@ -33,12 +33,12 @@ import org.oxycblt.auxio.list.BasicHeader import org.oxycblt.auxio.list.Item import org.oxycblt.auxio.list.PlainDivider import org.oxycblt.auxio.list.sort.Sort -import org.oxycblt.musikr.Library import org.oxycblt.auxio.music.MusicRepository import org.oxycblt.auxio.music.MusicType -import org.oxycblt.musikr.Song import org.oxycblt.auxio.playback.PlaySong import org.oxycblt.auxio.playback.PlaybackSettings +import org.oxycblt.musikr.Library +import org.oxycblt.musikr.Song import timber.log.Timber as L /** diff --git a/app/src/main/java/org/oxycblt/auxio/widgets/WidgetComponent.kt b/app/src/main/java/org/oxycblt/auxio/widgets/WidgetComponent.kt index 100246efc..5977dff5c 100644 --- a/app/src/main/java/org/oxycblt/auxio/widgets/WidgetComponent.kt +++ b/app/src/main/java/org/oxycblt/auxio/widgets/WidgetComponent.kt @@ -30,14 +30,14 @@ import org.oxycblt.auxio.image.BitmapProvider import org.oxycblt.auxio.image.ImageSettings import org.oxycblt.auxio.image.coil.RoundedRectTransformation import org.oxycblt.auxio.image.coil.SquareCropTransformation -import org.oxycblt.musikr.MusicParent -import org.oxycblt.musikr.Song import org.oxycblt.auxio.playback.state.PlaybackStateManager import org.oxycblt.auxio.playback.state.Progression import org.oxycblt.auxio.playback.state.QueueChange import org.oxycblt.auxio.playback.state.RepeatMode import org.oxycblt.auxio.ui.UISettings import org.oxycblt.auxio.util.getDimenPixels +import org.oxycblt.musikr.MusicParent +import org.oxycblt.musikr.Song import timber.log.Timber as L /** diff --git a/app/src/main/java/org/oxycblt/auxio/widgets/WidgetProvider.kt b/app/src/main/java/org/oxycblt/auxio/widgets/WidgetProvider.kt index 567956c15..5757976c5 100644 --- a/app/src/main/java/org/oxycblt/auxio/widgets/WidgetProvider.kt +++ b/app/src/main/java/org/oxycblt/auxio/widgets/WidgetProvider.kt @@ -30,12 +30,12 @@ import android.view.View import android.widget.RemoteViews import org.oxycblt.auxio.BuildConfig import org.oxycblt.auxio.R -import org.oxycblt.musikr.resolveNames import org.oxycblt.auxio.playback.service.PlaybackActions import org.oxycblt.auxio.playback.state.RepeatMode import org.oxycblt.auxio.ui.UISettings import org.oxycblt.auxio.ui.UISettingsImpl import org.oxycblt.auxio.util.newBroadcastPendingIntent +import org.oxycblt.musikr.resolveNames import timber.log.Timber as L /** diff --git a/app/src/main/java/org/oxycblt/musikr/Indexer.kt b/app/src/main/java/org/oxycblt/musikr/Indexer.kt index 426354602..1957eaad7 100644 --- a/app/src/main/java/org/oxycblt/musikr/Indexer.kt +++ b/app/src/main/java/org/oxycblt/musikr/Indexer.kt @@ -18,7 +18,6 @@ package org.oxycblt.musikr -import android.net.Uri import javax.inject.Inject import kotlinx.coroutines.channels.Channel import kotlinx.coroutines.coroutineScope @@ -35,7 +34,7 @@ import org.oxycblt.musikr.tag.Interpretation interface Indexer { suspend fun run( - locations: MusicLocation, + locations: List, interpretation: Interpretation, onProgress: suspend (IndexingProgress) -> Unit = {} ): MutableLibrary @@ -60,14 +59,14 @@ constructor( private val evaluateStep: EvaluateStep ) : Indexer { override suspend fun run( - locations: MusicLocation, + locations: List, interpretation: Interpretation, onProgress: suspend (IndexingProgress) -> Unit ) = coroutineScope { var exploredCount = 0 val explored = exploreStep - .explore(uris) + .explore(locations) .buffer(Channel.UNLIMITED) .onStart { onProgress(IndexingProgress.Songs(0, 0)) } .onEach { onProgress(IndexingProgress.Songs(0, ++exploredCount)) } diff --git a/app/src/main/java/org/oxycblt/musikr/MimeType.kt b/app/src/main/java/org/oxycblt/musikr/MimeType.kt index 8e6dd0672..e618efbb4 100644 --- a/app/src/main/java/org/oxycblt/musikr/MimeType.kt +++ b/app/src/main/java/org/oxycblt/musikr/MimeType.kt @@ -1,3 +1,21 @@ +/* + * Copyright (c) 2024 Auxio Project + * MimeType.kt is part of Auxio. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package org.oxycblt.musikr import android.content.Context @@ -81,4 +99,4 @@ data class MimeType(val fromExtension: String, val fromFormat: String?) { MimeTypeMap.getSingleton().getExtensionFromMimeType(fromExtension)?.uppercase() } } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/oxycblt/musikr/Music.kt b/app/src/main/java/org/oxycblt/musikr/Music.kt index effa83116..2cb54d450 100644 --- a/app/src/main/java/org/oxycblt/musikr/Music.kt +++ b/app/src/main/java/org/oxycblt/musikr/Music.kt @@ -29,15 +29,15 @@ import kotlinx.parcelize.IgnoredOnParcel import kotlinx.parcelize.Parcelize import org.oxycblt.auxio.list.Item import org.oxycblt.auxio.music.MusicType +import org.oxycblt.auxio.playback.replaygain.ReplayGainAdjustment +import org.oxycblt.auxio.util.concatLocalized +import org.oxycblt.auxio.util.toUuidOrNull import org.oxycblt.musikr.cover.Cover import org.oxycblt.musikr.fs.Path import org.oxycblt.musikr.tag.Date import org.oxycblt.musikr.tag.Disc import org.oxycblt.musikr.tag.Name import org.oxycblt.musikr.tag.ReleaseType -import org.oxycblt.auxio.playback.replaygain.ReplayGainAdjustment -import org.oxycblt.auxio.util.concatLocalized -import org.oxycblt.auxio.util.toUuidOrNull interface Library { val songs: Collection diff --git a/app/src/main/java/org/oxycblt/musikr/cover/CoverCache.kt b/app/src/main/java/org/oxycblt/musikr/cover/CoverCache.kt index 687a952ee..709f671bb 100644 --- a/app/src/main/java/org/oxycblt/musikr/cover/CoverCache.kt +++ b/app/src/main/java/org/oxycblt/musikr/cover/CoverCache.kt @@ -44,8 +44,7 @@ constructor( val id = coverIdentifier.identify(data) coverFiles.write(id, data) storedCoversDao.setStoredCover( - StoredCover(uid = cover.uid, lastModified = cover.lastModified, coverId = id) - ) + StoredCover(uid = cover.uid, lastModified = cover.lastModified, coverId = id)) return coverFiles.read(id) } } diff --git a/app/src/main/java/org/oxycblt/musikr/fs/DeviceFiles.kt b/app/src/main/java/org/oxycblt/musikr/fs/DeviceFiles.kt index da769f7b8..076e34f74 100644 --- a/app/src/main/java/org/oxycblt/musikr/fs/DeviceFiles.kt +++ b/app/src/main/java/org/oxycblt/musikr/fs/DeviceFiles.kt @@ -31,8 +31,6 @@ import kotlinx.coroutines.flow.emitAll import kotlinx.coroutines.flow.flatMapMerge import kotlinx.coroutines.flow.flattenMerge import kotlinx.coroutines.flow.flow -import org.oxycblt.musikr.fs.path.DocumentPathFactory -import timber.log.Timber interface DeviceFiles { fun explore(locations: Flow): Flow @@ -47,11 +45,8 @@ data class DeviceFile( ) @OptIn(ExperimentalCoroutinesApi::class) -class DeviceFilesImpl -@Inject -constructor( - @ApplicationContext private val context: Context -) : DeviceFiles { +class DeviceFilesImpl @Inject constructor(@ApplicationContext private val context: Context) : + DeviceFiles { private val contentResolver = context.contentResolverSafe override fun explore(locations: Flow): Flow = @@ -71,8 +66,7 @@ constructor( ): Flow = flow { contentResolver.useQuery( DocumentsContract.buildChildDocumentsUriUsingTree(rootUri, treeDocumentId), - PROJECTION - ) { cursor -> + PROJECTION) { cursor -> val childUriIndex = cursor.getColumnIndexOrThrow(DocumentsContract.Document.COLUMN_DOCUMENT_ID) val displayNameIndex = @@ -104,8 +98,7 @@ constructor( mimeType, newPath, size, - lastModified) - ) + lastModified)) } } emitAll(recursive.asFlow().flattenMerge()) diff --git a/app/src/main/java/org/oxycblt/musikr/fs/FsModule.kt b/app/src/main/java/org/oxycblt/musikr/fs/FsModule.kt index 5169cc847..55da22555 100644 --- a/app/src/main/java/org/oxycblt/musikr/fs/FsModule.kt +++ b/app/src/main/java/org/oxycblt/musikr/fs/FsModule.kt @@ -20,19 +20,12 @@ package org.oxycblt.musikr.fs import android.content.ContentResolver import android.content.Context -import android.os.storage.StorageManager import dagger.Binds import dagger.Module import dagger.Provides import dagger.hilt.InstallIn import dagger.hilt.android.qualifiers.ApplicationContext import dagger.hilt.components.SingletonComponent -import org.oxycblt.musikr.fs.path.DocumentPathFactory -import org.oxycblt.musikr.fs.path.DocumentPathFactoryImpl -import org.oxycblt.musikr.fs.path.MediaStorePathInterpreter -import org.oxycblt.auxio.util.getSystemServiceCompat -import org.oxycblt.musikr.fs.path.VolumeManager -import org.oxycblt.musikr.fs.path.VolumeManagerImpl @Module @InstallIn(SingletonComponent::class) @@ -47,5 +40,8 @@ class FsProvidesModule { interface FsBindsModule { @Binds fun deviceFiles(deviceFilesImpl: DeviceFilesImpl): DeviceFiles - @Binds fun musicLocationFactory(musicLocationFactoryImpl: MusicLocationFactoryImpl): MusicLocation.Factory + @Binds + fun musicLocationFactory( + musicLocationFactoryImpl: MusicLocationFactoryImpl + ): MusicLocation.Factory } diff --git a/app/src/main/java/org/oxycblt/musikr/fs/MusicLocation.kt b/app/src/main/java/org/oxycblt/musikr/fs/MusicLocation.kt index bf517179b..4c5a03e61 100644 --- a/app/src/main/java/org/oxycblt/musikr/fs/MusicLocation.kt +++ b/app/src/main/java/org/oxycblt/musikr/fs/MusicLocation.kt @@ -1,3 +1,21 @@ +/* + * Copyright (c) 2024 Auxio Project + * MusicLocation.kt is part of Auxio. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package org.oxycblt.musikr.fs import android.content.Context @@ -5,20 +23,21 @@ import android.content.Intent import android.net.Uri import android.provider.DocumentsContract import dagger.hilt.android.qualifiers.ApplicationContext -import org.oxycblt.musikr.fs.path.DocumentPathFactory -import org.oxycblt.musikr.fs.path.VolumeManager import javax.inject.Inject +import org.oxycblt.musikr.fs.path.DocumentPathFactory class MusicLocation internal constructor(val uri: Uri, val path: Path) { override fun equals(other: Any?) = other is MusicLocation && uri == other.uri && path == other.path override fun hashCode() = 31 * uri.hashCode() + path.hashCode() + override fun toString(): String { - val volumeId = when (path.volume) { - is Volume.Internal -> VOLUME_INTERNAL - is Volume.External -> path.volume.id - } + val volumeId = + when (path.volume) { + is Volume.Internal -> VOLUME_INTERNAL + is Volume.External -> path.volume.id + } return "$uri=${volumeId}:${path.components.unixString}" } @@ -29,32 +48,37 @@ class MusicLocation internal constructor(val uri: Uri, val path: Path) { } } -class MusicLocationFactoryImpl @Inject constructor( +class MusicLocationFactoryImpl +@Inject +constructor( @ApplicationContext private val context: Context, private val documentPathFactory: DocumentPathFactory ) : MusicLocation.Factory { override fun new(uri: Uri): MusicLocation? { if (!DocumentsContract.isTreeUri(uri)) return null val path = documentPathFactory.unpackDocumentTreeUri(uri) ?: return null - val notPersisted = context.contentResolverSafe.persistedUriPermissions - .none { it.uri == uri && it.isReadPermission && it.isWritePermission } + val notPersisted = + context.contentResolverSafe.persistedUriPermissions.none { + it.uri == uri && it.isReadPermission && it.isWritePermission + } if (notPersisted) { context.contentResolverSafe.takePersistableUriPermission( uri, - Intent.FLAG_GRANT_READ_URI_PERMISSION or Intent.FLAG_GRANT_WRITE_URI_PERMISSION - ) + Intent.FLAG_GRANT_READ_URI_PERMISSION or Intent.FLAG_GRANT_WRITE_URI_PERMISSION) } return MusicLocation(uri, path) } override fun existing(uri: Uri): MusicLocation? { if (!DocumentsContract.isTreeUri(uri)) return null - val notPersisted = context.contentResolverSafe.persistedUriPermissions - .none { it.uri == uri && it.isReadPermission && it.isWritePermission } + val notPersisted = + context.contentResolverSafe.persistedUriPermissions.none { + it.uri == uri && it.isReadPermission && it.isWritePermission + } if (notPersisted) return null val path = documentPathFactory.unpackDocumentTreeUri(uri) ?: return null return MusicLocation(uri, path) } } -private const val VOLUME_INTERNAL = "internal" \ No newline at end of file +private const val VOLUME_INTERNAL = "internal" diff --git a/app/src/main/java/org/oxycblt/musikr/fs/Path.kt b/app/src/main/java/org/oxycblt/musikr/fs/Path.kt index 9ad2fcf19..731ea5847 100644 --- a/app/src/main/java/org/oxycblt/musikr/fs/Path.kt +++ b/app/src/main/java/org/oxycblt/musikr/fs/Path.kt @@ -1,3 +1,21 @@ +/* + * Copyright (c) 2024 Auxio Project + * Path.kt is part of Auxio. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package org.oxycblt.musikr.fs import android.content.Context @@ -159,4 +177,4 @@ value class Components private constructor(val components: List) { private fun String.trimSlashes() = trimStart(File.separatorChar).trimEnd(File.separatorChar) } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/oxycblt/musikr/fs/path/PathModule.kt b/app/src/main/java/org/oxycblt/musikr/fs/path/PathModule.kt index 7e75dc81a..b82fc912b 100644 --- a/app/src/main/java/org/oxycblt/musikr/fs/path/PathModule.kt +++ b/app/src/main/java/org/oxycblt/musikr/fs/path/PathModule.kt @@ -1,6 +1,6 @@ /* * Copyright (c) 2024 Auxio Project - * FsModule.kt is part of Auxio. + * PathModule.kt is part of Auxio. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,10 +15,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ - + package org.oxycblt.musikr.fs.path -import android.content.ContentResolver import android.content.Context import android.os.storage.StorageManager import dagger.Binds @@ -27,12 +26,7 @@ import dagger.Provides import dagger.hilt.InstallIn import dagger.hilt.android.qualifiers.ApplicationContext import dagger.hilt.components.SingletonComponent -import org.oxycblt.musikr.fs.path.DocumentPathFactory -import org.oxycblt.musikr.fs.path.DocumentPathFactoryImpl -import org.oxycblt.musikr.fs.path.MediaStorePathInterpreter import org.oxycblt.auxio.util.getSystemServiceCompat -import org.oxycblt.musikr.fs.path.VolumeManager -import org.oxycblt.musikr.fs.path.VolumeManagerImpl @Module @InstallIn(SingletonComponent::class) diff --git a/app/src/main/java/org/oxycblt/musikr/fs/path/VolumeManager.kt b/app/src/main/java/org/oxycblt/musikr/fs/path/VolumeManager.kt index 72c56bde7..aa5709ce1 100644 --- a/app/src/main/java/org/oxycblt/musikr/fs/path/VolumeManager.kt +++ b/app/src/main/java/org/oxycblt/musikr/fs/path/VolumeManager.kt @@ -1,8 +1,27 @@ +/* + * Copyright (c) 2024 Auxio Project + * VolumeManager.kt is part of Auxio. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package org.oxycblt.musikr.fs.path import android.content.Context import android.os.storage.StorageManager import android.os.storage.StorageVolume +import javax.inject.Inject import org.oxycblt.musikr.fs.Components import org.oxycblt.musikr.fs.Volume import org.oxycblt.musikr.fs.directoryCompat @@ -11,7 +30,6 @@ import org.oxycblt.musikr.fs.isInternalCompat import org.oxycblt.musikr.fs.mediaStoreVolumeNameCompat import org.oxycblt.musikr.fs.storageVolumesCompat import org.oxycblt.musikr.fs.uuidCompat -import javax.inject.Inject /** A wrapper around [StorageManager] that provides instances of the [Volume] interface. */ interface VolumeManager { @@ -66,4 +84,4 @@ class VolumeManagerImpl @Inject constructor(private val storageManager: StorageM override fun resolveName(context: Context) = storageVolume.getDescriptionCompat(context) } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/oxycblt/musikr/graph/MusicGraph.kt b/app/src/main/java/org/oxycblt/musikr/graph/MusicGraph.kt index 33e1e6500..e2ba42557 100644 --- a/app/src/main/java/org/oxycblt/musikr/graph/MusicGraph.kt +++ b/app/src/main/java/org/oxycblt/musikr/graph/MusicGraph.kt @@ -19,12 +19,12 @@ package org.oxycblt.musikr.graph import javax.inject.Inject +import org.oxycblt.auxio.util.unlikelyToBeNull import org.oxycblt.musikr.Music import org.oxycblt.musikr.tag.interpret.PreAlbum import org.oxycblt.musikr.tag.interpret.PreArtist import org.oxycblt.musikr.tag.interpret.PreGenre import org.oxycblt.musikr.tag.interpret.PreSong -import org.oxycblt.auxio.util.unlikelyToBeNull import timber.log.Timber as L data class MusicGraph( diff --git a/app/src/main/java/org/oxycblt/musikr/metadata/AudioProperties.kt b/app/src/main/java/org/oxycblt/musikr/metadata/AudioProperties.kt index 628800a9b..a5733057d 100644 --- a/app/src/main/java/org/oxycblt/musikr/metadata/AudioProperties.kt +++ b/app/src/main/java/org/oxycblt/musikr/metadata/AudioProperties.kt @@ -23,8 +23,8 @@ import android.media.MediaExtractor import android.media.MediaFormat import dagger.hilt.android.qualifiers.ApplicationContext import javax.inject.Inject -import org.oxycblt.musikr.Song import org.oxycblt.musikr.MimeType +import org.oxycblt.musikr.Song import timber.log.Timber as L /** @@ -119,7 +119,6 @@ constructor(@ApplicationContext private val context: Context) : AudioProperties. return AudioProperties( bitrate, sampleRate, - MimeType(fromExtension = song.mimeType.fromExtension, fromFormat = formatMimeType) - ) + MimeType(fromExtension = song.mimeType.fromExtension, fromFormat = formatMimeType)) } } diff --git a/app/src/main/java/org/oxycblt/musikr/metadata/ReusableMetadataRetriever.kt b/app/src/main/java/org/oxycblt/musikr/metadata/ReusableMetadataRetriever.kt index bc7e1ec86..27f844156 100644 --- a/app/src/main/java/org/oxycblt/musikr/metadata/ReusableMetadataRetriever.kt +++ b/app/src/main/java/org/oxycblt/musikr/metadata/ReusableMetadataRetriever.kt @@ -110,8 +110,7 @@ constructor(private val mediaSourceFactory: MediaSource.Factory) : job = MetadataJob(data, mediaSourceCaller) mediaSourceHandler.sendEmptyMessageDelayed( - MESSAGE_CHECK_FAILURE, /* delayMs= */ CHECK_INTERVAL_MS - ) + MESSAGE_CHECK_FAILURE, /* delayMs= */ CHECK_INTERVAL_MS) return true } diff --git a/app/src/main/java/org/oxycblt/musikr/model/DeviceMusicImpl.kt b/app/src/main/java/org/oxycblt/musikr/model/DeviceMusicImpl.kt index dd23495a7..e56821e1d 100644 --- a/app/src/main/java/org/oxycblt/musikr/model/DeviceMusicImpl.kt +++ b/app/src/main/java/org/oxycblt/musikr/model/DeviceMusicImpl.kt @@ -18,11 +18,12 @@ package org.oxycblt.musikr.model +import org.oxycblt.auxio.music.MusicType +import org.oxycblt.auxio.util.update import org.oxycblt.musikr.Album import org.oxycblt.musikr.Artist import org.oxycblt.musikr.Genre import org.oxycblt.musikr.Music -import org.oxycblt.auxio.music.MusicType import org.oxycblt.musikr.Song import org.oxycblt.musikr.cover.Cover import org.oxycblt.musikr.tag.Date @@ -30,7 +31,6 @@ import org.oxycblt.musikr.tag.interpret.PreAlbum import org.oxycblt.musikr.tag.interpret.PreArtist import org.oxycblt.musikr.tag.interpret.PreGenre import org.oxycblt.musikr.tag.interpret.PreSong -import org.oxycblt.auxio.util.update interface SongHandle { val preSong: PreSong diff --git a/app/src/main/java/org/oxycblt/musikr/pipeline/ExploreStep.kt b/app/src/main/java/org/oxycblt/musikr/pipeline/ExploreStep.kt index 4b96533c4..7631a5ff9 100644 --- a/app/src/main/java/org/oxycblt/musikr/pipeline/ExploreStep.kt +++ b/app/src/main/java/org/oxycblt/musikr/pipeline/ExploreStep.kt @@ -18,7 +18,6 @@ package org.oxycblt.musikr.pipeline -import android.net.Uri import javax.inject.Inject import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.Flow @@ -27,16 +26,17 @@ import kotlinx.coroutines.flow.flowOn import kotlinx.coroutines.flow.mapNotNull import org.oxycblt.musikr.fs.DeviceFile import org.oxycblt.musikr.fs.DeviceFiles +import org.oxycblt.musikr.fs.MusicLocation import org.oxycblt.musikr.playlist.m3u.M3U interface ExploreStep { - fun explore(uris: List): Flow + fun explore(locations: List): Flow } class ExploreStepImpl @Inject constructor(private val deviceFiles: DeviceFiles) : ExploreStep { - override fun explore(uris: List) = + override fun explore(locations: List) = deviceFiles - .explore(uris.asFlow()) + .explore(locations.asFlow()) .mapNotNull { when { it.mimeType == M3U.MIME_TYPE -> null diff --git a/app/src/main/java/org/oxycblt/musikr/playlist/m3u/M3U.kt b/app/src/main/java/org/oxycblt/musikr/playlist/m3u/M3U.kt index c8cd12e42..c44e270e3 100644 --- a/app/src/main/java/org/oxycblt/musikr/playlist/m3u/M3U.kt +++ b/app/src/main/java/org/oxycblt/musikr/playlist/m3u/M3U.kt @@ -26,8 +26,8 @@ import java.io.InputStream import java.io.InputStreamReader import java.io.OutputStream import javax.inject.Inject +import org.oxycblt.auxio.util.unlikelyToBeNull import org.oxycblt.musikr.Playlist -import org.oxycblt.musikr.resolveNames import org.oxycblt.musikr.fs.Components import org.oxycblt.musikr.fs.Path import org.oxycblt.musikr.fs.Volume @@ -35,8 +35,8 @@ import org.oxycblt.musikr.fs.path.VolumeManager import org.oxycblt.musikr.playlist.ExportConfig import org.oxycblt.musikr.playlist.ImportedPlaylist import org.oxycblt.musikr.playlist.PossiblePaths +import org.oxycblt.musikr.resolveNames import org.oxycblt.musikr.tag.util.correctWhitespace -import org.oxycblt.auxio.util.unlikelyToBeNull import timber.log.Timber as L /** @@ -154,8 +154,7 @@ constructor( else -> listOf( InterpretedPath(Components.parseUnix(path), false), - InterpretedPath(Components.parseWindows(path), true) - ) + InterpretedPath(Components.parseWindows(path), true)) } private fun expandInterpretation( diff --git a/app/src/main/java/org/oxycblt/musikr/tag/interpret/PreMusic.kt b/app/src/main/java/org/oxycblt/musikr/tag/interpret/PreMusic.kt index ee4ae1a0a..5f0c486e6 100644 --- a/app/src/main/java/org/oxycblt/musikr/tag/interpret/PreMusic.kt +++ b/app/src/main/java/org/oxycblt/musikr/tag/interpret/PreMusic.kt @@ -20,17 +20,17 @@ package org.oxycblt.musikr.tag.interpret import android.net.Uri import java.util.UUID -import org.oxycblt.musikr.Music import org.oxycblt.auxio.music.MusicType +import org.oxycblt.auxio.playback.replaygain.ReplayGainAdjustment +import org.oxycblt.auxio.util.update import org.oxycblt.musikr.MimeType +import org.oxycblt.musikr.Music import org.oxycblt.musikr.fs.Path import org.oxycblt.musikr.playlist.PlaylistHandle import org.oxycblt.musikr.tag.Date import org.oxycblt.musikr.tag.Disc import org.oxycblt.musikr.tag.Name import org.oxycblt.musikr.tag.ReleaseType -import org.oxycblt.auxio.playback.replaygain.ReplayGainAdjustment -import org.oxycblt.auxio.util.update data class PreSong( val musicBrainzId: UUID?, diff --git a/app/src/main/java/org/oxycblt/musikr/tag/interpret/TagInterpreter.kt b/app/src/main/java/org/oxycblt/musikr/tag/interpret/TagInterpreter.kt index 309488ece..d280f75bb 100644 --- a/app/src/main/java/org/oxycblt/musikr/tag/interpret/TagInterpreter.kt +++ b/app/src/main/java/org/oxycblt/musikr/tag/interpret/TagInterpreter.kt @@ -20,16 +20,16 @@ package org.oxycblt.musikr.tag.interpret import javax.inject.Inject import org.oxycblt.auxio.R -import org.oxycblt.musikr.fs.DeviceFile +import org.oxycblt.auxio.playback.replaygain.ReplayGainAdjustment +import org.oxycblt.auxio.util.toUuidOrNull import org.oxycblt.musikr.MimeType +import org.oxycblt.musikr.fs.DeviceFile import org.oxycblt.musikr.tag.Disc import org.oxycblt.musikr.tag.Interpretation import org.oxycblt.musikr.tag.Name import org.oxycblt.musikr.tag.ReleaseType import org.oxycblt.musikr.tag.parse.ParsedTags import org.oxycblt.musikr.tag.util.parseId3GenreNames -import org.oxycblt.auxio.playback.replaygain.ReplayGainAdjustment -import org.oxycblt.auxio.util.toUuidOrNull interface TagInterpreter { fun interpret(file: DeviceFile, parsedTags: ParsedTags, interpretation: Interpretation): PreSong diff --git a/app/src/main/java/org/oxycblt/musikr/tag/parse/ExoPlayerTagFields.kt b/app/src/main/java/org/oxycblt/musikr/tag/parse/ExoPlayerTagFields.kt index ee9a10872..3110445cf 100644 --- a/app/src/main/java/org/oxycblt/musikr/tag/parse/ExoPlayerTagFields.kt +++ b/app/src/main/java/org/oxycblt/musikr/tag/parse/ExoPlayerTagFields.kt @@ -19,10 +19,10 @@ package org.oxycblt.musikr.tag.parse import androidx.core.text.isDigitsOnly +import org.oxycblt.auxio.util.nonZeroOrNull import org.oxycblt.musikr.tag.Date import org.oxycblt.musikr.tag.util.parseId3v2PositionField import org.oxycblt.musikr.tag.util.parseVorbisPositionField -import org.oxycblt.auxio.util.nonZeroOrNull // Song fun ExoPlayerTags.musicBrainzId() =