You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cordova.apache.org by "Hugo De Zela (Created) (JIRA)" <ji...@apache.org> on 2012/03/31 08:18:40 UTC

[jira] [Created] (CB-417) D-pad events not firing in Google TV

D-pad events not firing in Google TV
------------------------------------

                 Key: CB-417
                 URL: https://issues.apache.org/jira/browse/CB-417
             Project: Apache Callback
          Issue Type: Bug
          Components: Android
    Affects Versions: 1.5.0, 1.4.0
         Environment: Eclipse on Linux with Google TV add-on, Phonegap 1.5 & 1.4 (only tested these versions)
            Reporter: Hugo De Zela
            Assignee: Joe Bowser


Any Javascript calls to D-pad events or special button events (Play, FFW, etc...) don't fire in Phonegap.

Have tried: keypress, keydown, keyup.

However, if I register an override in the main js file like this:
[code]
@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        WebView myWebView = (WebView) findViewById(R.id.webview);
        if (keyCode == KeyEvent.KEYCODE_DPAD_UP) { myWebView.loadUrl("javascript:daleTecla('UP');"); return true; }
        if (keyCode == KeyEvent.KEYCODE_DPAD_DOWN) { myWebView.loadUrl("javascript:daleTecla('DOWN');"); return true; }
        if (keyCode == KeyEvent.KEYCODE_DPAD_LEFT) { myWebView.loadUrl("javascript:daleTecla('LEFT');"); return true; }
        if (keyCode == KeyEvent.KEYCODE_DPAD_RIGHT) { myWebView.loadUrl("javascript:daleTecla('RIGHT');"); return true; }
        if (keyCode == KeyEvent.KEYCODE_ENTER || keyCode == KeyEvent.KEYCODE_DPAD_CENTER) { myWebView.loadUrl("javascript:daleTecla('ENTER');"); return true; }
        if (keyCode == KeyEvent.KEYCODE_MEDIA_PLAY || keyCode == KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE) { myWebView.loadUrl("javascript:daleTecla('PLAYPAUSE');"); return true; }
        if (keyCode == KeyEvent.KEYCODE_MEDIA_NEXT) { myWebView.loadUrl("javascript:daleTecla('NEXT');"); return true; }
        if (keyCode == KeyEvent.KEYCODE_MEDIA_PREVIOUS) { myWebView.loadUrl("javascript:daleTecla('PREV');"); return true; }
        if (keyCode == KeyEvent.KEYCODE_MEDIA_FAST_FORWARD) { myWebView.loadUrl("javascript:daleTecla('FFW');"); return true; }
        if (keyCode == KeyEvent.KEYCODE_MEDIA_REWIND) { myWebView.loadUrl("javascript:daleTecla('REW');"); return true; }
        if (keyCode == KeyEvent.KEYCODE_MEDIA_STOP) { myWebView.loadUrl("javascript:daleTecla('STOP');"); return true; }
        if (keyCode == KeyEvent.KEYCODE_MENU) { myWebView.loadUrl("javascript:daleTecla('MENU');"); return true; }
        return super.onKeyDown(keyCode, event);
    }
[/code]

The javascript "daleTecla" (my keypress handler), receives all except KEYCODE_DPAD_LEFT. Sometimes, but only AFTER DPAD_RIGHT is called, DPAD_LEFT fires, this is not consistent behavior though.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (CB-417) D-pad events not firing in Google TV

Posted by "Joe Bowser (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CB-417?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13243049#comment-13243049 ] 

Joe Bowser commented on CB-417:
-------------------------------

What Google TV are you testing this out on? Just the emulator or on Fishtank? 
                
