재생목록과 구매목록이 탭이 있는 내 보관함 페이지 추가
This commit is contained in:
parent
b38ada0b73
commit
ab89b6e21a
|
@ -146,6 +146,7 @@
|
|||
<activity android:name=".audio_content.series.detail.SeriesDetailActivity" />
|
||||
<activity android:name=".audio_content.series.content.SeriesContentAllActivity" />
|
||||
<activity android:name=".audio_content.playlist.detail.AudioContentPlaylistDetailActivity" />
|
||||
<activity android:name=".audio_content.box.AudioContentBoxActivity" />
|
||||
|
||||
<activity android:name=".mypage.alarm.AlarmListActivity" />
|
||||
<activity android:name=".mypage.alarm.AddAlarmActivity" />
|
||||
|
|
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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) {
|
||||
|
|
|
@ -68,7 +68,7 @@ class AudioContentPlaylistListFragment : BaseFragment<FragmentAudioContentPlayli
|
|||
}
|
||||
|
||||
viewModel.totalCountLiveData.observe(viewLifecycleOwner) {
|
||||
binding.tvCreatePlaylist.text = "${it}개"
|
||||
binding.tvTotalCount.text = "${it}개"
|
||||
}
|
||||
|
||||
viewModel.playlistLiveData.observe(viewLifecycleOwner) {
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:state_selected="true">
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="@android:color/transparent" />
|
||||
<stroke android:width="1dp" android:color="@color/color_3bb9f1" />
|
||||
<corners android:radius="26.7dp" />
|
||||
</shape>
|
||||
</item>
|
||||
<item>
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="@android:color/transparent" />
|
||||
<stroke android:width="1dp" android:color="@color/color_777777" />
|
||||
<corners android:radius="26.7dp" />
|
||||
</shape>
|
||||
</item>
|
||||
</selector>
|
|
@ -0,0 +1,44 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@color/black">
|
||||
|
||||
<include
|
||||
android:id="@+id/toolbar"
|
||||
layout="@layout/detail_toolbar" />
|
||||
|
||||
<com.google.android.material.tabs.TabLayout
|
||||
android:id="@+id/tabs"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="13.3dp"
|
||||
android:layout_marginTop="13.3dp"
|
||||
android:background="@android:color/transparent"
|
||||
android:elevation="0dp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/toolbar"
|
||||
app:tabBackground="@drawable/audio_content_box_tab_selector"
|
||||
app:tabGravity="center"
|
||||
app:tabIndicatorFullWidth="false"
|
||||
app:tabIndicatorHeight="0dp"
|
||||
app:tabMode="scrollable"
|
||||
app:tabSelectedTextColor="@color/color_3bb9f1"
|
||||
app:tabTextAppearance="@style/playlistTabText"
|
||||
app:tabPaddingStart="13.3dp"
|
||||
app:tabPaddingEnd="13.3dp"
|
||||
app:tabPaddingTop="8.3dp"
|
||||
app:tabPaddingBottom="8.3dp"
|
||||
app:tabTextColor="@color/color_777777" />
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/fl_container"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/tabs" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
@ -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">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_create_playlist"
|
||||
|
@ -28,6 +29,7 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="13.3dp"
|
||||
android:gravity="center_vertical"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/tv_create_playlist">
|
||||
|
@ -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"
|
||||
|
|
|
@ -27,6 +27,11 @@
|
|||
<item name="android:fontFamily">@font/gmarket_sans_medium</item>
|
||||
</style>
|
||||
|
||||
<style name="playlistTabText" parent="@android:style/TextAppearance.Widget.TabWidget">
|
||||
<item name="android:fontFamily">@font/gmarket_sans_medium</item>
|
||||
<item name="android:textSize">14.7sp</item>
|
||||
</style>
|
||||
|
||||
<style name="DatePickerStyle" parent="Theme.AppCompat.Light.Dialog">
|
||||
<item name="colorAccent">@color/color_3bb9f1</item>
|
||||
<!--selected Item color-->
|
||||
|
|
Loading…
Reference in New Issue