From a8db71cd677b30eeceb8147203be243099be5381 Mon Sep 17 00:00:00 2001
From: macdonst <simon.macdonald@gmail.com>
Date: Thu, 20 Oct 2011 16:26:30 -0400
Subject: [PATCH 1/2] Updating to use Android 4.0 build environment

---
 framework/.classpath          |   2 +-
 framework/AndroidManifest.xml |  18 +++---
 framework/ant.properties      |  17 ++++++
 framework/build.xml           | 112 ++++++++++++++++++++--------------
 framework/default.properties  |   2 +-
 framework/project.properties  |  14 +++++
 6 files changed, 107 insertions(+), 58 deletions(-)
 create mode 100644 framework/ant.properties
 mode change 100755 => 100644 framework/build.xml
 create mode 100644 framework/project.properties

diff --git a/framework/.classpath b/framework/.classpath
index ff33dbc2..ae95abc5 100644
--- a/framework/.classpath
+++ b/framework/.classpath
@@ -4,5 +4,5 @@
 	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="src" path="gen"/>
 	<classpathentry kind="lib" path="libs/commons-codec-1.3.jar"/>
-	<classpathentry kind="output" path="bin"/>
+	<classpathentry kind="output" path="bin/classes"/>
 </classpath>
diff --git a/framework/AndroidManifest.xml b/framework/AndroidManifest.xml
index c0c6e090..73609bea 100644
--- a/framework/AndroidManifest.xml
+++ b/framework/AndroidManifest.xml
@@ -2,12 +2,12 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:windowSoftInputMode="adjustPan"
       package="com.phonegap" android:versionName="1.1" android:versionCode="5">
     <supports-screens
-    	android:largeScreens="true"
-    	android:normalScreens="true"
-    	android:smallScreens="true"
-    	android:resizeable="true"
-    	android:anyDensity="true"
-    	/>
+        android:largeScreens="true"
+        android:normalScreens="true"
+        android:smallScreens="true"
+        android:resizeable="true"
+        android:anyDensity="true"
+        />
     <!-- android:xlargeScreens="true" screen supported only after Android-9 -->
 
     <uses-permission android:name="android.permission.CAMERA" />
@@ -31,7 +31,7 @@
     <uses-feature android:name="android.hardware.camera.autofocus" />
 
     <application android:icon="@drawable/icon" android:label="@string/app_name"
-    	android:debuggable="true">
+        android:debuggable="true">
         <activity android:name=".StandAlone" android:windowSoftInputMode="adjustPan"
                   android:label="@string/app_name" android:configChanges="orientation|keyboardHidden">
             <intent-filter>
@@ -46,5 +46,5 @@
         </activity>
     </application>
 
-	<uses-sdk android:minSdkVersion="2" />
-</manifest> 
+    <uses-sdk android:minSdkVersion="2" />
+</manifest> 
\ No newline at end of file
diff --git a/framework/ant.properties b/framework/ant.properties
new file mode 100644
index 00000000..ee52d86d
--- /dev/null
+++ b/framework/ant.properties
@@ -0,0 +1,17 @@
+# This file is used to override default values used by the Ant build system.
+#
+# This file must be checked in Version Control Systems, as it is
+# integral to the build system of your project.
+
+# This file is only used by the Ant script.
+
+# You can use this to override default values such as
+#  'source.dir' for the location of your java source folder and
+#  'out.dir' for the location of your output folder.
+
+# You can also use it define how the release builds are signed by declaring
+# the following properties:
+#  'key.store' for the location of your keystore and
+#  'key.alias' for the name of the key to use.
+# The password will be asked during the build when you use the 'release' target.
+
diff --git a/framework/build.xml b/framework/build.xml
old mode 100755
new mode 100644
index 9c9a52b8..afbc7e2f
--- a/framework/build.xml
+++ b/framework/build.xml
@@ -9,70 +9,89 @@
     </loadfile>
 
     <!-- The local.properties file is created and updated by the 'android' tool.
-         It contains the path to the SDK. It should *NOT* be checked in in Version
-         Control Systems. -->
-    <property file="local.properties" />
+         It contains the path to the SDK. It should *NOT* be checked into
+         Version Control Systems. -->
+    <loadproperties srcFile="local.properties" />
 
-    <!-- The build.properties file can be created by you and is never touched
-         by the 'android' tool. This is the place to change some of the default property values
-         used by the Ant rules.
+    <!-- The ant.properties file can be created by you. It is only edited by the
+         'android' tool to add properties to it.
+         This is the place to change some Ant specific build properties.
          Here are some properties you may want to change/update:
 
-         application.package
-             the name of your application package as defined in the manifest. Used by the
-             'uninstall' rule.
          source.dir
-             the name of the source directory. Default is 'src'.
+             The name of the source directory. Default is 'src'.
          out.dir
-             the name of the output directory. Default is 'bin'.
+             The name of the output directory. Default is 'bin'.
 
-         Properties related to the SDK location or the project target should be updated
-          using the 'android' tool with the 'update' action.
+         For other overridable properties, look at the beginning of the rules
+         files in the SDK, at tools/ant/build.xml
 
-         This file is an integral part of the build system for your application and
-         should be checked in in Version Control Systems.
+         Properties related to the SDK location or the project target should
+         be updated using the 'android' tool with the 'update' action.
+
+         This file is an integral part of the build system for your
+         application and should be checked into Version Control Systems.
 
          -->
