diff --git a/app/src/main/java/com/no5ing/bbibbi/FirebaseService.kt b/app/src/main/java/com/no5ing/bbibbi/FirebaseService.kt index f4050c3..47d20bd 100644 --- a/app/src/main/java/com/no5ing/bbibbi/FirebaseService.kt +++ b/app/src/main/java/com/no5ing/bbibbi/FirebaseService.kt @@ -21,6 +21,10 @@ class FirebaseService : FirebaseMessagingService() { remoteMessage.notification?.apply { val intent = Intent(this@FirebaseService, MainActivity::class.java).apply { flags = Intent.FLAG_ACTIVITY_REORDER_TO_FRONT + remoteMessage.data.forEach { (t, u) -> + Timber.d("Extra data: $t, $u") + putExtra(t, u) + } } val pendingIntent = PendingIntent .getActivity(this@FirebaseService, 0, intent, PendingIntent.FLAG_IMMUTABLE) diff --git a/app/src/main/java/com/no5ing/bbibbi/MainActivity.kt b/app/src/main/java/com/no5ing/bbibbi/MainActivity.kt index 075db25..027e46d 100644 --- a/app/src/main/java/com/no5ing/bbibbi/MainActivity.kt +++ b/app/src/main/java/com/no5ing/bbibbi/MainActivity.kt @@ -79,16 +79,19 @@ class MainActivity : ComponentActivity() { private val deepLinkStateFlow = MutableStateFlow(null) private val pendingDeepLinkDestination = MutableStateFlow(null) - override fun onNewIntent(intent: Intent?) { - super.onNewIntent(intent) + override fun onNewIntent(newIntent: Intent?) { + super.onNewIntent(newIntent) //HANDLE FOREGROUND INTENT (already app is active) - Timber.d("onNewIntent: $intent") - onAppStartIntent(intent) + intent = newIntent + Timber.d("onNewIntent: $newIntent") + onAppStartIntent(newIntent) } - private fun onAppStartIntent(intent: Intent?) { - Timber.d("onAppStartIntent: $intent") - val appLinkData: Uri? = intent?.data + private fun onAppStartIntent(newIntent: Intent?) { + Timber.d("onAppStartIntent: $newIntent") + val appLinkData: Uri? = newIntent?.data + val deepLink = newIntent?.extras?.getString("aosDeepLink") + Timber.d("DeepLink: $deepLink") val linkId = appLinkData?.let { deepLinkStateFlow.value = it.toString() getLinkIdFromUrl(it.toString()) @@ -96,8 +99,11 @@ class MainActivity : ComponentActivity() { if (linkId != null) { handleDeepLinkId(linkId) } + deepLink?.let { + pendingDeepLinkDestination.value = it + } - val widgetExtraData = intent?.extras?.getString(WIDGET_DEEPLINK_KEY) ?: return + val widgetExtraData = newIntent?.extras?.getString(WIDGET_DEEPLINK_KEY) ?: return pendingDeepLinkDestination.value = widgetExtraData }