From 9d5ca7c36d6069e19f74f78a1e3806d0498dfb6d Mon Sep 17 00:00:00 2001 From: klaus Date: Thu, 23 May 2024 23:13:25 +0900 Subject: [PATCH] =?UTF-8?q?=EC=BB=A4=EB=AE=A4=EB=8B=88=ED=8B=B0=20?= =?UTF-8?q?=EC=9C=A0=EB=A3=8C=20=EA=B2=8C=EC=8B=9C=EA=B8=80=20=EC=A1=B0?= =?UTF-8?q?=ED=9A=8C,=20=EA=B5=AC=EB=A7=A4=20=EA=B8=B0=EB=8A=A5=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../explorer/profile/UserProfileActivity.kt | 12 +- .../creator_community/CreatorCommunityApi.kt | 7 + .../CreatorCommunityRepository.kt | 6 + .../GetCommunityPostListResponse.kt | 2 + .../all/CreatorCommunityAllActivity.kt | 13 ++ .../all/CreatorCommunityAllAdapter.kt | 162 +++++++++++++----- .../all/CreatorCommunityAllViewModel.kt | 37 ++++ .../all/PurchaseCommunityPostDialog.kt | 51 ++++++ .../all/PurchasePostRequest.kt | 9 + .../main/res/drawable-xxhdpi/ic_lock_bb.png | Bin 0 -> 2074 bytes ...g_round_corner_26_7_transparent_3bb9f1.xml | 8 + .../layout/dialog_purchase_community_post.xml | 79 +++++++++ .../res/layout/item_creator_community.xml | 1 + .../res/layout/item_creator_community_all.xml | 38 +++- 14 files changed, 376 insertions(+), 49 deletions(-) create mode 100644 app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/creator_community/all/PurchaseCommunityPostDialog.kt create mode 100644 app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/creator_community/all/PurchasePostRequest.kt create mode 100755 app/src/main/res/drawable-xxhdpi/ic_lock_bb.png create mode 100644 app/src/main/res/drawable/bg_round_corner_26_7_transparent_3bb9f1.xml create mode 100644 app/src/main/res/layout/dialog_purchase_community_post.xml diff --git a/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/UserProfileActivity.kt b/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/UserProfileActivity.kt index c6603c2..5fa33fd 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/UserProfileActivity.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/UserProfileActivity.kt @@ -20,6 +20,7 @@ import androidx.appcompat.widget.PopupMenu import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import coil.load +import coil.transform.BlurTransformation import coil.transform.CircleCropTransformation import coil.transform.RoundedCornersTransformation import kr.co.vividnext.sodalive.R @@ -27,7 +28,6 @@ import kr.co.vividnext.sodalive.audio_content.AudioContentActivity import kr.co.vividnext.sodalive.audio_content.AudioContentAdapter import kr.co.vividnext.sodalive.audio_content.detail.AudioContentDetailActivity import kr.co.vividnext.sodalive.audio_content.series.GetSeriesListResponse -import kr.co.vividnext.sodalive.audio_content.series.SeriesListAdapter import kr.co.vividnext.sodalive.audio_content.series.SeriesListAllActivity import kr.co.vividnext.sodalive.audio_content.series.detail.SeriesDetailActivity import kr.co.vividnext.sodalive.audio_content.upload.AudioContentUploadActivity @@ -831,6 +831,16 @@ class UserProfileActivity : BaseActivity( crossfade(true) placeholder(R.drawable.ic_place_holder) transformations(RoundedCornersTransformation(4.7f.dpToPx())) + + if (!item.existOrdered) { + transformations( + BlurTransformation( + this@UserProfileActivity, + 25f, + 2.5f + ) + ) + } } layout.tvLikeCount.text = "${item.likeCount}" diff --git a/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/creator_community/CreatorCommunityApi.kt b/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/creator_community/CreatorCommunityApi.kt index cda00c9..c409e2d 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/creator_community/CreatorCommunityApi.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/creator_community/CreatorCommunityApi.kt @@ -4,6 +4,7 @@ import io.reactivex.rxjava3.core.Single import kr.co.vividnext.sodalive.audio_content.comment.ModifyCommentRequest import kr.co.vividnext.sodalive.common.ApiResponse import kr.co.vividnext.sodalive.explorer.profile.creator_community.all.PostCommunityPostLikeRequest +import kr.co.vividnext.sodalive.explorer.profile.creator_community.all.PurchasePostRequest import kr.co.vividnext.sodalive.explorer.profile.creator_community.all.comment.CreateCommunityPostCommentRequest import okhttp3.MultipartBody import okhttp3.RequestBody @@ -91,4 +92,10 @@ interface CreatorCommunityApi { @Query("timezone") timezone: String, @Header("Authorization") authHeader: String ): Single> + + @POST("/creator-community/purchase") + fun purchaseCommunityPost( + @Body request: PurchasePostRequest, + @Header("Authorization") authHeader: String + ): Single> } diff --git a/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/creator_community/CreatorCommunityRepository.kt b/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/creator_community/CreatorCommunityRepository.kt index 209d1f5..c13c0a1 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/creator_community/CreatorCommunityRepository.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/creator_community/CreatorCommunityRepository.kt @@ -2,6 +2,7 @@ package kr.co.vividnext.sodalive.explorer.profile.creator_community import kr.co.vividnext.sodalive.audio_content.comment.ModifyCommentRequest import kr.co.vividnext.sodalive.explorer.profile.creator_community.all.PostCommunityPostLikeRequest +import kr.co.vividnext.sodalive.explorer.profile.creator_community.all.PurchasePostRequest import kr.co.vividnext.sodalive.explorer.profile.creator_community.all.comment.CreateCommunityPostCommentRequest import okhttp3.MultipartBody import okhttp3.RequestBody @@ -98,4 +99,9 @@ class CreatorCommunityRepository(private val api: CreatorCommunityApi) { timezone = TimeZone.getDefault().id, authHeader = token ) + + fun purchaseCommunityPost(postId: Long, token: String) = api.purchaseCommunityPost( + request = PurchasePostRequest(postId = postId, timezone = TimeZone.getDefault().id), + authHeader = token + ) } diff --git a/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/creator_community/GetCommunityPostListResponse.kt b/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/creator_community/GetCommunityPostListResponse.kt index 3149d56..a581988 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/creator_community/GetCommunityPostListResponse.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/creator_community/GetCommunityPostListResponse.kt @@ -9,10 +9,12 @@ data class GetCommunityPostListResponse( @SerializedName("creatorProfileUrl") val creatorProfileUrl: String, @SerializedName("imageUrl") val imageUrl: String?, @SerializedName("content") val content: String, + @SerializedName("price") val price: Int, @SerializedName("date") val date: String, @SerializedName("isCommentAvailable") val isCommentAvailable: Boolean, @SerializedName("isAdult") val isAdult: Boolean, @SerializedName("isLike") var isLike: Boolean, + @SerializedName("existOrdered") val existOrdered: Boolean, @SerializedName("likeCount") val likeCount: Int, @SerializedName("commentCount") val commentCount: Int, @SerializedName("firstComment") val firstComment: GetCommunityPostCommentListItem?, diff --git a/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/creator_community/all/CreatorCommunityAllActivity.kt b/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/creator_community/all/CreatorCommunityAllActivity.kt index 297df55..2eb5080 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/creator_community/all/CreatorCommunityAllActivity.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/creator_community/all/CreatorCommunityAllActivity.kt @@ -62,6 +62,7 @@ class CreatorCommunityAllActivity : BaseActivity viewModel.registerComment( @@ -111,6 +112,18 @@ class CreatorCommunityAllActivity : BaseActivity + PurchaseCommunityPostDialog( + activity = this@CreatorCommunityAllActivity, + layoutInflater = layoutInflater, + can = can, + confirmButtonClick = { + viewModel.purchaseCommunityPost(postId) { + onSuccess(it) + } + } + ).show(screenWidth) } ) diff --git a/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/creator_community/all/CreatorCommunityAllAdapter.kt b/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/creator_community/all/CreatorCommunityAllAdapter.kt index e12172b..7e25c91 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/creator_community/all/CreatorCommunityAllAdapter.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/creator_community/all/CreatorCommunityAllAdapter.kt @@ -11,6 +11,8 @@ import android.text.style.ClickableSpan import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.widget.ImageView +import android.widget.LinearLayout import android.widget.TextView import androidx.appcompat.widget.PopupMenu import androidx.recyclerview.widget.RecyclerView @@ -19,17 +21,22 @@ import coil.transform.CircleCropTransformation import kr.co.vividnext.sodalive.R import kr.co.vividnext.sodalive.common.SharedPreferenceManager import kr.co.vividnext.sodalive.databinding.ItemCreatorCommunityAllBinding +import kr.co.vividnext.sodalive.explorer.profile.creator_community.GetCommunityPostCommentListItem import kr.co.vividnext.sodalive.explorer.profile.creator_community.GetCommunityPostListResponse +import kr.co.vividnext.sodalive.extensions.dpToPx import kr.co.vividnext.sodalive.extensions.loadUrl import java.util.regex.Pattern class CreatorCommunityAllAdapter( + private val screenWidth: Int, private val onClickLike: (Long) -> Unit, private val writeComment: (Long, Long?, String) -> Unit, private val showCommentBottomSheetDialog: (Long) -> Unit, private val onClickModify: (Long) -> Unit, private val onClickDelete: (Long) -> Unit, - private val onClickReport: (Long) -> Unit + private val onClickReport: (Long) -> Unit, + private val onClickPurchaseContent: + (Long, Int, onSuccess: (GetCommunityPostListResponse) -> Unit) -> Unit ) : RecyclerView.Adapter() { val items = mutableListOf() @@ -38,7 +45,7 @@ class CreatorCommunityAllAdapter( private val context: Context, private val binding: ItemCreatorCommunityAllBinding ) : RecyclerView.ViewHolder(binding.root) { - @SuppressLint("NotifyDataSetChanged") + @SuppressLint("NotifyDataSetChanged", "SetTextI18n") fun bind(item: GetCommunityPostListResponse, index: Int) { binding.tvDate.text = item.date binding.tvNickname.text = item.creatorNickname @@ -48,19 +55,41 @@ class CreatorCommunityAllAdapter( transformations(CircleCropTransformation()) } - setNoticeAndClickableUrl(binding.tvContent, item.content) - binding.tvContent.setOnClickListener { - items[index] = items[index].copy( - isExpand = !item.isExpand, - ) - notifyDataSetChanged() - } - binding.tvContent.maxLines = if (item.isExpand) { - Int.MAX_VALUE - } else { - 3 - } + if (item.price > 0) { + if (item.existOrdered) { + setContent(item, index) + } else { + binding.llLike.visibility = View.GONE + binding.tvContent.visibility = View.GONE + binding.ivContent.visibility = View.GONE + binding.llComment.visibility = View.GONE + binding.ivSeeMore.visibility = View.GONE + binding.llLockPost.visibility = View.VISIBLE + val lockPostWidth = (screenWidth - 42f.dpToPx()).toInt() + val lp = binding.llLockPost.layoutParams as LinearLayout.LayoutParams + lp.width = lockPostWidth + lp.height = lockPostWidth + binding.llLockPost.layoutParams = lp + + binding.tvPurchase.text = "${item.price}캔으로 게시글 보기" + binding.tvPurchase.setOnClickListener { + onClickPurchaseContent(item.postId, item.price) { post -> + items[index] = post + setContent(post, index) + } + } + } + } else { + setContent(item, index) + } + } + + private fun setContent(item: GetCommunityPostListResponse, index: Int) { + binding.llLockPost.visibility = View.GONE + binding.llLike.visibility = View.VISIBLE + binding.llComment.visibility = View.VISIBLE + binding.ivSeeMore.visibility = View.VISIBLE binding.ivSeeMore.setOnClickListener { showOptionMenu( context = context, @@ -70,55 +99,54 @@ class CreatorCommunityAllAdapter( ) } - binding.ivLike.setImageResource( - if (item.isLike) { - R.drawable.ic_audio_content_heart_pressed - } else { - R.drawable.ic_audio_content_heart_normal - } + setImageContent(binding.ivContent, item.imageUrl) + setContentLike(item.isLike, item.likeCount, item.postId, index) + setNoticeAndClickableUrl(binding.tvContent, item.content, item.isExpand, index) + setContentComment( + item.postId, + item.commentCount, + item.isCommentAvailable, + comment = item.firstComment ) + } - binding.tvLike.text = "${item.likeCount}" - binding.llLike.setOnClickListener { - val isLike = !item.isLike - - items[index] = items[index].copy( - isLike = !item.isLike, - likeCount = if (isLike) item.likeCount + 1 else item.likeCount - 1 - ) - notifyDataSetChanged() - - onClickLike(item.postId) - } - - if (item.imageUrl != null) { - binding.ivContent.visibility = View.VISIBLE - binding.ivContent.loadUrl(item.imageUrl) { + private fun setImageContent(ivContent: ImageView, imageUrl: String?) { + ivContent.visibility = View.VISIBLE + if (imageUrl != null) { + ivContent.visibility = View.VISIBLE + ivContent.loadUrl(imageUrl) { crossfade(true) placeholder(R.drawable.bg_placeholder) } } else { - binding.ivContent.visibility = View.GONE + ivContent.visibility = View.GONE } + } - if (item.isCommentAvailable) { + private fun setContentComment( + postId: Long, + commentCount: Int, + isCommentAvailable: Boolean, + comment: GetCommunityPostCommentListItem? + ) { + if (isCommentAvailable) { binding.llComment.visibility = View.VISIBLE - binding.tvCommentCount.text = "${item.commentCount}" + binding.tvCommentCount.text = "$commentCount" } else { binding.llComment.visibility = View.GONE } - if (item.commentCount > 0) { - binding.ivCommentProfile.load(item.firstComment!!.profileUrl) { + if (commentCount > 0 && comment != null) { + binding.ivCommentProfile.load(comment.profileUrl) { crossfade(true) placeholder(R.drawable.bg_placeholder) transformations(CircleCropTransformation()) } - binding.tvCommentText.text = item.firstComment.comment + binding.tvCommentText.text = comment.comment binding.tvCommentText.visibility = View.VISIBLE binding.rlInputComment.visibility = View.GONE - binding.llComment.setOnClickListener { showCommentBottomSheetDialog(item.postId) } + binding.llComment.setOnClickListener { showCommentBottomSheetDialog(postId) } } else { binding.tvCommentText.visibility = View.GONE binding.rlInputComment.visibility = View.VISIBLE @@ -129,16 +157,45 @@ class CreatorCommunityAllAdapter( } binding.ivCommentSend.setOnClickListener { - val comment = binding.etComment.text.toString() + val inputComment = binding.etComment.text.toString() binding.etComment.setText("") - writeComment(item.postId, null, comment) + writeComment(postId, null, inputComment) } binding.llComment.setOnClickListener {} } } - private fun setNoticeAndClickableUrl(textView: TextView, text: String) { + @SuppressLint("NotifyDataSetChanged") + private fun setContentLike(isLike: Boolean, likeCount: Int, postId: Long, index: Int) { + binding.ivLike.setImageResource( + if (isLike) { + R.drawable.ic_audio_content_heart_pressed + } else { + R.drawable.ic_audio_content_heart_normal + } + ) + + binding.tvLike.text = "$likeCount" + binding.llLike.setOnClickListener { + items[index] = items[index].copy( + isLike = !isLike, + likeCount = if (!isLike) likeCount + 1 else likeCount - 1 + ) + notifyDataSetChanged() + + onClickLike(postId) + } + } + + @SuppressLint("NotifyDataSetChanged") + private fun setNoticeAndClickableUrl( + textView: TextView, + text: String, + isExpand: Boolean, + index: Int + ) { + textView.visibility = View.VISIBLE textView.text = text val spannable = SpannableString(text) @@ -159,6 +216,19 @@ class CreatorCommunityAllAdapter( textView.text = spannable textView.movementMethod = LinkMovementMethod.getInstance() + + textView.setOnClickListener { + items[index] = items[index].copy( + isExpand = !isExpand, + ) + notifyDataSetChanged() + } + + textView.maxLines = if (isExpand) { + Int.MAX_VALUE + } else { + 3 + } } } diff --git a/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/creator_community/all/CreatorCommunityAllViewModel.kt b/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/creator_community/all/CreatorCommunityAllViewModel.kt index 39713a4..fe36940 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/creator_community/all/CreatorCommunityAllViewModel.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/creator_community/all/CreatorCommunityAllViewModel.kt @@ -220,4 +220,41 @@ class CreatorCommunityAllViewModel( ) ) } + + fun purchaseCommunityPost(postId: Long, onSuccess: (GetCommunityPostListResponse) -> Unit) { + if (!_isLoading.value!!) { + _isLoading.value = true + compositeDisposable.add( + repository + .purchaseCommunityPost( + postId = postId, + token = "Bearer ${SharedPreferenceManager.token}" + ) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe( + { + if (it.success && it.data != null) { + onSuccess(it.data) + } else { + if (it.message != null) { + _toastLiveData.postValue(it.message) + } else { + _toastLiveData.postValue( + "알 수 없는 오류가 발생했습니다. 다시 시도해 주세요." + ) + } + } + + _isLoading.value = false + }, + { + _isLoading.value = false + it.message?.let { message -> Logger.e(message) } + _toastLiveData.postValue("알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.") + } + ) + ) + } + } } diff --git a/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/creator_community/all/PurchaseCommunityPostDialog.kt b/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/creator_community/all/PurchaseCommunityPostDialog.kt new file mode 100644 index 0000000..471e32b --- /dev/null +++ b/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/creator_community/all/PurchaseCommunityPostDialog.kt @@ -0,0 +1,51 @@ +package kr.co.vividnext.sodalive.explorer.profile.creator_community.all + +import android.annotation.SuppressLint +import android.app.Activity +import android.graphics.Color +import android.graphics.drawable.ColorDrawable +import android.view.LayoutInflater +import android.view.WindowManager +import androidx.appcompat.app.AlertDialog +import kr.co.vividnext.sodalive.databinding.DialogPurchaseCommunityPostBinding +import kr.co.vividnext.sodalive.extensions.dpToPx +import kr.co.vividnext.sodalive.extensions.moneyFormat + +@SuppressLint("SetTextI18n") +class PurchaseCommunityPostDialog( + activity: Activity, + layoutInflater: LayoutInflater, + can: Int, + confirmButtonClick: () -> Unit, +) { + + private val alertDialog: AlertDialog + val dialogView = DialogPurchaseCommunityPostBinding.inflate(layoutInflater) + + init { + val dialogBuilder = AlertDialog.Builder(activity) + dialogBuilder.setView(dialogView.root) + + alertDialog = dialogBuilder.create() + alertDialog.setCancelable(false) + alertDialog.window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) + + dialogView.tvCan.text = "${can.moneyFormat()}캔으로 보기" + dialogView.tvCan.setOnClickListener { + alertDialog.dismiss() + confirmButtonClick() + } + dialogView.tvCancel.setOnClickListener { alertDialog.dismiss() } + } + + fun show(width: Int) { + alertDialog.show() + + val lp = WindowManager.LayoutParams() + lp.copyFrom(alertDialog.window?.attributes) + lp.width = width - (26.7f.dpToPx()).toInt() + lp.height = WindowManager.LayoutParams.WRAP_CONTENT + + alertDialog.window?.attributes = lp + } +} diff --git a/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/creator_community/all/PurchasePostRequest.kt b/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/creator_community/all/PurchasePostRequest.kt new file mode 100644 index 0000000..f340e2f --- /dev/null +++ b/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/creator_community/all/PurchasePostRequest.kt @@ -0,0 +1,9 @@ +package kr.co.vividnext.sodalive.explorer.profile.creator_community.all + +import com.google.gson.annotations.SerializedName + +data class PurchasePostRequest( + @SerializedName("postId") val postId: Long, + @SerializedName("timezone") val timezone: String, + @SerializedName("container") val container: String = "aos", +) diff --git a/app/src/main/res/drawable-xxhdpi/ic_lock_bb.png b/app/src/main/res/drawable-xxhdpi/ic_lock_bb.png new file mode 100755 index 0000000000000000000000000000000000000000..243d1ec6127a0e69ce95f91e96a93ed9bd8e441e GIT binary patch literal 2074 zcmbVN`8(7L7yk~%GS*>;#u71EDc<7M0l!*DG_x9mhhqPQVL zlE%Ij8Pw1aV=Kdu#L!r;>wWG&@IIaA`JB&l&Uwxc=bYy}pA-kIl{n-m1ONbWj5XTn zkV_8nNLcXDBePym4oM`$+ARzKL}mU55KvGkf0zV?Ia#5Ann6X*VIbgt@jn*doFu}k%nY9Pyo1hoO}&@ z#@;zjQ%k3|j_;1FtJa=hdUjZri?XKl<9tplqndlg(ZVOM>V07o%ZyPVr>gd^l>*wR zgXOuoQnzXsj|TUZ`5?on#DmQ`r%Hp`;8)cH3tZ|1wzjEb`oQ!d_SW}>&vZIHV>s3a zP#JEouCCsXuWf*q8KOqh6{R{wt_D(=I~1vdDNcAV>c9uMc3R%x+v=+1_rQt$Ed!LM zJ+wD0DYS>5NFa>%vaR=$zd2Uas6cypa5&t;%~3}IxjbW5MzRdL$7C{x{CcXKfp>Dv zR$|MWJAZ4Rqw7GC%r}ggmK>wPV-!z;P_-0WbF%y9a5o7V`%DY^{)Pg74t8m@R$FA5 zw`*Ld)GcRTzN&C#_bj&LIL0+o*5LsjFC3Hn$Ey>+8g*E2J4k2a0ngZ5WG|1*TFPWUxtg<8KqaR2NQg(v+Wsv7q>DN`gE^%y(O}R7z+U`KFQI4Kuj`o3N z1oqh-#T@lSL`*Q{08(fdhR+jNBwOq$hKql4Yj9VZnwpaMJtCqgygjPr>gR3lLT~~B zez5%sTyL${IJ7I>w5T()xw#3I*r38H7NcH7>N#0`A<{jyKI%{T;?(2_0IRwo4uGjW1vJ&c$IjQ3orpW{ySp6b(oP1ER{|Vr$09j}U3Ek4dBk6!@xSqoWiAbCzC} zd{-)s4@V8+KSJ)r+WX@celuq&Wd*F}qTN8JPMz{F;$FZ=7~fTXPQAs7=CpbnEYLn>tfTWi>ju%Z_%>t&7;q&W<5eygM}{SUwW}K-t7W@4Dl{n5=y=< zF&z)T>#wZz#t^Jm;22VLXD~AEHi=~R*M!TM7mNAQPlir0DuCQy82CtoODo_f7&3^! z%guTj6a+aS#>-almHp)1M;y}ImIYpBTyoUl6dH>B{cM|-?FXm^A5lBwFXr-z%xZ`s zKCgVERM`6?!t$wOkL$kNKXO1%VOD=V1_cnPa$8JyYa7u6$%~AU|)dw$iF)G8H z7$wg6<^CVt6eodUGxC3F?$zIXXd65-hcn4ENjB=EJ;eI!_S*3q$&0!3c)Zu0_8yu> zBqEI|9LH6Gcq%2$d{u>t{<<`%N8iM zjkzuA-79;qA|d+Z_WW6Lp=*KgdH95AF(?S4q1q2fn}L67|37!NpX%b!*xYTj>6#p} znL~BZo)eu3GNeIm`0mXY&!sd1F3(0Y9HfT}#Cv3lNl3xd&<1z<1htA{g~Q>zYJU~( z396$~*HETw#*j059Npw{U|%sj6)`B8?`^tgWZ)HwFfuJCO`ZImWE?g5*eHgf01L>Kq!Jk zP+y%dOpSYXgmtJUQ~{|nk*kZm-4hi_La6fc*(ffXP8Ez+Sl>=VCMM|8p0fLdLYpt;CS@l zLStj2e{P3|rX`?);!buZk07rHLFSW8j%LwlG{*{C9rVApalZ}dOH-VoBA5FQr5wOm LV$n4y@A!WJv{b;U literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/bg_round_corner_26_7_transparent_3bb9f1.xml b/app/src/main/res/drawable/bg_round_corner_26_7_transparent_3bb9f1.xml new file mode 100644 index 0000000..7b43d26 --- /dev/null +++ b/app/src/main/res/drawable/bg_round_corner_26_7_transparent_3bb9f1.xml @@ -0,0 +1,8 @@ + + + + + + diff --git a/app/src/main/res/layout/dialog_purchase_community_post.xml b/app/src/main/res/layout/dialog_purchase_community_post.xml new file mode 100644 index 0000000..32f8695 --- /dev/null +++ b/app/src/main/res/layout/dialog_purchase_community_post.xml @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/item_creator_community.xml b/app/src/main/res/layout/item_creator_community.xml index 096dced..d5a2e6e 100644 --- a/app/src/main/res/layout/item_creator_community.xml +++ b/app/src/main/res/layout/item_creator_community.xml @@ -69,6 +69,7 @@ android:layout_width="53.3dp" android:layout_height="53.3dp" android:layout_alignParentEnd="true" + android:scaleType="centerCrop" android:contentDescription="@null" /> diff --git a/app/src/main/res/layout/item_creator_community_all.xml b/app/src/main/res/layout/item_creator_community_all.xml index 53aba64..853e353 100644 --- a/app/src/main/res/layout/item_creator_community_all.xml +++ b/app/src/main/res/layout/item_creator_community_all.xml @@ -57,7 +57,8 @@ android:layout_centerVertical="true" android:layout_marginEnd="8.3dp" android:contentDescription="@null" - android:src="@drawable/ic_seemore_vertical" /> + android:src="@drawable/ic_seemore_vertical" + android:visibility="gone" /> + android:scaleType="fitCenter" + android:visibility="gone" /> + + + + + + +