-    <property file="build.properties" />
-
-    <!-- The default.properties file is created and updated by the 'android' tool, as well
-         as ADT.
-         This file is an integral part of the build system for your application and
-         should be checked in in Version Control Systems. -->
-    <property file="default.properties" />
+    <property file="ant.properties" />
     
     <!-- We need to setup the double quote. -->
     <property name="dblQuote">"</property>
 
-    <!-- Custom Android task to deal with the project target, and import the proper rules.
-         This requires ant 1.6.0 or above. -->
-    <path id="android.antlibs">
-        <pathelement path="${sdk.dir}/tools/lib/anttasks.jar" />
-        <pathelement path="${sdk.dir}/tools/lib/sdklib.jar" />
-        <pathelement path="${sdk.dir}/tools/lib/androidprefs.jar" />
-        <pathelement path="${sdk.dir}/tools/lib/apkbuilder.jar" />
-        <pathelement path="${sdk.dir}/tools/lib/jarutils.jar" />
-    </path>
+    <!-- The project.properties file is created and updated by the 'android'
+         tool, as well as ADT.
 
-    <taskdef name="setup"
-        classname="com.android.ant.SetupTask"
-        classpathref="android.antlibs" />
+         This contains project specific properties such as project target, and library
+         dependencies. Lower level build properties are stored in ant.properties
+         (or in .classpath for Eclipse projects).
 
-    <!-- Execute the Android Setup task that will setup some properties specific to the target,
-         and import the build rules files.
+         This file is an integral part of the build system for your
+         application and should be checked into Version Control Systems. -->
+    <loadproperties srcFile="project.properties" />
 
-         The rules file is imported from
-            <SDK>/platforms/<target_platform>/templates/android_rules.xml
+    <!-- quick check on sdk.dir -->
+    <fail
+            message="sdk.dir is missing. Make sure to generate local.properties using 'android update project'"
+            unless="sdk.dir"
+    />
 
-         To customize some build steps for your project:
-         - copy the content of the main node <project> from android_rules.xml
-         - paste it in this build.xml below the <setup /> task.
-         - disable the import by changing the setup task below to <setup import="false" />
 
-         This will ensure that the properties are setup correctly but that your customized
-         build steps are used.
+<!-- extension targets. Uncomment the ones where you want to do custom work
+     in between standard targets -->
+<!--
+    <target name="-pre-build">
+    </target>
+    <target name="-pre-compile">
+    </target>
+
+    /* This is typically used for code obfuscation.
+       Compiled code location: ${out.classes.absolute.dir}
+       If this is not done in place, override ${out.dex.input.absolute.dir} */
+    <target name="-post-compile">
+    </target>
+-->
+
+    <!-- Import the actual build file.
+
+         To customize existing targets, there are two options:
+         - Customize only one target:
+             - copy/paste the target into this file, *before* the
+               <import> task.
+             - customize it to your needs.
+         - Customize the whole content of build.xml
+             - copy/paste the content of the rules files (minus the top node)
+               into this file, replacing the <import> task.
+             - customize to your needs.
+
+         ***********************
+         ****** IMPORTANT ******
+         ***********************
+         In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
+         in order to avoid having your file be overridden by tools such as "android update project"
     -->
-    <setup />
+    <!-- version-tag: 1 -->
+    <import file="${sdk.dir}/tools/ant/build.xml" />
+
 
     <target name="check-javascript" depends="build-javascript">
         <delete dir="assets/lib"/>
@@ -133,7 +152,7 @@
     <!-- Build PhoneGap jar file that includes all native code, and PhoneGap JS file
          that includes all JavaScript code.
     -->
-    <target name="jar" depends="build-javascript, compile">
+    <target name="jar" depends="build-javascript, -compile">
       <jar jarfile="phonegap-${version}.jar" basedir="bin/classes" excludes="com/phonegap/R.class,com/phonegap/R$*.class"/>
     </target>
 
@@ -143,5 +162,4 @@
     <target name="phonegap_release" depends="build-javascript, release">
     </target>
 
-
 </project>
diff --git a/framework/default.properties b/framework/default.properties
index aa2fcdf7..d035c7c6 100644
--- a/framework/default.properties
+++ b/framework/default.properties
@@ -10,5 +10,5 @@
 # Indicates whether an apk should be generated for each density.
 split.density=false
 # Project target.
-target=android-12
+target=android-14
 apk-configurations=
diff --git a/framework/project.properties b/framework/project.properties
new file mode 100644
index 00000000..16d0a5d9
--- /dev/null
+++ b/framework/project.properties
@@ -0,0 +1,14 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system use,
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+
+# Indicates whether an apk should be generated for each density.
+split.density=false
+# Project target.
+target=Google Inc.:Google APIs:9
+apk-configurations=

From e26685becf8ecec56909d82934c9044c2a3c11c2 Mon Sep 17 00:00:00 2001
From: macdonst <simon.macdonald@gmail.com>
Date: Thu, 20 Oct 2011 16:48:16 -0400
Subject: [PATCH 2/2] Fixing Project Properties file

---
 framework/project.properties | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/framework/project.properties b/framework/project.properties
index 16d0a5d9..247ca66e 100644
--- a/framework/project.properties
+++ b/framework/project.properties
@@ -10,5 +10,5 @@
 # Indicates whether an apk should be generated for each density.
 split.density=false
 # Project target.
-target=Google Inc.:Google APIs:9
+target=android-14
 apk-configurations=