Не могли бы вы помочь мне перевести код в сопрограммы? Я не понимаю, что и как делать, я действительно прошу вашей помощи. Я все еще новичок в Kotlin, поэтому я не могу сделать это сам. Я буду вам очень благодарен.
PS Извините за ошибки, я не очень хорошо знаю английский
закрытый внутренний класс GetDirection (val url: String, val index: Int):AsyncTask >> () {
override fun onPreExecute() {
super.onPreExecute()
openBottomSheetFinal()
}
override fun doInBackground(vararg params: Void?): List<List<LatLng>> {
val client = OkHttpClient()
val request = Request.Builder().url(url).build()
val response = client.newCall(request).execute()
val data = response.body()!!.string()
Log.d("GoogleMap", " data : $data")
val result = ArrayList<List<LatLng>>()
try {
val respObj = Gson().fromJson(data, GoogleMapDTO::class.java)
val path = ArrayList<LatLng>()
for (i in 0 until respObj.routes[0].legs[0].steps.size) {
path.addAll(decodePolyline(respObj.routes[0].legs[0].steps[i].polyline.points))
}
result.add(path)
} catch (e: Exception) {
e.printStackTrace()
}
return result
}
override fun onPostExecute(result: List<List<LatLng>>) {
val lineOption = PolylineOptions()
for (i in result.indices) {
lineOption.addAll(result[i])
lineOption.width(10f)
lineOption.color(colorArray[index])
lineOption.geodesic(true)
}
if(polylineFinal[index] != null) {
polylineFinal[index]!!.remove()
polylineFinal[index] = null
}
polylineFinal[index] = map.addPolyline(lineOption)
polylineFinal[index]!!.startCap = CustomCap(
bitmapDescriptorFromVector(
applicationContext,
R.drawable.icon_round_black
)
)
polylineFinal[index]!!.endCap = CustomCap(
bitmapDescriptorFromVector(
applicationContext,
R.drawable.icon_round_black
)
)
}
}