diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index b319e4f..68028e3 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -66,13 +66,8 @@
android:usesCleartextTraffic="true"
tools:targetApi="31">
-
-
-
-
-
@@ -92,6 +87,15 @@
+
+
+
+
+
+
+
diff --git a/app/src/main/java/kr/co/vividnext/sodalive/app/SodaLiveApp.kt b/app/src/main/java/kr/co/vividnext/sodalive/app/SodaLiveApp.kt
index 409f3d3..6367c1f 100644
--- a/app/src/main/java/kr/co/vividnext/sodalive/app/SodaLiveApp.kt
+++ b/app/src/main/java/kr/co/vividnext/sodalive/app/SodaLiveApp.kt
@@ -6,7 +6,6 @@ import android.content.pm.PackageManager
import android.os.Build
import androidx.appcompat.app.AppCompatDelegate
import com.appsflyer.AppsFlyerLib
-import com.appsflyer.deeplink.DeepLinkResult
import com.facebook.FacebookSdk
import com.orhanobut.logger.AndroidLogAdapter
import com.orhanobut.logger.Logger
@@ -59,54 +58,8 @@ class SodaLiveApp : Application() {
}
private fun setupAppsFlyer() {
- clearDeferredDeepLink()
-
// Appsflyer SDK 초기화
AppsFlyerLib.getInstance().init("tWF2wbJ5nSkya5Ru9mGcPU", null, this)
AppsFlyerLib.getInstance().start(this)
-
- // 딥링크 및 디퍼드 딥링크 처리
- AppsFlyerLib.getInstance().subscribeForDeepLink { deepLinkResult ->
- when (deepLinkResult.status) {
- DeepLinkResult.Status.FOUND -> {
- val deepLink = deepLinkResult.deepLink
- SharedPreferenceManager.marketingLinkValue = deepLink?.getStringValue(
- "deep_link_value"
- ) ?: ""
-
- val marketingPid = deepLink?.getStringValue(
- "deep_link_sub1"
- )
-
- if (marketingPid != null) {
- SharedPreferenceManager.marketingPid = marketingPid
- }
-
- SharedPreferenceManager.marketingUtmSource = deepLink?.getStringValue(
- "deep_link_sub2"
- ) ?: ""
- SharedPreferenceManager.marketingUtmMedium = deepLink?.getStringValue(
- "deep_link_sub3"
- ) ?: ""
- SharedPreferenceManager.marketingUtmCampaign = deepLink?.getStringValue(
- "deep_link_sub4"
- ) ?: ""
- SharedPreferenceManager.marketingLinkValueId = deepLink?.getStringValue(
- "deep_link_sub5"
- )?.toLongOrNull() ?: 0L
- }
-
- DeepLinkResult.Status.NOT_FOUND -> Logger.d("딥링크를 찾을 수 없습니다.")
- DeepLinkResult.Status.ERROR -> Logger.d("딥링크 처리 중 오류 발생: ${deepLinkResult.error}")
- }
- }
- }
-
- private fun clearDeferredDeepLink() {
- SharedPreferenceManager.marketingUtmSource = ""
- SharedPreferenceManager.marketingUtmMedium = ""
- SharedPreferenceManager.marketingUtmCampaign = ""
- SharedPreferenceManager.marketingLinkValue = ""
- SharedPreferenceManager.marketingLinkValueId = 0
}
}
diff --git a/app/src/main/java/kr/co/vividnext/sodalive/main/DeepLinkActivity.kt b/app/src/main/java/kr/co/vividnext/sodalive/main/DeepLinkActivity.kt
new file mode 100644
index 0000000..30c724b
--- /dev/null
+++ b/app/src/main/java/kr/co/vividnext/sodalive/main/DeepLinkActivity.kt
@@ -0,0 +1,64 @@
+package kr.co.vividnext.sodalive.main
+
+import android.content.Intent
+import android.os.Bundle
+import android.os.Handler
+import android.os.Looper
+import androidx.appcompat.app.AppCompatActivity
+import com.appsflyer.AppsFlyerLib
+import com.appsflyer.deeplink.DeepLinkResult
+import com.orhanobut.logger.Logger
+import kr.co.vividnext.sodalive.common.SharedPreferenceManager
+import kr.co.vividnext.sodalive.splash.SplashActivity
+
+class DeepLinkActivity : AppCompatActivity() {
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+
+ // 딥링크 및 디퍼드 딥링크 처리
+ AppsFlyerLib.getInstance().subscribeForDeepLink { deepLinkResult ->
+ when (deepLinkResult.status) {
+ DeepLinkResult.Status.FOUND -> {
+ val deepLink = deepLinkResult.deepLink
+ SharedPreferenceManager.marketingLinkValue = deepLink?.getStringValue(
+ "deep_link_value"
+ ) ?: ""
+
+ val marketingPid = deepLink?.getStringValue(
+ "deep_link_sub1"
+ )
+
+ if (marketingPid != null) {
+ SharedPreferenceManager.marketingPid = marketingPid
+ }
+
+ SharedPreferenceManager.marketingUtmSource = deepLink?.getStringValue(
+ "deep_link_sub2"
+ ) ?: ""
+ SharedPreferenceManager.marketingUtmMedium = deepLink?.getStringValue(
+ "deep_link_sub3"
+ ) ?: ""
+ SharedPreferenceManager.marketingUtmCampaign = deepLink?.getStringValue(
+ "deep_link_sub4"
+ ) ?: ""
+ SharedPreferenceManager.marketingLinkValueId = deepLink?.getStringValue(
+ "deep_link_sub5"
+ )?.toLongOrNull() ?: 0L
+ }
+
+ DeepLinkResult.Status.NOT_FOUND -> Logger.d("딥링크를 찾을 수 없습니다.")
+ DeepLinkResult.Status.ERROR -> Logger.d("딥링크 처리 중 오류 발생: ${deepLinkResult.error}")
+ }
+ }
+
+ startActivity(
+ Intent(applicationContext, SplashActivity::class.java).apply {
+ data = intent.data
+ }
+ )
+
+ Handler(Looper.getMainLooper()).postDelayed({
+ finish()
+ }, 1000)
+ }
+}
diff --git a/app/src/main/java/kr/co/vividnext/sodalive/main/MainActivity.kt b/app/src/main/java/kr/co/vividnext/sodalive/main/MainActivity.kt
index de3b7a3..d849e3b 100644
--- a/app/src/main/java/kr/co/vividnext/sodalive/main/MainActivity.kt
+++ b/app/src/main/java/kr/co/vividnext/sodalive/main/MainActivity.kt
@@ -314,51 +314,66 @@ class MainActivity : BaseActivity(ActivityMainBinding::infl
}
} catch (_: IllegalStateException) {
}
- } else {
- val deepLinkValue = SharedPreferenceManager.marketingLinkValue
- val deepLinkValueId = SharedPreferenceManager.marketingLinkValueId
+ }
- if (deepLinkValue.isNotBlank() && deepLinkValueId > 0) {
- when (deepLinkValue) {
- "series" -> {
- startActivity(
- Intent(applicationContext, SeriesDetailActivity::class.java).apply {
- putExtra(Constants.EXTRA_SERIES_ID, deepLinkValueId)
- }
- )
- }
+ executeOneLink()
+ }
- "content" -> {
- startActivity(
- Intent(
- applicationContext,
- AudioContentDetailActivity::class.java
- ).apply {
- putExtra(Constants.EXTRA_AUDIO_CONTENT_ID, deepLinkValueId)
- }
- )
- }
+ private fun executeOneLink() {
+ val deepLinkValue = SharedPreferenceManager.marketingLinkValue
+ val deepLinkValueId = SharedPreferenceManager.marketingLinkValueId
- "channel" -> {
- startActivity(
- Intent(applicationContext, UserProfileActivity::class.java).apply {
- putExtra(Constants.EXTRA_USER_ID, deepLinkValueId)
- }
- )
- }
-
- "live" -> {
- viewModel.clickTab(MainViewModel.CurrentTab.LIVE)
-
- handler.postDelayed({
- liveFragment.enterLiveRoom(deepLinkValueId)
- }, 500)
- }
-
- else -> {}
+ if (deepLinkValue.isNotBlank() && deepLinkValueId > 0) {
+ updatePidAndGaid()
+ when (deepLinkValue) {
+ "series" -> {
+ startActivity(
+ Intent(applicationContext, SeriesDetailActivity::class.java).apply {
+ putExtra(Constants.EXTRA_SERIES_ID, deepLinkValueId)
+ }
+ )
}
+
+ "content" -> {
+ startActivity(
+ Intent(
+ applicationContext,
+ AudioContentDetailActivity::class.java
+ ).apply {
+ putExtra(Constants.EXTRA_AUDIO_CONTENT_ID, deepLinkValueId)
+ }
+ )
+ }
+
+ "channel" -> {
+ startActivity(
+ Intent(applicationContext, UserProfileActivity::class.java).apply {
+ putExtra(Constants.EXTRA_USER_ID, deepLinkValueId)
+ }
+ )
+ }
+
+ "live" -> {
+ viewModel.clickTab(MainViewModel.CurrentTab.LIVE)
+
+ handler.postDelayed({
+ liveFragment.enterLiveRoom(deepLinkValueId)
+ }, 500)
+ }
+
+ else -> {}
}
}
+
+ clearDeferredDeepLink()
+ }
+
+ private fun clearDeferredDeepLink() {
+ SharedPreferenceManager.marketingUtmSource = ""
+ SharedPreferenceManager.marketingUtmMedium = ""
+ SharedPreferenceManager.marketingUtmCampaign = ""
+ SharedPreferenceManager.marketingLinkValue = ""
+ SharedPreferenceManager.marketingLinkValueId = 0
}
private fun setupBottomTabLayout() {