kopia lustrzana https://dev.funkwhale.audio/funkwhale/funkwhale-android
				
				
				
			Merge branch 'bugfix/124' into 'develop'
Fix issue #124 - empty queue on restart. Closes #124 See merge request funkwhale/funkwhale-android!185technical/upgrade-exoplayer
						commit
						75c8453cca
					
				| 
						 | 
				
			
			@ -29,7 +29,7 @@ class QueueManager(val context: Context) {
 | 
			
		|||
 | 
			
		||||
  init {
 | 
			
		||||
    FFACache.getLine(context, "queue")?.let { json ->
 | 
			
		||||
      gsonDeserializerOf(QueueCache::class.java).deserialize(json)?.let { cache ->
 | 
			
		||||
      gsonDeserializerOf(QueueCache::class.java).deserialize(json.reader())?.let { cache ->
 | 
			
		||||
        metadata = cache.data.toMutableList()
 | 
			
		||||
 | 
			
		||||
        val factory = cacheDataSourceFactoryProvider.create(context)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -35,5 +35,5 @@ class AlbumsRepository(override val context: Context?, artistId: Int? = null) :
 | 
			
		|||
 | 
			
		||||
  override fun cache(data: List<Album>) = AlbumsCache(data)
 | 
			
		||||
  override fun uncache(json: String) =
 | 
			
		||||
    gsonDeserializerOf(AlbumsCache::class.java).deserialize(json)
 | 
			
		||||
    gsonDeserializerOf(AlbumsCache::class.java).deserialize(json.reader())
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -27,5 +27,5 @@ class ArtistTracksRepository(override val context: Context?, private val artistI
 | 
			
		|||
 | 
			
		||||
  override fun cache(data: List<Track>) = TracksCache(data)
 | 
			
		||||
  override fun uncache(json: String) =
 | 
			
		||||
    gsonDeserializerOf(TracksCache::class.java).deserialize(json)
 | 
			
		||||
    gsonDeserializerOf(TracksCache::class.java).deserialize(json.reader())
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -26,5 +26,5 @@ class ArtistsRepository(override val context: Context?) : Repository<Artist, Art
 | 
			
		|||
 | 
			
		||||
  override fun cache(data: List<Artist>) = ArtistsCache(data)
 | 
			
		||||
  override fun uncache(json: String) =
 | 
			
		||||
    gsonDeserializerOf(ArtistsCache::class.java).deserialize(json)
 | 
			
		||||
    gsonDeserializerOf(ArtistsCache::class.java).deserialize(json.reader())
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -34,7 +34,7 @@ class FavoritesRepository(override val context: Context?) : Repository<Track, Tr
 | 
			
		|||
 | 
			
		||||
  override fun cache(data: List<Track>) = TracksCache(data)
 | 
			
		||||
  override fun uncache(json: String) =
 | 
			
		||||
    gsonDeserializerOf(TracksCache::class.java).deserialize(json)
 | 
			
		||||
    gsonDeserializerOf(TracksCache::class.java).deserialize(json.reader())
 | 
			
		||||
 | 
			
		||||
  private val favoritedRepository = FavoritedRepository(context!!)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -115,7 +115,7 @@ class FavoritedRepository(override val context: Context?) : Repository<Int, Favo
 | 
			
		|||
 | 
			
		||||
  override fun cache(data: List<Int>) = FavoritedCache(data)
 | 
			
		||||
  override fun uncache(json: String) =
 | 
			
		||||
    gsonDeserializerOf(FavoritedCache::class.java).deserialize(json)
 | 
			
		||||
    gsonDeserializerOf(FavoritedCache::class.java).deserialize(json.reader())
 | 
			
		||||
 | 
			
		||||
  fun update(context: Context?, scope: CoroutineScope) {
 | 
			
		||||
    fetch(Origin.Network.origin).untilNetwork(scope, IO) { favorites, _, _, _ ->
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -30,7 +30,7 @@ class PlaylistTracksRepository(override val context: Context?, playlistId: Int)
 | 
			
		|||
 | 
			
		||||
  override fun cache(data: List<PlaylistTrack>) = PlaylistTracksCache(data)
 | 
			
		||||
  override fun uncache(json: String) =
 | 
			
		||||
    gsonDeserializerOf(PlaylistTracksCache::class.java).deserialize(json)
 | 
			
		||||
    gsonDeserializerOf(PlaylistTracksCache::class.java).deserialize(json.reader())
 | 
			
		||||
 | 
			
		||||
  override fun onDataFetched(data: List<PlaylistTrack>): List<PlaylistTrack> = runBlocking {
 | 
			
		||||
    val favorites = FavoritedRepository(context).fetch(Origin.Network.origin)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -30,7 +30,7 @@ class PlaylistsRepository(override val context: Context?) : Repository<Playlist,
 | 
			
		|||
 | 
			
		||||
  override fun cache(data: List<Playlist>) = PlaylistsCache(data)
 | 
			
		||||
  override fun uncache(json: String) =
 | 
			
		||||
    gsonDeserializerOf(PlaylistsCache::class.java).deserialize(json)
 | 
			
		||||
    gsonDeserializerOf(PlaylistsCache::class.java).deserialize(json.reader())
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class ManagementPlaylistsRepository(override val context: Context?) :
 | 
			
		||||
| 
						 | 
				
			
			@ -50,7 +50,7 @@ class ManagementPlaylistsRepository(override val context: Context?) :
 | 
			
		|||
 | 
			
		||||
  override fun cache(data: List<Playlist>) = PlaylistsCache(data)
 | 
			
		||||
  override fun uncache(json: String) =
 | 
			
		||||
    gsonDeserializerOf(PlaylistsCache::class.java).deserialize(json)
 | 
			
		||||
    gsonDeserializerOf(PlaylistsCache::class.java).deserialize(json.reader())
 | 
			
		||||
 | 
			
		||||
  suspend fun new(name: String): Int? {
 | 
			
		||||
    context?.let {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -26,7 +26,7 @@ class RadiosRepository(override val context: Context?) : Repository<Radio, Radio
 | 
			
		|||
 | 
			
		||||
  override fun cache(data: List<Radio>) = RadiosCache(data)
 | 
			
		||||
  override fun uncache(json: String) =
 | 
			
		||||
    gsonDeserializerOf(RadiosCache::class.java).deserialize(json)
 | 
			
		||||
    gsonDeserializerOf(RadiosCache::class.java).deserialize(json.reader())
 | 
			
		||||
 | 
			
		||||
  override fun onDataFetched(data: List<Radio>): List<Radio> {
 | 
			
		||||
    return data
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -34,7 +34,7 @@ class TracksSearchRepository(override val context: Context?, var query: String)
 | 
			
		|||
 | 
			
		||||
  override fun cache(data: List<Track>) = TracksCache(data)
 | 
			
		||||
  override fun uncache(json: String) =
 | 
			
		||||
    gsonDeserializerOf(TracksCache::class.java).deserialize(json)
 | 
			
		||||
    gsonDeserializerOf(TracksCache::class.java).deserialize(json.reader())
 | 
			
		||||
 | 
			
		||||
  override fun onDataFetched(data: List<Track>): List<Track> = runBlocking {
 | 
			
		||||
    val favorites = FavoritedRepository(context).fetch(Origin.Cache.origin)
 | 
			
		||||
| 
						 | 
				
			
			@ -76,7 +76,7 @@ class ArtistsSearchRepository(override val context: Context?, var query: String)
 | 
			
		|||
 | 
			
		||||
  override fun cache(data: List<Artist>) = ArtistsCache(data)
 | 
			
		||||
  override fun uncache(json: String) =
 | 
			
		||||
    gsonDeserializerOf(ArtistsCache::class.java).deserialize(json)
 | 
			
		||||
    gsonDeserializerOf(ArtistsCache::class.java).deserialize(json.reader())
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class AlbumsSearchRepository(override val context: Context?, var query: String) :
 | 
			
		||||
| 
						 | 
				
			
			@ -96,5 +96,5 @@ class AlbumsSearchRepository(override val context: Context?, var query: String)
 | 
			
		|||
 | 
			
		||||
  override fun cache(data: List<Album>) = AlbumsCache(data)
 | 
			
		||||
  override fun uncache(json: String) =
 | 
			
		||||
    gsonDeserializerOf(AlbumsCache::class.java).deserialize(json)
 | 
			
		||||
    gsonDeserializerOf(AlbumsCache::class.java).deserialize(json.reader())
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -38,7 +38,7 @@ class TracksRepository(override val context: Context?, albumId: Int) :
 | 
			
		|||
 | 
			
		||||
  override fun cache(data: List<Track>) = TracksCache(data)
 | 
			
		||||
  override fun uncache(json: String) =
 | 
			
		||||
    gsonDeserializerOf(TracksCache::class.java).deserialize(json)
 | 
			
		||||
    gsonDeserializerOf(TracksCache::class.java).deserialize(json.reader())
 | 
			
		||||
 | 
			
		||||
  companion object {
 | 
			
		||||
    fun getDownloadedIds(exoDownloadManager: DownloadManager): List<Int>? {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Ładowanie…
	
		Reference in New Issue