diff --git a/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt b/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt index 4dc94703..45d410dc 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt @@ -16,7 +16,6 @@ import android.os.CountDownTimer import android.support.v4.content.LocalBroadcastManager import android.view.inputmethod.InputMethodManager import android.text.InputType -import android.text.TextWatcher import android.widget.* import android.view.* @@ -304,8 +303,6 @@ class MainActivity : AppCompatActivity() { } } - dtmf.tag = ArrayList() - infoButton.setOnClickListener { val ua = UserAgent.uas()[aorSpinner.selectedItemPosition] val calls = Call.uaCalls(ua,"") @@ -646,7 +643,8 @@ class MainActivity : AppCompatActivity() { dtmf.hint = "DTMF" dtmf.visibility = View.VISIBLE dtmf.requestFocus() - (dtmf.tag as ArrayList).add(call.dtmfWatcher!!) + for (c in BaresipService.calls) + dtmf.removeTextChangedListener(c.dtmfWatcher) dtmf.addTextChangedListener(call.dtmfWatcher) infoButton.visibility = View.VISIBLE } @@ -745,11 +743,6 @@ class MainActivity : AppCompatActivity() { showCall(ua) } "call closed" -> { - val watchers = dtmf.tag as ArrayList - if (watchers.size > 0) { - dtmf.removeTextChangedListener(watchers[0]) - watchers.removeAt(0) - } if (ua == UserAgent.uas()[aorSpinner.selectedItemPosition]) { showCall(ua) if (ua.account.missedCalls) @@ -1114,6 +1107,9 @@ class MainActivity : AppCompatActivity() { holdButton.visibility = View.VISIBLE dtmf.visibility = View.VISIBLE dtmf.requestFocus() + for (c in BaresipService.calls) + dtmf.removeTextChangedListener(c.dtmfWatcher) + dtmf.addTextChangedListener(call.dtmfWatcher) infoButton.visibility = View.VISIBLE } }