From 76820ebafffcbd9652a6e600dbb2d56afb3ac4c9 Mon Sep 17 00:00:00 2001 From: Joe Bowser Date: Tue, 17 Apr 2012 17:13:33 -0700 Subject: [PATCH 1/5] CB-480 work, back button and history issues are preventing this from being tested properly --- framework/src/org/apache/cordova/FileTransfer.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/framework/src/org/apache/cordova/FileTransfer.java b/framework/src/org/apache/cordova/FileTransfer.java index 649d3a85..315344b5 100644 --- a/framework/src/org/apache/cordova/FileTransfer.java +++ b/framework/src/org/apache/cordova/FileTransfer.java @@ -421,6 +421,14 @@ public class FileTransfer extends Plugin { URL url = new URL(source); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); + + //Add cookie support + String cookie = CookieManager.getInstance().getCookie(source); + if(cookie != null) + { + connection.setRequestProperty("cookie", cookie); + } + connection.connect(); Log.d(LOG_TAG, "Download file:" + url); From 180696baec28d6e6b67e8bb23a5302f21bce6b79 Mon Sep 17 00:00:00 2001 From: Joe Bowser Date: Tue, 17 Apr 2012 17:50:07 -0700 Subject: [PATCH 2/5] Fixed back button behaviour. WIN --- .../src/org/apache/cordova/DroidGap.java | 33 ++++++++++--------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/framework/src/org/apache/cordova/DroidGap.java b/framework/src/org/apache/cordova/DroidGap.java index c48bf509..decd10d6 100755 --- a/framework/src/org/apache/cordova/DroidGap.java +++ b/framework/src/org/apache/cordova/DroidGap.java @@ -1071,8 +1071,25 @@ public class DroidGap extends Activity implements CordovaInterface { this.finish(); } + + /** + * Called when the back key is pressed + * + * (non-Javadoc) + * @see android.app.Activity#onBackPressed() + */ + @Override + public void onBackPressed() + { + // If back key is bound, then send event to JavaScript + if (!(this.bound || this.backHistory())) { + this.activityState = ACTIVITY_EXITING; + super.onBackPressed(); + } + } + /** - * Called when a key is pressed. + * Called when a key is de-pressed. (Key UP) * * @param keyCode * @param event @@ -1092,20 +1109,6 @@ public class DroidGap extends Activity implements CordovaInterface { return true; } - // If not bound - else { - - // Go to previous page in webview if it is possible to go back - if (this.backHistory()) { - return true; - } - - // If not, then invoke behavior of super class - else { - this.activityState = ACTIVITY_EXITING; - return super.onKeyUp(keyCode, event); - } - } } // If menu key From 7b75e2f1b0f51f70f22c765719a3c9523b78c7af Mon Sep 17 00:00:00 2001 From: macdonst Date: Wed, 18 Apr 2012 13:56:29 -0400 Subject: [PATCH 3/5] CB-539: FileTransfer.download fails when target starts with 'file://' --- .../src/org/apache/cordova/FileTransfer.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/framework/src/org/apache/cordova/FileTransfer.java b/framework/src/org/apache/cordova/FileTransfer.java index 315344b5..a631a055 100644 --- a/framework/src/org/apache/cordova/FileTransfer.java +++ b/framework/src/org/apache/cordova/FileTransfer.java @@ -410,7 +410,7 @@ public class FileTransfer extends Plugin { */ public JSONObject download(String source, String target) throws IOException { try { - File file = new File(target); + File file = getFileFromPath(target); // create needed directories file.getParentFile().mkdirs(); @@ -488,4 +488,17 @@ public class FileTransfer extends Plugin { } } + /** + * Get a File object from the passed in path + * + * @param path + * @return + */ + private File getFileFromPath(String path) { + if (path.startsWith("file://")) { + return new File(path.substring(7)); + } else { + return new File(path); + } + } } From 1e5457a47d338a49abda674af5480f2cf4416c1b Mon Sep 17 00:00:00 2001 From: Joe Bowser Date: Thu, 19 Apr 2012 12:22:33 -0700 Subject: [PATCH 4/5] Reverting the back button change that I made, for some reason certain methods aren't inherited when you extend DroidGap --- .../src/org/apache/cordova/DroidGap.java | 26 +++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/framework/src/org/apache/cordova/DroidGap.java b/framework/src/org/apache/cordova/DroidGap.java index decd10d6..031bb457 100755 --- a/framework/src/org/apache/cordova/DroidGap.java +++ b/framework/src/org/apache/cordova/DroidGap.java @@ -48,6 +48,7 @@ import android.graphics.Color; import android.media.AudioManager; import android.net.Uri; import android.os.Bundle; +import android.util.Log; import android.view.Display; import android.view.KeyEvent; import android.view.Menu; @@ -1078,15 +1079,23 @@ public class DroidGap extends Activity implements CordovaInterface { * (non-Javadoc) * @see android.app.Activity#onBackPressed() */ + /* @Override public void onBackPressed() { - // If back key is bound, then send event to JavaScript + Log.d("BackPressed", "in onBackPressed"); + Log.d("BackPressed", "bound = " + this.bound); + //Log.d("BackPressed", "backHistory = " + this.backHistory()); + // If back key is bound, then send event to JavaScript + if (!(this.bound || this.backHistory())) { + Log.d("BackPressed", "exiting"); this.activityState = ACTIVITY_EXITING; super.onBackPressed(); } } + */ + /** * Called when a key is de-pressed. (Key UP) @@ -1102,13 +1111,25 @@ public class DroidGap extends Activity implements CordovaInterface { // If back key if (keyCode == KeyEvent.KEYCODE_BACK) { + Log.d("BackButton", "I got an up from KEYCODE_BACK"); // If back key is bound, then send event to JavaScript if (this.bound) { + Log.d("BackButton", "bound is true firing an event to JS"); this.appView.loadUrl("javascript:cordova.fireDocumentEvent('backbutton');"); return true; + } else { + // If not bound + // Go to previous page in webview if it is possible to go back + if (this.backHistory()) { + return true; + } + // If not, then invoke behavior of super class + else { + this.activityState = ACTIVITY_EXITING; + return super.onKeyUp(keyCode, event); + } } - } // If menu key @@ -1123,6 +1144,7 @@ public class DroidGap extends Activity implements CordovaInterface { return true; } + Log.d("BackPressed", "returning false"); return false; } From 31d5a94ea917fc0147a18435a458630d0ff2181b Mon Sep 17 00:00:00 2001 From: Fil Maj Date: Thu, 19 Apr 2012 12:33:45 -0700 Subject: [PATCH 5/5] [CB-164] Changed network plugin to sync from async and removed setKeepCallback(true) on plugin result in there. Fixes location.reload() not firing deviceready due to network plugin being unresponsive --- .../src/org/apache/cordova/NetworkManager.java | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/framework/src/org/apache/cordova/NetworkManager.java b/framework/src/org/apache/cordova/NetworkManager.java index 808dac13..0fac00ff 100755 --- a/framework/src/org/apache/cordova/NetworkManager.java +++ b/framework/src/org/apache/cordova/NetworkManager.java @@ -89,7 +89,7 @@ public class NetworkManager extends Plugin { */ public void setContext(CordovaInterface ctx) { super.setContext(ctx); - this.sockMan = (ConnectivityManager) ctx.getSystemService(Context.CONNECTIVITY_SERVICE); + this.sockMan = (ConnectivityManager) ctx.getSystemService(Context.CONNECTIVITY_SERVICE); this.connectionCallbackId = null; // We need to listen to connectivity events to update navigator.connection @@ -98,7 +98,7 @@ public class NetworkManager extends Plugin { if (this.receiver == null) { this.receiver = new BroadcastReceiver() { @Override - public void onReceive(Context context, Intent intent) { + public void onReceive(Context context, Intent intent) { updateConnectionInfo((NetworkInfo) intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO)); } }; @@ -117,13 +117,12 @@ public class NetworkManager extends Plugin { */ public PluginResult execute(String action, JSONArray args, String callbackId) { PluginResult.Status status = PluginResult.Status.INVALID_ACTION; - String result = "Unsupported Operation: " + action; + String result = "Unsupported Operation: " + action; if (action.equals("getConnectionInfo")) { this.connectionCallbackId = callbackId; NetworkInfo info = sockMan.getActiveNetworkInfo(); PluginResult pluginResult = new PluginResult(PluginResult.Status.OK, this.getConnectionInfo(info)); - pluginResult.setKeepCallback(true); return pluginResult; } @@ -137,8 +136,7 @@ public class NetworkManager extends Plugin { * @return T=returns value */ public boolean isSynch(String action) { - // All methods take a while, so always use async - return false; + return true; } /** @@ -182,7 +180,7 @@ public class NetworkManager extends Plugin { // If we are not connected to any network set type to none if (!info.isConnected()) { type = TYPE_NONE; - } + } else { type = getType(info); } @@ -197,7 +195,6 @@ public class NetworkManager extends Plugin { */ private void sendUpdate(String type) { PluginResult result = new PluginResult(PluginResult.Status.OK, type); - result.setKeepCallback(true); this.success(result, this.connectionCallbackId); // Send to all plugins @@ -212,7 +209,7 @@ public class NetworkManager extends Plugin { */ private String getType(NetworkInfo info) { if (info != null) { - String type = info.getTypeName(); + String type = info.getTypeName(); if (type.toLowerCase().equals(WIFI)) { return TYPE_WIFI;