fix(deeplink): 딥링크 포그라운드 라우팅을 정비한다

This commit is contained in:
2026-03-06 16:54:35 +09:00
parent 93b620f4a8
commit 2b5240a565
9 changed files with 549 additions and 111 deletions

View File

@@ -14,7 +14,7 @@ import kr.co.vividnext.sodalive.R
import kr.co.vividnext.sodalive.app.SodaLiveApp
import kr.co.vividnext.sodalive.common.Constants
import kr.co.vividnext.sodalive.common.SharedPreferenceManager
import kr.co.vividnext.sodalive.splash.SplashActivity
import kr.co.vividnext.sodalive.main.DeepLinkActivity
class SodaFirebaseMessagingService : FirebaseMessagingService() {
override fun onMessageReceived(remoteMessage: RemoteMessage) {
@@ -62,33 +62,22 @@ class SodaFirebaseMessagingService : FirebaseMessagingService() {
notificationManager.createNotificationChannel(channel)
}
val intent = Intent(this, SplashActivity::class.java)
val intent = Intent(this, DeepLinkActivity::class.java)
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP)
val roomId = messageData["room_id"]
if (roomId != null) {
intent.putExtra(Constants.EXTRA_ROOM_ID, roomId.toLong())
val deepLinkExtras = android.os.Bundle().apply {
messageData["room_id"]?.let { putString("room_id", it) }
messageData["message_id"]?.let { putString("message_id", it) }
messageData["content_id"]?.let { putString("content_id", it) }
messageData["channel_id"]?.let { putString("channel_id", it) }
messageData["audition_id"]?.let { putString("audition_id", it) }
messageData["deep_link_value"]?.let { putString("deep_link_value", it) }
messageData["deep_link_sub5"]?.let { putString("deep_link_sub5", it) }
}
val messageId = messageData["message_id"]
if (messageId != null) {
intent.putExtra(Constants.EXTRA_MESSAGE_ID, messageId.toLong())
}
val audioContentId = messageData["content_id"]
if (audioContentId != null) {
intent.putExtra(Constants.EXTRA_AUDIO_CONTENT_ID, audioContentId.toLong())
}
val channelId = messageData["channel_id"]
if (channelId != null) {
intent.putExtra(Constants.EXTRA_USER_ID, channelId.toLong())
}
val auditionId = messageData["audition_id"]
if (auditionId != null) {
intent.putExtra(Constants.EXTRA_AUDITION_ID, auditionId.toLong())
if (!deepLinkExtras.isEmpty) {
intent.putExtra(Constants.EXTRA_DATA, deepLinkExtras)
}
val pendingIntent =