incubator-callback-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Joe Bowser <bows...@gmail.com>
Subject Re: [Android] Back Key events and Reality
Date Thu, 19 Apr 2012 19:07:05 GMT
There's a problem with the log statement that you provided, namely the fact
that this.backHistory() actually goes back in the history before it returns
true or false. This was causing the app to constantly exit when we were
running mobile-spec, which was similar to the original bug.   I removed it
because I wanted the log statements to just log, and here's what I got from
the Motorola Device:

04-20 02:56:14.187 19771 19771 D BackPressed: in onBackPressed
04-20 02:56:14.187 19771 19771 D BackPressed: bound = false
04-20 02:56:14.187 19771 19771 D BackPressed: exiting
04-20 02:56:14.234  1032  1032 D ActivitityRenderTarget: onResume
04-20 02:56:14.257 19771 19771 D BackButton: I got an up from KEYCODE_BACK
04-20 02:56:14.265 19771 19771 D BackButton: I'm doing nothing
04-20 02:56:14.265 19771 19771 D BackPressed: returning false

So, here we're exiting the app on the keyDown, and the keyUp is also
happening which is exactly what I would expect since you have to do a
onKeyDown before an onKeyUp.  Here's the same thing on the Samsung Galaxy
S2:

D/BackPressed(17630): in onBackPressed
D/BackPressed(17630): bound = false
D/BackPressed(17630): exiting
I/InputDispatcher( 2704): Delivering key to current input target: action:
1, channel '409de9f8 org.apache.cordova/org.apache.cordova.StandAlone
(server)'

...A bunch of crap about widgets not being drawn right on the home screen
which is resuming...

D/BackButton(17630): I got an up from KEYCODE_BACK
D/BackButton(17630): I'm doing nothing
D/BackPressed(17630): returning false

I should remove the crap Samsung puts on their default build, but this does
illustrate my point more clearly.  Once we remove the extra backHistory
call, things seem to work properly on this end and the app does exit.  It
seems incredibly strange that the Note would fail.

On Thu, Apr 19, 2012 at 11:48 AM, Simon MacDonald <simon.macdonald@gmail.com
> wrote:

> Oh, and here is the dirt simple .html I was using. I was checking a
> possible camera bug and found I couldn't exit the app.
>
> http://dl.dropbox.com/u/887989/camera.html
>
> Simon Mac Donald
> http://hi.im/simonmacdonald
>
>
> On Thu, Apr 19, 2012 at 2:44 PM, Simon MacDonald
> <simon.macdonald@gmail.com>wrote:
>
> > You can get my version of DroidGap with the extra logs from:
> >
> > http://dl.dropbox.com/u/887989/DroidGap.java
> >
> > Did you clone the 1.6.1 tag or the bleeding edge?
> >
> > Simon Mac Donald
> > http://hi.im/simonmacdonald
> >
> >
> > On Thu, Apr 19, 2012 at 2:38 PM, Joe Bowser <bowserj@gmail.com> wrote:
> >
> >> I cloned a fresh repo, and what's in DroidGap.java works on this end,
> and
> >> matches what I have in my working tree.  We don't have your attached
> >> DroidGap.java, can you send it again?
> >>
> >> On Thu, Apr 19, 2012 at 11:28 AM, Simon MacDonald <
> >> simon.macdonald@gmail.com
> >> > wrote:
> >>
> >> > When I pull the latest from incubator-cordova-android and build it
> into
> >> my
> >> > app the back key does not work. I've verified this on my samsung note
> >> and
> >> > on the emulator.
> >> >
> >> > Please take a look at the attached DroidGap.java file which I've
> added a
> >> > few logs. When I click on the back button on the note or on the
> >> emulator I
> >> > see these logs:
> >> >
> >> > 04-19 14:16:49.373: D/BackButton(390): I got an up from KEYCODE_BACK
> >> > 04-19 14:16:49.373: D/BackButton(390): I'm doing nothing
> >> > 04-19 14:16:49.373: D/BackPressed(390): returning false
> >> >
> >> > I'm not seeing the onBackPressed method being called at all. Can
> Joe/Fil
> >> > try my DroidGap.java to see if they get a different set of logs?
> >> >
> >> > Note that the .html I'm loading has one and only one file and does not
> >> > call 'document.addEventListener("backbutton", onBackKey, true)". It is
> >> just
> >> > a plain vanilla .html file.
> >> >
> >> > Simon Mac Donald
> >> > http://hi.im/simonmacdonald
> >> >
> >> >
> >> > On Thu, Apr 19, 2012 at 2:17 PM, Filip Maj <fil@adobe.com> wrote:
> >> >
> >> >> We definitely cannot revert that commit Joe put in. Back button
> didn't
> >> >> work at all (just exited) before that commit.
> >> >>
> >> >> Sucks that the note is broken but it works as expected on other
> devices
> >> >> (as Joe points out).
> >> >>
> >> >> Simon can you try to debug the issue on the Note and see how the
> >> execution
> >> >> flow differs from the other Android devices?
> >> >>
> >> >> On 4/19/12 10:58 AM, "Joe Bowser" <bowserj@gmail.com> wrote:
> >> >>
> >> >> >OK, I just went through Mobile Spec's manual tests on the following
> >> >> >devices:
> >> >> >
> >> >> >Galaxy Nexus
> >> >> >Nexus S
> >> >> >Motorola RAZR
> >> >> >Samsung Galaxy S2
> >> >> >LG Optimus One
> >> >> >
> >> >> >Currently, if you don't override the back button, the backPressed
> >> event
> >> >> >fires on the keyDown.  If we override the event, the backbutton
> >> doesn't
> >> >> >work on the keydown, but the event fires on the keyup instead.
>  This I
> >> >> >think is the proper behaviour since we're intercepting the back
> button
> >> >> and
> >> >> >making it the users' responsibility to handle this event.
> >> >> >
> >> >> >The old method had the default behaviour for the back button (where
> it
> >> >> >quits on keydown) occur, as well as the keyUp behaviour happen.
 Of
