66package ltd.evilcorp.atox
77
88import android.Manifest
9+ import android.app.PendingIntent
910import android.content.BroadcastReceiver
1011import android.content.Context
1112import android.content.Intent
1213import android.util.Log
1314import android.widget.Toast
1415import androidx.core.app.RemoteInput
1516import androidx.core.content.IntentCompat
17+ import androidx.core.os.bundleOf
18+ import androidx.navigation.NavDeepLinkBuilder
1619import im.tox.tox4j.av.exceptions.ToxavAnswerException
1720import javax.inject.Inject
1821import kotlinx.coroutines.CoroutineScope
@@ -21,6 +24,7 @@ import kotlinx.coroutines.flow.firstOrNull
2124import kotlinx.coroutines.launch
2225import kotlinx.coroutines.withContext
2326import ltd.evilcorp.atox.ui.NotificationHelper
27+ import ltd.evilcorp.atox.ui.chat.CONTACT_PUBLIC_KEY
2428import ltd.evilcorp.core.repository.ContactRepository
2529import ltd.evilcorp.core.vo.Contact
2630import ltd.evilcorp.core.vo.PublicKey
@@ -129,19 +133,20 @@ class ActionReceiver : BroadcastReceiver() {
129133 return
130134 }
131135
136+ // Show the call screen.
132137 try {
133- callManager.startCall(pk)
134- notificationHelper.showOngoingCallNotification(contact)
135- } catch (e: ToxavAnswerException ) {
136- Log .e(TAG , e.toString())
137- return
138- }
139-
140- val isSendingAudio = context.hasPermission(Manifest .permission.RECORD_AUDIO ) && callManager.startSendingAudio()
141- if (! isSendingAudio) {
142- withContext(Dispatchers .Main ) {
143- Toast .makeText(context, R .string.call_mic_permission_needed, Toast .LENGTH_LONG ).show()
144- }
138+ deepLinkToCall(context, pk).send()
139+ } catch (e: PendingIntent .CanceledException ) {
140+ Log .e(TAG , " PendingIntent.CanceledException: $e }" )
145141 }
146142 }
143+ private fun deepLinkToCall (context : Context , publicKey : PublicKey ) = NavDeepLinkBuilder (context)
144+ .setGraph(R .navigation.nav_graph)
145+ .setDestination(R .id.callFragment)
146+ .setArguments(
147+ bundleOf(
148+ CONTACT_PUBLIC_KEY to publicKey.string(),
149+ ),
150+ )
151+ .createPendingIntent()
147152}
0 commit comments