Skip to content

Commit dc6ddb9

Browse files
committed
feat: RouteItem 클릭 시 해당 좌표로 이동하는 기능 구현
1 parent 3643fc1 commit dc6ddb9

File tree

5 files changed

+30
-11
lines changed

5 files changed

+30
-11
lines changed

presentation/src/main/java/com/stop/ui/routedetail/OnRouteDetailClickListener.kt

Lines changed: 0 additions & 7 deletions
This file was deleted.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.stop.ui.routedetail
2+
3+
import com.stop.domain.model.route.tmap.custom.Coordinate
4+
5+
interface OnRouteItemClickListener {
6+
fun clickRouteItem(coordinate: Coordinate)
7+
}

presentation/src/main/java/com/stop/ui/routedetail/RouteDetailAdapter.kt

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,20 +9,29 @@ import com.stop.databinding.RoutePathItemBinding
99
import com.stop.model.route.RouteItem
1010

1111
class RouteDetailAdapter(
12-
// private val onRouteDetailClickListener: OnRouteDetailClickListener
12+
private val onRouteItemClickListener: OnRouteItemClickListener
1313
): ListAdapter<RouteItem, RecyclerView.ViewHolder>(diffUtil) {
14-
class PathViewHolder(
14+
inner class PathViewHolder(
1515
private val binding: RoutePathItemBinding
1616
) : RecyclerView.ViewHolder(binding.root) {
17+
init {
18+
binding.root.setOnClickListener {
19+
binding.routeItem?.let { routeItem ->
20+
onRouteItemClickListener.clickRouteItem(routeItem.coordinate)
21+
}
22+
}
23+
}
24+
1725
fun bind(routeItem: RouteItem) {
1826
binding.routeItem = routeItem
1927
}
2028
}
2129

2230
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
2331
val inflater = LayoutInflater.from(parent.context)
32+
val binding = RoutePathItemBinding.inflate(inflater, parent, false)
2433

25-
return PathViewHolder(RoutePathItemBinding.inflate(inflater, parent, false))
34+
return PathViewHolder(binding)
2635
}
2736

2837
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {

presentation/src/main/java/com/stop/ui/routedetail/RouteDetailFragment.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import androidx.fragment.app.activityViewModels
1010
import androidx.navigation.findNavController
1111
import com.stop.R
1212
import com.stop.databinding.FragmentRouteDetailBinding
13+
import com.stop.domain.model.route.tmap.custom.Coordinate
1314
import com.stop.ui.route.RouteViewModel
1415
import dagger.hilt.android.AndroidEntryPoint
1516

@@ -70,7 +71,11 @@ class RouteDetailFragment : Fragment(), RouteDetailHandler {
7071
}
7172

7273
private fun setRecyclerView() {
73-
val adapter = RouteDetailAdapter()
74+
val adapter = RouteDetailAdapter(object : OnRouteItemClickListener {
75+
override fun clickRouteItem(coordinate: Coordinate) {
76+
tMap.setRouteItemFocus(coordinate)
77+
}
78+
})
7479

7580
binding.routeDetailDrawer.recyclerViewRouteDetail.adapter = adapter
7681
adapter.submitList(routeViewModel.getRouteItems())

presentation/src/main/java/com/stop/ui/routedetail/RouteDetailTMap.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,11 @@ class RouteDetailTMap(
103103
return TMapPoint(coordinate.latitude.toDouble(), coordinate.longitude.toDouble())
104104
}
105105

106+
fun setRouteItemFocus(coordinate: Coordinate) {
107+
tMapView.setCenterPoint(coordinate.latitude.toDouble(), coordinate.longitude.toDouble(), true)
108+
tMapView.zoomLevel = 16
109+
}
110+
106111
companion object {
107112
private const val LINE_WIDTH = 7F
108113
private const val OUT_LINE_WIDTH = 10F

0 commit comments

Comments
 (0)