콘텐츠 상세
- 이전화/다음화 버튼 추가
This commit is contained in:
		| @@ -26,6 +26,7 @@ import androidx.recyclerview.widget.LinearLayoutManager | |||||||
| 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 coil.transform.RoundedCornersTransformation | ||||||
| import com.bumptech.glide.Glide | import com.bumptech.glide.Glide | ||||||
| import com.bumptech.glide.request.RequestOptions | import com.bumptech.glide.request.RequestOptions | ||||||
| import com.google.gson.Gson | import com.google.gson.Gson | ||||||
| @@ -417,6 +418,7 @@ class AudioContentDetailActivity : BaseActivity<ActivityAudioContentDetailBindin | |||||||
|             setupInfoArea(it) |             setupInfoArea(it) | ||||||
|             setupPurchaseButton(it) |             setupPurchaseButton(it) | ||||||
|             setupCommentArea(it) |             setupCommentArea(it) | ||||||
|  |             setupPreviousNextContentArea(it.previousContent, it.nextContent) | ||||||
|             setupCreatorOtherContentListArea(it.creatorOtherContentList) |             setupCreatorOtherContentListArea(it.creatorOtherContentList) | ||||||
|             setupSameThemeOtherContentList(it.sameThemeOtherContentList) |             setupSameThemeOtherContentList(it.sameThemeOtherContentList) | ||||||
|         } |         } | ||||||
| @@ -464,6 +466,78 @@ class AudioContentDetailActivity : BaseActivity<ActivityAudioContentDetailBindin | |||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     private fun setupPreviousNextContentArea( | ||||||
|  |         previousContent: OtherContentResponse?, | ||||||
|  |         nextContent: OtherContentResponse? | ||||||
|  |     ) { | ||||||
|  |         binding.llPreviousNextContent.visibility = if ( | ||||||
|  |             previousContent != null || | ||||||
|  |             nextContent != null | ||||||
|  |         ) { | ||||||
|  |             View.VISIBLE | ||||||
|  |         } else { | ||||||
|  |             View.GONE | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         if (previousContent != null) { | ||||||
|  |             binding.llPreviousContent.visibility = View.VISIBLE | ||||||
|  |             binding.viewPreviousNone.visibility = View.GONE | ||||||
|  |  | ||||||
|  |             binding.ivPreviousCover.load(previousContent.coverUrl) { | ||||||
|  |                 crossfade(true) | ||||||
|  |                 placeholder(R.drawable.bg_placeholder) | ||||||
|  |                 transformations(RoundedCornersTransformation(5.3f.dpToPx())) | ||||||
|  |             } | ||||||
|  |  | ||||||
|  |             binding.tvPreviousTitle.text = previousContent.title | ||||||
|  |  | ||||||
|  |             binding.llPreviousContent.setOnClickListener { | ||||||
|  |                 startActivity( | ||||||
|  |                     Intent( | ||||||
|  |                         applicationContext, | ||||||
|  |                         AudioContentDetailActivity::class.java | ||||||
|  |                     ).apply { | ||||||
|  |                         putExtra(Constants.EXTRA_AUDIO_CONTENT_ID, previousContent.contentId) | ||||||
|  |                         addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) | ||||||
|  |                         addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP) | ||||||
|  |                     } | ||||||
|  |                 ) | ||||||
|  |             } | ||||||
|  |         } else { | ||||||
|  |             binding.viewPreviousNone.visibility = View.VISIBLE | ||||||
|  |             binding.llPreviousContent.visibility = View.GONE | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         if (nextContent != null) { | ||||||
|  |             binding.llNextContent.visibility = View.VISIBLE | ||||||
|  |             binding.viewNextNone.visibility = View.GONE | ||||||
|  |  | ||||||
|  |             binding.ivNextCover.load(nextContent.coverUrl) { | ||||||
|  |                 crossfade(true) | ||||||
|  |                 placeholder(R.drawable.bg_placeholder) | ||||||
|  |                 transformations(RoundedCornersTransformation(5.3f.dpToPx())) | ||||||
|  |             } | ||||||
|  |  | ||||||
|  |             binding.tvNextTitle.text = nextContent.title | ||||||
|  |  | ||||||
|  |             binding.llNextContent.setOnClickListener { | ||||||
|  |                 startActivity( | ||||||
|  |                     Intent( | ||||||
|  |                         applicationContext, | ||||||
|  |                         AudioContentDetailActivity::class.java | ||||||
|  |                     ).apply { | ||||||
|  |                         putExtra(Constants.EXTRA_AUDIO_CONTENT_ID, nextContent.contentId) | ||||||
|  |                         addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) | ||||||
|  |                         addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP) | ||||||
|  |                     } | ||||||
|  |                 ) | ||||||
|  |             } | ||||||
|  |         } else { | ||||||
|  |             binding.viewNextNone.visibility = View.VISIBLE | ||||||
|  |             binding.llNextContent.visibility = View.GONE | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|     private fun setupCommentArea(response: GetAudioContentDetailResponse) { |     private fun setupCommentArea(response: GetAudioContentDetailResponse) { | ||||||
|         if ( |         if ( | ||||||
|             response.isCommentAvailable && |             response.isCommentAvailable && | ||||||
|   | |||||||
| @@ -39,7 +39,9 @@ data class GetAudioContentDetailResponse( | |||||||
|     @SerializedName("commentCount") val commentCount: Int, |     @SerializedName("commentCount") val commentCount: Int, | ||||||
|     @SerializedName("isPin") val isPin: Boolean, |     @SerializedName("isPin") val isPin: Boolean, | ||||||
|     @SerializedName("isAvailablePin") val isAvailablePin: Boolean, |     @SerializedName("isAvailablePin") val isAvailablePin: Boolean, | ||||||
|     @SerializedName("creator") val creator: AudioContentCreator |     @SerializedName("creator") val creator: AudioContentCreator, | ||||||
|  |     @SerializedName("previousContent") val previousContent: OtherContentResponse?, | ||||||
|  |     @SerializedName("nextContent") val nextContent: OtherContentResponse? | ||||||
| ) | ) | ||||||
|  |  | ||||||
| @Keep | @Keep | ||||||
|   | |||||||
| @@ -0,0 +1,8 @@ | |||||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  | <shape xmlns:android="http://schemas.android.com/apk/res/android"> | ||||||
|  |     <solid android:color="@color/color_222222" /> | ||||||
|  |     <corners android:radius="5.3dp" /> | ||||||
|  |     <stroke | ||||||
|  |         android:width="1dp" | ||||||
|  |         android:color="@color/color_555555" /> | ||||||
|  | </shape> | ||||||
| @@ -199,6 +199,121 @@ | |||||||
|                         tools:src="@drawable/btn_player_repeat" /> |                         tools:src="@drawable/btn_player_repeat" /> | ||||||
|                 </androidx.constraintlayout.widget.ConstraintLayout> |                 </androidx.constraintlayout.widget.ConstraintLayout> | ||||||
|  |  | ||||||
|  |                 <LinearLayout | ||||||
|  |                     android:id="@+id/ll_previous_next_content" | ||||||
|  |                     android:layout_width="match_parent" | ||||||
|  |                     android:layout_height="wrap_content" | ||||||
|  |                     android:layout_marginHorizontal="13.3dp" | ||||||
|  |                     android:layout_marginTop="13.3dp" | ||||||
|  |                     android:visibility="gone"> | ||||||
|  |  | ||||||
|  |                     <View | ||||||
|  |                         android:id="@+id/view_previous_none" | ||||||
|  |                         android:layout_width="0dp" | ||||||
|  |                         android:layout_height="wrap_content" | ||||||
|  |                         android:layout_marginEnd="4dp" | ||||||
|  |                         android:layout_weight="1" | ||||||
|  |                         android:visibility="gone" /> | ||||||
|  |  | ||||||
|  |                     <LinearLayout | ||||||
|  |                         android:id="@+id/ll_previous_content" | ||||||
|  |                         android:layout_width="0dp" | ||||||
|  |                         android:layout_height="wrap_content" | ||||||
|  |                         android:layout_marginEnd="4dp" | ||||||
|  |                         android:layout_weight="1" | ||||||
|  |                         android:background="@drawable/bg_round_corner_5_3_222222_555555" | ||||||
|  |                         android:padding="5.3dp" | ||||||
|  |                         android:visibility="gone"> | ||||||
|  |  | ||||||
|  |                         <ImageView | ||||||
|  |                             android:id="@+id/iv_previous_cover" | ||||||
|  |                             android:layout_width="33.3dp" | ||||||
|  |                             android:layout_height="33.3dp" | ||||||
|  |                             android:contentDescription="@null" /> | ||||||
|  |  | ||||||
|  |                         <LinearLayout | ||||||
|  |                             android:layout_width="match_parent" | ||||||
|  |                             android:layout_height="wrap_content" | ||||||
|  |                             android:layout_marginStart="5.3dp" | ||||||
|  |                             android:orientation="vertical"> | ||||||
|  |  | ||||||
|  |                             <TextView | ||||||
|  |                                 android:id="@+id/tv_previous_title" | ||||||
|  |                                 android:layout_width="wrap_content" | ||||||
|  |                                 android:layout_height="wrap_content" | ||||||
|  |                                 android:ellipsize="end" | ||||||
|  |                                 android:fontFamily="@font/gmarket_sans_medium" | ||||||
|  |                                 android:maxLines="2" | ||||||
|  |                                 android:textColor="@color/color_d2d2d2" | ||||||
|  |                                 android:textSize="11sp" | ||||||
|  |                                 tools:ignore="TooManyViews" | ||||||
|  |                                 tools:text="1화\n남편은 분명 성기사였다" /> | ||||||
|  |  | ||||||
|  |                             <TextView | ||||||
|  |                                 android:layout_width="wrap_content" | ||||||
|  |                                 android:layout_height="wrap_content" | ||||||
|  |                                 android:layout_marginTop="5.3dp" | ||||||
|  |                                 android:fontFamily="@font/gmarket_sans_medium" | ||||||
|  |                                 android:text="이전화" | ||||||
|  |                                 android:textColor="@color/color_3bb9f1" | ||||||
|  |                                 android:textSize="13.3sp" /> | ||||||
|  |                         </LinearLayout> | ||||||
|  |                     </LinearLayout> | ||||||
|  |  | ||||||
|  |                     <LinearLayout | ||||||
|  |                         android:id="@+id/ll_next_content" | ||||||
|  |                         android:layout_width="0dp" | ||||||
|  |                         android:layout_height="wrap_content" | ||||||
|  |                         android:layout_marginStart="4dp" | ||||||
|  |                         android:layout_weight="1" | ||||||
|  |                         android:background="@drawable/bg_round_corner_5_3_222222_555555" | ||||||
|  |                         android:padding="5.3dp" | ||||||
|  |                         android:visibility="gone"> | ||||||
|  |  | ||||||
|  |                         <ImageView | ||||||
|  |                             android:id="@+id/iv_next_cover" | ||||||
|  |                             android:layout_width="33.3dp" | ||||||
|  |                             android:layout_height="33.3dp" | ||||||
|  |                             android:contentDescription="@null" /> | ||||||
|  |  | ||||||
|  |                         <LinearLayout | ||||||
|  |                             android:layout_width="match_parent" | ||||||
|  |                             android:layout_height="wrap_content" | ||||||
|  |                             android:layout_marginStart="5.3dp" | ||||||
|  |                             android:orientation="vertical"> | ||||||
|  |  | ||||||
|  |                             <TextView | ||||||
|  |                                 android:id="@+id/tv_next_title" | ||||||
|  |                                 android:layout_width="wrap_content" | ||||||
|  |                                 android:layout_height="wrap_content" | ||||||
|  |                                 android:ellipsize="end" | ||||||
|  |                                 android:fontFamily="@font/gmarket_sans_medium" | ||||||
|  |                                 android:maxLines="2" | ||||||
|  |                                 android:textColor="@color/color_d2d2d2" | ||||||
|  |                                 android:textSize="11sp" | ||||||
|  |                                 tools:ignore="TooManyViews" | ||||||
|  |                                 tools:text="1화\n남편은 분명 성기사였다" /> | ||||||
|  |  | ||||||
|  |                             <TextView | ||||||
|  |                                 android:layout_width="wrap_content" | ||||||
|  |                                 android:layout_height="wrap_content" | ||||||
|  |                                 android:layout_marginTop="5.3dp" | ||||||
|  |                                 android:fontFamily="@font/gmarket_sans_medium" | ||||||
|  |                                 android:text="다음화" | ||||||
|  |                                 android:textColor="@color/color_3bb9f1" | ||||||
|  |                                 android:textSize="13.3sp" /> | ||||||
|  |                         </LinearLayout> | ||||||
|  |                     </LinearLayout> | ||||||
|  |  | ||||||
|  |                     <View | ||||||
|  |                         android:id="@+id/view_next_none" | ||||||
|  |                         android:layout_width="0dp" | ||||||
|  |                         android:layout_height="wrap_content" | ||||||
|  |                         android:layout_marginStart="4dp" | ||||||
|  |                         android:layout_weight="1" | ||||||
|  |                         android:visibility="gone" /> | ||||||
|  |                 </LinearLayout> | ||||||
|  |  | ||||||
|                 <RelativeLayout |                 <RelativeLayout | ||||||
|                     android:layout_width="match_parent" |                     android:layout_width="match_parent" | ||||||
|                     android:layout_height="wrap_content" |                     android:layout_height="wrap_content" | ||||||
| @@ -478,9 +593,9 @@ | |||||||
|                             android:layout_height="wrap_content" |                             android:layout_height="wrap_content" | ||||||
|                             android:layout_marginTop="8dp" |                             android:layout_marginTop="8dp" | ||||||
|                             android:ellipsize="end" |                             android:ellipsize="end" | ||||||
|                             android:maxLines="2" |  | ||||||
|                             android:fontFamily="@font/gmarket_sans_medium" |                             android:fontFamily="@font/gmarket_sans_medium" | ||||||
|                             android:lineSpacingExtra="5dp" |                             android:lineSpacingExtra="5dp" | ||||||
|  |                             android:maxLines="2" | ||||||
|                             android:textColor="@color/color_909090" |                             android:textColor="@color/color_909090" | ||||||
|                             android:textSize="14sp" |                             android:textSize="14sp" | ||||||
|                             tools:text="작품설명 작품설명 작품설명 작품설명 작품설명 작품설명 작품설명 작품설명 작품설명 작품설명 작품설명 작품설명 작품설명 작품설명 작품설명 작품설명" /> |                             tools:text="작품설명 작품설명 작품설명 작품설명 작품설명 작품설명 작품설명 작품설명 작품설명 작품설명 작품설명 작품설명 작품설명 작품설명 작품설명 작품설명" /> | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user