I have this function to update my ImageView in my android project
private fun weatherImageSetup(currentWeather: CurrentWeather) {
fun setImage(imageId: Int) {
viewBinding.weatherStatusImg.setImageDrawable(
ContextCompat.getDrawable(requireContext(), imageId)
)
}
fun partOfDay(day: Int, night: Int) = if (viewModel.currentDateTime.toInt() in 6..18) {
day
} else {
night
}
when (currentWeather.weather[0].id.toString()[0]) {
'2' -> {
setImage(R.drawable.thunderstorm_img)
}
'3' -> {
val imageId: Int = partOfDay(R.drawable.drizzle_day_img, R.drawable.drizzle_night_img)
setImage(imageId)
}
'5' -> {
val imageId: Int = partOfDay(R.drawable.rainy_day_img, R.drawable.rainy_night_img)
setImage(imageId)
}
'6' -> {
val imageId: Int = partOfDay(R.drawable.snow_day_img, R.drawable.snow_night_img)
setImage(imageId)
}
'7' -> {
val imageId: Int = if (currentWeather.weather[0].id == 781) {
R.drawable.tornado_img
} else {
R.drawable.fog_img
}
setImage(imageId)
}
'8' -> {
val imageId: Int = if (currentWeather.weather[0].id == 800) {
partOfDay(R.drawable.clear_day_sky_img, R.drawable.clear_night_sky_img)
} else {
partOfDay(R.drawable.cloud_day_img, R.drawable.cloud_night_img)
}
setImage(imageId)
}
}
}
I have to use this function in two places in my project. The first one is in my fragment to update the ImageView, and the second one is in the RecyclerView adapter to update the ImageView in the RecyclerView. However, when I implemented it, the IDE showed me a warning of "duplicate code fragment". I wonder how to fix this warning because I use this function in two separate classes and in two separate files.