Advertisement
rufaeln

Untitled

Jul 12th, 2018
169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 3.19 KB | None | 0 0
  1. package com.neos.rnegash.agora
  2.  
  3. import android.content.Context
  4. import android.os.Bundle
  5. import android.support.v4.app.Fragment
  6. import android.support.v7.widget.LinearLayoutManager
  7. import android.support.v7.widget.RecyclerView
  8. import android.util.Log
  9. import android.view.LayoutInflater
  10. import android.view.View
  11. import android.view.ViewGroup
  12. import com.google.gson.GsonBuilder
  13. import com.jakewharton.retrofit2.adapter.kotlin.coroutines.experimental.CoroutineCallAdapterFactory
  14. import io.reactivex.android.schedulers.AndroidSchedulers
  15. import io.reactivex.internal.schedulers.IoScheduler
  16. import kotlinx.android.synthetic.main.fragment_my_responses.*
  17. import kotlinx.coroutines.experimental.CommonPool
  18. import kotlinx.coroutines.experimental.android.UI
  19. import kotlinx.coroutines.experimental.async
  20. import kotlinx.coroutines.experimental.launch
  21. import okhttp3.Interceptor
  22. import retrofit2.Retrofit
  23. import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory
  24. import retrofit2.converter.gson.GsonConverterFactory
  25. import okhttp3.OkHttpClient
  26. import okhttp3.Response
  27. import java.io.IOException
  28.  
  29. var defaultHttpClient = OkHttpClient.Builder()
  30.         .addInterceptor(object : Interceptor {
  31.             @Throws(IOException::class)
  32.             override fun intercept(chain: Interceptor.Chain): Response {
  33.                 val accessTokenPreference = PreferenceManager(MyApp.getContext()).getToken()
  34.  
  35.                 //getAccessToken is your own accessToken(retrieve it by saving in shared preference or any other option )
  36.                 if (accessTokenPreference.isEmpty()) {
  37.                     Log.e("retrofit 2", "Authorization header is already present or token is empty....")
  38.                     return chain.proceed(chain.request())
  39.                 }
  40.                 val authorisedRequest = chain.request().newBuilder()
  41.                         .addHeader("Authorization", accessTokenPreference).build()
  42.                 Log.e("retrofit 2", "Authorization header is added to the url....")
  43.                 return chain.proceed(authorisedRequest)
  44.             }
  45.         }).build()!!
  46.  
  47. class MyResponsesFragment : Fragment() {
  48.  
  49.  
  50.     override fun onCreate(savedInstanceState: Bundle?) {
  51.         super.onCreate(savedInstanceState)
  52.  
  53.         val retrofit = Retrofit.Builder().addConverterFactory(GsonConverterFactory.create(GsonBuilder().create()))
  54.                 .addCallAdapterFactory(CoroutineCallAdapterFactory())
  55.                 .client(defaultHttpClient)
  56.                 .baseUrl("http://10.201.233.23:8080/").build()
  57.  
  58.         async(UI) {
  59.             val context = this@MyResponsesFragment.context ?: return@async
  60.             rv__list_my_answers.layoutManager = LinearLayoutManager(context)
  61.  
  62.             val responseApi = retrofit.create(INetworkAPI::class.java)
  63.             val response = responseApi.getAllResponses().await()
  64.             //do stuff on UI thread
  65.             rv__list_my_answers.adapter = MyResponseItemAdapter(response, context)
  66.         }
  67.  
  68.  
  69.     }
  70.  
  71.     override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
  72.         return inflater.inflate(R.layout.fragment_my_responses, container, false)
  73.     }
  74. }
  75.  
  76. //https://pastebin.com/rK9qyNNy
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement