diff --git a/app/src/main/java/com/github/apognu/otter/activities/MainActivity.kt b/app/src/main/java/com/github/apognu/otter/activities/MainActivity.kt index e6a0726..1c62450 100644 --- a/app/src/main/java/com/github/apognu/otter/activities/MainActivity.kt +++ b/app/src/main/java/com/github/apognu/otter/activities/MainActivity.kt @@ -229,6 +229,8 @@ class MainActivity : AppCompatActivity() { is Event.LogOut -> { PowerPreference.clearAllData() + cacheDir.deleteRecursively() + startActivity(Intent(this@MainActivity, LoginActivity::class.java).apply { flags = Intent.FLAG_ACTIVITY_NO_HISTORY }) @@ -370,14 +372,14 @@ class MainActivity : AppCompatActivity() { now_playing_details_toggle.icon = getDrawable(R.drawable.pause) Picasso.get() - .maybeLoad(maybeNormalizeUrl(track.album?.cover?.original)) + .maybeLoad(maybeNormalizeUrl(track.album?.cover?.urls?.original)) .fit() .centerCrop() .into(now_playing_cover) now_playing_details_cover?.let { now_playing_details_cover -> Picasso.get() - .maybeLoad(maybeNormalizeUrl(track.album?.cover?.original)) + .maybeLoad(maybeNormalizeUrl(track.album?.cover())) .fit() .centerCrop() .transform(RoundedCornersTransformation(16, 0)) @@ -391,7 +393,7 @@ class MainActivity : AppCompatActivity() { }.widthPixels val backgroundCover = Picasso.get() - .maybeLoad(maybeNormalizeUrl(track.album?.cover?.original)) + .maybeLoad(maybeNormalizeUrl(track.album?.cover())) .get() .run { Bitmap.createScaledBitmap(this, width, width, false).toDrawable(resources) } .apply { @@ -422,7 +424,7 @@ class MainActivity : AppCompatActivity() { setOnMenuItemClickListener { when (it.itemId) { - R.id.track_info_artist -> ArtistsFragment.openAlbums(this@MainActivity, track.artist, art = track.album?.cover?.original) + R.id.track_info_artist -> ArtistsFragment.openAlbums(this@MainActivity, track.artist, art = track.album?.cover()) R.id.track_info_album -> AlbumsFragment.openTracks(this@MainActivity, track.album) R.id.track_info_details -> TrackInfoDetailsFragment.new(track).show(supportFragmentManager, "dialog") } diff --git a/app/src/main/java/com/github/apognu/otter/adapters/AlbumsAdapter.kt b/app/src/main/java/com/github/apognu/otter/adapters/AlbumsAdapter.kt index c7049af..0cfd954 100644 --- a/app/src/main/java/com/github/apognu/otter/adapters/AlbumsAdapter.kt +++ b/app/src/main/java/com/github/apognu/otter/adapters/AlbumsAdapter.kt @@ -36,7 +36,7 @@ class AlbumsAdapter(val context: Context?, private val listener: OnAlbumClickLis val album = data[position] Picasso.get() - .maybeLoad(maybeNormalizeUrl(album.cover.original)) + .maybeLoad(maybeNormalizeUrl(album.cover())) .fit() .transform(RoundedCornersTransformation(8, 0)) .into(holder.art) diff --git a/app/src/main/java/com/github/apognu/otter/adapters/AlbumsGridAdapter.kt b/app/src/main/java/com/github/apognu/otter/adapters/AlbumsGridAdapter.kt index 02904fd..7a17a55 100644 --- a/app/src/main/java/com/github/apognu/otter/adapters/AlbumsGridAdapter.kt +++ b/app/src/main/java/com/github/apognu/otter/adapters/AlbumsGridAdapter.kt @@ -35,7 +35,7 @@ class AlbumsGridAdapter(val context: Context?, private val listener: OnAlbumClic val album = data[position] Picasso.get() - .maybeLoad(maybeNormalizeUrl(album.cover.original)) + .maybeLoad(maybeNormalizeUrl(album.cover())) .fit() .placeholder(R.drawable.cover) .transform(RoundedCornersTransformation(16, 0)) diff --git a/app/src/main/java/com/github/apognu/otter/adapters/ArtistsAdapter.kt b/app/src/main/java/com/github/apognu/otter/adapters/ArtistsAdapter.kt index 68754a4..52c5a84 100644 --- a/app/src/main/java/com/github/apognu/otter/adapters/ArtistsAdapter.kt +++ b/app/src/main/java/com/github/apognu/otter/adapters/ArtistsAdapter.kt @@ -55,7 +55,7 @@ class ArtistsAdapter(val context: Context?, private val listener: OnArtistClickL artist.albums?.let { albums -> if (albums.isNotEmpty()) { Picasso.get() - .maybeLoad(maybeNormalizeUrl(albums[0].cover.original)) + .maybeLoad(maybeNormalizeUrl(albums[0].cover?.urls?.original)) .fit() .transform(RoundedCornersTransformation(8, 0)) .into(holder.art) diff --git a/app/src/main/java/com/github/apognu/otter/adapters/FavoritesAdapter.kt b/app/src/main/java/com/github/apognu/otter/adapters/FavoritesAdapter.kt index 3922856..c028d63 100644 --- a/app/src/main/java/com/github/apognu/otter/adapters/FavoritesAdapter.kt +++ b/app/src/main/java/com/github/apognu/otter/adapters/FavoritesAdapter.kt @@ -44,7 +44,7 @@ class FavoritesAdapter(private val context: Context?, private val favoriteListen val favorite = data[position] Picasso.get() - .maybeLoad(maybeNormalizeUrl(favorite.album?.cover?.original)) + .maybeLoad(maybeNormalizeUrl(favorite.album?.cover())) .fit() .placeholder(R.drawable.cover) .transform(RoundedCornersTransformation(16, 0)) diff --git a/app/src/main/java/com/github/apognu/otter/adapters/PlaylistTracksAdapter.kt b/app/src/main/java/com/github/apognu/otter/adapters/PlaylistTracksAdapter.kt index fdded5b..4fd9b65 100644 --- a/app/src/main/java/com/github/apognu/otter/adapters/PlaylistTracksAdapter.kt +++ b/app/src/main/java/com/github/apognu/otter/adapters/PlaylistTracksAdapter.kt @@ -56,7 +56,7 @@ class PlaylistTracksAdapter(private val context: Context?, private val favoriteL val track = data[position] Picasso.get() - .maybeLoad(maybeNormalizeUrl(track.track.album?.cover?.original)) + .maybeLoad(maybeNormalizeUrl(track.track.album?.cover())) .fit() .placeholder(R.drawable.cover) .transform(RoundedCornersTransformation(16, 0)) diff --git a/app/src/main/java/com/github/apognu/otter/adapters/TracksAdapter.kt b/app/src/main/java/com/github/apognu/otter/adapters/TracksAdapter.kt index 5b970c1..0df01f5 100644 --- a/app/src/main/java/com/github/apognu/otter/adapters/TracksAdapter.kt +++ b/app/src/main/java/com/github/apognu/otter/adapters/TracksAdapter.kt @@ -52,7 +52,7 @@ class TracksAdapter(private val context: Context?, private val favoriteListener: val track = data[position] Picasso.get() - .maybeLoad(maybeNormalizeUrl(track.album?.cover?.original)) + .maybeLoad(maybeNormalizeUrl(track.album?.cover())) .fit() .transform(RoundedCornersTransformation(8, 0)) .into(holder.cover) diff --git a/app/src/main/java/com/github/apognu/otter/fragments/AlbumsFragment.kt b/app/src/main/java/com/github/apognu/otter/fragments/AlbumsFragment.kt index 7115ece..11ace9e 100644 --- a/app/src/main/java/com/github/apognu/otter/fragments/AlbumsFragment.kt +++ b/app/src/main/java/com/github/apognu/otter/fragments/AlbumsFragment.kt @@ -43,7 +43,7 @@ class AlbumsFragment : OtterFragment() { companion object { fun new(artist: Artist, _art: String? = null): AlbumsFragment { - val art = _art ?: if (artist.albums?.isNotEmpty() == true) artist.albums[0].cover.original else "" + val art = _art ?: if (artist.albums?.isNotEmpty() == true) artist.cover() else "" return AlbumsFragment().apply { arguments = bundleOf( diff --git a/app/src/main/java/com/github/apognu/otter/fragments/PlaylistTracksFragment.kt b/app/src/main/java/com/github/apognu/otter/fragments/PlaylistTracksFragment.kt index 2593bbd..1c73e22 100644 --- a/app/src/main/java/com/github/apognu/otter/fragments/PlaylistTracksFragment.kt +++ b/app/src/main/java/com/github/apognu/otter/fragments/PlaylistTracksFragment.kt @@ -126,7 +126,7 @@ class PlaylistTracksFragment : OtterFragment) { - data.map { it.track.album }.toSet().map { it?.cover?.original }.take(4).forEachIndexed { index, url -> + data.map { it.track.album }.toSet().map { it?.cover() }.take(4).forEachIndexed { index, url -> val imageView = when (index) { 0 -> cover_top_left 1 -> cover_top_right diff --git a/app/src/main/java/com/github/apognu/otter/fragments/TracksFragment.kt b/app/src/main/java/com/github/apognu/otter/fragments/TracksFragment.kt index 80ca563..660abfe 100644 --- a/app/src/main/java/com/github/apognu/otter/fragments/TracksFragment.kt +++ b/app/src/main/java/com/github/apognu/otter/fragments/TracksFragment.kt @@ -42,7 +42,7 @@ class TracksFragment : OtterFragment() { "albumId" to album.id, "albumArtist" to album.artist.name, "albumTitle" to album.title, - "albumCover" to album.cover.original + "albumCover" to album.cover() ) } } diff --git a/app/src/main/java/com/github/apognu/otter/playback/MediaControlsManager.kt b/app/src/main/java/com/github/apognu/otter/playback/MediaControlsManager.kt index 7182ac9..62af217 100644 --- a/app/src/main/java/com/github/apognu/otter/playback/MediaControlsManager.kt +++ b/app/src/main/java/com/github/apognu/otter/playback/MediaControlsManager.kt @@ -41,7 +41,7 @@ class MediaControlsManager(val context: Service, private val scope: CoroutineSco val openIntent = Intent(context, MainActivity::class.java).apply { action = NOTIFICATION_ACTION_OPEN_QUEUE.toString() } val openPendingIntent = PendingIntent.getActivity(context, 0, openIntent, 0) - val coverUrl = maybeNormalizeUrl(track.album?.cover?.original) + val coverUrl = maybeNormalizeUrl(track.album?.cover()) notification = NotificationCompat.Builder( context, diff --git a/app/src/main/java/com/github/apognu/otter/playback/PlayerService.kt b/app/src/main/java/com/github/apognu/otter/playback/PlayerService.kt index c946c15..89ab7eb 100644 --- a/app/src/main/java/com/github/apognu/otter/playback/PlayerService.kt +++ b/app/src/main/java/com/github/apognu/otter/playback/PlayerService.kt @@ -323,7 +323,7 @@ class PlayerService : Service() { private fun buildTrackMetadata(track: Track?): MediaMetadataCompat { track?.let { - val coverUrl = maybeNormalizeUrl(track.album?.cover?.original) + val coverUrl = maybeNormalizeUrl(track.album?.cover()) return mediaMetadataBuilder.apply { putString(MediaMetadataCompat.METADATA_KEY_TITLE, track.title) diff --git a/app/src/main/java/com/github/apognu/otter/utils/Models.kt b/app/src/main/java/com/github/apognu/otter/utils/Models.kt index 955f627..65832d3 100644 --- a/app/src/main/java/com/github/apognu/otter/utils/Models.kt +++ b/app/src/main/java/com/github/apognu/otter/utils/Models.kt @@ -56,7 +56,8 @@ data class RadiosResponse(override val count: Int, override val next: String?, v override fun getData() = results } -data class Covers(val original: String) +data class Covers(val urls: CoverUrls) +data class CoverUrls(val original: String) typealias AlbumList = List @@ -70,12 +71,12 @@ data class Album( val id: Int, val artist: Artist, val title: String, - val cover: Covers, + val cover: Covers?, val release_date: String? ) : SearchResult { data class Artist(val name: String) - override fun cover() = cover.original + override fun cover() = cover?.urls?.original override fun title() = title override fun subtitle() = artist.name } @@ -87,10 +88,10 @@ data class Artist( ) : SearchResult { data class Album( val title: String, - val cover: Covers + val cover: Covers? ) - override fun cover() = albums?.getOrNull(0)?.cover?.original + override fun cover(): String? = albums?.getOrNull(0)?.cover?.urls?.original override fun title() = name override fun subtitle() = "Artist" } @@ -115,7 +116,7 @@ data class Track( id = download.id, title = download.title, artist = Artist(0, download.artist, listOf()), - album = Album(0, Album.Artist(""), "", Covers(""), ""), + album = Album(0, Album.Artist(""), "", Covers(CoverUrls("")), ""), uploads = listOf(Upload(download.contentId, 0, 0)) ) } @@ -143,7 +144,7 @@ data class Track( } } - override fun cover() = album?.cover?.original + override fun cover() = album?.cover?.urls?.original override fun title() = title override fun subtitle() = artist.name }