From 79239570208b31f0057026776937b75a2ab55a55 Mon Sep 17 00:00:00 2001 From: Hepolise Date: Sat, 6 Dec 2025 20:43:09 +0300 Subject: [PATCH 1/3] fix(Module): adjustStreamVolume: send ACTION_UP event --- .../module/VolumeKeyControlModuleHandlers.kt | 34 ++++++++++++------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/ru/hepolise/volumekeytrackcontrol/module/VolumeKeyControlModuleHandlers.kt b/app/src/main/java/ru/hepolise/volumekeytrackcontrol/module/VolumeKeyControlModuleHandlers.kt index 152d5d5..98ca34a 100644 --- a/app/src/main/java/ru/hepolise/volumekeytrackcontrol/module/VolumeKeyControlModuleHandlers.kt +++ b/app/src/main/java/ru/hepolise/volumekeytrackcontrol/module/VolumeKeyControlModuleHandlers.kt @@ -372,21 +372,29 @@ object VolumeKeyControlModuleHandlers { fun adjustStreamVolume(audioManager: AudioManager) { try { - val direction = when (origKey) { - Key.UP -> KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_VOLUME_UP) - Key.DOWN -> KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_VOLUME_DOWN) + val keyCode = when (origKey) { + Key.UP -> KeyEvent.KEYCODE_VOLUME_UP + Key.DOWN -> KeyEvent.KEYCODE_VOLUME_UP + } + + fun send(action: Int) { + XposedHelpers.callMethod( + sessionHelper, + "sendVolumeKeyEvent", + arrayOf( + KeyEvent::class.java, + Int::class.javaPrimitiveType, + Boolean::class.javaPrimitiveType + ), + KeyEvent(action, keyCode), + AudioManager.USE_DEFAULT_STREAM_TYPE, + false + ) } - XposedHelpers.callMethod( - sessionHelper, - "sendVolumeKeyEvent", - arrayOf( - KeyEvent::class.java, - Int::class.javaPrimitiveType, - Boolean::class.javaPrimitiveType - ), - direction, AudioManager.USE_DEFAULT_STREAM_TYPE, false - ) + send(KeyEvent.ACTION_DOWN) + Thread.sleep(20) + send(KeyEvent.ACTION_UP) } catch (e: Exception) { log("Failed to adjust stream volume: ${e.message}") log("Falling back to adjustStreamVolume") From ea95561f4a0f0f2583954bb2fd44ef6a2deb137e Mon Sep 17 00:00:00 2001 From: Hepolise Date: Sat, 6 Dec 2025 20:51:24 +0300 Subject: [PATCH 2/3] fix(Module): adjustStreamVolume: send ACTION_UP event --- .../module/VolumeKeyControlModuleHandlers.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/ru/hepolise/volumekeytrackcontrol/module/VolumeKeyControlModuleHandlers.kt b/app/src/main/java/ru/hepolise/volumekeytrackcontrol/module/VolumeKeyControlModuleHandlers.kt index 98ca34a..4381046 100644 --- a/app/src/main/java/ru/hepolise/volumekeytrackcontrol/module/VolumeKeyControlModuleHandlers.kt +++ b/app/src/main/java/ru/hepolise/volumekeytrackcontrol/module/VolumeKeyControlModuleHandlers.kt @@ -374,7 +374,7 @@ object VolumeKeyControlModuleHandlers { try { val keyCode = when (origKey) { Key.UP -> KeyEvent.KEYCODE_VOLUME_UP - Key.DOWN -> KeyEvent.KEYCODE_VOLUME_UP + Key.DOWN -> KeyEvent.KEYCODE_VOLUME_DOWN } fun send(action: Int) { From 460f23c42d967d6fff16b5283ccac6e882eb8434 Mon Sep 17 00:00:00 2001 From: Hepolise Date: Sat, 6 Dec 2025 21:04:50 +0300 Subject: [PATCH 3/3] fix(Module): adjustStreamVolume: send ACTION_UP event --- .../module/VolumeKeyControlModuleHandlers.kt | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/ru/hepolise/volumekeytrackcontrol/module/VolumeKeyControlModuleHandlers.kt b/app/src/main/java/ru/hepolise/volumekeytrackcontrol/module/VolumeKeyControlModuleHandlers.kt index 4381046..de1165c 100644 --- a/app/src/main/java/ru/hepolise/volumekeytrackcontrol/module/VolumeKeyControlModuleHandlers.kt +++ b/app/src/main/java/ru/hepolise/volumekeytrackcontrol/module/VolumeKeyControlModuleHandlers.kt @@ -203,7 +203,7 @@ object VolumeKeyControlModuleHandlers { abortAll() if (!isLongPress && getMediaController().isMusicActive()) { log("Adjusting stream volume") - keyHelper.adjustStreamVolume(audioManager) + keyHelper.adjustStreamVolume(this) } } @@ -370,14 +370,14 @@ object VolumeKeyControlModuleHandlers { } } - fun adjustStreamVolume(audioManager: AudioManager) { + fun adjustStreamVolume(param: MethodHookParam) { try { val keyCode = when (origKey) { Key.UP -> KeyEvent.KEYCODE_VOLUME_UP Key.DOWN -> KeyEvent.KEYCODE_VOLUME_DOWN } - fun send(action: Int) { + fun sendEvent(action: Int) { XposedHelpers.callMethod( sessionHelper, "sendVolumeKeyEvent", @@ -392,9 +392,10 @@ object VolumeKeyControlModuleHandlers { ) } - send(KeyEvent.ACTION_DOWN) - Thread.sleep(20) - send(KeyEvent.ACTION_UP) + sendEvent(KeyEvent.ACTION_DOWN) + param.getHandler().postDelayed({ + sendEvent(KeyEvent.ACTION_UP) + }, 20) } catch (e: Exception) { log("Failed to adjust stream volume: ${e.message}") log("Falling back to adjustStreamVolume")