diff options
author | Tor Norbye <tnorbye@google.com> | 2012-06-13 20:15:13 -0700 |
---|---|---|
committer | Tor Norbye <tnorbye@google.com> | 2012-06-14 11:40:51 -0700 |
commit | 5978cd057931af1e98ecc51d4bc29b79dc147da2 (patch) | |
tree | 708664155556f0ec3b647eb18fa41e77e090aff1 /templates/activities/BlankActivity | |
parent | f4f17275b1fe8644073e3ef485ca12291125ae83 (diff) | |
download | sdk-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')
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 |