diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f602a9b..6343a53 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -86,6 +86,7 @@
+
diff --git a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/main/v2/AudioContentMainActivity.kt b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/main/v2/AudioContentMainActivity.kt
new file mode 100644
index 0000000..2d7885d
--- /dev/null
+++ b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/main/v2/AudioContentMainActivity.kt
@@ -0,0 +1,131 @@
+package kr.co.vividnext.sodalive.audio_content.main.v2
+
+import android.content.Intent
+import android.graphics.Typeface
+import android.widget.TextView
+import androidx.core.content.res.ResourcesCompat
+import com.google.android.material.tabs.TabLayout
+import kr.co.vividnext.sodalive.R
+import kr.co.vividnext.sodalive.audio_content.box.AudioContentBoxActivity
+import kr.co.vividnext.sodalive.audio_content.main.v2.alarm.AudioContentMainTabAlarmFragment
+import kr.co.vividnext.sodalive.audio_content.main.v2.asmr.AudioContentMainTabAsmrFragment
+import kr.co.vividnext.sodalive.audio_content.main.v2.content.AudioContentMainTabContentFragment
+import kr.co.vividnext.sodalive.audio_content.main.v2.free.AudioContentMainTabFreeFragment
+import kr.co.vividnext.sodalive.audio_content.main.v2.replay.AudioContentMainTabReplayFragment
+import kr.co.vividnext.sodalive.audio_content.main.v2.series.AudioContentMainTabSeriesFragment
+import kr.co.vividnext.sodalive.base.BaseActivity
+import kr.co.vividnext.sodalive.common.Constants
+import kr.co.vividnext.sodalive.databinding.ActivityAudioContentMainBinding
+import kr.co.vividnext.sodalive.mypage.alarm.AlarmListActivity
+
+enum class AudioContentMainTab {
+ HOME, SERIES, CONTENT, ALARM, ASMR, REPLAY, FREE;
+
+ companion object {
+ fun fromOrdinal(ordinal: Int): AudioContentMainTab? {
+ return values().getOrNull(ordinal)
+ }
+ }
+}
+
+class AudioContentMainActivity : BaseActivity(
+ ActivityAudioContentMainBinding::inflate
+) {
+
+ private var fontBold: Typeface? = null
+ private var fontMedium: Typeface? = null
+
+ private var startTabPosition: AudioContentMainTab = AudioContentMainTab.SERIES
+
+ override fun setupView() {
+ startTabPosition = AudioContentMainTab.fromOrdinal(
+ intent.getIntExtra(
+ Constants.EXTRA_START_TAB_POSITION,
+ AudioContentMainTab.SERIES.ordinal
+ )
+ ) ?: AudioContentMainTab.SERIES
+
+ setupToolbar()
+ loadFont()
+ setupTabs()
+ }
+
+ private fun setupToolbar() {
+ val toolbar = binding.toolbar
+
+ toolbar.ivContentKeep.setOnClickListener {
+ startActivity(
+ Intent(
+ applicationContext,
+ AudioContentBoxActivity::class.java
+ )
+ )
+ }
+
+ toolbar.ivAlarm.setOnClickListener {
+ startActivity(
+ Intent(
+ applicationContext,
+ AlarmListActivity::class.java
+ )
+ )
+ }
+ }
+
+ private fun loadFont() {
+ fontBold = ResourcesCompat.getFont(this, R.font.gmarket_sans_bold)
+ fontMedium = ResourcesCompat.getFont(this, R.font.gmarket_sans_medium)
+ }
+
+ private fun setupTabs() {
+ val tabs = binding.tabs
+ val tabTitles = listOf("홈", "시리즈", "단편", "모닝콜", "ASMR", "다시듣기", "무료")
+ for (title in tabTitles) {
+ tabs.addTab(tabs.newTab().setText(title))
+ }
+
+ tabs.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener {
+ override fun onTabSelected(tab: TabLayout.Tab) {
+ val selectedTab = AudioContentMainTab.fromOrdinal(tab.position)
+ if (selectedTab == null || selectedTab == AudioContentMainTab.HOME) finish()
+
+ replaceFragment(selectedTab = selectedTab!!)
+ tab.view.isSelected = true
+ setTabFont(tab, fontBold)
+ }
+
+ override fun onTabUnselected(tab: TabLayout.Tab) {
+ tab.view.isSelected = false
+ setTabFont(tab, fontMedium)
+ }
+
+ override fun onTabReselected(tab: TabLayout.Tab) {
+ }
+ })
+
+ tabs.getTabAt(startTabPosition.ordinal)?.select()
+ replaceFragment(selectedTab = startTabPosition)
+ }
+
+ private fun replaceFragment(selectedTab: AudioContentMainTab) {
+ val startFragment = when (selectedTab) {
+ AudioContentMainTab.CONTENT -> AudioContentMainTabContentFragment()
+ AudioContentMainTab.ALARM -> AudioContentMainTabAlarmFragment()
+ AudioContentMainTab.ASMR -> AudioContentMainTabAsmrFragment()
+ AudioContentMainTab.REPLAY -> AudioContentMainTabReplayFragment()
+ AudioContentMainTab.FREE -> AudioContentMainTabFreeFragment()
+ else -> AudioContentMainTabSeriesFragment()
+ }
+
+ supportFragmentManager.beginTransaction()
+ .replace(
+ R.id.fl_container,
+ startFragment
+ )
+ .commit()
+ }
+
+ private fun setTabFont(tab: TabLayout.Tab, font: Typeface?) {
+ (tab.view.getChildAt(1) as? TextView)?.typeface = font
+ }
+}
diff --git a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/main/v2/alarm/AudioContentMainTabAlarmFragment.kt b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/main/v2/alarm/AudioContentMainTabAlarmFragment.kt
new file mode 100644
index 0000000..289baa4
--- /dev/null
+++ b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/main/v2/alarm/AudioContentMainTabAlarmFragment.kt
@@ -0,0 +1,9 @@
+package kr.co.vividnext.sodalive.audio_content.main.v2.alarm
+
+import kr.co.vividnext.sodalive.base.BaseFragment
+import kr.co.vividnext.sodalive.databinding.FragmentAudioContentMainTabAlarmBinding
+
+class AudioContentMainTabAlarmFragment : BaseFragment(
+ FragmentAudioContentMainTabAlarmBinding::inflate
+) {
+}
diff --git a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/main/v2/asmr/AudioContentMainTabAsmrFragment.kt b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/main/v2/asmr/AudioContentMainTabAsmrFragment.kt
new file mode 100644
index 0000000..4ee4a4d
--- /dev/null
+++ b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/main/v2/asmr/AudioContentMainTabAsmrFragment.kt
@@ -0,0 +1,9 @@
+package kr.co.vividnext.sodalive.audio_content.main.v2.asmr
+
+import kr.co.vividnext.sodalive.base.BaseFragment
+import kr.co.vividnext.sodalive.databinding.FragmentAudioContentMainTabAsmrBinding
+
+class AudioContentMainTabAsmrFragment : BaseFragment(
+ FragmentAudioContentMainTabAsmrBinding::inflate
+) {
+}
diff --git a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/main/v2/content/AudioContentMainTabContentFragment.kt b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/main/v2/content/AudioContentMainTabContentFragment.kt
new file mode 100644
index 0000000..1e23d84
--- /dev/null
+++ b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/main/v2/content/AudioContentMainTabContentFragment.kt
@@ -0,0 +1,9 @@
+package kr.co.vividnext.sodalive.audio_content.main.v2.content
+
+import kr.co.vividnext.sodalive.base.BaseFragment
+import kr.co.vividnext.sodalive.databinding.FragmentAudioContentMainTabContentBinding
+
+class AudioContentMainTabContentFragment : BaseFragment(
+ FragmentAudioContentMainTabContentBinding::inflate
+) {
+}
diff --git a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/main/v2/free/AudioContentMainTabFreeFragment.kt b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/main/v2/free/AudioContentMainTabFreeFragment.kt
new file mode 100644
index 0000000..7d9d372
--- /dev/null
+++ b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/main/v2/free/AudioContentMainTabFreeFragment.kt
@@ -0,0 +1,9 @@
+package kr.co.vividnext.sodalive.audio_content.main.v2.free
+
+import kr.co.vividnext.sodalive.base.BaseFragment
+import kr.co.vividnext.sodalive.databinding.FragmentAudioContentMainTabFreeBinding
+
+class AudioContentMainTabFreeFragment : BaseFragment(
+ FragmentAudioContentMainTabFreeBinding::inflate
+) {
+}
diff --git a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/main/v2/home/AudioContentMainTabHomeFragment.kt b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/main/v2/home/AudioContentMainTabHomeFragment.kt
index 3b92650..bf83678 100644
--- a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/main/v2/home/AudioContentMainTabHomeFragment.kt
+++ b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/main/v2/home/AudioContentMainTabHomeFragment.kt
@@ -21,7 +21,6 @@ import androidx.recyclerview.widget.RecyclerView
import coil.load
import coil.transform.CircleCropTransformation
import coil.transform.RoundedCornersTransformation
-import com.orhanobut.logger.Logger
import com.zhpan.bannerview.BaseBannerAdapter
import com.zhpan.indicator.enums.IndicatorSlideMode
import com.zhpan.indicator.enums.IndicatorStyle
@@ -34,6 +33,8 @@ import kr.co.vividnext.sodalive.audio_content.main.GetAudioContentRankingItem
import kr.co.vividnext.sodalive.audio_content.main.banner.AudioContentMainBannerAdapter
import kr.co.vividnext.sodalive.audio_content.main.new_content.AudioContentMainNewContentThemeAdapter
import kr.co.vividnext.sodalive.audio_content.main.ranking.AudioContentMainRankingAdapter
+import kr.co.vividnext.sodalive.audio_content.main.v2.AudioContentMainActivity
+import kr.co.vividnext.sodalive.audio_content.main.v2.AudioContentMainTab
import kr.co.vividnext.sodalive.audio_content.main.v2.ContentRankCreatorAdapter
import kr.co.vividnext.sodalive.audio_content.series.detail.SeriesDetailActivity
import kr.co.vividnext.sodalive.audio_content.upload.AudioContentUploadActivity
@@ -334,6 +335,44 @@ class AudioContentMainTabHomeFragment : BaseFragment(
+ FragmentAudioContentMainTabReplayBinding::inflate
+) {
+}
diff --git a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/main/v2/series/AudioContentMainTabSeriesFragment.kt b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/main/v2/series/AudioContentMainTabSeriesFragment.kt
new file mode 100644
index 0000000..7b8ec34
--- /dev/null
+++ b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/main/v2/series/AudioContentMainTabSeriesFragment.kt
@@ -0,0 +1,9 @@
+package kr.co.vividnext.sodalive.audio_content.main.v2.series
+
+import kr.co.vividnext.sodalive.base.BaseFragment
+import kr.co.vividnext.sodalive.databinding.FragmentAudioContentMainTabSeriesBinding
+
+class AudioContentMainTabSeriesFragment : BaseFragment(
+ FragmentAudioContentMainTabSeriesBinding::inflate
+) {
+}
diff --git a/app/src/main/res/layout/activity_audio_content_main.xml b/app/src/main/res/layout/activity_audio_content_main.xml
new file mode 100644
index 0000000..3f07506
--- /dev/null
+++ b/app/src/main/res/layout/activity_audio_content_main.xml
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/fragment_audio_content_main_tab_alarm.xml b/app/src/main/res/layout/fragment_audio_content_main_tab_alarm.xml
new file mode 100644
index 0000000..1b31835
--- /dev/null
+++ b/app/src/main/res/layout/fragment_audio_content_main_tab_alarm.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/fragment_audio_content_main_tab_asmr.xml b/app/src/main/res/layout/fragment_audio_content_main_tab_asmr.xml
new file mode 100644
index 0000000..1b31835
--- /dev/null
+++ b/app/src/main/res/layout/fragment_audio_content_main_tab_asmr.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/fragment_audio_content_main_tab_content.xml b/app/src/main/res/layout/fragment_audio_content_main_tab_content.xml
new file mode 100644
index 0000000..1b31835
--- /dev/null
+++ b/app/src/main/res/layout/fragment_audio_content_main_tab_content.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/fragment_audio_content_main_tab_free.xml b/app/src/main/res/layout/fragment_audio_content_main_tab_free.xml
new file mode 100644
index 0000000..1b31835
--- /dev/null
+++ b/app/src/main/res/layout/fragment_audio_content_main_tab_free.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/fragment_audio_content_main_tab_replay.xml b/app/src/main/res/layout/fragment_audio_content_main_tab_replay.xml
new file mode 100644
index 0000000..1b31835
--- /dev/null
+++ b/app/src/main/res/layout/fragment_audio_content_main_tab_replay.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/fragment_audio_content_main_tab_series.xml b/app/src/main/res/layout/fragment_audio_content_main_tab_series.xml
new file mode 100644
index 0000000..1b31835
--- /dev/null
+++ b/app/src/main/res/layout/fragment_audio_content_main_tab_series.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/toolbar_audio_content_main.xml b/app/src/main/res/layout/toolbar_audio_content_main.xml
new file mode 100644
index 0000000..ac21a2c
--- /dev/null
+++ b/app/src/main/res/layout/toolbar_audio_content_main.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml
index bfb7f53..ae82149 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
+
+