You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by bo...@apache.org on 2012/06/20 01:36:05 UTC
android commit: Tweaks to CordovaWebView to support other keys
Updated Branches:
refs/heads/buttons 40b9810a6 -> f394f7457
Tweaks to CordovaWebView to support other keys
Project: http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/commit/f394f745
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/tree/f394f745
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/diff/f394f745
Branch: refs/heads/buttons
Commit: f394f7457b52e7839c685abd615a6f3c95a94bda
Parents: 40b9810
Author: Joe Bowser <bo...@apache.org>
Authored: Tue Jun 19 16:35:22 2012 -0700
Committer: Joe Bowser <bo...@apache.org>
Committed: Tue Jun 19 16:35:22 2012 -0700
----------------------------------------------------------------------
.../src/org/apache/cordova/CordovaWebView.java | 61 +++++++++-----
1 files changed, 39 insertions(+), 22 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/blob/f394f745/framework/src/org/apache/cordova/CordovaWebView.java
----------------------------------------------------------------------
diff --git a/framework/src/org/apache/cordova/CordovaWebView.java b/framework/src/org/apache/cordova/CordovaWebView.java
index 9f80112..17b92fc 100755
--- a/framework/src/org/apache/cordova/CordovaWebView.java
+++ b/framework/src/org/apache/cordova/CordovaWebView.java
@@ -52,8 +52,12 @@ public class CordovaWebView extends WebView {
/** The whitelist **/
private ArrayList<Pattern> whiteList = new ArrayList<Pattern>();
private HashMap<String, Boolean> whiteListCache = new HashMap<String, Boolean>();
+ private ArrayList<Integer> keyDownCodes = new ArrayList<Integer>();
+ private ArrayList<Integer> keyUpCodes = new ArrayList<Integer>();
+
public PluginManager pluginManager;
public CallbackServer callbackServer;
+
/** Actvities and other important classes **/
private CordovaInterface mCtx;
@@ -675,26 +679,25 @@ public class CordovaWebView extends WebView {
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
- // If volumedown key
- if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
- if (this.volumedownBound==true) {
- // only override default behaviour is event bound
- LOG.d(TAG, "Down Key Hit");
- this.loadUrl("javascript:cordova.fireDocumentEvent('volumedownbutton');");
- return true;
+ if(keyDownCodes.contains(keyCode))
+ {
+ if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
+ // only override default behaviour is event bound
+ LOG.d(TAG, "Down Key Hit");
+ this.loadUrl("javascript:cordova.fireDocumentEvent('volumedownbutton');");
+ return true;
}
- }
-
- // If volumeup key
- else if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
- if (this.volumeupBound==true) {
- // only override default behaviour is event bound
- LOG.d(TAG, "Up Key Hit");
- this.loadUrl("javascript:cordova.fireDocumentEvent('volumeupbutton');");
- return true;
+ // If volumeup key
+ else if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
+ LOG.d(TAG, "Up Key Hit");
+ this.loadUrl("javascript:cordova.fireDocumentEvent('volumeupbutton');");
+ return true;
+ }
+ else
+ {
+ //Do some other stuff!
}
}
-
return false;
}
@@ -723,18 +726,21 @@ public class CordovaWebView extends WebView {
}
}
}
-
- // If menu key
+ // Legacy
else if (keyCode == KeyEvent.KEYCODE_MENU) {
this.loadUrl("javascript:cordova.fireDocumentEvent('menubutton');");
return super.onKeyUp(keyCode, event);
}
-
// If search key
else if (keyCode == KeyEvent.KEYCODE_SEARCH) {
this.loadUrl("javascript:cordova.fireDocumentEvent('searchbutton');");
return true;
}
+ else if(keyUpCodes.contains(keyCode))
+ {
+ //What the hell should this do?
+ }
+
Log.d(TAG, "KeyUp has been triggered on the view");
return false;
@@ -748,10 +754,21 @@ public class CordovaWebView extends WebView {
public void bindButton(String button, boolean override) {
// TODO Auto-generated method stub
if (button.compareTo("volumeup")==0) {
- this.volumeupBound = override;
+ keyDownCodes.add(KeyEvent.KEYCODE_VOLUME_DOWN);
}
else if (button.compareTo("volumedown")==0) {
- this.volumedownBound = override;
+ keyDownCodes.add(KeyEvent.KEYCODE_VOLUME_UP);
}
}
+
+ public void bindButton(int keyCode, boolean keyDown, boolean override) {
+ if(keyDown)
+ {
+ keyDownCodes.add(keyCode);
+ }
+ else
+ {
+ keyUpCodes.add(keyCode);
+ }
+ }
}