diff --git a/CHANGELOG.md b/CHANGELOG.md index d9a774917..b40b82461 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ ## dev +#### What's New +- **Playlists.** The long-awaited feature has arrived, with more functionality coming soon. + #### What's Improved - Sorting now handles numbers of arbitrary length - Punctuation is now ignored in sorting with intelligent sort names disabled diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index b63d5e026..63c3c3a01 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -22,4 +22,15 @@ # Obsfucation is what proprietary software does to keep the user unaware of it's abuses. # Also it's easier to fix issues if the stack trace symbols remain unmangled. --dontobfuscate \ No newline at end of file +-dontobfuscate + +# Make AGP shut up about classes that aren't even used. +-dontwarn org.bouncycastle.jsse.BCSSLParameters +-dontwarn org.bouncycastle.jsse.BCSSLSocket +-dontwarn org.bouncycastle.jsse.provider.BouncyCastleJsseProvider +-dontwarn org.conscrypt.Conscrypt$Version +-dontwarn org.conscrypt.Conscrypt +-dontwarn org.conscrypt.ConscryptHostnameVerifier +-dontwarn org.openjsse.javax.net.ssl.SSLParameters +-dontwarn org.openjsse.javax.net.ssl.SSLSocket +-dontwarn org.openjsse.net.ssl.OpenJSSE \ No newline at end of file diff --git a/app/src/main/java/org/oxycblt/auxio/music/user/RawPlaylist.kt b/app/src/main/java/org/oxycblt/auxio/music/user/RawPlaylist.kt index 51c15d1bd..1befba8aa 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/user/RawPlaylist.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/user/RawPlaylist.kt @@ -23,6 +23,7 @@ import org.oxycblt.auxio.music.Music /** * Raw playlist information persisted to [UserMusicDatabase]. + * * @author Alexander Capehart (OxygenCobalt) */ data class RawPlaylist( @@ -36,19 +37,21 @@ data class RawPlaylist( /** * UID and name information corresponding to a [RawPlaylist] entry. + * * @author Alexander Capehart (OxygenCobalt) */ @Entity data class PlaylistInfo(@PrimaryKey val playlistUid: Music.UID, val name: String) /** * Song information corresponding to a [RawPlaylist] entry. + * * @author Alexander Capehart (OxygenCobalt) */ @Entity data class PlaylistSong(@PrimaryKey val songUid: Music.UID) - /** * Links individual songs to a playlist entry. + * * @author Alexander Capehart (OxygenCobalt) */ @Entity diff --git a/app/src/main/java/org/oxycblt/auxio/music/user/UserMusicDatabase.kt b/app/src/main/java/org/oxycblt/auxio/music/user/UserMusicDatabase.kt index d356d9721..ed790640a 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/user/UserMusicDatabase.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/user/UserMusicDatabase.kt @@ -23,6 +23,7 @@ import org.oxycblt.auxio.music.Music /** * Allows persistence of all user-created music information. + * * @author Alexander Capehart (OxygenCobalt) */ @Database( @@ -39,12 +40,14 @@ abstract class UserMusicDatabase : RoomDatabase() { /** * The DAO for persisted playlist information. + * * @author Alexander Capehart (OxygenCobalt) */ @Dao interface PlaylistDao { /** * Read out all playlists stored in the database. + * * @return A list of [RawPlaylist] representing each playlist stored. */ @Transaction @@ -53,6 +56,7 @@ interface PlaylistDao { /** * Create a new playlist. + * * @param rawPlaylist The [RawPlaylist] to create. */ @Transaction @@ -68,6 +72,7 @@ interface PlaylistDao { /** * Replace the currently-stored [PlaylistInfo] for a playlist entry. + * * @param playlistInfo The new [PlaylistInfo] to store. */ @Transaction @@ -78,6 +83,7 @@ interface PlaylistDao { /** * Delete a playlist entry's [PlaylistInfo] and [PlaylistSong]. + * * @param playlistUid The [Music.UID] of the playlist to delete. */ @Transaction @@ -88,6 +94,7 @@ interface PlaylistDao { /** * Insert new song entries into a playlist. + * * @param playlistUid The [Music.UID] of the playlist to insert into. * @param songs The [PlaylistSong] representing each song to put into the playlist. */ @@ -100,8 +107,10 @@ interface PlaylistDao { /** * Replace the currently-stored [Song]s of the current playlist entry. + * * @param playlistUid The [Music.UID] of the playlist to update. - * @param songs The [PlaylistSong] representing the new list of songs to be placed in the playlist. + * @param songs The [PlaylistSong] representing the new list of songs to be placed in the + * playlist. */ @Transaction suspend fun replacePlaylistSongs(playlistUid: Music.UID, songs: List) { diff --git a/app/src/test/java/org/oxycblt/auxio/music/FakeMusicRepository.kt b/app/src/test/java/org/oxycblt/auxio/music/FakeMusicRepository.kt index 735f2fc02..4af3e64b3 100644 --- a/app/src/test/java/org/oxycblt/auxio/music/FakeMusicRepository.kt +++ b/app/src/test/java/org/oxycblt/auxio/music/FakeMusicRepository.kt @@ -58,23 +58,23 @@ open class FakeMusicRepository : MusicRepository { throw NotImplementedError() } - override fun createPlaylist(name: String, songs: List) { + override suspend fun createPlaylist(name: String, songs: List) { throw NotImplementedError() } - override fun renamePlaylist(playlist: Playlist, name: String) { + override suspend fun renamePlaylist(playlist: Playlist, name: String) { throw NotImplementedError() } - override fun deletePlaylist(playlist: Playlist) { + override suspend fun deletePlaylist(playlist: Playlist) { throw NotImplementedError() } - override fun addToPlaylist(songs: List, playlist: Playlist) { + override suspend fun addToPlaylist(songs: List, playlist: Playlist) { throw NotImplementedError() } - override fun rewritePlaylist(playlist: Playlist, songs: List) { + override suspend fun rewritePlaylist(playlist: Playlist, songs: List) { throw NotImplementedError() }