재생목록과 구매목록이 탭이 있는 내 보관함 페이지 추가

This commit is contained in:
2024-11-29 15:10:10 +09:00
parent b38ada0b73
commit ab89b6e21a
9 changed files with 140 additions and 4 deletions

View File

@@ -0,0 +1,63 @@
package kr.co.vividnext.sodalive.audio_content.box
import android.widget.LinearLayout
import com.google.android.material.tabs.TabLayout
import kr.co.vividnext.sodalive.R
import kr.co.vividnext.sodalive.audio_content.playlist.AudioContentPlaylistListFragment
import kr.co.vividnext.sodalive.base.BaseActivity
import kr.co.vividnext.sodalive.databinding.ActivityAudioContentBoxBinding
class AudioContentBoxActivity : BaseActivity<ActivityAudioContentBoxBinding>(
ActivityAudioContentBoxBinding::inflate
) {
override fun setupView() {
setupToolbar()
setupTabs()
supportFragmentManager.beginTransaction()
.replace(R.id.fl_container, AudioContentPlaylistListFragment())
.commit()
}
private fun setupToolbar() {
binding.toolbar.tvBack.text = "내 보관함"
binding.toolbar.tvBack.setOnClickListener { finish() }
}
private fun setupTabs() {
val tabs = binding.tabs
tabs.addTab(tabs.newTab().setText("재생목록"))
tabs.addTab(tabs.newTab().setText("구매목록"))
tabs.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener {
override fun onTabSelected(tab: TabLayout.Tab) {
tab.view.isSelected = true
when (tab.position) {
0 -> supportFragmentManager.beginTransaction()
.replace(R.id.fl_container, AudioContentPlaylistListFragment())
.commit()
1 -> {}
}
}
override fun onTabUnselected(tab: TabLayout.Tab) {
tab.view.isSelected = false
}
override fun onTabReselected(tab: TabLayout.Tab) {
}
})
val tabStrip = tabs.getChildAt(0) as LinearLayout
for (i in 0 until tabStrip.childCount) {
val tab = tabStrip.getChildAt(i)
val params = tab.layoutParams as LinearLayout.LayoutParams
params.setMargins(12, 0, 12, 0)
params.height = LinearLayout.LayoutParams.WRAP_CONTENT
tab.layoutParams = params
tab.minimumHeight = 0
}
}
}

View File

@@ -19,6 +19,7 @@ import kr.co.vividnext.sodalive.R
import kr.co.vividnext.sodalive.audio_content.all.AudioContentNewAllActivity
import kr.co.vividnext.sodalive.audio_content.all.AudioContentRankingAllActivity
import kr.co.vividnext.sodalive.audio_content.all.by_theme.AudioContentAllByThemeActivity
import kr.co.vividnext.sodalive.audio_content.box.AudioContentBoxActivity
import kr.co.vividnext.sodalive.audio_content.curation.AudioContentCurationActivity
import kr.co.vividnext.sodalive.audio_content.detail.AudioContentDetailActivity
import kr.co.vividnext.sodalive.audio_content.main.banner.AudioContentMainBannerAdapter
@@ -127,7 +128,7 @@ class AudioContentMainFragment : BaseFragment<FragmentAudioContentMainBinding>(
startActivity(
Intent(
requireContext(),
AudioContentOrderListActivity::class.java
AudioContentBoxActivity::class.java
)
)
}
@@ -352,7 +353,7 @@ class AudioContentMainFragment : BaseFragment<FragmentAudioContentMainBinding>(
binding.rvMyStash.adapter = orderListAdapter
binding.tvMyStashViewAll.setOnClickListener {
startActivity(Intent(requireContext(), AudioContentOrderListActivity::class.java))
startActivity(Intent(requireContext(), AudioContentBoxActivity::class.java))
}
orderListViewModel.orderListLiveData.observe(viewLifecycleOwner) {

View File

@@ -68,7 +68,7 @@ class AudioContentPlaylistListFragment : BaseFragment<FragmentAudioContentPlayli
}
viewModel.totalCountLiveData.observe(viewLifecycleOwner) {
binding.tvCreatePlaylist.text = "${it}"
binding.tvTotalCount.text = "${it}"
}
viewModel.playlistLiveData.observe(viewLifecycleOwner) {

View File

@@ -1,12 +1,15 @@
package kr.co.vividnext.sodalive.audio_content.playlist
import androidx.annotation.Keep
import com.google.gson.annotations.SerializedName
@Keep
data class GetPlaylistsResponse(
@SerializedName("totalCount") val totalCount: Int,
@SerializedName("items") val items: List<GetPlaylistsItem>
)
@Keep
data class GetPlaylistsItem(
@SerializedName("id") val id: Long,
@SerializedName("title") val title: String,