@@ -203,7 +203,7 @@ object VolumeKeyControlModuleHandlers {
203203 abortAll()
204204 if (! isLongPress && getMediaController().isMusicActive()) {
205205 log(" Adjusting stream volume" )
206- keyHelper.adjustStreamVolume(audioManager )
206+ keyHelper.adjustStreamVolume(this )
207207 }
208208 }
209209
@@ -370,23 +370,32 @@ object VolumeKeyControlModuleHandlers {
370370 }
371371 }
372372
373- fun adjustStreamVolume (audioManager : AudioManager ) {
373+ fun adjustStreamVolume (param : MethodHookParam ) {
374374 try {
375- val direction = when (origKey) {
376- Key .UP -> KeyEvent (KeyEvent .ACTION_DOWN , KeyEvent .KEYCODE_VOLUME_UP )
377- Key .DOWN -> KeyEvent (KeyEvent .ACTION_DOWN , KeyEvent .KEYCODE_VOLUME_DOWN )
375+ val keyCode = when (origKey) {
376+ Key .UP -> KeyEvent .KEYCODE_VOLUME_UP
377+ Key .DOWN -> KeyEvent .KEYCODE_VOLUME_DOWN
378+ }
379+
380+ fun sendEvent (action : Int ) {
381+ XposedHelpers .callMethod(
382+ sessionHelper,
383+ " sendVolumeKeyEvent" ,
384+ arrayOf(
385+ KeyEvent ::class .java,
386+ Int ::class .javaPrimitiveType,
387+ Boolean ::class .javaPrimitiveType
388+ ),
389+ KeyEvent (action, keyCode),
390+ AudioManager .USE_DEFAULT_STREAM_TYPE ,
391+ false
392+ )
378393 }
379394
380- XposedHelpers .callMethod(
381- sessionHelper,
382- " sendVolumeKeyEvent" ,
383- arrayOf(
384- KeyEvent ::class .java,
385- Int ::class .javaPrimitiveType,
386- Boolean ::class .javaPrimitiveType
387- ),
388- direction, AudioManager .USE_DEFAULT_STREAM_TYPE , false
389- )
395+ sendEvent(KeyEvent .ACTION_DOWN )
396+ param.getHandler().postDelayed({
397+ sendEvent(KeyEvent .ACTION_UP )
398+ }, 20 )
390399 } catch (e: Exception ) {
391400 log(" Failed to adjust stream volume: ${e.message} " )
392401 log(" Falling back to adjustStreamVolume" )
0 commit comments