dispatch fake key events to dialpad input
This commit is contained in:
parent
9b86c694ff
commit
eaa17e9038
|
@ -1,7 +1,7 @@
|
||||||
package com.simplemobiletools.contacts.activities
|
package com.simplemobiletools.contacts.activities
|
||||||
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.text.SpannableStringBuilder
|
import android.view.KeyEvent
|
||||||
import com.simplemobiletools.commons.extensions.applyColorFilter
|
import com.simplemobiletools.commons.extensions.applyColorFilter
|
||||||
import com.simplemobiletools.commons.extensions.updateTextColors
|
import com.simplemobiletools.commons.extensions.updateTextColors
|
||||||
import com.simplemobiletools.contacts.R
|
import com.simplemobiletools.contacts.R
|
||||||
|
@ -36,19 +36,31 @@ class DialpadActivity : SimpleActivity() {
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun dialpadPressed(char: String) {
|
private fun dialpadPressed(char: String) {
|
||||||
dialpad_input.append(char)
|
dialpad_input.dispatchKeyEvent(getKeyEvent(getCharKeyCode(char)))
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun clearChar() {
|
private fun clearChar() {
|
||||||
val curPostion = dialpad_input.selectionEnd
|
dialpad_input.dispatchKeyEvent(getKeyEvent(KeyEvent.KEYCODE_DEL))
|
||||||
val reducedPos = Math.max(curPostion - 1, 0)
|
|
||||||
val selectedString = SpannableStringBuilder(dialpad_input.text)
|
|
||||||
selectedString.replace(reducedPos, curPostion, "")
|
|
||||||
dialpad_input.text = selectedString
|
|
||||||
dialpad_input.setSelection(reducedPos)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun clearInput() {
|
private fun clearInput() {
|
||||||
dialpad_input.setText("")
|
dialpad_input.setText("")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun getKeyEvent(keyCode: Int) = KeyEvent(0, 0, KeyEvent.ACTION_DOWN, keyCode, 0)
|
||||||
|
|
||||||
|
private fun getCharKeyCode(char: String) = when (char) {
|
||||||
|
"0" -> KeyEvent.KEYCODE_0
|
||||||
|
"1" -> KeyEvent.KEYCODE_1
|
||||||
|
"2" -> KeyEvent.KEYCODE_2
|
||||||
|
"3" -> KeyEvent.KEYCODE_3
|
||||||
|
"4" -> KeyEvent.KEYCODE_4
|
||||||
|
"5" -> KeyEvent.KEYCODE_5
|
||||||
|
"6" -> KeyEvent.KEYCODE_6
|
||||||
|
"7" -> KeyEvent.KEYCODE_7
|
||||||
|
"8" -> KeyEvent.KEYCODE_8
|
||||||
|
"9" -> KeyEvent.KEYCODE_9
|
||||||
|
"*" -> KeyEvent.KEYCODE_STAR
|
||||||
|
else -> KeyEvent.KEYCODE_POUND
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue