개별 콘텐츠 재생 <-> 재생목록 재생

- 기존에 재생 중인 콘텐츠(재생목록)를 멈추고 신규로 재생한 콘텐츠(재생목록)가 단독으로 재생되도록 수정
This commit is contained in:
klaus 2024-12-13 22:58:53 +09:00
parent cb1dadab9d
commit 8c8b8c1747
3 changed files with 27 additions and 12 deletions

View File

@ -21,6 +21,7 @@ import android.widget.Toast
import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.contract.ActivityResultContracts
import androidx.core.content.ContextCompat
import androidx.media3.common.util.UnstableApi
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import coil.load
@ -36,6 +37,7 @@ import kr.co.vividnext.sodalive.audio_content.modify.AudioContentModifyActivity
import kr.co.vividnext.sodalive.audio_content.order.AudioContentOrderConfirmDialog
import kr.co.vividnext.sodalive.audio_content.order.AudioContentOrderFragment
import kr.co.vividnext.sodalive.audio_content.order.OrderType
import kr.co.vividnext.sodalive.audio_content.player.AudioContentPlayerService
import kr.co.vividnext.sodalive.base.BaseActivity
import kr.co.vividnext.sodalive.base.SodaDialog
import kr.co.vividnext.sodalive.common.Constants
@ -57,6 +59,7 @@ import kr.co.vividnext.sodalive.report.ReportType
import org.koin.android.ext.android.inject
import kotlin.math.ceil
@UnstableApi
class AudioContentDetailActivity : BaseActivity<ActivityAudioContentDetailBinding>(
ActivityAudioContentDetailBinding::inflate
) {
@ -662,6 +665,11 @@ class AudioContentDetailActivity : BaseActivity<ActivityAudioContentDetailBindin
) {
binding.ivPlayOrPause.visibility = View.VISIBLE
binding.ivPlayOrPause.setOnClickListener {
startService(
Intent(applicationContext, AudioContentPlayerService::class.java).apply {
action = "STOP_SERVICE"
}
)
startService(
Intent(this, AudioContentPlayService::class.java).apply {
putExtra(

View File

@ -24,6 +24,7 @@ import androidx.recyclerview.widget.RecyclerView
import coil.load
import coil.transform.RoundedCornersTransformation
import kr.co.vividnext.sodalive.R
import kr.co.vividnext.sodalive.audio_content.AudioContentPlayService
import kr.co.vividnext.sodalive.audio_content.player.AudioContentPlayerFragment
import kr.co.vividnext.sodalive.audio_content.player.AudioContentPlayerService
import kr.co.vividnext.sodalive.audio_content.playlist.modify.AudioContentPlaylistModifyActivity
@ -244,9 +245,21 @@ class AudioContentPlaylistDetailActivity : BaseActivity<ActivityAudioContentPlay
recyclerView.adapter = adapter
binding.llPlay.setOnClickListener {
startService(
Intent(applicationContext, AudioContentPlayService::class.java).apply {
action = AudioContentPlayService.MusicAction.STOP.name
}
)
showPlayerFragment(contentList = ArrayList(contentList))
}
binding.llShuffle.setOnClickListener {
startService(
Intent(applicationContext, AudioContentPlayService::class.java).apply {
action = AudioContentPlayService.MusicAction.STOP.name
}
)
val shuffledList = ArrayList(contentList).apply { shuffle(Random) }
showPlayerFragment(contentList = shuffledList)
}

View File

@ -54,22 +54,16 @@
app:layout_constraintTop_toTopOf="@+id/iv_creator_profile"
tools:text="닉네임" />
<LinearLayout
android:layout_width="240dp"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintBottom_toTopOf="@+id/sb_progress"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/iv_creator_profile">
<ImageView
android:id="@+id/iv_cover"
android:layout_width="240dp"
android:layout_height="240dp"
android:contentDescription="@null"
app:layout_constraintBottom_toTopOf="@+id/sb_progress"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/iv_creator_profile"
tools:src="@drawable/img_compleate_book" />
</LinearLayout>
<SeekBar
android:id="@+id/sb_progress"