Improve: always prevent volume keys from doing their original actions

This commit is contained in:
zt515
2017-11-04 11:39:03 +08:00
parent a528cfa4a5
commit 3a8b741b93

View File

@ -52,9 +52,7 @@ class TermViewClient(val context: Context) : TerminalViewClient {
} }
override fun onKeyDown(keyCode: Int, e: KeyEvent?, session: TerminalSession?): Boolean { override fun onKeyDown(keyCode: Int, e: KeyEvent?, session: TerminalSession?): Boolean {
// Volume keys as special keys if (handleVirtualKeys(keyCode, e, true)) {
if (NeoPreference.loadBoolean(R.string.key_general_volume_as_control, false)
&& handleVirtualKeys(keyCode, e, true)) {
return true return true
} }
@ -196,14 +194,18 @@ class TermViewClient(val context: Context) : TerminalViewClient {
if (event == null) { if (event == null) {
return false return false
} }
// Volume keys as special keys
val volumeAsSpecialKeys = NeoPreference.loadBoolean(R.string.key_general_volume_as_control,
false)
val inputDevice = event.device val inputDevice = event.device
if (inputDevice != null && inputDevice.keyboardType == InputDevice.KEYBOARD_TYPE_ALPHABETIC) { if (inputDevice != null && inputDevice.keyboardType == InputDevice.KEYBOARD_TYPE_ALPHABETIC) {
return false return false
} else if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) { } else if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
mVirtualControlKeyDown = down mVirtualControlKeyDown = down && volumeAsSpecialKeys
return true return true
} else if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) { } else if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
mVirtualFnKeyDown = down mVirtualFnKeyDown = down && volumeAsSpecialKeys
return true return true
} }
return false return false
@ -225,7 +227,7 @@ class TermViewClient(val context: Context) : TerminalViewClient {
} }
} }
private fun updateExtraKeysVisibility() : Boolean { private fun updateExtraKeysVisibility(): Boolean {
val extraKeysView = termData?.extraKeysView ?: return false val extraKeysView = termData?.extraKeysView ?: return false
return if (NeoPreference.loadBoolean(R.string.key_ui_eks_enabled, true)) { return if (NeoPreference.loadBoolean(R.string.key_ui_eks_enabled, true)) {