From ab89b6e21aef706d7a5aeaf8756f4c31222720bc Mon Sep 17 00:00:00 2001 From: klaus Date: Fri, 29 Nov 2024 15:10:10 +0900 Subject: [PATCH] =?UTF-8?q?=EC=9E=AC=EC=83=9D=EB=AA=A9=EB=A1=9D=EA=B3=BC?= =?UTF-8?q?=20=EA=B5=AC=EB=A7=A4=EB=AA=A9=EB=A1=9D=EC=9D=B4=20=ED=83=AD?= =?UTF-8?q?=EC=9D=B4=20=EC=9E=88=EB=8A=94=20=EB=82=B4=20=EB=B3=B4=EA=B4=80?= =?UTF-8?q?=ED=95=A8=20=ED=8E=98=EC=9D=B4=EC=A7=80=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 1 + .../box/AudioContentBoxActivity.kt | 63 +++++++++++++++++++ .../main/AudioContentMainFragment.kt | 5 +- .../AudioContentPlaylistListFragment.kt | 2 +- .../playlist/GetPlaylistsResponse.kt | 3 + .../audio_content_box_tab_selector.xml | 16 +++++ .../res/layout/activity_audio_content_box.xml | 44 +++++++++++++ .../fragment_audio_content_playlist_list.xml | 5 +- app/src/main/res/values/themes.xml | 5 ++ 9 files changed, 140 insertions(+), 4 deletions(-) create mode 100644 app/src/main/java/kr/co/vividnext/sodalive/audio_content/box/AudioContentBoxActivity.kt create mode 100644 app/src/main/res/drawable/audio_content_box_tab_selector.xml create mode 100644 app/src/main/res/layout/activity_audio_content_box.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7bcba10..8e8cff7 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -146,6 +146,7 @@ + diff --git a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/box/AudioContentBoxActivity.kt b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/box/AudioContentBoxActivity.kt new file mode 100644 index 0000000..8e98a76 --- /dev/null +++ b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/box/AudioContentBoxActivity.kt @@ -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::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 + } + } +} diff --git a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/main/AudioContentMainFragment.kt b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/main/AudioContentMainFragment.kt index 7818389..d6dd23e 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/main/AudioContentMainFragment.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/main/AudioContentMainFragment.kt @@ -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( startActivity( Intent( requireContext(), - AudioContentOrderListActivity::class.java + AudioContentBoxActivity::class.java ) ) } @@ -352,7 +353,7 @@ class AudioContentMainFragment : BaseFragment( binding.rvMyStash.adapter = orderListAdapter binding.tvMyStashViewAll.setOnClickListener { - startActivity(Intent(requireContext(), AudioContentOrderListActivity::class.java)) + startActivity(Intent(requireContext(), AudioContentBoxActivity::class.java)) } orderListViewModel.orderListLiveData.observe(viewLifecycleOwner) { diff --git a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/playlist/AudioContentPlaylistListFragment.kt b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/playlist/AudioContentPlaylistListFragment.kt index 03dd201..d65a2fc 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/playlist/AudioContentPlaylistListFragment.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/playlist/AudioContentPlaylistListFragment.kt @@ -68,7 +68,7 @@ class AudioContentPlaylistListFragment : BaseFragment ) +@Keep data class GetPlaylistsItem( @SerializedName("id") val id: Long, @SerializedName("title") val title: String, diff --git a/app/src/main/res/drawable/audio_content_box_tab_selector.xml b/app/src/main/res/drawable/audio_content_box_tab_selector.xml new file mode 100644 index 0000000..c5c0326 --- /dev/null +++ b/app/src/main/res/drawable/audio_content_box_tab_selector.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/activity_audio_content_box.xml b/app/src/main/res/layout/activity_audio_content_box.xml new file mode 100644 index 0000000..77987e9 --- /dev/null +++ b/app/src/main/res/layout/activity_audio_content_box.xml @@ -0,0 +1,44 @@ + + + + + + + + + diff --git a/app/src/main/res/layout/fragment_audio_content_playlist_list.xml b/app/src/main/res/layout/fragment_audio_content_playlist_list.xml index 2765d38..7b85c3d 100644 --- a/app/src/main/res/layout/fragment_audio_content_playlist_list.xml +++ b/app/src/main/res/layout/fragment_audio_content_playlist_list.xml @@ -5,7 +5,8 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/black" - android:padding="40dp"> + android:paddingHorizontal="13.3dp" + android:paddingBottom="13.3dp"> @@ -56,6 +58,7 @@ android:layout_width="0dp" android:layout_height="0dp" android:layout_marginTop="13.3dp" + android:visibility="gone" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 770ae02..19b14ec 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -27,6 +27,11 @@ @font/gmarket_sans_medium + +