- simplified dtmf watcher implementation

This commit is contained in:
Juha Heinanen
2019-04-17 21:57:15 +03:00
parent d98fd679f1
commit b178d753f1
@@ -16,7 +16,6 @@ import android.os.CountDownTimer
import android.support.v4.content.LocalBroadcastManager import android.support.v4.content.LocalBroadcastManager
import android.view.inputmethod.InputMethodManager import android.view.inputmethod.InputMethodManager
import android.text.InputType import android.text.InputType
import android.text.TextWatcher
import android.widget.* import android.widget.*
import android.view.* import android.view.*
@@ -304,8 +303,6 @@ class MainActivity : AppCompatActivity() {
} }
} }
dtmf.tag = ArrayList<TextWatcher>()
infoButton.setOnClickListener { infoButton.setOnClickListener {
val ua = UserAgent.uas()[aorSpinner.selectedItemPosition] val ua = UserAgent.uas()[aorSpinner.selectedItemPosition]
val calls = Call.uaCalls(ua,"") val calls = Call.uaCalls(ua,"")
@@ -646,7 +643,8 @@ class MainActivity : AppCompatActivity() {
dtmf.hint = "DTMF" dtmf.hint = "DTMF"
dtmf.visibility = View.VISIBLE dtmf.visibility = View.VISIBLE
dtmf.requestFocus() dtmf.requestFocus()
(dtmf.tag as ArrayList<TextWatcher>).add(call.dtmfWatcher!!) for (c in BaresipService.calls)
dtmf.removeTextChangedListener(c.dtmfWatcher)
dtmf.addTextChangedListener(call.dtmfWatcher) dtmf.addTextChangedListener(call.dtmfWatcher)
infoButton.visibility = View.VISIBLE infoButton.visibility = View.VISIBLE
} }
@@ -745,11 +743,6 @@ class MainActivity : AppCompatActivity() {
showCall(ua) showCall(ua)
} }
"call closed" -> { "call closed" -> {
val watchers = dtmf.tag as ArrayList<TextWatcher>
if (watchers.size > 0) {
dtmf.removeTextChangedListener(watchers[0])
watchers.removeAt(0)
}
if (ua == UserAgent.uas()[aorSpinner.selectedItemPosition]) { if (ua == UserAgent.uas()[aorSpinner.selectedItemPosition]) {
showCall(ua) showCall(ua)
if (ua.account.missedCalls) if (ua.account.missedCalls)
@@ -1114,6 +1107,9 @@ class MainActivity : AppCompatActivity() {
holdButton.visibility = View.VISIBLE holdButton.visibility = View.VISIBLE
dtmf.visibility = View.VISIBLE dtmf.visibility = View.VISIBLE
dtmf.requestFocus() dtmf.requestFocus()
for (c in BaresipService.calls)
dtmf.removeTextChangedListener(c.dtmfWatcher)
dtmf.addTextChangedListener(call.dtmfWatcher)
infoButton.visibility = View.VISIBLE infoButton.visibility = View.VISIBLE
} }
} }