Guest User

Untitled

a guest
Aug 30th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 1.97 KB | None | 0 0
  1. private lateinit var carsService: CarsService
  2.  
  3.     companion object {
  4.         const val CURRENT_SERVER_ADDRESS: String = BuildConfig.SERVER_ADDRESS
  5.     }
  6.  
  7.     /**
  8.      * HTTP SERVICE-RELATED SETUP CODE
  9.      */
  10.     init {
  11.         val loggingInterceptor = HttpLoggingInterceptor().apply {
  12.             level = HttpLoggingInterceptor.Level.BODY
  13.         }
  14.  
  15.         val cacheSize = 10 * 1024 * 1024L // 10 MB
  16.         val cache = Cache(cacheDir, cacheSize)
  17.  
  18.         FirebaseAuth.getInstance().currentUser?.getIdToken(false)?.addOnCompleteListener { task ->
  19.  
  20.             val idToken = task.result.token
  21.  
  22.             val client = OkHttpClient.Builder()
  23.                 .readTimeout(45, TimeUnit.SECONDS)
  24.                 .writeTimeout(45, TimeUnit.SECONDS)
  25.                 .addNetworkInterceptor(StethoInterceptor())
  26.                 .addInterceptor(loggingInterceptor)
  27.                 .addInterceptor(AddInfoInterceptor(idToken, prefs))
  28.                 .addInterceptor(AddCookiesInterceptor(prefs))
  29.                 .addInterceptor { chain ->
  30.                     try {
  31.                         chain.proceed(chain.request())
  32.                     } catch (e: Exception) {
  33.                         val offlineRequest = chain.request().newBuilder()
  34.                             .header(
  35.                                 "Cache-Control", "public, only-if-cached," +
  36.                                         "max-stale=" + 60 * 60
  37.                             )
  38.                             .build()
  39.                         chain.proceed(offlineRequest)
  40.                     }
  41.                 }
  42.                 .cache(cache)
  43.  
  44.             carsService = Retrofit.Builder()
  45.                 .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
  46.                 .addConverterFactory(GsonConverterFactory.create())
  47.                 .client(client.build())
  48.                 .baseUrl(CURRENT_SERVER_ADDRESS)
  49.                 .build()
  50.                 .create(CarsService::class.java)
  51.         }
  52.     }
Advertisement
Add Comment
Please, Sign In to add comment