Я хочу получить список объектов с заголовком, text1, text2 и URL-адресом изображения. Чтобы иметь эти элементы, мне нужны две службы. Первый сервис, дайте мне 10 Titles
и 10 CallLetters
, и мне нужен каждый из callLetters для вызова второго сервиса (запрос должен отправить имя callLetter в URL второго сервиса). Я использую дооснащение для запроса услуг. Итак, возможно ли вызвать службу в другой службе? То есть внутри запроса 1 можно запросить услугу 2?
class ChannelListRepository {
companion object {
val sharedInstance = ChannelListRepository()
}
val televisionProgramCovers: TelevisionProgramCovers = TelevisionProgramCovers()
fun getFristTenChannels(onListed : (List<Channels>) -> Unit, onFinnish : (Boolean) -> Unit) {
val auxList = ArrayList<Channels>()
var list = ArrayList<Channels>()
var i = 0
val retrofitClient = NetworkUtils.getRetrofitInstance("http://ott.online.meo.pt/")
val endpoint = retrofitClient.create(Endpoint::class.java)
val callGetChannels = endpoint.getChannels()
callGetChannels.enqueue(object : Callback<SerializeChannels?> {
override fun onResponse(call: Call<SerializeChannels?>, response: Response<SerializeChannels?>) {
response.body().let {
while (i < 10) {
val title = it?.value?.get(i)?.Title
val callLetter = it?.value?.get(i)?.CallLetter
val urlImage = televisionProgramCovers.getCover(title, callLetter)
doAsync {
val newCallLetter = "CallLetter eq '" + callLetter + "'"
getProgramsNowAndNext(newCallLetter)
}
auxList.add(Channels(title, callLetter, urlImage, "listNowNext?.get(0)", "listNowNext?.get(1)"))
i++
}
}
list = auxList
onListed(list)
onFinnish(true)
}
override fun onFailure(call: Call<SerializeChannels?>?, t: Throwable?) {
Log.e("onFailure error", t?.message)
//dizer que o download não foi feito
onListed(emptyList())
onFinnish(false)
}
})
}
fun getProgramsNowAndNext(callLetter : String?){
val retrofitClient = NetworkUtils.getRetrofitInstance("http://ott.online.meo.pt/")
val endpoint = retrofitClient.create(Endpoint::class.java)
val callGetNowNext = endpoint.getEPGNowNext(callLetter, "StartDate asc")
//val list : MutableList<String?>? = null
callGetNowNext?.enqueue(object : Callback<SerializeNowAndNext?> {
override fun onResponse(call: Call<SerializeNowAndNext?>, response: Response<SerializeNowAndNext?>) {
response.body().let {
val now = it?.value?.get(0)?.Title
val next = it?.value?.get(1)?.Title
}
}
override fun onFailure(call: Call<SerializeNowAndNext?>, t: Throwable) {
Log.e("onFailure error", t?.message)
}
})
}
}