fix(chat-room): 프로필 이미지 circle로 변경
This commit is contained in:
		@@ -9,44 +9,34 @@ package kr.co.vividnext.sodalive.chat.talk.room
 | 
				
			|||||||
import android.widget.ImageView
 | 
					import android.widget.ImageView
 | 
				
			||||||
import androidx.annotation.DrawableRes
 | 
					import androidx.annotation.DrawableRes
 | 
				
			||||||
import coil.load
 | 
					import coil.load
 | 
				
			||||||
import coil.transform.RoundedCornersTransformation
 | 
					import coil.transform.CircleCropTransformation
 | 
				
			||||||
import kr.co.vividnext.sodalive.R
 | 
					import kr.co.vividnext.sodalive.R
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * dp 값을 픽셀로 변환
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
private fun ImageView.dpToPx(dp: Float): Float {
 | 
					 | 
				
			||||||
    return dp * this.resources.displayMetrics.density
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * 프로필 이미지 로딩 공용 함수
 | 
					 * 프로필 이미지 로딩 공용 함수
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * @param url 이미지 URL (null 또는 빈 값이면 플레이스홀더로 대체)
 | 
					 * @param url 이미지 URL (null 또는 빈 값이면 플레이스홀더로 대체)
 | 
				
			||||||
 * @param cornerRadiusDp 둥근 모서리 반경(dp). 기본 12dp
 | 
					 | 
				
			||||||
 * @param placeholderRes 플레이스홀더/에러 리소스
 | 
					 * @param placeholderRes 플레이스홀더/에러 리소스
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
fun loadProfileImage(
 | 
					fun loadProfileImage(
 | 
				
			||||||
    imageView: ImageView,
 | 
					    imageView: ImageView,
 | 
				
			||||||
    url: String?,
 | 
					    url: String?,
 | 
				
			||||||
    cornerRadiusDp: Float = 12f,
 | 
					 | 
				
			||||||
    @DrawableRes placeholderRes: Int = R.drawable.ic_placeholder_profile
 | 
					    @DrawableRes placeholderRes: Int = R.drawable.ic_placeholder_profile
 | 
				
			||||||
) {
 | 
					) {
 | 
				
			||||||
    val targetUrl = url?.takeIf { it.isNotBlank() }
 | 
					    val targetUrl = url?.takeIf { it.isNotBlank() }
 | 
				
			||||||
    val radiusPx = imageView.dpToPx(cornerRadiusDp)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (targetUrl != null) {
 | 
					    if (targetUrl != null) {
 | 
				
			||||||
        imageView.load(targetUrl) {
 | 
					        imageView.load(targetUrl) {
 | 
				
			||||||
            placeholder(placeholderRes)
 | 
					            placeholder(placeholderRes)
 | 
				
			||||||
            error(placeholderRes)
 | 
					            error(placeholderRes)
 | 
				
			||||||
            transformations(RoundedCornersTransformation(radiusPx))
 | 
					            transformations(CircleCropTransformation())
 | 
				
			||||||
            crossfade(true)
 | 
					            crossfade(true)
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
        imageView.load(placeholderRes) {
 | 
					        imageView.load(placeholderRes) {
 | 
				
			||||||
            placeholder(placeholderRes)
 | 
					            placeholder(placeholderRes)
 | 
				
			||||||
            error(placeholderRes)
 | 
					            error(placeholderRes)
 | 
				
			||||||
            transformations(RoundedCornersTransformation(radiusPx))
 | 
					            transformations(CircleCropTransformation())
 | 
				
			||||||
            crossfade(true)
 | 
					            crossfade(true)
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user