You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by ia...@apache.org on 2013/08/23 19:05:02 UTC

[1/2] android commit: Refactor CordovaActivity.init so that subclasses can easily override factory methods for webview objects

Updated Branches:
  refs/heads/master f42b34d6b -> f60498818


Refactor CordovaActivity.init so that subclasses can easily override factory methods for webview objects


Project: http://git-wip-us.apache.org/repos/asf/cordova-android/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-android/commit/f6049881
Tree: http://git-wip-us.apache.org/repos/asf/cordova-android/tree/f6049881
Diff: http://git-wip-us.apache.org/repos/asf/cordova-android/diff/f6049881

Branch: refs/heads/master
Commit: f604988181e956a54b5c3eb6c017fb93efc887ad
Parents: 150cdfd
Author: Ian Clelland <ic...@chromium.org>
Authored: Fri Aug 16 11:47:06 2013 -0400
Committer: Ian Clelland <ic...@chromium.org>
Committed: Fri Aug 23 13:04:19 2013 -0400

----------------------------------------------------------------------
 .../src/org/apache/cordova/CordovaActivity.java | 51 +++++++++++++++-----
 1 file changed, 40 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f6049881/framework/src/org/apache/cordova/CordovaActivity.java
----------------------------------------------------------------------
diff --git a/framework/src/org/apache/cordova/CordovaActivity.java b/framework/src/org/apache/cordova/CordovaActivity.java
index 7e0d1be..9937c3f 100755
--- a/framework/src/org/apache/cordova/CordovaActivity.java
+++ b/framework/src/org/apache/cordova/CordovaActivity.java
@@ -312,20 +312,49 @@ public class CordovaActivity extends Activity implements CordovaInterface {
     }
 
     /**
+     * Construct the default web view object.
+     *
+     * This is intended to be overridable by subclasses of CordovaIntent which
+     * require a more specialized web view.
+     */
+    protected CordovaWebView makeWebView() {
+        return new CordovaWebView(CordovaActivity.this);
+    }
+
+    /**
+     * Construct the client for the default web view object.
+     *
+     * This is intended to be overridable by subclasses of CordovaIntent which
+     * require a more specialized web view.
+     *
+     * @param webView the default constructed web view object
+     */
+    protected CordovaWebViewClient makeWebViewClient(CordovaWebView webView) {
+        if(android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.HONEYCOMB) {
+            return new CordovaWebViewClient(this, webView);
+        } else {
+            return new IceCreamCordovaWebViewClient(this, webView);
+        }
+    }
+
+    /**
+     * Construct the chrome client for the default web view object.
+     *
+     * This is intended to be overridable by subclasses of CordovaIntent which
+     * require a more specialized web view.
+     *
+     * @param webView the default constructed web view object
+     */
+    protected CordovaChromeClient makeChromeClient(CordovaWebView webView) {
+        return new CordovaChromeClient(this, webView);
+    }
+
+    /**
      * Create and initialize web container with default web view objects.
      */
     public void init() {
-        CordovaWebView webView = new CordovaWebView(CordovaActivity.this);
-        CordovaWebViewClient webViewClient;
-        if(android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.HONEYCOMB)
-        {
-            webViewClient = new CordovaWebViewClient(this, webView);
-        }
-        else
-        {
-            webViewClient = new IceCreamCordovaWebViewClient(this, webView);
-        }
-        this.init(webView, webViewClient, new CordovaChromeClient(this, webView));
+        CordovaWebView webView = makeWebView();
+        this.init(webView, makeWebViewClient(webView), makeChromeClient(webView));
     }
 
     /**


[2/2] android commit: [CB-4652] Allow default project template to be overridden on create

Posted by ia...@apache.org.
[CB-4652] Allow default project template to be overridden on create


Project: http://git-wip-us.apache.org/repos/asf/cordova-android/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-android/commit/150cdfd3
Tree: http://git-wip-us.apache.org/repos/asf/cordova-android/tree/150cdfd3
Diff: http://git-wip-us.apache.org/repos/asf/cordova-android/diff/150cdfd3

Branch: refs/heads/master
Commit: 150cdfd3ac66c54cf607255b78c519f753498b1d
Parents: f42b34d
Author: Ian Clelland <ic...@chromium.org>
Authored: Thu Aug 22 15:41:33 2013 -0400
Committer: Ian Clelland <ic...@chromium.org>
Committed: Fri Aug 23 13:04:19 2013 -0400

----------------------------------------------------------------------
 bin/create | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-android/blob/150cdfd3/bin/create
----------------------------------------------------------------------
diff --git a/bin/create b/bin/create
index 40727fc..6a49dc9 100755
--- a/bin/create
+++ b/bin/create
@@ -40,6 +40,7 @@ PROJECT_PATH="${1:-'./example'}"
 PACKAGE=${2:-"org.apache.cordova.example"}
 ACTIVITY=$(echo ${3:-"cordovaExample"} | tr -d '[:blank:][:punct:]')
 APP_LABEL=${3:-"Cordova Example"};
+PROJECT_TEMPLATE_DIR=${4:-"$BUILD_PATH/bin/templates/project"};
 
 # clobber any existing example
 if [ -d "$PROJECT_PATH" ]
@@ -111,8 +112,8 @@ fi
 "$ANDROID_BIN" create project --target $TARGET --path "$PROJECT_PATH" --package $PACKAGE --activity $ACTIVITY &> /dev/null
 
 # copy project template
-cp -r "$BUILD_PATH"/bin/templates/project/assets "$PROJECT_PATH"
-cp -r "$BUILD_PATH"/bin/templates/project/res "$PROJECT_PATH"
+cp -r "$PROJECT_TEMPLATE_DIR"/assets "$PROJECT_PATH"
+cp -r "$PROJECT_TEMPLATE_DIR"/res "$PROJECT_PATH"
 
 # copy cordova.js, cordova.jar and res/xml
 if [ -d "$BUILD_PATH"/framework ]
@@ -127,14 +128,14 @@ else
 fi
 
 # interpolate the activity name and package
-cp "$BUILD_PATH"/bin/templates/project/Activity.java "$ACTIVITY_PATH"
+cp "$PROJECT_TEMPLATE_DIR"/Activity.java "$ACTIVITY_PATH"
 replace "s/__ACTIVITY__/${ACTIVITY}/g" "$ACTIVITY_PATH"
 replace "s/__ID__/${PACKAGE}/g" "$ACTIVITY_PATH"
 
 # interpolate the app name into strings.xml
 replace "s/>${ACTIVITY}</>${APP_LABEL}</g" "$STRINGS_PATH"
 
-cp "$BUILD_PATH"/bin/templates/project/AndroidManifest.xml "$MANIFEST_PATH"
+cp "$PROJECT_TEMPLATE_DIR"/AndroidManifest.xml "$MANIFEST_PATH"
 replace "s/__ACTIVITY__/${ACTIVITY}/g" "$MANIFEST_PATH"
 replace "s/__PACKAGE__/${PACKAGE}/g" "$MANIFEST_PATH"
 replace "s/__APILEVEL__/${API_LEVEL}/g" "$MANIFEST_PATH"