aboutsummaryrefslogtreecommitdiffstats
path: root/templates/activities/BlankActivity
diff options
context:
space:
mode:
authorTor Norbye <tnorbye@google.com>2012-06-13 20:15:13 -0700
committerTor Norbye <tnorbye@google.com>2012-06-14 11:40:51 -0700
commit5978cd057931af1e98ecc51d4bc29b79dc147da2 (patch)
tree708664155556f0ec3b647eb18fa41e77e090aff1 /templates/activities/BlankActivity
parentf4f17275b1fe8644073e3ef485ca12291125ae83 (diff)
downloadsdk-5978cd057931af1e98ecc51d4bc29b79dc147da2.zip
sdk-5978cd057931af1e98ecc51d4bc29b79dc147da2.tar.gz
sdk-5978cd057931af1e98ecc51d4bc29b79dc147da2.tar.bz2
Update templates
This changeset updates the activity templates with new versions from Roman. Also fixes a couple of bugs he ran into: the camel case to underscore conversion methods were reversed, and the template test wizard didn't reset the activity template once the second page was shown. Change-Id: I353af646f92f37bf2a9827d0dc68a409dd9358bc
Diffstat (limited to 'templates/activities/BlankActivity')
-rw-r--r--templates/activities/BlankActivity/recipe.xml.ftl9
-rw-r--r--templates/activities/BlankActivity/root/AndroidManifest.xml.ftl11
-rw-r--r--templates/activities/BlankActivity/root/res/values/strings.xml.ftl2
-rw-r--r--templates/activities/BlankActivity/root/src/app_package/DropdownActivity.java.ftl6
-rw-r--r--templates/activities/BlankActivity/root/src/app_package/SimpleActivity.java.ftl6
-rw-r--r--templates/activities/BlankActivity/root/src/app_package/TabsActivity.java.ftl6
-rw-r--r--templates/activities/BlankActivity/root/src/app_package/TabsAndPagerActivity.java.ftl8
-rw-r--r--templates/activities/BlankActivity/root/src/app_package/_onOptionsItemSelected.java.ftl13
-rw-r--r--templates/activities/BlankActivity/template.xml13
9 files changed, 61 insertions, 13 deletions
diff --git a/templates/activities/BlankActivity/recipe.xml.ftl b/templates/activities/BlankActivity/recipe.xml.ftl
index 2ce72db..97b9ba7 100644
--- a/templates/activities/BlankActivity/recipe.xml.ftl
+++ b/templates/activities/BlankActivity/recipe.xml.ftl
@@ -13,11 +13,10 @@
<merge from="res/values-large/dimens.xml" />
<merge from="res/values/strings.xml.ftl" />
- <!-- Decide whether or not to add the support library -->
- <#if navType != "none">
- <copy from="${android.templatesRes}/android-support-v4.jar.bin"
- to="libs/android-support-v4.jar" />
- </#if>
+ <!-- Always include the support library because we use NavUtils, ViewPager, etc. -->
+ <!-- TODO: automatically overwrite only if the version is newer, otherwise silently fail -->
+ <copy from="${android.templatesRes}/android-support-v4.jar.bin"
+ to="libs/android-support-v4.jar" />
<!-- Decide what kind of layout to add (viewpager or not) -->
<#if navType?contains("pager")>
diff --git a/templates/activities/BlankActivity/root/AndroidManifest.xml.ftl b/templates/activities/BlankActivity/root/AndroidManifest.xml.ftl
index ffcce79..ec20836 100644
--- a/templates/activities/BlankActivity/root/AndroidManifest.xml.ftl
+++ b/templates/activities/BlankActivity/root/AndroidManifest.xml.ftl
@@ -1,15 +1,18 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" >
<application>
-
<activity android:name=".${activityClass}"
- android:label="@string/activity_name">
- <intent-filter android:label="@string/activity_name">
+ android:label="@string/title_${activityToLayout(activityClass)}">
+ <#if parentActivityClass != "">
+ <meta-data android:name="android.support.PARENT_ACTIVITY"
+ android:value="${parentActivityClass}" />
+ <#else>
+ <intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
+ </#if>
</activity>
-
</application>
</manifest>
diff --git a/templates/activities/BlankActivity/root/res/values/strings.xml.ftl b/templates/activities/BlankActivity/root/res/values/strings.xml.ftl
index 753649d..4018308 100644
--- a/templates/activities/BlankActivity/root/res/values/strings.xml.ftl
+++ b/templates/activities/BlankActivity/root/res/values/strings.xml.ftl
@@ -1,5 +1,5 @@
<resources>
- <string name="activity_name">${appTitle}</string>
+ <string name="title_${activityToLayout(activityClass)}">${activityTitle}</string>
<string name="menu_settings">Settings</string>
diff --git a/templates/activities/BlankActivity/root/src/app_package/DropdownActivity.java.ftl b/templates/activities/BlankActivity/root/src/app_package/DropdownActivity.java.ftl
index 98c1a8f..cb2d894 100644
--- a/templates/activities/BlankActivity/root/src/app_package/DropdownActivity.java.ftl
+++ b/templates/activities/BlankActivity/root/src/app_package/DropdownActivity.java.ftl
@@ -7,9 +7,11 @@ import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
+import android.support.v4.app.NavUtils;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.Menu;
+import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
@@ -22,6 +24,9 @@ public class ${activityClass} extends FragmentActivity implements ActionBar.OnNa
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.${layoutName});
+ <#if parentActivityClass != "">
+ getActionBar().setDisplayHomeAsUpEnabled(true);
+ </#if>
// Set up the action bar.
final ActionBar actionBar = getActionBar();
@@ -62,6 +67,7 @@ public class ${activityClass} extends FragmentActivity implements ActionBar.OnNa
getMenuInflater().inflate(R.menu.${menuName}, menu);
return true;
}
+ <#include "_onOptionsItemSelected.java.ftl">
@Override
public boolean onNavigationItemSelected(int position, long id) {
diff --git a/templates/activities/BlankActivity/root/src/app_package/SimpleActivity.java.ftl b/templates/activities/BlankActivity/root/src/app_package/SimpleActivity.java.ftl
index 1ebc0fa..eb46d9c 100644
--- a/templates/activities/BlankActivity/root/src/app_package/SimpleActivity.java.ftl
+++ b/templates/activities/BlankActivity/root/src/app_package/SimpleActivity.java.ftl
@@ -3,12 +3,17 @@ package ${packageName};
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
+import android.view.MenuItem;
+import android.support.v4.app.NavUtils;
public class ${activityClass} extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.${layoutName});
+ <#if parentActivityClass != "">
+ getActionBar().setDisplayHomeAsUpEnabled(true);
+ </#if>
}
@Override
@@ -16,4 +21,5 @@ public class ${activityClass} extends Activity {
getMenuInflater().inflate(R.menu.${menuName}, menu);
return true;
}
+ <#include "_onOptionsItemSelected.java.ftl">
}
diff --git a/templates/activities/BlankActivity/root/src/app_package/TabsActivity.java.ftl b/templates/activities/BlankActivity/root/src/app_package/TabsActivity.java.ftl
index ab11a7f..0811492 100644
--- a/templates/activities/BlankActivity/root/src/app_package/TabsActivity.java.ftl
+++ b/templates/activities/BlankActivity/root/src/app_package/TabsActivity.java.ftl
@@ -7,9 +7,11 @@ import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
+import android.support.v4.app.NavUtils;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.Menu;
+import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
@@ -21,6 +23,9 @@ public class ${activityClass} extends FragmentActivity implements ActionBar.TabL
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.${layoutName});
+ <#if parentActivityClass != "">
+ getActionBar().setDisplayHomeAsUpEnabled(true);
+ </#if>
// Set up the action bar.
final ActionBar actionBar = getActionBar();
@@ -51,6 +56,7 @@ public class ${activityClass} extends FragmentActivity implements ActionBar.TabL
getMenuInflater().inflate(R.menu.${menuName}, menu);
return true;
}
+ <#include "_onOptionsItemSelected.java.ftl">
@Override
public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
diff --git a/templates/activities/BlankActivity/root/src/app_package/TabsAndPagerActivity.java.ftl b/templates/activities/BlankActivity/root/src/app_package/TabsAndPagerActivity.java.ftl
index eb47519..850483f 100644
--- a/templates/activities/BlankActivity/root/src/app_package/TabsAndPagerActivity.java.ftl
+++ b/templates/activities/BlankActivity/root/src/app_package/TabsAndPagerActivity.java.ftl
@@ -8,10 +8,12 @@ import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
+import android.support.v4.app.NavUtils;
import android.support.v4.view.ViewPager;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.Menu;
+import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
@@ -34,7 +36,9 @@ public class ${activityClass} extends FragmentActivity<#if navType?contains("tab
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.${layoutName});
-
+ <#if parentActivityClass != "">
+ getActionBar().setDisplayHomeAsUpEnabled(true);
+ </#if>
// Create the adapter that will return a fragment for each of the three primary sections
// of the app.
mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
@@ -78,6 +82,8 @@ public class ${activityClass} extends FragmentActivity<#if navType?contains("tab
getMenuInflater().inflate(R.menu.${menuName}, menu);
return true;
}
+ <#include "_onOptionsItemSelected.java.ftl">
+
<#if navType?contains("tabs")>
@Override
public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
diff --git a/templates/activities/BlankActivity/root/src/app_package/_onOptionsItemSelected.java.ftl b/templates/activities/BlankActivity/root/src/app_package/_onOptionsItemSelected.java.ftl
new file mode 100644
index 0000000..c77fdee
--- /dev/null
+++ b/templates/activities/BlankActivity/root/src/app_package/_onOptionsItemSelected.java.ftl
@@ -0,0 +1,13 @@
+
+ <#if parentActivityClass != "">
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ switch (item.getItemId()) {
+ case android.R.id.home:
+ NavUtils.navigateUpFromSameTask(this);
+ return true;
+ }
+ return super.onOptionsItemSelected(item);
+ }
+ </#if> \ No newline at end of file
diff --git a/templates/activities/BlankActivity/template.xml b/templates/activities/BlankActivity/template.xml
index 10e6bc8..f7fa903 100644
--- a/templates/activities/BlankActivity/template.xml
+++ b/templates/activities/BlankActivity/template.xml
@@ -37,11 +37,20 @@
</parameter>
<parameter
- id="appTitle"
+ id="parentActivityClass"
+ name="Hierarchical Parent"
+ type="string"
+ constraints="activity|exists"
+ default=""
+ help="The hierarchical parent activity, used to provide a default implementation for the 'Up' button" />
+
+ <parameter
+ id="activityTitle"
name="Title"
type="string"
constraints="nonempty"
- default="My Application"
+ default="MainActivity"
+ suggest="${activityClass}"
help="The name of the activity. For launcher activities, the application title." />
<parameter