From e3864138492d1d3280710a1ba7162d9dd7542404 Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期五, 28 八月 2020 18:22:16 +0800
Subject: [PATCH] 1. 新增问题和删除修改功能(调试中) 2. 轨迹记录功能开放为所有类型的场景都记录
---
app/src/main/java/cn/flightfeather/thirdapp/common/net/RetrofitFactory.kt | 45 ++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 44 insertions(+), 1 deletions(-)
diff --git a/app/src/main/java/cn/flightfeather/thirdapp/common/net/RetrofitFactory.kt b/app/src/main/java/cn/flightfeather/thirdapp/common/net/RetrofitFactory.kt
index a9169a0..0fa1d28 100644
--- a/app/src/main/java/cn/flightfeather/thirdapp/common/net/RetrofitFactory.kt
+++ b/app/src/main/java/cn/flightfeather/thirdapp/common/net/RetrofitFactory.kt
@@ -1,20 +1,54 @@
package cn.flightfeather.thirdapp.common.net
+import cn.flightfeather.thirdapp.BuildConfig
import cn.flightfeather.thirdapp.CommonApplication
+import com.google.gson.GsonBuilder
import io.reactivex.Observable
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.schedulers.Schedulers
+import okhttp3.Interceptor
+import okhttp3.OkHttpClient
import retrofit2.Response
import retrofit2.Retrofit
+import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory
+import retrofit2.converter.gson.GsonConverterFactory
+import java.util.concurrent.TimeUnit
/**
* @author riku
* Date: 2019/7/22
* 缃戠粶璇锋眰
*/
-class RetrofitFactory constructor(application: CommonApplication){
+class RetrofitFactory constructor(val application: CommonApplication){
val retrofit: Retrofit = application.retrofit
+ val retrofitImage: Retrofit = application.retrofitImage
+
+ private fun newOkHttpClient(list: List<Interceptor>): OkHttpClient =
+ OkHttpClient.Builder()
+ .connectTimeout(20 * 1000L, TimeUnit.MILLISECONDS)
+ .apply {
+ list.forEach {
+ addInterceptor(it)
+ }
+ }
+ .build()
+
+ private fun newRetrofit(mOkHttpClient: OkHttpClient): Retrofit =
+ Retrofit.Builder()
+ .apply {
+ baseUrl(application.ROOT_URL_RELEASE)
+ }
+ .addConverterFactory(
+ GsonConverterFactory.create(
+ GsonBuilder()
+ .setDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ")
+ .create()
+ )
+ )
+ .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
+ .client(mOkHttpClient)
+ .build()
companion object {
@@ -35,5 +69,14 @@
.observeOn(AndroidSchedulers.mainThread())
.subscribe(subscriber)
}
+
+ fun withProgressListeningRetrofit(listener: NetWorkProgressListener?): Retrofit {
+ return if (listener == null) {
+ instance.retrofit
+ } else {
+ val c = instance.newOkHttpClient(listOf(NetWorkProgressInterceptor(listener)))
+ instance.newRetrofit(c)
+ }
+ }
}
}
\ No newline at end of file
--
Gitblit v1.9.3