MediaSession 알림 터치시 메인 페이지로 이동

This commit is contained in:
klaus 2024-12-18 16:47:57 +09:00
parent 46ec9ff999
commit f78a13bd2c
1 changed files with 13 additions and 12 deletions

View File

@ -1,5 +1,6 @@
package kr.co.vividnext.sodalive.audio_content.player package kr.co.vividnext.sodalive.audio_content.player
import android.app.PendingIntent
import android.content.Intent import android.content.Intent
import android.net.Uri import android.net.Uri
import android.os.Build import android.os.Build
@ -28,6 +29,7 @@ import kr.co.vividnext.sodalive.audio_content.playlist.detail.AudioContentPlayli
import kr.co.vividnext.sodalive.common.Constants import kr.co.vividnext.sodalive.common.Constants
import kr.co.vividnext.sodalive.common.SharedPreferenceManager import kr.co.vividnext.sodalive.common.SharedPreferenceManager
import kr.co.vividnext.sodalive.common.Utils import kr.co.vividnext.sodalive.common.Utils
import kr.co.vividnext.sodalive.main.MainActivity
import org.koin.android.ext.android.inject import org.koin.android.ext.android.inject
@UnstableApi @UnstableApi
@ -67,18 +69,6 @@ class AudioContentPlayerService : MediaSessionService() {
super.onDestroy() super.onDestroy()
} }
override fun onTaskRemoved(rootIntent: Intent?) {
mediaSession?.run {
if (
!player.playWhenReady ||
player.mediaItemCount == 0 ||
player.playbackState == Player.STATE_ENDED
) {
onStopService()
}
}
}
override fun onGetSession(controllerInfo: MediaSession.ControllerInfo) = mediaSession override fun onGetSession(controllerInfo: MediaSession.ControllerInfo) = mediaSession
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int { override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
@ -111,7 +101,18 @@ class AudioContentPlayerService : MediaSessionService() {
} }
private fun initMediaSession() { private fun initMediaSession() {
val contextIntent = Intent(applicationContext, MainActivity::class.java).apply {
flags = Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP
}
val pendingIntent = PendingIntent.getActivity(
applicationContext,
0,
contextIntent,
PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE
)
mediaSession = MediaSession.Builder(this, player!!) mediaSession = MediaSession.Builder(this, player!!)
.setSessionActivity(pendingIntent)
.setCallback(object : MediaSession.Callback { .setCallback(object : MediaSession.Callback {
override fun onConnect( override fun onConnect(
session: MediaSession, session: MediaSession,