diff options
Diffstat (limited to 'templates/projects')
25 files changed, 310 insertions, 8 deletions
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 |