cordova-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Joe Bowser (JIRA)" <j...@apache.org>
Subject [jira] [Resolved] (CB-7307) On Android 4.1 events are only sent on every second menu button press (Cloned)
Date Wed, 14 Oct 2015 16:53:05 GMT

     [ https://issues.apache.org/jira/browse/CB-7307?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Joe Bowser resolved CB-7307.
----------------------------
    Resolution: Invalid
      Assignee:     (was: Andrew Grieve)

Menu button support is currently not working after the most recent refactor.  Patches are
welcome to fix this menu button, but it is not a high priority currently.

> On Android 4.1 events are only sent on every second menu button press (Cloned)
> ------------------------------------------------------------------------------
>
>                 Key: CB-7307
>                 URL: https://issues.apache.org/jira/browse/CB-7307
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: Android
>    Affects Versions: 3.5.0
>            Reporter: Keith Wong
>            Priority: Minor
>
> I have the same problem in with Cordova 3.5.0 on Android 4.4.2 emulator and Galaxy S3
4.1.2.  After investigation, the problem should be in the program CordovaWebView.java.
> {code:title=CordovaWebView.java|borderStyle=solid}
>     @Override
>     public boolean onKeyUp(int keyCode, KeyEvent event)
>     {
>         ...
>         // Legacy
>         else if (keyCode == KeyEvent.KEYCODE_MENU) {
>             if (this.lastMenuEventTime < event.getEventTime()) {
>                 this.loadUrl("javascript:cordova.fireDocumentEvent('menubutton');");
>             }
>             this.lastMenuEventTime = event.getEventTime();
>             return super.onKeyUp(keyCode, event);  // <== Problem Line
>         }
>         // If search key
>         else if (keyCode == KeyEvent.KEYCODE_SEARCH) {
>             this.loadUrl("javascript:cordova.fireDocumentEvent('searchbutton');");
>             return true;
>         }
>         ...
> {code}
> When it is changed as follows, it works fine.
> {code:title=CordovaWebView.java|borderStyle=solid}
>         // Legacy
>         else if (keyCode == KeyEvent.KEYCODE_MENU) {
>             if (this.lastMenuEventTime < event.getEventTime()) {
>                 this.loadUrl("javascript:cordova.fireDocumentEvent('menubutton');");
>             }
>             this.lastMenuEventTime = event.getEventTime();
>             return true;  // <== Changed as
>         }
> {code}
> I think the problem is calling the super.onKeyUp() method and it throws a RuntimeException
actually.  But at this point, the event is "handled", there is no reason to delegate the control
to the parent class.  Referring to a similar case below for the search button, it just returns
true when the javascript event handler is executed.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@cordova.apache.org
For additional commands, e-mail: issues-help@cordova.apache.org


Mime
View raw message