Thanks for the new version.
Here is the Logcat:
01-01 20:03:57.654: V/SDLSurface(32670): onKey, received keyCode: 1914
01-01 20:03:57.654: V/SDLSurface(32670): KeyEvent.ACTION_DOWN
01-01 20:03:57.654: V/SDLSurface(32670): High keyCode, converted to normal keyCode: 19
01-01 20:03:57.654: V/SDLSurface(32670): Key strength: 14.0
01-01 20:03:57.654: V/SDLSurface(32670): Mapped to Controller #1
01-01 20:03:57.654: V/SDLSurface(32670): Old axisX: 28
01-01 20:03:57.654: V/SDLSurface(32670): Old axisY: 22
01-01 20:03:57.654: V/SDLSurface(32670): New axisX: 28
01-01 20:03:57.654: V/SDLSurface(32670): New axisY: 17
It seems that's correct.
For the first problem, does your IME ever return the base keycode 21 instead of the high keycode 21
My IME sends never <255 Keycodes for the analog sticks. It sends everytime "keyXX" codes (21 = 21xx).
But that does not matter. If the analog stick crossed the deadzone point (>) it will send a KeyDown and a KeyUp if the analog stick fall under the deadzone point (<). So you have to take a look at KeyDown and KeyUp only.
It seems that you never use KeyUps:
01-01 20:21:35.204: V/SDLSurface(32670): onKey, received keyCode: 1929
01-01 20:21:35.204: V/SDLSurface(32670): KeyEvent.ACTION_DOWN
01-01 20:21:35.204: V/SDLSurface(32670): High keyCode, converted to normal keyCode: 19
01-01 20:21:35.204: V/SDLSurface(32670): Key strength: 29.0
01-01 20:21:35.204: V/SDLSurface(32670): Mapped to Controller #1
01-01 20:21:35.204: V/SDLSurface(32670): Old axisX: -12
01-01 20:21:35.204: V/SDLSurface(32670): Old axisY: 33
01-01 20:21:35.204: V/SDLSurface(32670): New axisX: -12
01-01 20:21:35.204: V/SDLSurface(32670): New axisY: 36
01-01 20:21:35.224: V/SDLSurface(32670): onKey, received keyCode: 1932
01-01 20:21:35.224: V/SDLSurface(32670): KeyEvent.ACTION_DOWN
01-01 20:21:35.224: V/SDLSurface(32670): High keyCode, converted to normal keyCode: 19
01-01 20:21:35.224: V/SDLSurface(32670): Key strength: 32.0
01-01 20:21:35.224: V/SDLSurface(32670): Mapped to Controller #1
01-01 20:21:35.224: V/SDLSurface(32670): Old axisX: -12
01-01 20:21:35.224: V/SDLSurface(32670): Old axisY: 36
01-01 20:21:35.224: V/SDLSurface(32670): New axisX: -12
01-01 20:21:35.224: V/SDLSurface(32670): New axisY: 40
01-01 20:21:35.814: V/SDLSurface(32670): onKey, received keyCode: 1924
01-01 20:21:35.814: V/SDLSurface(32670): KeyEvent.ACTION_DOWN
01-01 20:21:35.814: V/SDLSurface(32670): High keyCode, converted to normal keyCode: 19
01-01 20:21:35.814: V/SDLSurface(32670): Key strength: 24.0
01-01 20:21:35.814: V/SDLSurface(32670): Mapped to Controller #1
01-01 20:21:35.814: V/SDLSurface(32670): Old axisX: -12
01-01 20:21:35.814: V/SDLSurface(32670): Old axisY: 40
01-01 20:21:35.814: V/SDLSurface(32670): New axisX: -12
01-01 20:21:35.814: V/SDLSurface(32670): New axisY: 30
01-01 20:21:35.824: V/SDLSurface(32670): onKey, received keyCode: 19
01-01 20:21:35.824: V/SDLSurface(32670): KeyEvent.ACTION_DOWN
01-01 20:21:35.824: V/SDL_androidkeyboard(32670): Converted Android KeyCode 19 into SDL ScanCode 82