> >> >> >course,
> >> >> >since the app is exited and is in the background whatever happens
> with
> >> >> the
> >> >> >back button at that point is moot.  The fact is that I expect the
> back
> >> >> >button to work when I press it, and I don't consciously think about
> >> key
> >> >> up
> >> >> >or key down when I do so.  I also think that Google put it on
> keydown
> >> for
> >> >> >a
> >> >> >reason, especially since it's not really a key anymore.
> >> >> >
> >> >> >On Thu, Apr 19, 2012 at 10:48 AM, Joe Bowser <bowserj@gmail.com>
> >> wrote:
> >> >> >
> >> >> >> You're saying that the behaviour is different on the Note?
I'll
> run
> >> >> >> through our device bank here, but the fact is that the Back
Button
> >> >> would
> >> >> >> ALWAYS exit, not progress through the history but just straight
up
> >> exit
> >> >> >> regardless of where in the app you were.  What I added was
> >> backPressed
> >> >> >> which would only exit if you were at the top of the history.
>  Also,
> >> >> >> backPressed should be supported for Android versions higher
than
> >> >> Android
> >> >> >> 2.0, and since we're only supporting 2.1+, we should have
been
> fine.
> >> >> >>
> >> >> >> I'll investigate this, but honestly if it's not consistent
across
> >> >> >>devices,
> >> >> >> what do we do then?
> >> >> >>
> >> >> >> On Thu, Apr 19, 2012 at 10:26 AM, Simon MacDonald <
> >> >> >> simon.macdonald@gmail.com> wrote:
> >> >> >>
> >> >> >>> The reason we switched to keyUp is so you could slide
your finger
> >> off
> >> >> >>>the
> >> >> >>> up button in case you changed your mind about clicking
on the
> back
> >> >> >>>button.
> >> >> >>>
> >> >> >>> I noticed that you checked in:
> >> >> >>>
> >> >> >>>
> >> >> >>>
> >> >> >>>
> >> >>
> >> https://git-wip-us.apache.org/repos/asf?p=incubator-cordova-android.git
> ;
> >> >> >>>a=commit;h=180696baec28d6e6b67e8bb23a5302f21bce6b79
> >> >> >>>
> >> >> >>> On my Samsung Galaxy Note running Android 2.3.6 the back
button
> >> does
> >> >> >>>not
> >> >> >>> work. That is when I do not regisiter for a "backbutton"
listener
> >> and
> >> >> I
> >> >> >>> expect that when I click the back key that my app would
exit.
> With
> >> our
> >> >> >>>fix
> >> >> >>> the back button doesn't exit the app. I have to click
the home
> >> button
> >> >> >>>to
> >> >> >>> exit.
> >> >> >>>
> >> >> >>> Reverting your change returns the back button behaviour
to
> normal.
> >> So
> >> >> >>> something is still janky. I haven't been able to test
it on my
> >> phone
> >> >> >>>as I
> >> >> >>> can't convince it to be recognized on my laptop.
> >> >> >>>
> >> >> >>> Simon Mac Donald
> >> >> >>> http://hi.im/simonmacdonald
> >> >> >>>
> >> >> >>>
> >> >> >>> On Tue, Apr 17, 2012 at 8:46 PM, Joe Bowser <bowserj@gmail.com>
> >> >> wrote:
> >> >> >>>
> >> >> >>> > Hey
> >> >> >>> >
> >> >> >>> > Remember this issue:
> >> >> >>> > https://issues.apache.org/jira/browse/CB-367
> >> >> >>> >
> >> >> >>> > I'm surprised that I'm catching it now, but the Back
Button is
> >> >> really
> >> >> >>> janky
> >> >> >>> > on my Nexus S running 2.3.6, and I'm working on a
fix now.
>  What
> >> was
> >> >> >>>the
> >> >> >>> > reasoning behind the Back Button being on the keyUp
instead of
> >> the
> >> >> >>> keyDown?
> >> >> >>> > I don't remember.
> >> >> >>> >
> >> >> >>> > Joe
> >> >> >>> >
> >> >> >>>
> >> >> >>
> >> >> >>
> >> >>
> >> >>
> >> >
> >>
> >
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message