> D-pad events not firing in Google TV
> ------------------------------------
>
>                 Key: CB-417
>                 URL: https://issues.apache.org/jira/browse/CB-417
>             Project: Apache Callback
>          Issue Type: Bug
>          Components: Android
>    Affects Versions: 1.4.0, 1.5.0
>         Environment: Eclipse on Linux with Google TV add-on, Phonegap 1.5 & 1.4 (only tested these versions)
>            Reporter: Hugo De Zela
>            Assignee: Joe Bowser
>              Labels: google, tv
>
> Any Javascript calls to D-pad events or special button events (Play, FFW, etc...) don't fire in Phonegap.
> Have tried: keypress, keydown, keyup.
> However, if I register an override in the main js file like this:
> [code]
> @Override
>     public boolean onKeyDown(int keyCode, KeyEvent event) {
>         WebView myWebView = (WebView) findViewById(R.id.webview);
>         if (keyCode == KeyEvent.KEYCODE_DPAD_UP) { myWebView.loadUrl("javascript:daleTecla('UP');"); return true; }
>         if (keyCode == KeyEvent.KEYCODE_DPAD_DOWN) { myWebView.loadUrl("javascript:daleTecla('DOWN');"); return true; }
>         if (keyCode == KeyEvent.KEYCODE_DPAD_LEFT) { myWebView.loadUrl("javascript:daleTecla('LEFT');"); return true; }
>         if (keyCode == KeyEvent.KEYCODE_DPAD_RIGHT) { myWebView.loadUrl("javascript:daleTecla('RIGHT');"); return true; }
>         if (keyCode == KeyEvent.KEYCODE_ENTER || keyCode == KeyEvent.KEYCODE_DPAD_CENTER) { myWebView.loadUrl("javascript:daleTecla('ENTER');"); return true; }
>         if (keyCode == KeyEvent.KEYCODE_MEDIA_PLAY || keyCode == KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE) { myWebView.loadUrl("javascript:daleTecla('PLAYPAUSE');"); return true; }
>         if (keyCode == KeyEvent.KEYCODE_MEDIA_NEXT) { myWebView.loadUrl("javascript:daleTecla('NEXT');"); return true; }
>         if (keyCode == KeyEvent.KEYCODE_MEDIA_PREVIOUS) { myWebView.loadUrl("javascript:daleTecla('PREV');"); return true; }
>         if (keyCode == KeyEvent.KEYCODE_MEDIA_FAST_FORWARD) { myWebView.loadUrl("javascript:daleTecla('FFW');"); return true; }
>         if (keyCode == KeyEvent.KEYCODE_MEDIA_REWIND) { myWebView.loadUrl("javascript:daleTecla('REW');"); return true; }
>         if (keyCode == KeyEvent.KEYCODE_MEDIA_STOP) { myWebView.loadUrl("javascript:daleTecla('STOP');"); return true; }
>         if (keyCode == KeyEvent.KEYCODE_MENU) { myWebView.loadUrl("javascript:daleTecla('MENU');"); return true; }
>         return super.onKeyDown(keyCode, event);
>     }
> [/code]
> The javascript "daleTecla" (my keypress handler), receives all except KEYCODE_DPAD_LEFT. Sometimes, but only AFTER DPAD_RIGHT is called, DPAD_LEFT fires, this is not consistent behavior though.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (CB-417) D-pad events not firing in Google TV

Posted by "Hugo De Zela (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CB-417?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13243051#comment-13243051 ] 

Hugo De Zela commented on CB-417:
---------------------------------

I've tested on the emulator, Sony GoogleTV (NSZ-GT1) and Logitech Revue (both upgraded to 3.1). Behavior is the same on all platforms.
                
> D-pad events not firing in Google TV
> ------------------------------------
>
>                 Key: CB-417
>                 URL: https://issues.apache.org/jira/browse/CB-417
>             Project: Apache Callback
>          Issue Type: Bug
>          Components: Android
>    Affects Versions: 1.4.0, 1.5.0
>         Environment: Eclipse on Linux with Google TV add-on, Phonegap 1.5 & 1.4 (only tested these versions)
>            Reporter: Hugo De Zela
>            Assignee: Joe Bowser
>              Labels: google, tv
>
> Any Javascript calls to D-pad events or special button events (Play, FFW, etc...) don't fire in Phonegap.
> Have tried: keypress, keydown, keyup.
> However, if I register an override in the main js file like this:
> [code]
> @Override
>     public boolean onKeyDown(int keyCode, KeyEvent event) {
>         WebView myWebView = (WebView) findViewById(R.id.webview);
>         if (keyCode == KeyEvent.KEYCODE_DPAD_UP) { myWebView.loadUrl("javascript:daleTecla('UP');"); return true; }
>         if (keyCode == KeyEvent.KEYCODE_DPAD_DOWN) { myWebView.loadUrl("javascript:daleTecla('DOWN');"); return true; }
>         if (keyCode == KeyEvent.KEYCODE_DPAD_LEFT) { myWebView.loadUrl("javascript:daleTecla('LEFT');"); return true; }
>         if (keyCode == KeyEvent.KEYCODE_DPAD_RIGHT) { myWebView.loadUrl("javascript:daleTecla('RIGHT');"); return true; }
>         if (keyCode == KeyEvent.KEYCODE_ENTER || keyCode == KeyEvent.KEYCODE_DPAD_CENTER) { myWebView.loadUrl("javascript:daleTecla('ENTER');"); return true; }
>         if (keyCode == KeyEvent.KEYCODE_MEDIA_PLAY || keyCode == KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE) { myWebView.loadUrl("javascript:daleTecla('PLAYPAUSE');"); return true; }
>         if (keyCode == KeyEvent.KEYCODE_MEDIA_NEXT) { myWebView.loadUrl("javascript:daleTecla('NEXT');"); return true; }
>         if (keyCode == KeyEvent.KEYCODE_MEDIA_PREVIOUS) { myWebView.loadUrl("javascript:daleTecla('PREV');"); return true; }
>         if (keyCode == KeyEvent.KEYCODE_MEDIA_FAST_FORWARD) { myWebView.loadUrl("javascript:daleTecla('FFW');"); return true; }
>         if (keyCode == KeyEvent.KEYCODE_MEDIA_REWIND) { myWebView.loadUrl("javascript:daleTecla('REW');"); return true; }
>         if (keyCode == KeyEvent.KEYCODE_MEDIA_STOP) { myWebView.loadUrl("javascript:daleTecla('STOP');"); return true; }
>         if (keyCode == KeyEvent.KEYCODE_MENU) { myWebView.loadUrl("javascript:daleTecla('MENU');"); return true; }
>         return super.onKeyDown(keyCode, event);
>     }
> [/code]
> The javascript "daleTecla" (my keypress handler), receives all except KEYCODE_DPAD_LEFT. Sometimes, but only AFTER DPAD_RIGHT is called, DPAD_LEFT fires, this is not consistent behavior though.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Resolved] (CB-417) D-pad events not firing in Google TV

