Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,13 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.activityViewModels
import androidx.lifecycle.lifecycleScope
import com.bumptech.glide.Glide
import com.eatssu.android.databinding.FragmentBottomsheetInfoBinding
import com.eatssu.common.EventLogger
import com.eatssu.common.enums.Restaurant
import com.eatssu.common.enums.ScreenId
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import timber.log.Timber

Expand Down Expand Up @@ -42,15 +41,16 @@ class InfoBottomSheetFragment : BottomSheetDialogFragment() {

binding.tvName.text = getString(restaurantType.displayNameResId)

CoroutineScope(Dispatchers.Main).launch {
viewLifecycleOwner.lifecycleScope.launch {
val restaurantInfo = infoViewModel.getRestaurantInfo(restaurantType)
val binding = _binding ?: return@launch

restaurantInfo?.let {
binding.tvLocation.text = it.location
binding.tvTime.text = it.time
binding.tvEtc.text = it.etc

Glide.with(this@InfoBottomSheetFragment)
Glide.with(binding.ivCafeteriaPhoto)
.load(it.image)
.into(binding.ivCafeteriaPhoto)
}
Comment on lines +46 to 56
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

코루틴 내에서 binding이라는 이름의 지역 변수를 선언하여 사용하고 계십니다. 이 변수는 클래스 레벨의 binding 프로퍼티를 가리는(shadowing) 효과가 있어, 코드를 읽을 때 혼동을 줄 수 있습니다. 가독성 향상과 잠재적인 버그 방지를 위해, safeBinding과 같이 명확한 이름으로 변경하는 것을 제안합니다.

Suggested change
val binding = _binding ?: return@launch
restaurantInfo?.let {
binding.tvLocation.text = it.location
binding.tvTime.text = it.time
binding.tvEtc.text = it.etc
Glide.with(this@InfoBottomSheetFragment)
Glide.with(binding.ivCafeteriaPhoto)
.load(it.image)
.into(binding.ivCafeteriaPhoto)
}
val safeBinding = _binding ?: return@launch
restaurantInfo?.let {
safeBinding.tvLocation.text = it.location
safeBinding.tvTime.text = it.time
safeBinding.tvEtc.text = it.etc
Glide.with(safeBinding.ivCafeteriaPhoto)
.load(it.image)
.into(safeBinding.ivCafeteriaPhoto)
}

Expand All @@ -62,6 +62,11 @@ class InfoBottomSheetFragment : BottomSheetDialogFragment() {
EventLogger.screenView(ScreenId.HOME_INFO)
}

override fun onDestroyView() {
super.onDestroyView()
_binding = null
}

companion object {
fun newInstance(data: String): InfoBottomSheetFragment {
val fragment = InfoBottomSheetFragment()
Expand Down