Erel,
I have.
The log shows that when the .SetOnTouchListener initially gets called, it is with the Down event. In order to determine if the user is doing a click or a move event, have to let .SetOnTouchListener return TRUE to continue. (can't have it return FALSE at the beginning, or else no Move events are ever captured)
Then, can determine if the next event is either a Move or an Up event, and can then return FALSE if no Move Event, but the initial Down event is consumed, so nothing gets passed to the underlying button, except maybe the Up event.
But what to do with that? I can programatically determine if the user wanted to pass a click or a longpress, as I can calculate the time delay between the Down and the Up events, but is there a way to put the Down event back on the stack to send to the View below?
I had it working so that the user could double click (by setting a Global variable to catch the button-down state the first time), with the second click event not including a move event that would then return false and pass to the underlying view. But that doesn't really follow any known Android functionality that I know about.
Ross
Edit: the functionality I'm trying to reproduce is exactly what happens in the App Drawer or Homescreens. The user can tap anywhere on the screen, and start a swipe that is translated to a movement for the screen, whether it is started on an app icon or not. If the user doesn't swipe (i.e. a click event, and it's not on an app icon, then nothing, if the click event is on top of an icon, then start the app, if it is a longpress event, then take whatever action should be started by a longpress.
I'm not trying to do anything that fancy, I have just been trying to figure out how to use the Sliding Panels example code with swipes started on Views other than a Panel, so can swap Panels that way.
Ugh!