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 802ecde13..5a79a00b6 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/ArtistDetailFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/ArtistDetailFragment.kt @@ -13,8 +13,8 @@ import androidx.navigation.fragment.navArgs import org.oxycblt.auxio.R import org.oxycblt.auxio.databinding.FragmentArtistDetailBinding import org.oxycblt.auxio.detail.adapters.DetailAlbumAdapter +import org.oxycblt.auxio.music.Album import org.oxycblt.auxio.music.MusicViewModel -import org.oxycblt.auxio.music.models.Album import org.oxycblt.auxio.recycler.ClickListener import org.oxycblt.auxio.recycler.SortMode import org.oxycblt.auxio.theme.applyDivider 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 e25819c2d..f5b81923f 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/DetailViewModel.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/DetailViewModel.kt @@ -3,9 +3,9 @@ package org.oxycblt.auxio.detail import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel -import org.oxycblt.auxio.music.models.Album -import org.oxycblt.auxio.music.models.Artist -import org.oxycblt.auxio.music.models.Genre +import org.oxycblt.auxio.music.Album +import org.oxycblt.auxio.music.Artist +import org.oxycblt.auxio.music.Genre import org.oxycblt.auxio.recycler.SortMode class DetailViewModel : ViewModel() { 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 d736cda08..5fbdee57e 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/GenreDetailFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/GenreDetailFragment.kt @@ -11,13 +11,10 @@ import androidx.fragment.app.activityViewModels import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.navArgs import org.oxycblt.auxio.R -import org.oxycblt.auxio.databinding.FragmentArtistDetailBinding import org.oxycblt.auxio.databinding.FragmentGenreDetailBinding -import org.oxycblt.auxio.detail.adapters.DetailAlbumAdapter import org.oxycblt.auxio.detail.adapters.DetailArtistAdapter +import org.oxycblt.auxio.music.Artist import org.oxycblt.auxio.music.MusicViewModel -import org.oxycblt.auxio.music.models.Album -import org.oxycblt.auxio.music.models.Artist import org.oxycblt.auxio.recycler.ClickListener import org.oxycblt.auxio.recycler.SortMode import org.oxycblt.auxio.theme.applyDivider diff --git a/app/src/main/java/org/oxycblt/auxio/detail/adapters/DetailAlbumAdapter.kt b/app/src/main/java/org/oxycblt/auxio/detail/adapters/DetailAlbumAdapter.kt index 52b176d65..5abf4a796 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/adapters/DetailAlbumAdapter.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/adapters/DetailAlbumAdapter.kt @@ -5,13 +5,13 @@ import android.view.ViewGroup import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView import org.oxycblt.auxio.databinding.ItemArtistAlbumBinding -import org.oxycblt.auxio.music.models.Album -import org.oxycblt.auxio.recycler.AlbumDiffCallback +import org.oxycblt.auxio.music.Album import org.oxycblt.auxio.recycler.ClickListener +import org.oxycblt.auxio.recycler.DiffCallback class DetailAlbumAdapter( private val listener: ClickListener -) : ListAdapter(AlbumDiffCallback()) { +) : ListAdapter(DiffCallback()) { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { return ViewHolder( diff --git a/app/src/main/java/org/oxycblt/auxio/detail/adapters/DetailArtistAdapter.kt b/app/src/main/java/org/oxycblt/auxio/detail/adapters/DetailArtistAdapter.kt index f14c3742b..8088e7479 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/adapters/DetailArtistAdapter.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/adapters/DetailArtistAdapter.kt @@ -4,17 +4,14 @@ import android.view.LayoutInflater import android.view.ViewGroup import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView -import org.oxycblt.auxio.databinding.ItemArtistAlbumBinding import org.oxycblt.auxio.databinding.ItemGenreArtistBinding -import org.oxycblt.auxio.music.models.Album -import org.oxycblt.auxio.music.models.Artist -import org.oxycblt.auxio.recycler.AlbumDiffCallback -import org.oxycblt.auxio.recycler.ArtistDiffCallback +import org.oxycblt.auxio.music.Artist import org.oxycblt.auxio.recycler.ClickListener +import org.oxycblt.auxio.recycler.DiffCallback class DetailArtistAdapter( private val listener: ClickListener -) : ListAdapter(ArtistDiffCallback()) { +) : ListAdapter(DiffCallback()) { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { return ViewHolder( diff --git a/app/src/main/java/org/oxycblt/auxio/detail/adapters/DetailSongAdapter.kt b/app/src/main/java/org/oxycblt/auxio/detail/adapters/DetailSongAdapter.kt index 4eeb4a81c..32b479bc7 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/adapters/DetailSongAdapter.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/adapters/DetailSongAdapter.kt @@ -5,13 +5,13 @@ import android.view.ViewGroup import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView import org.oxycblt.auxio.databinding.ItemAlbumSongBinding -import org.oxycblt.auxio.music.models.Song +import org.oxycblt.auxio.music.Song import org.oxycblt.auxio.recycler.ClickListener -import org.oxycblt.auxio.recycler.SongDiffCallback +import org.oxycblt.auxio.recycler.DiffCallback class DetailSongAdapter( private val listener: ClickListener -) : ListAdapter(SongDiffCallback()) { +) : ListAdapter(DiffCallback()) { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { return ViewHolder( diff --git a/app/src/main/java/org/oxycblt/auxio/library/LibraryFragment.kt b/app/src/main/java/org/oxycblt/auxio/library/LibraryFragment.kt index b379b8903..35123dbdd 100644 --- a/app/src/main/java/org/oxycblt/auxio/library/LibraryFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/library/LibraryFragment.kt @@ -13,10 +13,10 @@ import org.oxycblt.auxio.databinding.FragmentLibraryBinding import org.oxycblt.auxio.library.adapters.AlbumAdapter import org.oxycblt.auxio.library.adapters.ArtistAdapter import org.oxycblt.auxio.library.adapters.GenreAdapter +import org.oxycblt.auxio.music.Album +import org.oxycblt.auxio.music.Artist +import org.oxycblt.auxio.music.Genre import org.oxycblt.auxio.music.MusicViewModel -import org.oxycblt.auxio.music.models.Album -import org.oxycblt.auxio.music.models.Artist -import org.oxycblt.auxio.music.models.Genre import org.oxycblt.auxio.recycler.ClickListener import org.oxycblt.auxio.theme.SHOW_ALBUMS import org.oxycblt.auxio.theme.SHOW_ARTISTS diff --git a/app/src/main/java/org/oxycblt/auxio/library/adapters/AlbumAdapter.kt b/app/src/main/java/org/oxycblt/auxio/library/adapters/AlbumAdapter.kt index ca7717fd3..e5884d2e0 100644 --- a/app/src/main/java/org/oxycblt/auxio/library/adapters/AlbumAdapter.kt +++ b/app/src/main/java/org/oxycblt/auxio/library/adapters/AlbumAdapter.kt @@ -4,7 +4,7 @@ import android.view.LayoutInflater import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import org.oxycblt.auxio.databinding.ItemAlbumBinding -import org.oxycblt.auxio.music.models.Album +import org.oxycblt.auxio.music.Album import org.oxycblt.auxio.recycler.ClickListener class AlbumAdapter( diff --git a/app/src/main/java/org/oxycblt/auxio/library/adapters/ArtistAdapter.kt b/app/src/main/java/org/oxycblt/auxio/library/adapters/ArtistAdapter.kt index 2617227ae..b9e5ce5dd 100644 --- a/app/src/main/java/org/oxycblt/auxio/library/adapters/ArtistAdapter.kt +++ b/app/src/main/java/org/oxycblt/auxio/library/adapters/ArtistAdapter.kt @@ -4,7 +4,7 @@ import android.view.LayoutInflater import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import org.oxycblt.auxio.databinding.ItemArtistBinding -import org.oxycblt.auxio.music.models.Artist +import org.oxycblt.auxio.music.Artist import org.oxycblt.auxio.recycler.ClickListener class ArtistAdapter( diff --git a/app/src/main/java/org/oxycblt/auxio/library/adapters/GenreAdapter.kt b/app/src/main/java/org/oxycblt/auxio/library/adapters/GenreAdapter.kt index 9f7695c00..ba287667d 100644 --- a/app/src/main/java/org/oxycblt/auxio/library/adapters/GenreAdapter.kt +++ b/app/src/main/java/org/oxycblt/auxio/library/adapters/GenreAdapter.kt @@ -4,7 +4,7 @@ import android.view.LayoutInflater import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import org.oxycblt.auxio.databinding.ItemGenreBinding -import org.oxycblt.auxio.music.models.Genre +import org.oxycblt.auxio.music.Genre import org.oxycblt.auxio.recycler.ClickListener class GenreAdapter( diff --git a/app/src/main/java/org/oxycblt/auxio/music/Models.kt b/app/src/main/java/org/oxycblt/auxio/music/Models.kt new file mode 100644 index 000000000..c3ee3b3a0 --- /dev/null +++ b/app/src/main/java/org/oxycblt/auxio/music/Models.kt @@ -0,0 +1,89 @@ +package org.oxycblt.auxio.music + +import android.net.Uri + +// The base model for all music +// This is used in a lot of general functions in order to cut down on code +sealed class BaseModel { + abstract val id: Long + abstract val name: String +} + +// Song +data class Song( + override val id: Long, + override var name: String, + val albumId: Long, + val track: Int, + val duration: Long +) : BaseModel() { + lateinit var album: Album + + val seconds = duration / 1000 + val formattedDuration: String = seconds.toDuration() +} + +// Album +data class Album( + override val id: Long = -1, + override val name: String, + val artistName: String, + val coverUri: Uri = Uri.EMPTY, + val year: Int = 0 +) : BaseModel() { + lateinit var artist: Artist + + val songs = mutableListOf() + val numSongs: Int get() = songs.size + val totalDuration: String get() { + var seconds: Long = 0 + songs.forEach { + seconds += it.seconds + } + return seconds.toDuration() + } +} + +// Artist +data class Artist( + override val id: Long = -1, + override var name: String, + val givenGenres: MutableList = mutableListOf() +) : BaseModel() { + val albums = mutableListOf() + val genres = mutableListOf() + + val numAlbums: Int get() = albums.size + val numSongs: Int + get() { + var num = 0 + albums.forEach { + num += it.numSongs + } + return num + } +} + +// Genre +data class Genre( + override val id: Long = -1, + override var name: String, +) : BaseModel() { + val artists = mutableListOf() + + val numArtists: Int get() = artists.size + val numAlbums: Int get() { + var num = 0 + artists.forEach { + num += it.numAlbums + } + return num + } + val numSongs: Int get() { + var num = 0 + artists.forEach { + num += it.numSongs + } + return num + } +} diff --git a/app/src/main/java/org/oxycblt/auxio/music/MusicUtils.kt b/app/src/main/java/org/oxycblt/auxio/music/MusicUtils.kt index 473886e14..efe20b2c2 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/MusicUtils.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/MusicUtils.kt @@ -8,9 +8,6 @@ import android.text.format.DateUtils import android.widget.TextView import androidx.databinding.BindingAdapter import org.oxycblt.auxio.R -import org.oxycblt.auxio.music.models.Album -import org.oxycblt.auxio.music.models.Artist -import org.oxycblt.auxio.music.models.Genre // List of ID3 genres + Winamp extensions, each index corresponds to their int value. // There are a lot more int-genre extensions as far as Im aware, but this works for most cases. 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 21b117fb6..0de6a1df7 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/MusicViewModel.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/MusicViewModel.kt @@ -12,15 +12,11 @@ import kotlinx.coroutines.Job import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import org.oxycblt.auxio.R -import org.oxycblt.auxio.music.models.Album -import org.oxycblt.auxio.music.models.Artist -import org.oxycblt.auxio.music.models.Genre -import org.oxycblt.auxio.music.models.Song import org.oxycblt.auxio.music.processing.MusicLoader import org.oxycblt.auxio.music.processing.MusicLoaderResponse import org.oxycblt.auxio.music.processing.MusicSorter -// ViewModel for music storage. May also be a god object. +// ViewModel for music storage. // FIXME: This class can be improved in multiple ways // - Remove lists/parents from models so that they can be parcelable // - Move genre usage to songs [If there's a way to find songs without a genre] diff --git a/app/src/main/java/org/oxycblt/auxio/music/coil/CoilUtils.kt b/app/src/main/java/org/oxycblt/auxio/music/coil/CoilUtils.kt index e1bfef4e2..0051126dc 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/coil/CoilUtils.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/coil/CoilUtils.kt @@ -7,10 +7,10 @@ import androidx.databinding.BindingAdapter import coil.Coil import coil.request.ImageRequest import org.oxycblt.auxio.R -import org.oxycblt.auxio.music.models.Album -import org.oxycblt.auxio.music.models.Artist -import org.oxycblt.auxio.music.models.Genre -import org.oxycblt.auxio.music.models.Song +import org.oxycblt.auxio.music.Album +import org.oxycblt.auxio.music.Artist +import org.oxycblt.auxio.music.Genre +import org.oxycblt.auxio.music.Song // Get the cover art for a song or album @BindingAdapter("coverArt") diff --git a/app/src/main/java/org/oxycblt/auxio/music/coil/MosaicFetcher.kt b/app/src/main/java/org/oxycblt/auxio/music/coil/MosaicFetcher.kt index 4c54ac893..3d2bc215d 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/coil/MosaicFetcher.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/coil/MosaicFetcher.kt @@ -5,7 +5,6 @@ import android.graphics.Bitmap import android.graphics.BitmapFactory import android.graphics.Canvas import android.net.Uri -import android.util.Log import androidx.core.graphics.drawable.toDrawable import coil.bitmap.BitmapPool import coil.decode.DataSource @@ -18,8 +17,6 @@ import coil.size.Size import okio.buffer import okio.source import java.io.InputStream -import kotlin.math.pow -import kotlin.math.sqrt const val MOSAIC_BITMAP_SIZE = 512 const val MOSAIC_BITMAP_INCREMENT = 256 diff --git a/app/src/main/java/org/oxycblt/auxio/music/models/Album.kt b/app/src/main/java/org/oxycblt/auxio/music/models/Album.kt deleted file mode 100644 index 6b59a6e87..000000000 --- a/app/src/main/java/org/oxycblt/auxio/music/models/Album.kt +++ /dev/null @@ -1,25 +0,0 @@ -package org.oxycblt.auxio.music.models - -import android.net.Uri -import org.oxycblt.auxio.music.toDuration - -// Abstraction for Song -data class Album( - val id: Long = -1, - var name: String, - val artistName: String, - val coverUri: Uri = Uri.EMPTY, - val year: Int = 0 -) { - lateinit var artist: Artist - - val songs = mutableListOf() - val numSongs: Int get() = songs.size - val totalDuration: String get() { - var seconds: Long = 0 - songs.forEach { - seconds += it.seconds - } - return seconds.toDuration() - } -} diff --git a/app/src/main/java/org/oxycblt/auxio/music/models/Artist.kt b/app/src/main/java/org/oxycblt/auxio/music/models/Artist.kt deleted file mode 100644 index 594441f46..000000000 --- a/app/src/main/java/org/oxycblt/auxio/music/models/Artist.kt +++ /dev/null @@ -1,21 +0,0 @@ -package org.oxycblt.auxio.music.models - -// Abstraction for albums -data class Artist( - val id: Long = -1, - var name: String, - val givenGenres: MutableList = mutableListOf() -) { - val albums = mutableListOf() - val genres = mutableListOf() - - val numAlbums: Int get() = albums.size - val numSongs: Int - get() { - var num = 0 - albums.forEach { - num += it.numSongs - } - return num - } -} diff --git a/app/src/main/java/org/oxycblt/auxio/music/models/Genre.kt b/app/src/main/java/org/oxycblt/auxio/music/models/Genre.kt deleted file mode 100644 index 0b3dc52a1..000000000 --- a/app/src/main/java/org/oxycblt/auxio/music/models/Genre.kt +++ /dev/null @@ -1,24 +0,0 @@ -package org.oxycblt.auxio.music.models - -data class Genre( - val id: Long = -1, - var name: String, -) { - val artists = mutableListOf() - - val numArtists: Int get() = artists.size - val numAlbums: Int get() { - var num = 0 - artists.forEach { - num += it.numAlbums - } - return num - } - val numSongs: Int get() { - var num = 0 - artists.forEach { - num += it.numSongs - } - return num - } -} diff --git a/app/src/main/java/org/oxycblt/auxio/music/models/Song.kt b/app/src/main/java/org/oxycblt/auxio/music/models/Song.kt deleted file mode 100644 index e972fbf17..000000000 --- a/app/src/main/java/org/oxycblt/auxio/music/models/Song.kt +++ /dev/null @@ -1,17 +0,0 @@ -package org.oxycblt.auxio.music.models - -import org.oxycblt.auxio.music.toDuration - -// Class containing all relevant values for a song. -data class Song( - val id: Long, - var name: String, - val albumId: Long, - val track: Int, - val duration: Long -) { - lateinit var album: Album - - val seconds = duration / 1000 - val formattedDuration: String = seconds.toDuration() -} diff --git a/app/src/main/java/org/oxycblt/auxio/music/processing/MusicLoader.kt b/app/src/main/java/org/oxycblt/auxio/music/processing/MusicLoader.kt index 05afa685f..1f2b16ded 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/processing/MusicLoader.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/processing/MusicLoader.kt @@ -7,10 +7,10 @@ import android.provider.MediaStore.Audio.Artists import android.provider.MediaStore.Audio.Genres import android.provider.MediaStore.Audio.Media import android.util.Log -import org.oxycblt.auxio.music.models.Album -import org.oxycblt.auxio.music.models.Artist -import org.oxycblt.auxio.music.models.Genre -import org.oxycblt.auxio.music.models.Song +import org.oxycblt.auxio.music.Album +import org.oxycblt.auxio.music.Artist +import org.oxycblt.auxio.music.Genre +import org.oxycblt.auxio.music.Song import org.oxycblt.auxio.music.toAlbumArtURI import org.oxycblt.auxio.music.toNamedGenre diff --git a/app/src/main/java/org/oxycblt/auxio/music/processing/MusicSorter.kt b/app/src/main/java/org/oxycblt/auxio/music/processing/MusicSorter.kt index 876f8851d..ce879b963 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/processing/MusicSorter.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/processing/MusicSorter.kt @@ -1,10 +1,10 @@ package org.oxycblt.auxio.music.processing import android.util.Log -import org.oxycblt.auxio.music.models.Album -import org.oxycblt.auxio.music.models.Artist -import org.oxycblt.auxio.music.models.Genre -import org.oxycblt.auxio.music.models.Song +import org.oxycblt.auxio.music.Album +import org.oxycblt.auxio.music.Artist +import org.oxycblt.auxio.music.Genre +import org.oxycblt.auxio.music.Song class MusicSorter( var genres: MutableList, diff --git a/app/src/main/java/org/oxycblt/auxio/recycler/RecyclerUtils.kt b/app/src/main/java/org/oxycblt/auxio/recycler/RecyclerUtils.kt index 801d780c0..001d4314f 100644 --- a/app/src/main/java/org/oxycblt/auxio/recycler/RecyclerUtils.kt +++ b/app/src/main/java/org/oxycblt/auxio/recycler/RecyclerUtils.kt @@ -2,41 +2,21 @@ package org.oxycblt.auxio.recycler import androidx.recyclerview.widget.DiffUtil import org.oxycblt.auxio.R -import org.oxycblt.auxio.music.models.Album -import org.oxycblt.auxio.music.models.Artist -import org.oxycblt.auxio.music.models.Song +import org.oxycblt.auxio.music.Album +import org.oxycblt.auxio.music.Artist +import org.oxycblt.auxio.music.BaseModel +import org.oxycblt.auxio.music.Song // RecyclerView click listener class ClickListener(val onClick: (T) -> Unit) // Song Diff callback -class SongDiffCallback : DiffUtil.ItemCallback() { - override fun areContentsTheSame(oldItem: Song, newItem: Song): Boolean { +class DiffCallback : DiffUtil.ItemCallback() { + override fun areContentsTheSame(oldItem: T, newItem: T): Boolean { return oldItem.id == newItem.id } - override fun areItemsTheSame(oldItem: Song, newItem: Song): Boolean { - return oldItem == newItem - } -} - -// Album Diff callback -class AlbumDiffCallback : DiffUtil.ItemCallback() { - override fun areContentsTheSame(oldItem: Album, newItem: Album): Boolean { - return oldItem.id == newItem.id - } - - override fun areItemsTheSame(oldItem: Album, newItem: Album): Boolean { - return oldItem == newItem - } -} - -class ArtistDiffCallback : DiffUtil.ItemCallback() { - override fun areContentsTheSame(oldItem: Artist, newItem: Artist): Boolean { - return oldItem.id == newItem.id - } - - override fun areItemsTheSame(oldItem: Artist, newItem: Artist): Boolean { + override fun areItemsTheSame(oldItem: T, newItem: T): Boolean { return oldItem == newItem } } diff --git a/app/src/main/java/org/oxycblt/auxio/songs/SongAdapter.kt b/app/src/main/java/org/oxycblt/auxio/songs/SongAdapter.kt index 1564a56c8..bc4bf5e25 100644 --- a/app/src/main/java/org/oxycblt/auxio/songs/SongAdapter.kt +++ b/app/src/main/java/org/oxycblt/auxio/songs/SongAdapter.kt @@ -4,7 +4,7 @@ import android.view.LayoutInflater import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import org.oxycblt.auxio.databinding.ItemSongBinding -import org.oxycblt.auxio.music.models.Song +import org.oxycblt.auxio.music.Song import org.oxycblt.auxio.recycler.ClickListener class SongAdapter( diff --git a/app/src/main/res/layout/fragment_album_detail.xml b/app/src/main/res/layout/fragment_album_detail.xml index 5a769f3f6..2f9f97474 100644 --- a/app/src/main/res/layout/fragment_album_detail.xml +++ b/app/src/main/res/layout/fragment_album_detail.xml @@ -7,7 +7,7 @@ + type="org.oxycblt.auxio.music.Album" /> + type="org.oxycblt.auxio.music.Artist" /> + type="org.oxycblt.auxio.music.Genre" /> + type="org.oxycblt.auxio.music.Album" /> + type="org.oxycblt.auxio.music.Song" /> + type="org.oxycblt.auxio.music.Artist" /> + type="org.oxycblt.auxio.music.Album" /> + type="org.oxycblt.auxio.music.Genre" /> + type="org.oxycblt.auxio.music.Artist" /> + type="org.oxycblt.auxio.music.Song" />