Skip to content

Commit

Permalink
finish
Browse files Browse the repository at this point in the history
pr
  • Loading branch information
KWY0218 committed Nov 11, 2021
1 parent 50699d9 commit bf5f248
Show file tree
Hide file tree
Showing 9 changed files with 74 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,37 @@ package com.example.myapplication

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import androidx.databinding.DataBindingUtil
import androidx.lifecycle.Observer
import androidx.lifecycle.ViewModelProvider
import com.example.myapplication.databinding.ActivityLectureDetailsBinding
import com.example.myapplication.repository.Repository

class LectureDetailsActivity : AppCompatActivity() {
lateinit var binding: ActivityLectureDetailsBinding
private lateinit var viewModel: MainViewModel
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_lecture_details)
val id = intent.getIntExtra("lecture_id", 1)
binding = DataBindingUtil.setContentView(this, R.layout.activity_lecture_details)
viewModel = ViewModelProvider(this, MainViewModelFactory(Repository()))
.get(MainViewModel::class.java)

with(binding) {
with(viewModel) {
getDetail(id)
lectureDetails.observe(this@LectureDetailsActivity, Observer { response ->
if (response.isSuccessful) {
Log.d("Response1","details name: " + response.body()?.lectureDetailsName)
lectureDetailsName.text = response.body()?.lectureDetailsName
} else {
Log.d("Response1", "status: " + response.errorBody().toString())
Log.d("Response1", "status: " + response.code().toString())
}
})
}

}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ class MainActivity: AppCompatActivity(),GoActivity {

override fun goActivity(id: Int?) {
val intent = Intent(this,LectureDetailsActivity::class.java)
intent.putExtra("id",id)
intent.putExtra("lecture_id",id)
startActivity(intent)
}
}
10 changes: 10 additions & 0 deletions app/src/main/java/com/example/myapplication/MainViewModel.kt
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.viewModelScope
import com.example.myapplication.api.RetrofitInstance
import com.example.myapplication.model.LectureDetails
import com.example.myapplication.model.LectureResult
import com.example.myapplication.model.StatusCode
import com.example.myapplication.repository.Repository
Expand All @@ -13,6 +15,7 @@ import retrofit2.Response
class MainViewModel (private val repository: Repository): ViewModel(){
val myResponse:MutableLiveData<Response<StatusCode>> = MutableLiveData()
val lectureList:MutableLiveData<Response<LectureResult>> = MutableLiveData()
val lectureDetails:MutableLiveData<Response<LectureDetails>> = MutableLiveData()

fun getStatusCode(){
viewModelScope.launch {
Expand All @@ -27,6 +30,13 @@ class MainViewModel (private val repository: Repository): ViewModel(){
lectureList.value = response
}
}

fun getDetail(id:Int){
viewModelScope.launch {
val response = repository.getDetail(id)
lectureDetails.value = response
}
}
}

class MainViewModelFactory(private val repository: Repository):ViewModelProvider.Factory{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.example.myapplication.adapter

import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.example.myapplication.api

import com.example.myapplication.util.Constants.Companion.BASE_URL
import com.example.myapplication.util.Constants.Companion.HANGANG_DETAILS_URL
import com.example.myapplication.util.Constants.Companion.HANGANG_URL
import okhttp3.OkHttpClient
import retrofit2.Retrofit
Expand All @@ -27,6 +28,14 @@ object RetrofitInstance {
.build()
}

private val hangangDetailsInstance by lazy {
Retrofit.Builder()
.baseUrl(HANGANG_DETAILS_URL)
.addConverterFactory(GsonConverterFactory.create())
.client(unsafeOkHttpClient().build())
.build()
}

val api: SimpleApi by lazy {
retrofit.create(SimpleApi::class.java)
}
Expand All @@ -35,6 +44,10 @@ object RetrofitInstance {
hangangInstance.create(SimpleApi::class.java)
}

val hangangDetailsApi by lazy{
hangangDetailsInstance.create(SimpleApi::class.java)
}

private fun unsafeOkHttpClient(): OkHttpClient.Builder {
val trustAllCerts = arrayOf<TrustManager>(object : X509TrustManager {
override fun checkClientTrusted(
Expand Down
8 changes: 7 additions & 1 deletion app/src/main/java/com/example/myapplication/api/SimpleApi.kt
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
package com.example.myapplication.api

import com.example.myapplication.model.Lecture
import com.example.myapplication.model.LectureDetails
import com.example.myapplication.model.LectureResult
import com.example.myapplication.model.StatusCode
import retrofit2.Response
import retrofit2.http.GET
import retrofit2.http.Path
import retrofit2.http.Query

interface SimpleApi {
Expand All @@ -17,4 +18,9 @@ interface SimpleApi {
@Query("limit")limit:Int,
@Query("page")page:Int
): Response<LectureResult>

@GET("lectures/{id}")
suspend fun getDetail(
@Path("id")id:Int
): Response<LectureDetails>
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.example.myapplication.model

import com.google.gson.annotations.SerializedName

data class LectureDetails(
@SerializedName("name")
var lectureDetailsName: String? = null
)
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.example.myapplication.repository

import com.example.myapplication.api.RetrofitInstance
import com.example.myapplication.model.LectureDetails
import com.example.myapplication.model.LectureResult
import com.example.myapplication.model.StatusCode
import retrofit2.Response
Expand All @@ -13,4 +14,8 @@ class Repository {
suspend fun getHangangList(limit:Int,page:Int): Response<LectureResult>{
return RetrofitInstance.hangangApi.getHangangList(limit,page)
}

suspend fun getDetail(id:Int): Response<LectureDetails>{
return RetrofitInstance.hangangDetailsApi.getDetail(id)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,6 @@ class Constants{
companion object{
const val BASE_URL = "https://jhi7xevof6.execute-api.ap-northeast-2.amazonaws.com"
const val HANGANG_URL = "https://stage.api.hangang.in/"
const val HANGANG_DETAILS_URL = "https://stage.api.hangang.in/"
}
}

0 comments on commit bf5f248

Please sign in to comment.