Posted by "Joe Bowser (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CB-417?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Joe Bowser resolved CB-417.
---------------------------

    Resolution: Duplicate

Superceded by CB-913
                
> D-pad events not firing in Google TV
> ------------------------------------
>
>                 Key: CB-417
>                 URL: https://issues.apache.org/jira/browse/CB-417
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: Android
>    Affects Versions: 1.4.0, 1.5.0
>         Environment: Eclipse on Linux with Google TV add-on, Phonegap 1.5 & 1.4 (only tested these versions)
>            Reporter: Hugo De Zela
>            Assignee: Joe Bowser
>            Priority: Minor
>              Labels: google, tv
>
> Any Javascript calls to D-pad events or special button events (Play, FFW, etc...) don't fire in Phonegap.
> Have tried: keypress, keydown, keyup.
> However, if I register an override in the main js file like this:
> [code]
> @Override
>     public boolean onKeyDown(int keyCode, KeyEvent event) {
>         WebView myWebView = (WebView) findViewById(R.id.webview);
>         if (keyCode == KeyEvent.KEYCODE_DPAD_UP) { myWebView.loadUrl("javascript:daleTecla('UP');"); return true; }
>         if (keyCode == KeyEvent.KEYCODE_DPAD_DOWN) { myWebView.loadUrl("javascript:daleTecla('DOWN');"); return true; }
>         if (keyCode == KeyEvent.KEYCODE_DPAD_LEFT) { myWebView.loadUrl("javascript:daleTecla('LEFT');"); return true; }
>         if (keyCode == KeyEvent.KEYCODE_DPAD_RIGHT) { myWebView.loadUrl("javascript:daleTecla('RIGHT');"); return true; }
>         if (keyCode == KeyEvent.KEYCODE_ENTER || keyCode == KeyEvent.KEYCODE_DPAD_CENTER) { myWebView.loadUrl("javascript:daleTecla('ENTER');"); return true; }
>         if (keyCode == KeyEvent.KEYCODE_MEDIA_PLAY || keyCode == KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE) { myWebView.loadUrl("javascript:daleTecla('PLAYPAUSE');"); return true; }
>         if (keyCode == KeyEvent.KEYCODE_MEDIA_NEXT) { myWebView.loadUrl("javascript:daleTecla('NEXT');"); return true; }
>         if (keyCode == KeyEvent.KEYCODE_MEDIA_PREVIOUS) { myWebView.loadUrl("javascript:daleTecla('PREV');"); return true; }
>         if (keyCode == KeyEvent.KEYCODE_MEDIA_FAST_FORWARD) { myWebView.loadUrl("javascript:daleTecla('FFW');"); return true; }
>         if (keyCode == KeyEvent.KEYCODE_MEDIA_REWIND) { myWebView.loadUrl("javascript:daleTecla('REW');"); return true; }
>         if (keyCode == KeyEvent.KEYCODE_MEDIA_STOP) { myWebView.loadUrl("javascript:daleTecla('STOP');"); return true; }
>         if (keyCode == KeyEvent.KEYCODE_MENU) { myWebView.loadUrl("javascript:daleTecla('MENU');"); return true; }
>         return super.onKeyDown(keyCode, event);
>     }
> [/code]
> The javascript "daleTecla" (my keypress handler), receives all except KEYCODE_DPAD_LEFT. Sometimes, but only AFTER DPAD_RIGHT is called, DPAD_LEFT fires, this is not consistent behavior though.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Updated] (CB-417) D-pad events not firing in Google TV

