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