增加RetrofitFactory

This commit is contained in:
jeff
2021-01-20 00:45:48 +08:00
parent 37d99bca53
commit 697a0ce638
4 changed files with 68 additions and 1 deletions

View File

@@ -33,5 +33,7 @@ dependencies {
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
implementation rootProject.ext.dependencies.retrofit
implementation rootProject.ext.dependencies.retrofitadapter
implementation rootProject.ext.dependencies.retrofitconvertergson
implementation rootProject.ext.dependencies.retrofitconverterscalars
}

View File

@@ -0,0 +1,5 @@
package com.mogo.cloud.commons
class Sample {
}

View File

@@ -0,0 +1,22 @@
package com.mogo.cloud.commons.network
import okhttp3.OkHttpClient
/**
*
* @Author: wujifei
* @CreateDate: 1/20/21 12:16 AM
* @Description: 描述
*/
class OkHttpFactory private constructor() {
companion object {
val okHttpClient: OkHttpClient by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) {
val builder = OkHttpClient.Builder()
builder.build()
}
}
}

View File

@@ -1,7 +1,10 @@
package com.mogo.cloud.commons.network
import androidx.collection.ArrayMap
import okhttp3.OkHttpClient
import retrofit2.Retrofit
import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory
import retrofit2.converter.gson.GsonConverterFactory
/**
*
@@ -11,4 +14,39 @@ import retrofit2.Retrofit
*/
class RetrofitFactory private constructor() {
companion object {
private val sRpcServiceMap: MutableMap<String, Retrofit?> = ArrayMap()
private val sRpcNoAdapterServiceMap: MutableMap<String, Retrofit?> = ArrayMap()
@Synchronized
fun getInstance(baseUrl: String): Retrofit? {
var target = sRpcServiceMap[baseUrl]
if (target == null) {
target = Retrofit.Builder()
.client(OkHttpFactory.okHttpClient)
.baseUrl(baseUrl)
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.addConverterFactory(GsonConverterFactory.create())
.build()
sRpcServiceMap[baseUrl] = target
}
return target
}
@Synchronized
fun getInstanceNoCallAdapter(baseUrl: String): Retrofit? {
var target = sRpcNoAdapterServiceMap[baseUrl]
if (target == null) {
target = Retrofit.Builder()
.client(OkHttpFactory.okHttpClient)
.baseUrl(baseUrl)
.addConverterFactory(GsonConverterFactory.create())
.build()
sRpcNoAdapterServiceMap[baseUrl] = target
}
return target
}
}
}