Posted by "Joe Bowser (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CB-417?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Joe Bowser updated CB-417:
--------------------------

    Priority: Minor  (was: Major)

I tested it on this and, and I saw that all the Google TV apps that use Cordova do the same thing you're doing more or less.  Unfortunately, your solution is the only one that I've seen that works so far.  I'm thinking that this should be made into plugin code at some point, but due to the lack of Google TV devices out there, I'm going to have to put this at low priority, since there is a work-around.
                
> D-pad events not firing in Google TV
> ------------------------------------
>
>                 Key: CB-417
>                 URL: https://issues.apache.org/jira/browse/CB-417
>             Project: Apache Callback
>          Issue Type: Bug
>          Components: Android
>    Affects Versions: 1.4.0, 1.5.0
>         Environment: Eclipse on Linux with Google TV add-on, Phonegap 1.5 & 1.4 (only tested these versions)
>            Reporter: Hugo De Zela
>            Assignee: Joe Bowser
>            Priority: Minor
>              Labels: google, tv
>
> Any Javascript calls to D-pad events or special button events (Play, FFW, etc...) don't fire in Phonegap.
> Have tried: keypress, keydown, keyup.
> However, if I register an override in the main js file like this:
> [code]
> @Override
>     public boolean onKeyDown(int keyCode, KeyEvent event) {
>         WebView myWebView = (WebView) findViewById(R.id.webview);
>         if (keyCode == KeyEvent.KEYCODE_DPAD_UP) { myWebView.loadUrl("javascript:daleTecla('UP');"); return true; }
>         if (keyCode == KeyEvent.KEYCODE_DPAD_DOWN) { myWebView.loadUrl("javascript:daleTecla('DOWN');"); return true; }
>         if (keyCode == KeyEvent.KEYCODE_DPAD_LEFT) { myWebView.loadUrl("javascript:daleTecla('LEFT');"); return true; }
>         if (keyCode == KeyEvent.KEYCODE_DPAD_RIGHT) { myWebView.loadUrl("javascript:daleTecla('RIGHT');"); return true; }
>         if (keyCode == KeyEvent.KEYCODE_ENTER || keyCode == KeyEvent.KEYCODE_DPAD_CENTER) { myWebView.loadUrl("javascript:daleTecla('ENTER');"); return true; }
>         if (keyCode == KeyEvent.KEYCODE_MEDIA_PLAY || keyCode == KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE) { myWebView.loadUrl("javascript:daleTecla('PLAYPAUSE');"); return true; }
>         if (keyCode == KeyEvent.KEYCODE_MEDIA_NEXT) { myWebView.loadUrl("javascript:daleTecla('NEXT');"); return true; }
>         if (keyCode == KeyEvent.KEYCODE_MEDIA_PREVIOUS) { myWebView.loadUrl("javascript:daleTecla('PREV');"); return true; }
>         if (keyCode == KeyEvent.KEYCODE_MEDIA_FAST_FORWARD) { myWebView.loadUrl("javascript:daleTecla('FFW');"); return true; }
>         if (keyCode == KeyEvent.KEYCODE_MEDIA_REWIND) { myWebView.loadUrl("javascript:daleTecla('REW');"); return true; }
>         if (keyCode == KeyEvent.KEYCODE_MEDIA_STOP) { myWebView.loadUrl("javascript:daleTecla('STOP');"); return true; }
>         if (keyCode == KeyEvent.KEYCODE_MENU) { myWebView.loadUrl("javascript:daleTecla('MENU');"); return true; }
>         return super.onKeyDown(keyCode, event);
>     }
> [/code]
> The javascript "daleTecla" (my keypress handler), receives all except KEYCODE_DPAD_LEFT. Sometimes, but only AFTER DPAD_RIGHT is called, DPAD_LEFT fires, this is not consistent behavior though.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira