Advertisement
BlackZerg

Untitled

Sep 23rd, 2021
879
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 1.24 KB | None | 0 0
  1. fun initKTorClient(
  2.         context: Context,
  3.         authCookieStorage: AuthCookieStorage,
  4.         connectivityInterceptor: ConnectivityInterceptor,
  5.         errorCodeInterceptor: ErrorCodeInterceptor
  6.     ) = HttpClient(OkHttp) {
  7.        
  8.         install(HttpCookies) {
  9.             storage = authCookieStorage
  10.         }
  11. }
  12.  
  13. factory { AuthCookieStorage(userData = get()) }
  14.  
  15.     single {
  16.         initKTorClient(
  17.             context = androidContext(),
  18.             authCookieStorage = get(),
  19.             connectivityInterceptor = get(),
  20.             errorCodeInterceptor = get()
  21.         )
  22.     }
  23.  
  24. //
  25. class AuthCookieStorage(
  26.     private val userData: UserData
  27. ) : CookiesStorage {
  28.  
  29.     override suspend fun addCookie(requestUrl: Url, cookie: Cookie) {
  30.         Log.v("AuthCookieStorage -->", "requestUrl => $requestUrl, cookie => ${cookie.name} : ${cookie.value}")
  31.         if (cookie.name == AUTH_COOKIE) userData.updateAuthCookie(cookie.value)
  32.     }
  33.  
  34.     override fun close() {  }
  35.  
  36.     override suspend fun get(requestUrl: Url): List<Cookie> =
  37.         userData.watchAuthCookie.map { value ->
  38.             Cookie(AUTH_COOKIE, value)
  39.         }.toList()
  40.  
  41.     companion object {
  42.         private const val AUTH_COOKIE = "set-cookie"
  43.     }
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement