diff options
41 files changed, 650 insertions, 50 deletions
diff --git a/build/tools.atree b/build/tools.atree index 0c79d42..8ca90be 100644 --- a/build/tools.atree +++ b/build/tools.atree @@ -119,6 +119,7 @@ prebuilts/tools/common/proguard/proguard4.7/src/proguard/ant/task.properties to # Templates sdk/templates/projects tools/templates/projects sdk/templates/activities tools/templates/activities +sdk/templates/gradle tools/templates/gradle sdk/templates/other tools/templates/other # SDK Controller diff --git a/templates/activities/BlankActivity/globals.xml.ftl b/templates/activities/BlankActivity/globals.xml.ftl index 6220005..11aabd7 100644 --- a/templates/activities/BlankActivity/globals.xml.ftl +++ b/templates/activities/BlankActivity/globals.xml.ftl @@ -1,5 +1,8 @@ <?xml version="1.0"?> <globals> + <global id="projectOut" value="." /> + <global id="manifestOut" value="." /> <global id="srcOut" value="src/${slashedPackageName(packageName)}" /> + <global id="resOut" value="res" /> <global id="menuName" value="${classToResource(activityClass)}" /> </globals> diff --git a/templates/activities/BlankActivity/recipe.xml.ftl b/templates/activities/BlankActivity/recipe.xml.ftl index 78bd8b2..148b09d 100644 --- a/templates/activities/BlankActivity/recipe.xml.ftl +++ b/templates/activities/BlankActivity/recipe.xml.ftl @@ -1,32 +1,37 @@ <?xml version="1.0"?> <recipe> - <merge from="AndroidManifest.xml.ftl" /> + <merge from="AndroidManifest.xml.ftl" + to="${manifestOut}/AndroidManifest.xml" /> <instantiate from="res/menu/main.xml.ftl" - to="res/menu/${menuName}.xml" /> + to="${resOut}/menu/${menuName}.xml" /> - <merge from="res/values/strings.xml.ftl" /> + <merge from="res/values/strings.xml.ftl" + to="${resOut}/values/strings.xml" /> - <merge from="res/values/dimens.xml" /> - <merge from="res/values-sw600dp/dimens.xml" /> - <merge from="res/values-sw720dp-land/dimens.xml" /> + <merge from="res/values/dimens.xml" + to="${resOut}/values/dimens.xml" /> + <merge from="res/values-sw600dp/dimens.xml" + to="${resOut}/values-sw600dp/dimens.xml" /> + <merge from="res/values-sw720dp-land/dimens.xml" + to="${resOut}/values-sw720dp-land/dimens.xml" /> <!-- Decide what kind of layout to add (viewpager or not) --> <#if navType?contains("pager")> <instantiate from="res/layout/activity_pager.xml.ftl" - to="res/layout/${layoutName}.xml" /> + to="${resOut}/layout/${layoutName}.xml" /> <instantiate from="res/layout/fragment_dummy.xml.ftl" - to="res/layout/fragment_${classToResource(activityClass)}_dummy.xml" /> + to="${resOut}/layout/fragment_${classToResource(activityClass)}_dummy.xml" /> <#elseif navType == "tabs" || navType == "dropdown"> <instantiate from="res/layout/activity_fragment_container.xml" - to="res/layout/${layoutName}.xml" /> + to="${resOut}/layout/${layoutName}.xml" /> <instantiate from="res/layout/fragment_dummy.xml.ftl" - to="res/layout/fragment_${classToResource(activityClass)}_dummy.xml" /> + to="${resOut}/layout/fragment_${classToResource(activityClass)}_dummy.xml" /> <#else> <instantiate from="res/layout/activity_simple.xml.ftl" - to="res/layout/${layoutName}.xml" /> + to="${resOut}/layout/${layoutName}.xml" /> </#if> <!-- Decide which activity code to add --> @@ -48,5 +53,5 @@ </#if> - <open file="res/layout/${layoutName}.xml" /> + <open file="${resOut}/layout/${layoutName}.xml" /> </recipe> diff --git a/templates/activities/FullscreenActivity/globals.xml.ftl b/templates/activities/FullscreenActivity/globals.xml.ftl index a416d3a..6d73e17 100644 --- a/templates/activities/FullscreenActivity/globals.xml.ftl +++ b/templates/activities/FullscreenActivity/globals.xml.ftl @@ -1,5 +1,8 @@ <?xml version="1.0"?> <globals> + <global id="projectOut" value="." /> + <global id="manifestOut" value="." /> <global id="srcOut" value="src/${slashedPackageName(packageName)}" /> + <global id="resOut" value="res" /> <global id="simpleName" value="${activityToLayout(activityClass)}" /> </globals> diff --git a/templates/activities/FullscreenActivity/recipe.xml.ftl b/templates/activities/FullscreenActivity/recipe.xml.ftl index 1e41e5f..b3e1f20 100644 --- a/templates/activities/FullscreenActivity/recipe.xml.ftl +++ b/templates/activities/FullscreenActivity/recipe.xml.ftl @@ -1,16 +1,21 @@ <?xml version="1.0"?> <recipe> - <merge from="AndroidManifest.xml.ftl" /> + <merge from="AndroidManifest.xml.ftl" + to="${manifestOut}/AndroidManifest.xml" /> - <merge from="res/values/attrs.xml" /> - <merge from="res/values/colors.xml" /> - <merge from="res/values/styles.xml" /> - <merge from="res/values-v11/styles.xml" /> + <merge from="res/values/attrs.xml" + to="${resOut}/values/attrs.xml" /> + <merge from="res/values/colors.xml" + to="${resOut}/values/colors.xml" /> + <merge from="res/values/styles.xml" + to="${resOut}/values/styles.xml" /> + <merge from="res/values-v11/styles.xml" + to="${resOut}/values-v11/styles.xml" /> <instantiate from="res/layout/activity_fullscreen.xml.ftl" - to="res/layout/${layoutName}.xml" /> + to="${resOut}/layout/${layoutName}.xml" /> <merge from="res/values/strings.xml.ftl" - to="res/values/strings.xml" /> + to="${resOut}/values/strings.xml" /> <instantiate from="src/app_package/FullscreenActivity.java.ftl" to="${srcOut}/${activityClass}.java" /> @@ -21,5 +26,5 @@ <instantiate from="src/app_package/util/SystemUiHiderHoneycomb.java.ftl" to="${srcOut}/util/SystemUiHiderHoneycomb.java" /> - <open file="res/layout/${layoutName}.xml" /> + <open file="${resOut}/layout/${layoutName}.xml" /> </recipe> diff --git a/templates/activities/FullscreenActivity/root/res/values/attrs.xml b/templates/activities/FullscreenActivity/root/res/values/attrs.xml index 0201588..2cf1a1a 100644 --- a/templates/activities/FullscreenActivity/root/res/values/attrs.xml +++ b/templates/activities/FullscreenActivity/root/res/values/attrs.xml @@ -9,4 +9,4 @@ <attr name="buttonBarButtonStyle" format="reference" /> </declare-styleable> -</resources>
\ No newline at end of file +</resources> diff --git a/templates/activities/LoginActivity/globals.xml.ftl b/templates/activities/LoginActivity/globals.xml.ftl index 62dfd8d..fbe8985 100644 --- a/templates/activities/LoginActivity/globals.xml.ftl +++ b/templates/activities/LoginActivity/globals.xml.ftl @@ -1,6 +1,9 @@ <?xml version="1.0"?> <globals> + <global id="projectOut" value="." /> + <global id="manifestOut" value="." /> <global id="srcOut" value="src/${slashedPackageName(packageName)}" /> + <global id="resOut" value="res" /> <global id="menuName" value="${classToResource(activityClass)}" /> <global id="simpleName" value="${activityToLayout(activityClass)}" /> </globals> diff --git a/templates/activities/LoginActivity/recipe.xml.ftl b/templates/activities/LoginActivity/recipe.xml.ftl index ece4285..58d823f 100644 --- a/templates/activities/LoginActivity/recipe.xml.ftl +++ b/templates/activities/LoginActivity/recipe.xml.ftl @@ -1,19 +1,22 @@ <?xml version="1.0"?> <recipe> - <merge from="AndroidManifest.xml.ftl" /> + <merge from="AndroidManifest.xml.ftl" + to="${manifestOut}/AndroidManifest.xml" /> - <merge from="res/values/styles.xml" /> - <merge from="res/values-large/styles.xml" /> + <merge from="res/values/styles.xml" + to="${resOut}/values/styles.xml" /> + <merge from="res/values-large/styles.xml" + to="${resOut}/values-large/styles.xml" /> <copy from="res/menu/activity_login.xml" - to="res/menu/${menuName}.xml" /> + to="${resOut}/menu/${menuName}.xml" /> <instantiate from="res/layout/activity_login.xml.ftl" - to="res/layout/${layoutName}.xml" /> + to="${resOut}/layout/${layoutName}.xml" /> <instantiate from="res/values/strings.xml.ftl" - to="res/values/strings_${simpleName}.xml" /> + to="${resOut}/values/strings_${simpleName}.xml" /> <instantiate from="src/app_package/LoginActivity.java.ftl" to="${srcOut}/${activityClass}.java" /> - <open file="res/layout/${layoutName}.xml" /> + <open file="${resOut}/layout/${layoutName}.xml" /> </recipe> diff --git a/templates/activities/MasterDetailFlow/globals.xml.ftl b/templates/activities/MasterDetailFlow/globals.xml.ftl index 952e278..415d60e 100644 --- a/templates/activities/MasterDetailFlow/globals.xml.ftl +++ b/templates/activities/MasterDetailFlow/globals.xml.ftl @@ -1,6 +1,9 @@ <?xml version="1.0"?> <globals> + <global id="projectOut" value="." /> + <global id="manifestOut" value="." /> <global id="srcOut" value="src/${slashedPackageName(packageName)}" /> + <global id="resOut" value="res" /> <global id="CollectionName" value="${extractLetters(objectKind)}List" /> <global id="collection_name" value="${extractLetters(objectKind?lower_case)}_list" /> <global id="DetailName" value="${extractLetters(objectKind)}Detail" /> diff --git a/templates/activities/MasterDetailFlow/recipe.xml.ftl b/templates/activities/MasterDetailFlow/recipe.xml.ftl index 8b09c84..c06e517 100644 --- a/templates/activities/MasterDetailFlow/recipe.xml.ftl +++ b/templates/activities/MasterDetailFlow/recipe.xml.ftl @@ -1,19 +1,23 @@ <?xml version="1.0"?> <recipe> - <merge from="AndroidManifest.xml.ftl" /> + <merge from="AndroidManifest.xml.ftl" + to="${manifestOut}/AndroidManifest.xml" /> - <merge from="res/values-large/refs.xml.ftl" /> - <merge from="res/values-sw600dp/refs.xml.ftl" /> - <merge from="res/values/strings.xml.ftl" /> + <merge from="res/values-large/refs.xml.ftl" + to="${resOut}/values-large/refs.xml" /> + <merge from="res/values-sw600dp/refs.xml.ftl" + to="${resOut}/values-sw600dp/refs.xml" /> + <merge from="res/values/strings.xml.ftl" + to="${resOut}/values/strings.xml" /> <instantiate from="res/layout/activity_content_detail.xml.ftl" - to="res/layout/activity_${detail_name}.xml" /> + to="${resOut}/layout/activity_${detail_name}.xml" /> <instantiate from="res/layout/activity_content_list.xml.ftl" - to="res/layout/activity_${collection_name}.xml" /> + to="${resOut}/layout/activity_${collection_name}.xml" /> <instantiate from="res/layout/activity_content_twopane.xml.ftl" - to="res/layout/activity_${extractLetters(objectKind?lower_case)}_twopane.xml" /> + to="${resOut}/layout/activity_${extractLetters(objectKind?lower_case)}_twopane.xml" /> <instantiate from="res/layout/fragment_content_detail.xml.ftl" - to="res/layout/fragment_${detail_name}.xml" /> + to="${resOut}/layout/fragment_${detail_name}.xml" /> <instantiate from="src/app_package/ContentDetailActivity.java.ftl" to="${srcOut}/${DetailName}Activity.java" /> diff --git a/templates/activities/SettingsActivity/globals.xml.ftl b/templates/activities/SettingsActivity/globals.xml.ftl index a416d3a..6d73e17 100644 --- a/templates/activities/SettingsActivity/globals.xml.ftl +++ b/templates/activities/SettingsActivity/globals.xml.ftl @@ -1,5 +1,8 @@ <?xml version="1.0"?> <globals> + <global id="projectOut" value="." /> + <global id="manifestOut" value="." /> <global id="srcOut" value="src/${slashedPackageName(packageName)}" /> + <global id="resOut" value="res" /> <global id="simpleName" value="${activityToLayout(activityClass)}" /> </globals> diff --git a/templates/activities/SettingsActivity/recipe.xml.ftl b/templates/activities/SettingsActivity/recipe.xml.ftl index e315963..6f68147 100644 --- a/templates/activities/SettingsActivity/recipe.xml.ftl +++ b/templates/activities/SettingsActivity/recipe.xml.ftl @@ -1,14 +1,19 @@ <?xml version="1.0"?> <recipe> - <merge from="AndroidManifest.xml.ftl" /> + <merge from="AndroidManifest.xml.ftl" + to="${manifestOut}/AndroidManifest.xml" /> - <copy from="res/xml/pref_data_sync.xml" /> - <copy from="res/xml/pref_general.xml" /> - <merge from="res/xml/pref_headers.xml.ftl" /> - <copy from="res/xml/pref_notification.xml" /> + <copy from="res/xml/pref_data_sync.xml" + to="${resOut}/xml/pref_data_sync.xml" /> + <copy from="res/xml/pref_general.xml" + to="${resOut}/xml/pref_general.xml" /> + <merge from="res/xml/pref_headers.xml.ftl" + to="${resOut}/xml/pref_headers.xml" /> + <copy from="res/xml/pref_notification.xml" + to="${resOut}/xml/pref_notification.xml" /> <instantiate from="res/values/strings.xml.ftl" - to="res/values/strings_${simpleName}.xml" /> + to="${resOut}/values/strings_${simpleName}.xml" /> <instantiate from="src/app_package/SettingsActivity.java.ftl" to="${srcOut}/${activityClass}.java" /> diff --git a/templates/gradle/wrapper/gradle/wrapper/gradle-wrapper.jar b/templates/gradle/wrapper/gradle/wrapper/gradle-wrapper.jar Binary files differnew file mode 100644 index 0000000..8c0fb64 --- /dev/null +++ b/templates/gradle/wrapper/gradle/wrapper/gradle-wrapper.jar diff --git a/templates/gradle/wrapper/gradle/wrapper/gradle-wrapper.properties b/templates/gradle/wrapper/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..d67ba29 --- /dev/null +++ b/templates/gradle/wrapper/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Wed Apr 10 15:27:10 PDT 2013 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=http\://services.gradle.org/distributions-snapshots/gradle-1.6-20130404052254+0000-bin.zip diff --git a/templates/gradle/wrapper/gradlew b/templates/gradle/wrapper/gradlew new file mode 100755 index 0000000..91a7e26 --- /dev/null +++ b/templates/gradle/wrapper/gradlew @@ -0,0 +1,164 @@ +#!/usr/bin/env bash + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn ( ) { + echo "$*" +} + +die ( ) { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; +esac + +# For Cygwin, ensure paths are in UNIX format before anything is touched. +if $cygwin ; then + [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` +fi + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >&- +APP_HOME="`pwd -P`" +cd "$SAVED" >&- + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules +function splitJvmOpts() { + JVM_OPTS=("$@") +} +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" + +exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/templates/gradle/wrapper/gradlew.bat b/templates/gradle/wrapper/gradlew.bat new file mode 100644 index 0000000..aec9973 --- /dev/null +++ b/templates/gradle/wrapper/gradlew.bat @@ -0,0 +1,90 @@ +@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windowz variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+if "%@eval[2+2]" == "4" goto 4NT_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+goto execute
+
+:4NT_args
+@rem Get arguments from the 4NT Shell from JP Software
+set CMD_LINE_ARGS=%$
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/templates/projects/NewAndroidApplication/globals.xml.ftl b/templates/projects/NewAndroidApplication/globals.xml.ftl index bfc27eb..2565dcd 100644 --- a/templates/projects/NewAndroidApplication/globals.xml.ftl +++ b/templates/projects/NewAndroidApplication/globals.xml.ftl @@ -1,4 +1,10 @@ <?xml version="1.0"?> <globals> + <global id="isGradle" value="false" /> + <global id="topOut" value="." /> + <global id="projectOut" value="." /> + <global id="manifestOut" value="." /> <global id="srcOut" value="src/${slashedPackageName(packageName)}" /> + <global id="resOut" value="res" /> + <global id="mavenUrl" value="" /> </globals> diff --git a/templates/projects/NewAndroidApplication/recipe.xml.ftl b/templates/projects/NewAndroidApplication/recipe.xml.ftl index bc8f02e..79210a9 100644 --- a/templates/projects/NewAndroidApplication/recipe.xml.ftl +++ b/templates/projects/NewAndroidApplication/recipe.xml.ftl @@ -1,21 +1,33 @@ <?xml version="1.0"?> <recipe> - <instantiate from="AndroidManifest.xml.ftl" /> +<#if isGradle == "true"> + <merge from="settings.gradle.ftl" + to="${topOut}/settings.gradle" /> + <instantiate from="build.gradle.ftl" + to="${projectOut}/build.gradle" /> +</#if> + <instantiate from="AndroidManifest.xml.ftl" + to="${manifestOut}/AndroidManifest.xml" /> <#if copyIcons> - <copy from="res/drawable-hdpi" /> - <copy from="res/drawable-mdpi" /> - <copy from="res/drawable-xhdpi" /> + <copy from="res/drawable-hdpi" + to="${resOut}/drawable-hdpi" /> + <copy from="res/drawable-mdpi" + to="${resOut}/drawable-mdpi" /> + <copy from="res/drawable-xhdpi" + to="${resOut}/drawable-xhdpi" /> </#if> - <instantiate from="res/values/styles.xml.ftl" /> + <instantiate from="res/values/styles.xml.ftl" + to="${resOut}/values/styles.xml" /> <#if buildApi gte 11 && baseTheme != "none"> <instantiate from="res/values-v11/styles_hc.xml.ftl" - to="res/values-v11/styles.xml" /> + to="${resOut}/values-v11/styles.xml" /> </#if> <#if buildApi gte 14 && baseTheme?contains("darkactionbar")> <copy from="res/values-v14/styles_ics.xml" - to="res/values-v14/styles.xml" /> + to="${resOut}/values-v14/styles.xml" /> </#if> - <instantiate from="res/values/strings.xml.ftl" /> + <instantiate from="res/values/strings.xml.ftl" + to="${resOut}/values/strings.xml" /> </recipe> diff --git a/templates/projects/NewAndroidApplication/root/build.gradle.ftl b/templates/projects/NewAndroidApplication/root/build.gradle.ftl new file mode 100644 index 0000000..0232c7e --- /dev/null +++ b/templates/projects/NewAndroidApplication/root/build.gradle.ftl @@ -0,0 +1,24 @@ +buildscript { + repositories { + maven { url '${mavenUrl}/prebuilts-repo' } + maven { url '${mavenUrl}/tools-repo' } + } + dependencies { + classpath 'com.android.tools.build:gradle:0.4-SNAPSHOT' + } +} +apply plugin: 'android' + +dependencies { + compile files('libs/android-support-v4.jar') +} + +android { + compileSdkVersion ${buildApi} + buildToolsVersion "${buildApi}" + + defaultConfig { + minSdkVersion ${minApi} + targetSdkVersion ${targetApi} + } +} diff --git a/templates/projects/NewAndroidApplication/root/settings.gradle.ftl b/templates/projects/NewAndroidApplication/root/settings.gradle.ftl new file mode 100644 index 0000000..b12004b --- /dev/null +++ b/templates/projects/NewAndroidApplication/root/settings.gradle.ftl @@ -0,0 +1 @@ +include ':${projectName}' diff --git a/templates/projects/NewAndroidLibrary/globals.xml.ftl b/templates/projects/NewAndroidLibrary/globals.xml.ftl new file mode 100644 index 0000000..2565dcd --- /dev/null +++ b/templates/projects/NewAndroidLibrary/globals.xml.ftl @@ -0,0 +1,10 @@ +<?xml version="1.0"?> +<globals> + <global id="isGradle" value="false" /> + <global id="topOut" value="." /> + <global id="projectOut" value="." /> + <global id="manifestOut" value="." /> + <global id="srcOut" value="src/${slashedPackageName(packageName)}" /> + <global id="resOut" value="res" /> + <global id="mavenUrl" value="" /> +</globals> diff --git a/templates/projects/NewAndroidLibrary/recipe.xml.ftl b/templates/projects/NewAndroidLibrary/recipe.xml.ftl new file mode 100644 index 0000000..9999701 --- /dev/null +++ b/templates/projects/NewAndroidLibrary/recipe.xml.ftl @@ -0,0 +1,33 @@ +<?xml version="1.0"?> +<recipe> +<#if isGradle == "true"> + <merge from="settings.gradle.ftl" + to="${topOut}/settings.gradle" /> + <instantiate from="build.gradle.ftl" + to="${projectOut}/build.gradle" /> +</#if> + <instantiate from="MODULE_NAME/src/main/AndroidManifest.xml.ftl" + to="${manifestOut}/AndroidManifest.xml" /> + +<#if copyIcons> + <copy from="res/drawable-hdpi" + to="${resOut}/drawable-hdpi" /> + <copy from="res/drawable-mdpi" + to="${resOut}/drawable-mdpi" /> + <copy from="res/drawable-xhdpi" + to="${resOut}/drawable-xhdpi" /> +</#if> + <instantiate from="res/values/styles.xml.ftl" + to="${resOut}/values/styles.xml" /> +<#if buildApi gte 11 && baseTheme != "none"> + <instantiate from="res/values-v11/styles_hc.xml.ftl" + to="${resOut}/values-v11/styles.xml" /> +</#if> +<#if buildApi gte 14 && baseTheme?contains("darkactionbar")> + <copy from="res/values-v14/styles_ics.xml" + to="${resOut}/values-v14/styles.xml" /> +</#if> + + <instantiate from="res/values/strings.xml.ftl" + to="${resOut}/values/strings.xml" /> +</recipe> diff --git a/templates/projects/NewAndroidLibrary/root/AndroidManifest.xml.ftl b/templates/projects/NewAndroidLibrary/root/AndroidManifest.xml.ftl new file mode 100644 index 0000000..390a9da --- /dev/null +++ b/templates/projects/NewAndroidLibrary/root/AndroidManifest.xml.ftl @@ -0,0 +1,15 @@ +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="${packageName}" + android:versionCode="1" + android:versionName="1.0"> + + <uses-sdk android:minSdkVersion="${minApi}" <#if buildApi gte 4>android:targetSdkVersion="${targetApi}" </#if>/> + + <application <#if minApiLevel gte 4 && buildApi gte 4>android:allowBackup="true"</#if> + android:label="@string/app_name" + android:icon="@drawable/ic_launcher"<#if baseTheme != "none"> + android:theme="@style/AppTheme"</#if>> + + </application> + +</manifest> diff --git a/templates/projects/NewAndroidLibrary/root/build.gradle.ftl b/templates/projects/NewAndroidLibrary/root/build.gradle.ftl new file mode 100644 index 0000000..12733c7 --- /dev/null +++ b/templates/projects/NewAndroidLibrary/root/build.gradle.ftl @@ -0,0 +1,24 @@ +buildscript { + repositories { + maven { url '${mavenUrl}/prebuilts-repo' } + maven { url '${mavenUrl}/tools-repo' } + } + dependencies { + classpath 'com.android.tools.build:gradle:0.4-SNAPSHOT' + } +} +apply plugin: 'android-library' + +dependencies { + compile files('libs/android-support-v4.jar') +} + +android { + compileSdkVersion ${buildApi} + buildToolsVersion "${buildApi}" + + defaultConfig { + minSdkVersion ${minApi} + targetSdkVersion ${targetApi} + } +} diff --git a/templates/projects/NewAndroidLibrary/root/res/drawable-hdpi/ic_launcher.png b/templates/projects/NewAndroidLibrary/root/res/drawable-hdpi/ic_launcher.png Binary files differnew file mode 100755 index 0000000..96a442e --- /dev/null +++ b/templates/projects/NewAndroidLibrary/root/res/drawable-hdpi/ic_launcher.png diff --git a/templates/projects/NewAndroidLibrary/root/res/drawable-mdpi/ic_launcher.png b/templates/projects/NewAndroidLibrary/root/res/drawable-mdpi/ic_launcher.png Binary files differnew file mode 100755 index 0000000..359047d --- /dev/null +++ b/templates/projects/NewAndroidLibrary/root/res/drawable-mdpi/ic_launcher.png diff --git a/templates/projects/NewAndroidLibrary/root/res/drawable-xhdpi/ic_launcher.png b/templates/projects/NewAndroidLibrary/root/res/drawable-xhdpi/ic_launcher.png Binary files differnew file mode 100755 index 0000000..71c6d76 --- /dev/null +++ b/templates/projects/NewAndroidLibrary/root/res/drawable-xhdpi/ic_launcher.png diff --git a/templates/projects/NewAndroidLibrary/root/res/values-v11/styles_hc.xml.ftl b/templates/projects/NewAndroidLibrary/root/res/values-v11/styles_hc.xml.ftl new file mode 100644 index 0000000..f8993c3 --- /dev/null +++ b/templates/projects/NewAndroidLibrary/root/res/values-v11/styles_hc.xml.ftl @@ -0,0 +1,11 @@ +<resources> + + <!-- + Base application theme for API 11+. This theme completely replaces + AppBaseTheme from res/values/styles.xml on API 11+ devices. + --> + <style name="AppBaseTheme" parent="android:Theme.Holo<#if baseTheme?contains("light")>.Light</#if>"> + <!-- API 11 theme customizations can go here. --> + </style> + +</resources> diff --git a/templates/projects/NewAndroidLibrary/root/res/values-v14/styles_ics.xml b/templates/projects/NewAndroidLibrary/root/res/values-v14/styles_ics.xml new file mode 100644 index 0000000..a91fd03 --- /dev/null +++ b/templates/projects/NewAndroidLibrary/root/res/values-v14/styles_ics.xml @@ -0,0 +1,12 @@ +<resources> + + <!-- + Base application theme for API 14+. This theme completely replaces + AppBaseTheme from BOTH res/values/styles.xml and + res/values-v11/styles.xml on API 14+ devices. + --> + <style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar"> + <!-- API 14 theme customizations can go here. --> + </style> + +</resources> diff --git a/templates/projects/NewAndroidLibrary/root/res/values/strings.xml.ftl b/templates/projects/NewAndroidLibrary/root/res/values/strings.xml.ftl new file mode 100644 index 0000000..ee03444 --- /dev/null +++ b/templates/projects/NewAndroidLibrary/root/res/values/strings.xml.ftl @@ -0,0 +1,3 @@ +<resources> + <string name="app_name">${escapeXmlString(appTitle)}</string> +</resources> diff --git a/templates/projects/NewAndroidLibrary/root/res/values/styles.xml.ftl b/templates/projects/NewAndroidLibrary/root/res/values/styles.xml.ftl new file mode 100644 index 0000000..30fe5b5 --- /dev/null +++ b/templates/projects/NewAndroidLibrary/root/res/values/styles.xml.ftl @@ -0,0 +1,20 @@ +<resources> + + <!-- + Base application theme, dependent on API level. This theme is replaced + by AppBaseTheme from res/values-vXX/styles.xml on newer devices. + --> + <style name="AppBaseTheme" parent="android:Theme<#if baseTheme?contains("light")>.Light</#if>"> + <!-- + Theme customizations available in newer API levels can go in + res/values-vXX/styles.xml, while customizations related to + backward-compatibility can go here. + --> + </style> + + <!-- Application theme. --> + <style name="AppTheme" parent="AppBaseTheme"> + <!-- All customizations that are NOT specific to a particular API-level can go here. --> + </style> + +</resources> diff --git a/templates/projects/NewAndroidLibrary/root/settings.gradle.ftl b/templates/projects/NewAndroidLibrary/root/settings.gradle.ftl new file mode 100644 index 0000000..b12004b --- /dev/null +++ b/templates/projects/NewAndroidLibrary/root/settings.gradle.ftl @@ -0,0 +1 @@ +include ':${projectName}' diff --git a/templates/projects/NewAndroidLibrary/template.xml b/templates/projects/NewAndroidLibrary/template.xml new file mode 100644 index 0000000..463643d --- /dev/null +++ b/templates/projects/NewAndroidLibrary/template.xml @@ -0,0 +1,82 @@ +<?xml version="1.0"?> +<template + format="1" + revision="1" + name="Android Library" + description="Creates a new Android library."> + <dependency name="android-support-v4" revision="8" /> + + <thumbs> + <thumb>template_new_project.png</thumb> + </thumbs> + + <category value="Applications" /> + + <parameter + id="packageName" + name="Package name" + type="string" + constraints="package" + default="com.mycompany.myapp" /> + + <parameter + id="appTitle" + name="Library title" + type="string" + constraints="nonempty" + default="My Library"/> + + <parameter + id="baseTheme" + name="Base Theme" + type="enum" + default="holo_light_darkactionbar" + help="The base user interface theme for the library"> + <option id="none">None</option> + <option id="holo_dark" minBuildApi="11">Holo Dark</option> + <option id="holo_light" minBuildApi="11">Holo Light</option> + <option id="holo_light_darkactionbar" minBuildApi="14" default="true">Holo Light with Dark Action Bar</option> + </parameter> + + <parameter + id="minApi" + name="Minimum API level" + type="string" + constraints="apilevel" + default="7" /> + + <!-- + Usually the same as minApi, but when minApi is a code name this will be the corresponding + API level + --> + <parameter + id="minApiLevel" + name="Minimum API level" + type="string" + constraints="apilevel" + default="7" /> + + <parameter + id="targetApi" + name="Target API level" + type="string" + constraints="apilevel" + default="16" /> + + <parameter + id="buildApi" + name="Build API level" + type="string" + constraints="apilevel" + default="16" /> + + <parameter + id="copyIcons" + name="Include launcher icons" + type="boolean" + default="true" /> + + <globals file="globals.xml.ftl" /> + <execute file="recipe.xml.ftl" /> + +</template> diff --git a/templates/projects/NewAndroidLibrary/template_new_project.png b/templates/projects/NewAndroidLibrary/template_new_project.png Binary files differnew file mode 100644 index 0000000..92e8556 --- /dev/null +++ b/templates/projects/NewAndroidLibrary/template_new_project.png diff --git a/templates/projects/NewJavaLibrary/globals.xml.ftl b/templates/projects/NewJavaLibrary/globals.xml.ftl new file mode 100644 index 0000000..5b9b620 --- /dev/null +++ b/templates/projects/NewJavaLibrary/globals.xml.ftl @@ -0,0 +1,7 @@ +<?xml version="1.0"?> +<globals> + <global id="isGradle" value="false" /> + <global id="topOut" value="." /> + <global id="projectOut" value="." /> + <global id="srcOut" value="src/${slashedPackageName(packageName)}" /> +</globals> diff --git a/templates/projects/NewJavaLibrary/recipe.xml.ftl b/templates/projects/NewJavaLibrary/recipe.xml.ftl new file mode 100644 index 0000000..e2d943a --- /dev/null +++ b/templates/projects/NewJavaLibrary/recipe.xml.ftl @@ -0,0 +1,11 @@ +<?xml version="1.0"?> +<recipe> +<#if isGradle == "true"> + <merge from="settings.gradle.ftl" + to="${topOut}/settings.gradle" /> + <instantiate from="build.gradle.ftl" + to="${projectOut}/build.gradle" /> +</#if> + <instantiate from="/src/library_package/Placeholder.java" + to="${srcOut}/Placeholder.java" /> +</recipe> diff --git a/templates/projects/NewJavaLibrary/root/build.gradle.ftl b/templates/projects/NewJavaLibrary/root/build.gradle.ftl new file mode 100644 index 0000000..bbfeb03 --- /dev/null +++ b/templates/projects/NewJavaLibrary/root/build.gradle.ftl @@ -0,0 +1 @@ +apply plugin: 'java' diff --git a/templates/projects/NewJavaLibrary/root/settings.gradle.ftl b/templates/projects/NewJavaLibrary/root/settings.gradle.ftl new file mode 100644 index 0000000..b12004b --- /dev/null +++ b/templates/projects/NewJavaLibrary/root/settings.gradle.ftl @@ -0,0 +1 @@ +include ':${projectName}' diff --git a/templates/projects/NewJavaLibrary/root/src/library_package/Placeholder.java b/templates/projects/NewJavaLibrary/root/src/library_package/Placeholder.java new file mode 100644 index 0000000..016aacb --- /dev/null +++ b/templates/projects/NewJavaLibrary/root/src/library_package/Placeholder.java @@ -0,0 +1,4 @@ +package com.example; + +public class Placeholder { +} diff --git a/templates/projects/NewJavaLibrary/template.xml b/templates/projects/NewJavaLibrary/template.xml new file mode 100644 index 0000000..4a3ed90 --- /dev/null +++ b/templates/projects/NewJavaLibrary/template.xml @@ -0,0 +1,24 @@ +<?xml version="1.0"?> +<template + format="1" + revision="1" + name="Java Library" + description="Creates a new Java library."> + + <thumbs> + <thumb>template_new_project.png</thumb> + </thumbs> + + <category value="Applications" /> + + <parameter + id="projectName" + name="Library name" + type="string" + constraints="nonempty" + default="MyLibrary"/> + + <globals file="globals.xml.ftl" /> + <execute file="recipe.xml.ftl" /> + +</template> diff --git a/templates/projects/NewJavaLibrary/template_new_project.png b/templates/projects/NewJavaLibrary/template_new_project.png Binary files differnew file mode 100644 index 0000000..92e8556 --- /dev/null +++ b/templates/projects/NewJavaLibrary/template_new_project.png |