package
com.gtappdevelopers.kotlingfgproject
import
android.os.Bundle
import
android.view.View
import
android.widget.ProgressBar
import
android.widget.Toast
import
androidx.appcompat.app.AppCompatActivity
import
androidx.recyclerview.widget.RecyclerView
import
retrofit2.Call
import
retrofit2.Callback
import
retrofit2.Response
import
retrofit2.Retrofit
import
retrofit2.converter.gson.GsonConverterFactory
class
MainActivity : AppCompatActivity() {
lateinit var courseRV: RecyclerView
lateinit var loadingPB: ProgressBar
lateinit var courseRVAdapter: CourseRVAdapter
lateinit var courseList: ArrayList<CourseRVModal>
override fun onCreate(savedInstanceState: Bundle?) {
super
.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
courseRV = findViewById(R.id.idRVCourses)
loadingPB = findViewById(R.id.idPBLoading)
courseList = ArrayList()
getAllCourses()
}
private
fun getAllCourses() {
val retrofit = Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create())
.build()
val retrofitAPI = retrofit.create(RetrofitAPI::
class
.java)
val call: Call<ArrayList<CourseRVModal>?>? = retrofitAPI.getAllCourses()
call!!.enqueue(object : Callback<ArrayList<CourseRVModal>?> {
override fun onResponse(
call: Call<ArrayList<CourseRVModal>?>,
response: Response<ArrayList<CourseRVModal>?>
) {
if
(response.isSuccessful) {
loadingPB.visibility = View.GONE
courseList = response.body()!!
}
courseRVAdapter = CourseRVAdapter(courseList)
courseRV.adapter = courseRVAdapter
}
override fun onFailure(call: Call<ArrayList<CourseRVModal>?>, t: Throwable) {
Toast.makeText(
this
@MainActivity
,
"Fail to get the data.."
, Toast.LENGTH_SHORT)
.show()
}
})
}
}