Event not delivered to listener

14,185

I found out what was causing the problem. I had issues with the volume button bug in KitKat and had added a variant of the workarounds (https://stackoverflow.com/a/21253443/467650, https://plus.google.com/+MichaelLeahy/posts/CqSCP653UrW).

I was able to get around my "double touch" problem by decreasing the time delay before running the handler that removes the navigation bar, but that again didn't work well enough with KitKat. I could of course check the Android version of the running the app, but as the workaround is really hacky to begin with I removed it all together.

Share:
14,185
Roy Solberg
Author by

Roy Solberg

Tech lead Android at FotMob. Often seen trading cryptocurrency at Binance. Check out my blog at https://blog.roysolberg.com. :)

Updated on June 18, 2022

Comments

  • Roy Solberg
    Roy Solberg almost 2 years

    I have a libgdx game that uses scene2d for the UI. I have several ImageButton instances with its own ClickListener. On some devices (only seen it on Samsung Galaxy S3 and Samsung Galaxy S4 Active so far) there is a problem with the event not being delivered unless one clicks twice quickly.

    Every time a click fails something like the following is logged:

    04-22 16:10:09.678: D/InputReader(728): Input event: value=1 when=20897610551000
    04-22 16:10:09.678: I/InputReader(728): Touch event's action is 0x0 (deviceType=0) [pCnt=1, s=0.889 ] when=20897610612000
    04-22 16:10:09.678: I/InputDispatcher(728): Delivering touch to: action: 0x0
    04-22 16:10:09.678: I/InputDispatcher(728): Delivering touch to: action: 0x3
    04-22 16:10:09.688: W/InputEventReceiver(728): Attempted to finish an input event but the input event receiver has already been disposed.
    04-22 16:10:09.688: W/InputEventReceiver(728): Attempted to finish an input event but the input event receiver has already been disposed.
    04-22 16:10:09.688: V/WindowManager(728): Window{43478730 u0 Keyguard}mOrientationRequetedFromKeyguard=false
    04-22 16:10:09.698: D/STATUSBAR-StatusBarManagerService(728): manageDisableList what=0x0 pkg=WindowManager.LayoutParams
    04-22 16:10:09.788: D/InputReader(728): Input event: value=0 when=20897720902000
    04-22 16:10:09.788: I/InputReader(728): Touch event's action is 0x1 (deviceType=0) [pCnt=1, s=] when=20897720902000
    

    I assume the statement Attempted to finish an input event but the input event receiver has already been disposed. is key here, but I can't really see why it would work when one click one more time quickly.

    What could the reason for this be? How can I debug this further to get to the bottom of this? Any clues?

    Edit: All log lines except the two last ones appears on touch down, while the last two appears on touch up. My event listener is for on click.