mirror of
https://github.com/cmclark00/RetroMusicPlayer.git
synced 2025-05-19 16:45:20 +01:00
Refactor code
This commit is contained in:
parent
016c7f6218
commit
67f4b4ecf2
4 changed files with 125 additions and 108 deletions
|
@ -11,7 +11,7 @@ import retrofit2.create
|
|||
import retrofit2.http.GET
|
||||
import retrofit2.http.Query
|
||||
import java.io.File
|
||||
import java.util.*
|
||||
import java.util.Locale
|
||||
|
||||
private const val BASE_QUERY_ARTIST = "search/artist"
|
||||
private const val BASE_URL = "https://api.deezer.com/"
|
||||
|
@ -20,30 +20,30 @@ interface DeezerApiService {
|
|||
|
||||
@GET("$BASE_QUERY_ARTIST&limit=1")
|
||||
fun getArtistImage(
|
||||
@Query("q") artistName: String
|
||||
@Query("q") artistName: String
|
||||
): Call<DeezerResponse>
|
||||
|
||||
companion object {
|
||||
operator fun invoke(
|
||||
client: okhttp3.Call.Factory
|
||||
client: okhttp3.Call.Factory
|
||||
): DeezerApiService {
|
||||
return Retrofit.Builder()
|
||||
.baseUrl(BASE_URL)
|
||||
.callFactory(client)
|
||||
.addConverterFactory(GsonConverterFactory.create())
|
||||
.build()
|
||||
.create()
|
||||
.baseUrl(BASE_URL)
|
||||
.callFactory(client)
|
||||
.addConverterFactory(GsonConverterFactory.create())
|
||||
.build()
|
||||
.create()
|
||||
}
|
||||
|
||||
fun createDefaultOkHttpClient(
|
||||
context: Context
|
||||
context: Context
|
||||
): OkHttpClient.Builder =
|
||||
OkHttpClient.Builder()
|
||||
.cache(createDefaultCache(context))
|
||||
.addInterceptor(createCacheControlInterceptor())
|
||||
OkHttpClient.Builder()
|
||||
.cache(createDefaultCache(context))
|
||||
.addInterceptor(createCacheControlInterceptor())
|
||||
|
||||
private fun createDefaultCache(
|
||||
context: Context
|
||||
context: Context
|
||||
): Cache? {
|
||||
val cacheDir = File(context.applicationContext.cacheDir.absolutePath, "/okhttp-deezer/")
|
||||
if (cacheDir.mkdir() or cacheDir.isDirectory) {
|
||||
|
@ -55,12 +55,13 @@ interface DeezerApiService {
|
|||
private fun createCacheControlInterceptor(): Interceptor {
|
||||
return Interceptor { chain ->
|
||||
val modifiedRequest = chain.request().newBuilder()
|
||||
.addHeader("Cache-Control",
|
||||
String.format(
|
||||
Locale.getDefault(),
|
||||
"max-age=31536000, max-stale=31536000"
|
||||
)
|
||||
).build()
|
||||
.addHeader(
|
||||
"Cache-Control",
|
||||
String.format(
|
||||
Locale.getDefault(),
|
||||
"max-age=31536000, max-stale=31536000"
|
||||
)
|
||||
).build()
|
||||
chain.proceed(modifiedRequest)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,29 +3,29 @@ package code.name.monkey.retromusic.deezer
|
|||
import com.google.gson.annotations.SerializedName
|
||||
|
||||
data class Data(
|
||||
val id: String,
|
||||
val link: String,
|
||||
val name: String,
|
||||
@SerializedName("nb_album")
|
||||
val nbAlbum: Int,
|
||||
@SerializedName("nb_fan")
|
||||
val nbFan: Int,
|
||||
val picture: String,
|
||||
@SerializedName("picture_big")
|
||||
val pictureBig: String,
|
||||
@SerializedName("picture_medium")
|
||||
val pictureMedium: String,
|
||||
@SerializedName("picture_small")
|
||||
val pictureSmall: String,
|
||||
@SerializedName("picture_xl")
|
||||
val pictureXl: String,
|
||||
val radio: Boolean,
|
||||
val tracklist: String,
|
||||
val type: String
|
||||
val id: String,
|
||||
val link: String,
|
||||
val name: String,
|
||||
@SerializedName("nb_album")
|
||||
val nbAlbum: Int,
|
||||
@SerializedName("nb_fan")
|
||||
val nbFan: Int,
|
||||
val picture: String,
|
||||
@SerializedName("picture_big")
|
||||
val pictureBig: String,
|
||||
@SerializedName("picture_medium")
|
||||
val pictureMedium: String,
|
||||
@SerializedName("picture_small")
|
||||
val pictureSmall: String,
|
||||
@SerializedName("picture_xl")
|
||||
val pictureXl: String,
|
||||
val radio: Boolean,
|
||||
val tracklist: String,
|
||||
val type: String
|
||||
)
|
||||
|
||||
data class DeezerResponse(
|
||||
val data: List<Data>,
|
||||
val next: String,
|
||||
val total: Int
|
||||
val data: List<Data>,
|
||||
val next: String,
|
||||
val total: Int
|
||||
)
|
Loading…
Add table
Add a link
Reference in a new issue