Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ import io.getstream.video.android.compose.ui.StreamCallActivityComposeDelegate
import io.getstream.video.android.compose.ui.components.call.activecall.AudioOnlyCallContent
import io.getstream.video.android.core.Call
import io.getstream.video.android.core.StreamVideo
import io.getstream.video.android.core.notifications.NotificationHandler
import io.getstream.video.android.datastore.delegate.StreamUserDataStore
import io.getstream.video.android.ui.call.CallScreen
import io.getstream.video.android.ui.common.StreamActivityUiDelegate
Expand All @@ -54,19 +53,6 @@ class CallActivity : ComposeStreamCallActivity() {
.copy(closeScreenOnCallEnded = false, canSkipPermissionRationale = false)
}

override fun onNewIntent(intent: Intent) {
super.onNewIntent(intent)

if (intent.action == NotificationHandler.ACTION_ACCEPT_CALL) {
val activeCall = StreamVideo.instance().state.activeCall.value
if (activeCall != null) {
leave(activeCall)
finish()
startActivity(intent)
}
}
}

@StreamCallActivityDelicateApi
override fun onPreCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) {
runBlocking {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ package io.getstream.video.android.util

import android.annotation.SuppressLint
import android.content.Context
import android.os.Bundle
import android.util.Log
import io.getstream.android.push.firebase.FirebasePushDeviceGenerator
import io.getstream.chat.android.client.ChatClient
Expand All @@ -32,6 +33,8 @@ import io.getstream.video.android.core.StreamVideo
import io.getstream.video.android.core.StreamVideoBuilder
import io.getstream.video.android.core.internal.ExperimentalStreamVideoApi
import io.getstream.video.android.core.logging.LoggingLevel
import io.getstream.video.android.core.notifications.DefaultNotificationIntentBundleResolver
import io.getstream.video.android.core.notifications.DefaultStreamIntentResolver
import io.getstream.video.android.core.notifications.NotificationConfig
import io.getstream.video.android.core.notifications.handlers.CompatibilityStreamNotificationHandler
import io.getstream.video.android.core.notifications.internal.service.CallServiceConfigRegistry
Expand All @@ -41,10 +44,13 @@ import io.getstream.video.android.data.services.stream.GetAuthDataResponse
import io.getstream.video.android.data.services.stream.StreamService
import io.getstream.video.android.datastore.delegate.StreamUserDataStore
import io.getstream.video.android.model.ApiKey
import io.getstream.video.android.model.StreamCallId
import io.getstream.video.android.model.User
import io.getstream.video.android.noise.cancellation.NoiseCancellation
import io.getstream.video.android.notification.LiveStreamMediaNotificationInterceptor
import io.getstream.video.android.notification.PausePlayMediaSessionCallback
import io.getstream.video.android.ui.common.StreamCallActivity
import io.getstream.video.android.ui.common.StreamCallActivityConfiguration
import io.getstream.video.android.util.config.AppConfig
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
Expand Down Expand Up @@ -223,6 +229,38 @@ object StreamVideoInitHelper {
mediaSessionCallback = PausePlayMediaSessionCallback(),
updateNotificationBuilderInterceptor = LiveStreamMediaNotificationInterceptor(context),
hideRingingNotificationInForeground = true,
intentResolver = DefaultStreamIntentResolver(
context,
object : DefaultNotificationIntentBundleResolver() {

override fun getAcceptCallBundle(
callId: StreamCallId,
notificationId: Int,
payload: Map<String, Any?>,
): Bundle {
return StreamCallActivity.callIntentBundle(
callId,
configuration = StreamCallActivityConfiguration(
closeScreenOnCallEnded = true,
),
leaveWhenLastInCall = true,
)
}

override fun getRejectCallBundle(
callId: StreamCallId,
payload: Map<String, Any?>,
): Bundle {
return StreamCallActivity.callIntentBundle(
callId,
configuration = StreamCallActivityConfiguration(
closeScreenOnCallEnded = true,
),
leaveWhenLastInCall = true,
)
}
},
),
),
),
tokenProvider = object : TokenProvider {
Expand Down
Loading