This repository has been archived by the owner on Jan 27, 2023. It is now read-only.
/
ReceiveCallEventsActivityKotlin.kt
61 lines (49 loc) · 2.38 KB
/
ReceiveCallEventsActivityKotlin.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package com.vonage.sample.channel.voice
import android.annotation.SuppressLint
import android.os.Bundle
import android.os.PersistableBundle
import androidx.appcompat.app.AppCompatActivity
import com.nexmo.client.NexmoCall
import com.nexmo.client.NexmoCallEventListener
import com.nexmo.client.NexmoCallHandler
import com.nexmo.client.NexmoMember
import com.nexmo.client.NexmoCallMemberStatus
import com.nexmo.client.NexmoClient
import com.nexmo.client.NexmoMediaActionState
import com.nexmo.client.request_listener.NexmoApiError
import com.nexmo.client.request_listener.NexmoRequestListener
import timber.log.Timber
class ReceiveCallEventsActivityKotlin : AppCompatActivity() {
private val callListener = object : NexmoRequestListener<NexmoCall> {
override fun onSuccess(call: NexmoCall?) {
Timber.d("Call started: " + call.toString())
call?.addCallEventListener(callEventListener)
}
override fun onError(apiError: NexmoApiError) {
Timber.d("Error: Unable to start a call ${apiError.message}")
}
}
private val callEventListener = object : NexmoCallEventListener {
override fun onDTMF(digit: String?, nexmoMember: NexmoMember?) {
Timber.d("v: digit: $digit, nexmoMember: $nexmoMember")
}
override fun onMemberStatusUpdated(memberStatus: NexmoCallMemberStatus?, nexmoMember: NexmoMember?) {
Timber.d("onMemberStatusUpdated: status: $memberStatus, nexmoMember: $nexmoMember")
}
override fun onMuteChanged(muteState: NexmoMediaActionState?, nexmoMember: NexmoMember?) {
Timber.d("onMuteChanged: muteState: $muteState, nexmoMember: $nexmoMember")
}
override fun onEarmuffChanged(earmuffState: NexmoMediaActionState?, nexmoMember: NexmoMember?) {
Timber.d("onEarmuffChanged: earmuffState: $earmuffState, nexmoMember: $nexmoMember")
}
}
@SuppressLint("MissingPermission")
override fun onCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) {
super.onCreate(savedInstanceState, persistentState)
// No need for client initialization here. Client initialization is already done in BaseApplication class.
// NexmoClient.Builder().build(this)
val client = NexmoClient.get()
client.login("JWT token")
client.call("123456", NexmoCallHandler.IN_APP, callListener)
}
}