feat(latest-audio-content-all): 테마 UI 변경, 아이템 2단으로 변경
This commit is contained in:
@@ -12,7 +12,6 @@ import androidx.recyclerview.widget.GridLayoutManager
|
|||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import kr.co.vividnext.sodalive.audio_content.detail.AudioContentDetailActivity
|
import kr.co.vividnext.sodalive.audio_content.detail.AudioContentDetailActivity
|
||||||
import kr.co.vividnext.sodalive.audio_content.main.new_content.AudioContentMainNewContentThemeAdapter
|
|
||||||
import kr.co.vividnext.sodalive.base.BaseActivity
|
import kr.co.vividnext.sodalive.base.BaseActivity
|
||||||
import kr.co.vividnext.sodalive.common.Constants
|
import kr.co.vividnext.sodalive.common.Constants
|
||||||
import kr.co.vividnext.sodalive.common.GridSpacingItemDecoration
|
import kr.co.vividnext.sodalive.common.GridSpacingItemDecoration
|
||||||
@@ -20,6 +19,7 @@ import kr.co.vividnext.sodalive.common.LoadingDialog
|
|||||||
import kr.co.vividnext.sodalive.databinding.ActivityAudioContentNewAllBinding
|
import kr.co.vividnext.sodalive.databinding.ActivityAudioContentNewAllBinding
|
||||||
import kr.co.vividnext.sodalive.explorer.profile.UserProfileActivity
|
import kr.co.vividnext.sodalive.explorer.profile.UserProfileActivity
|
||||||
import kr.co.vividnext.sodalive.extensions.dpToPx
|
import kr.co.vividnext.sodalive.extensions.dpToPx
|
||||||
|
import kr.co.vividnext.sodalive.home.HomeContentThemeAdapter
|
||||||
import org.koin.android.ext.android.inject
|
import org.koin.android.ext.android.inject
|
||||||
|
|
||||||
@OptIn(UnstableApi::class)
|
@OptIn(UnstableApi::class)
|
||||||
@@ -30,7 +30,7 @@ class AudioContentNewAllActivity : BaseActivity<ActivityAudioContentNewAllBindin
|
|||||||
|
|
||||||
private lateinit var loadingDialog: LoadingDialog
|
private lateinit var loadingDialog: LoadingDialog
|
||||||
|
|
||||||
private lateinit var newContentThemeAdapter: AudioContentMainNewContentThemeAdapter
|
private lateinit var newContentThemeAdapter: HomeContentThemeAdapter
|
||||||
private lateinit var newContentAdapter: AudioContentNewAllAdapter
|
private lateinit var newContentAdapter: AudioContentNewAllAdapter
|
||||||
|
|
||||||
private var isFree: Boolean = false
|
private var isFree: Boolean = false
|
||||||
@@ -65,7 +65,7 @@ class AudioContentNewAllActivity : BaseActivity<ActivityAudioContentNewAllBindin
|
|||||||
|
|
||||||
@SuppressLint("NotifyDataSetChanged")
|
@SuppressLint("NotifyDataSetChanged")
|
||||||
private fun setupNewContentTheme() {
|
private fun setupNewContentTheme() {
|
||||||
newContentThemeAdapter = AudioContentMainNewContentThemeAdapter {
|
newContentThemeAdapter = HomeContentThemeAdapter {
|
||||||
newContentAdapter.clear()
|
newContentAdapter.clear()
|
||||||
newContentAdapter.notifyDataSetChanged()
|
newContentAdapter.notifyDataSetChanged()
|
||||||
viewModel.selectTheme(it, isFree = isFree)
|
viewModel.selectTheme(it, isFree = isFree)
|
||||||
@@ -109,10 +109,11 @@ class AudioContentNewAllActivity : BaseActivity<ActivityAudioContentNewAllBindin
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun setupNewContent() {
|
private fun setupNewContent() {
|
||||||
val spanCount = 3
|
// 아이템 정사각형 크기 계산: (screenWidth - (16*2) - 16) / 2
|
||||||
val spacing = 40
|
// 아이템 정사각형 크기 계산: (screenWidth - (paddingHorizontal*2) - itemSpacing) / 2
|
||||||
|
val itemSize = ((screenWidth - 16f.dpToPx() * 2 - 16f.dpToPx()) / 2f).toInt()
|
||||||
newContentAdapter = AudioContentNewAllAdapter(
|
newContentAdapter = AudioContentNewAllAdapter(
|
||||||
itemWidth = (screenWidth - (spacing * (spanCount + 1))) / 3,
|
itemWidth = itemSize,
|
||||||
onClickItem = {
|
onClickItem = {
|
||||||
startActivity(
|
startActivity(
|
||||||
Intent(this, AudioContentDetailActivity::class.java).apply {
|
Intent(this, AudioContentDetailActivity::class.java).apply {
|
||||||
@@ -129,8 +130,12 @@ class AudioContentNewAllActivity : BaseActivity<ActivityAudioContentNewAllBindin
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
val spanCount = 2
|
||||||
|
val spacingPx = 16f.dpToPx().toInt()
|
||||||
binding.rvContent.layoutManager = GridLayoutManager(this, spanCount)
|
binding.rvContent.layoutManager = GridLayoutManager(this, spanCount)
|
||||||
binding.rvContent.addItemDecoration(GridSpacingItemDecoration(spanCount, spacing, true))
|
binding.rvContent.addItemDecoration(
|
||||||
|
GridSpacingItemDecoration(spanCount, spacingPx, true)
|
||||||
|
)
|
||||||
|
|
||||||
binding.rvContent.addOnScrollListener(object : RecyclerView.OnScrollListener() {
|
binding.rvContent.addOnScrollListener(object : RecyclerView.OnScrollListener() {
|
||||||
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
|
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
|
||||||
|
|||||||
Reference in New Issue
Block a user