feat: 커뮤니티 전체보기

- gif 재생 되도록 추가
This commit is contained in:
2025-07-03 13:20:27 +09:00
parent e4012a1301
commit ba7b681e48
3 changed files with 36 additions and 16 deletions

View File

@@ -18,6 +18,9 @@ import androidx.appcompat.widget.PopupMenu
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import coil.load import coil.load
import coil.transform.CircleCropTransformation import coil.transform.CircleCropTransformation
import com.bumptech.glide.Glide
import com.bumptech.glide.load.resource.bitmap.RoundedCorners
import com.bumptech.glide.request.RequestOptions
import kr.co.vividnext.sodalive.R import kr.co.vividnext.sodalive.R
import kr.co.vividnext.sodalive.common.SharedPreferenceManager import kr.co.vividnext.sodalive.common.SharedPreferenceManager
import kr.co.vividnext.sodalive.databinding.ItemCreatorCommunityAllBinding import kr.co.vividnext.sodalive.databinding.ItemCreatorCommunityAllBinding
@@ -60,7 +63,7 @@ class CreatorCommunityAllAdapter(
if (item.price > 0) { if (item.price > 0) {
if (item.existOrdered) { if (item.existOrdered) {
setContent(item, index) setContent(context, item, index)
} else { } else {
binding.llLike.visibility = View.GONE binding.llLike.visibility = View.GONE
binding.ivContent.visibility = View.GONE binding.ivContent.visibility = View.GONE
@@ -79,18 +82,18 @@ class CreatorCommunityAllAdapter(
binding.tvPurchase.setOnClickListener { binding.tvPurchase.setOnClickListener {
onClickPurchaseContent(item.postId, item.price) { post -> onClickPurchaseContent(item.postId, item.price) { post ->
items[index] = post items[index] = post
setContent(post, index) setContent(context, post, index)
} }
} }
setNoticeAndClickableUrl(binding.tvContent, item.content, item.isExpand, index) setNoticeAndClickableUrl(binding.tvContent, item.content, item.isExpand, index)
} }
} else { } else {
setContent(item, index) setContent(context, item, index)
} }
} }
private fun setContent(item: GetCommunityPostListResponse, index: Int) { private fun setContent(context: Context, item: GetCommunityPostListResponse, index: Int) {
binding.llLockPost.visibility = View.GONE binding.llLockPost.visibility = View.GONE
binding.llLike.visibility = View.VISIBLE binding.llLike.visibility = View.VISIBLE
binding.llComment.visibility = View.VISIBLE binding.llComment.visibility = View.VISIBLE
@@ -126,7 +129,7 @@ class CreatorCommunityAllAdapter(
binding.ivPlayOrPause.setOnClickListener {} binding.ivPlayOrPause.setOnClickListener {}
} }
setImageContent(binding.ivContent, item.imageUrl) setImageContent(context, binding.ivContent, item.imageUrl)
setContentLike(item.isLike, item.likeCount, item.postId, index) setContentLike(item.isLike, item.likeCount, item.postId, index)
setNoticeAndClickableUrl(binding.tvContent, item.content, item.isExpand, index) setNoticeAndClickableUrl(binding.tvContent, item.content, item.isExpand, index)
setContentComment( setContentComment(
@@ -140,14 +143,21 @@ class CreatorCommunityAllAdapter(
) )
} }
private fun setImageContent(ivContent: ImageView, imageUrl: String?) { private fun setImageContent(context: Context, ivContent: ImageView, imageUrl: String?) {
ivContent.visibility = View.VISIBLE ivContent.visibility = View.VISIBLE
if (imageUrl != null) { if (imageUrl != null) {
ivContent.visibility = View.VISIBLE ivContent.visibility = View.VISIBLE
ivContent.loadUrl(imageUrl) { Glide.with(context)
crossfade(true) .load(imageUrl)
placeholder(R.drawable.bg_placeholder) .placeholder(R.drawable.ic_place_holder)
} .apply(
RequestOptions().transform(
RoundedCorners(
8f.dpToPx().toInt()
)
)
)
.into(ivContent)
} else { } else {
ivContent.visibility = View.GONE ivContent.visibility = View.GONE
} }

View File

@@ -10,7 +10,6 @@ import android.view.View
import android.widget.Toast import android.widget.Toast
import androidx.activity.result.contract.ActivityResultContracts import androidx.activity.result.contract.ActivityResultContracts
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import coil.transform.RoundedCornersTransformation
import com.bumptech.glide.Glide import com.bumptech.glide.Glide
import com.bumptech.glide.load.resource.bitmap.RoundedCorners import com.bumptech.glide.load.resource.bitmap.RoundedCorners
import com.bumptech.glide.request.RequestOptions import com.bumptech.glide.request.RequestOptions
@@ -30,7 +29,6 @@ import kr.co.vividnext.sodalive.common.RealPathUtil
import kr.co.vividnext.sodalive.common.SharedPreferenceManager import kr.co.vividnext.sodalive.common.SharedPreferenceManager
import kr.co.vividnext.sodalive.databinding.ActivityCreatorCommunityModifyBinding import kr.co.vividnext.sodalive.databinding.ActivityCreatorCommunityModifyBinding
import kr.co.vividnext.sodalive.extensions.dpToPx import kr.co.vividnext.sodalive.extensions.dpToPx
import kr.co.vividnext.sodalive.extensions.loadUrl
import org.koin.android.ext.android.inject import org.koin.android.ext.android.inject
import java.io.File import java.io.File
@@ -50,7 +48,7 @@ class CreatorCommunityModifyActivity : BaseActivity<ActivityCreatorCommunityModi
val data = result.data val data = result.data
if (resultCode == RESULT_OK) { if (resultCode == RESULT_OK) {
val fileUri = data?.data val fileUri = UCrop.getOutput(data!!)
if (fileUri != null) { if (fileUri != null) {
handleCroppedImage(fileUri) handleCroppedImage(fileUri)
@@ -58,7 +56,13 @@ class CreatorCommunityModifyActivity : BaseActivity<ActivityCreatorCommunityModi
showWrongImageFile() showWrongImageFile()
} }
} else if (resultCode == ImagePicker.RESULT_ERROR) { } else if (resultCode == ImagePicker.RESULT_ERROR) {
showImagePickerError(data = data) val cropError = UCrop.getError(data!!)
cropError?.printStackTrace()
Toast.makeText(
this,
cropError?.message,
Toast.LENGTH_SHORT
).show()
} }
} }

View File

@@ -47,7 +47,7 @@ class CreatorCommunityWriteActivity : BaseActivity<ActivityCreatorCommunityWrite
val data = result.data val data = result.data
if (resultCode == RESULT_OK) { if (resultCode == RESULT_OK) {
val fileUri = data?.data val fileUri = UCrop.getOutput(data!!)
if (fileUri != null) { if (fileUri != null) {
handleCroppedImage(fileUri) handleCroppedImage(fileUri)
@@ -55,7 +55,13 @@ class CreatorCommunityWriteActivity : BaseActivity<ActivityCreatorCommunityWrite
showWrongImageFile() showWrongImageFile()
} }
} else if (resultCode == ImagePicker.RESULT_ERROR) { } else if (resultCode == ImagePicker.RESULT_ERROR) {
showImagePickerError(data = data) val cropError = UCrop.getError(data!!)
cropError?.printStackTrace()
Toast.makeText(
this,
cropError?.message,
Toast.LENGTH_SHORT
).show()
} }
} }