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/11 19:29:05 UTC
[3/10] android commit: Adding the volume button event changes
Adding the volume button event changes
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/9f42772b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/tree/9f42772b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/diff/9f42772b
Branch: refs/heads/master
Commit: 9f42772b7e88a4fd04ccda5fa4726cdfc02ee8ec
Parents: 80a5ea1 be165c6
Author: Joe Bowser <bo...@apache.org>
Authored: Fri Jun 8 16:25:09 2012 -0700
Committer: Joe Bowser <bo...@apache.org>
Committed: Fri Jun 8 16:25:09 2012 -0700
----------------------------------------------------------------------
framework/assets/js/cordova.android.js | 49 +++++++++++++++++-
framework/src/org/apache/cordova/App.java | 11 ++++
framework/src/org/apache/cordova/DroidGap.java | 46 +++++++++++++++++
3 files changed, 103 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/blob/9f42772b/framework/assets/js/cordova.android.js
----------------------------------------------------------------------
diff --cc framework/assets/js/cordova.android.js
index 89d6ca7,2e91464..16dab29
--- a/framework/assets/js/cordova.android.js
+++ b/framework/assets/js/cordova.android.js
@@@ -1,6 -1,6 +1,6 @@@
- // commit ac0a3990438f4a89faa993316fb5614f61cf3be6
-// commit 548f80ccff155e01a7dcbedfcc0d826253110f53
++// commit 347de1a785b7ecbe86c2189343ab2549a9297f9b
- // File generated at :: Tue Jun 05 2012 14:14:16 GMT-0700 (PDT)
-// File generated at :: Sat Jun 02 2012 22:53:34 GMT+0200 (CEST)
++// File generated at :: Fri Jun 08 2012 16:17:50 GMT-0700 (PDT)
/*
Licensed to the Apache Software Foundation (ASF) under one
@@@ -1284,6 -1303,6 +1306,10 @@@ cameraExport.getPicture = function(succ
exec(successCallback, errorCallback, "Camera", "takePicture", [quality, destinationType, sourceType, targetWidth, targetHeight, encodingType, mediaType, allowEdit, correctOrientation, saveToPhotoAlbum, popoverOptions]);
};
++cameraExport.cleanup = function(successCallback, errorCallback) {
++ exec(successCallback, errorCallback, "Camera", "cleanup", []);
++}
++
module.exports = cameraExport;
});
@@@ -2591,6 -2590,6 +2617,8 @@@ var DirectoryEntry = require('cordova/p
var FileSystem = function(name, root) {
this.name = name || null;
if (root) {
++ console.log('root.name ' + name);
++ console.log('root.root ' + root);
this.root = new DirectoryEntry(root.name, root.fullPath);
}
};
http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/blob/9f42772b/framework/src/org/apache/cordova/App.java
----------------------------------------------------------------------
diff --cc framework/src/org/apache/cordova/App.java
index 86b7c69,ea698f9..293cd13
--- a/framework/src/org/apache/cordova/App.java
+++ b/framework/src/org/apache/cordova/App.java
@@@ -189,8 -184,19 +189,19 @@@ public class App extends Plugin
}
/**
+ * Override the default behavior of the Android volume buttons.
+ * If overridden, when the volume button is pressed, the "volume[up|down]button" JavaScript event will be fired.
+ *
+ * @param button volumeup, volumedown
+ * @param override T=override, F=cancel override
+ */
+ public void overrideButton(String button, boolean override) {
+ LOG.i("DroidGap", "WARNING: Volume Button Default Behaviour will be overridden. The volume event will be fired!");
+ ((DroidGap)this.ctx).bindButton(button, override);
+ }
+ /**
* Return whether the Android back button is overridden by the user.
- *
+ *
* @return boolean
*/
public boolean isBackbuttonOverridden() {
http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/blob/9f42772b/framework/src/org/apache/cordova/DroidGap.java
----------------------------------------------------------------------
diff --cc framework/src/org/apache/cordova/DroidGap.java
index 7c452e7,9b6ce13..18032f8
--- a/framework/src/org/apache/cordova/DroidGap.java
+++ b/framework/src/org/apache/cordova/DroidGap.java
@@@ -181,25 -213,39 +181,29 @@@ public class DroidGap extends Activity
// when another application (activity) is started.
protected boolean keepRunning = true;
- // preferences read from cordova.xml
- protected PreferenceSet preferences;
++ private boolean volumeupBound;
++
++ private boolean volumedownBound;
+
/**
- * Sets the authentication token.
- *
- * @param authenticationToken
- * the authentication token
- * @param host
- * the host
- * @param realm
- * the realm
- */
+ * Sets the authentication token.
+ *
+ * @param authenticationToken
+ * @param host
+ * @param realm
+ */
public void setAuthenticationToken(AuthenticationToken authenticationToken, String host, String realm) {
-
- if(host == null) {
- host = "";
- }
-
- if(realm == null) {
- realm = "";
+ if (this.appView != null && this.appView.viewClient != null) {
+ this.appView.viewClient.setAuthenticationToken(authenticationToken, host, realm);
}
-
- authenticationTokens.put(host.concat(realm), authenticationToken);
}
-
+
/**
* Removes the authentication token.
- *
+ *
* @param host
- * the host
* @param realm
- * the realm
+ *
* @return the authentication token or null if did not exist
*/
public AuthenticationToken removeAuthenticationToken(String host, String realm) {
@@@ -817,9 -1093,58 +821,41 @@@
}
/**
- * Called when a key is pressed. (Key DOWN)
++ * Called when a key is pressed. (Key DOWN)
+ *
+ * @param keyCode
+ * @param event
+ */
+ @Override
+ public boolean onKeyDown(int keyCode, KeyEvent event) {
+ if (this.appView == null) {
+ return super.onKeyDown(keyCode, event);
+ }
+
+ // If volumedown key
+ if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
+ if (this.volumedownBound==true) {
+ // only override default behaviour is event bound
+ this.appView.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
+ this.appView.loadUrl("javascript:cordova.fireDocumentEvent('volumeupbutton');");
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
- * Any calls to Activity.startActivityForResult must use method below, so
- * the result can be routed to them correctly.
- *
- * This is done to eliminate the need to modify DroidGap.java to receive activity results.
- *
- * @param intent The intent to start
- * @param requestCode Identifies who to send the result to
- *
- * @throws RuntimeException
- */
- @Override
- public void startActivityForResult(Intent intent, int requestCode) throws RuntimeException {
- LOG.d(TAG, "DroidGap.startActivityForResult(intent,%d)", requestCode);
- super.startActivityForResult(intent, requestCode);
- }
-
- /**
* Launch an activity for which you would like a result when it finished. When this activity exits,
* your onActivityResult() method will be called.
- *
+ *
* @param command The command object
* @param intent The intent to start
* @param requestCode The request code that is passed to callback to identify the activity
@@@ -970,51 -1424,32 +1006,61 @@@
return true;
}
+ /**
+ * Get Activity context.
+ *
+ * @return
+ */
public Context getContext() {
- return this;
+ return this.getContext();
}
+ /**
+ * Override the backbutton.
+ *
+ * @param override
+ */
public void bindBackButton(boolean override) {
- // TODO Auto-generated method stub
- this.bound = override;
+ this.bound = override;
}
+ /**
+ * Determine of backbutton is overridden.
+ *
+ * @return
+ */
public boolean isBackButtonBound() {
- // TODO Auto-generated method stub
- return this.bound;
+ return this.bound;
+ }
+
+ /**
+ * Load the specified URL in the Cordova webview or a new browser instance.
+ *
+ * NOTE: If openExternal is false, only URLs listed in whitelist can be loaded.
+ *
+ * @param url The url to load.
+ * @param openExternal Load url in browser instead of Cordova webview.
+ * @param clearHistory Clear the history stack, so new page becomes top of history
+ * @param params DroidGap parameters for new app
+ */
+ public void showWebPage(String url, boolean openExternal, boolean clearHistory, HashMap<String, Object> params) {
+ if (this.appView != null) {
+ appView.showWebPage(url, openExternal, clearHistory, params);
+ }
}
+ public void bindButton(String button, boolean override) {
+ // TODO Auto-generated method stub
+ if (button.compareTo("volumeup")==0) {
+ this.volumeupBound = override;
+ }
+ else if (button.compareTo("volumedown")==0) {
+ this.volumedownBound = override;
+ }
+ }
+
protected Dialog splashDialog;
-
+
/**
* Removes the Dialog that displays the splash screen
*/