aboutsummaryrefslogtreecommitdiffstats
path: root/templates
diff options
context:
space:
mode:
authorRoman Nurik <romannurik@google.com>2013-01-22 17:17:50 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2013-01-22 17:17:50 +0000
commit8856a5c1a60a5c904dc06df920de5729e6bfd620 (patch)
tree2ab4980cb6b3987547a893cf775fb98a204ed869 /templates
parent784468466c717b87854c8f7a8429ed6d0df78a62 (diff)
parentf362609bb25092e8a431dc4d7701169dbb8bd431 (diff)
downloadsdk-8856a5c1a60a5c904dc06df920de5729e6bfd620.zip
sdk-8856a5c1a60a5c904dc06df920de5729e6bfd620.tar.gz
sdk-8856a5c1a60a5c904dc06df920de5729e6bfd620.tar.bz2
Merge "New "Blank Fragment" ADT template."
Diffstat (limited to 'templates')
-rw-r--r--templates/other/BlankFragment/globals.xml.ftl4
-rw-r--r--templates/other/BlankFragment/recipe.xml.ftl18
-rw-r--r--templates/other/BlankFragment/root/res/layout/fragment_blank.xml.ftl13
-rw-r--r--templates/other/BlankFragment/root/res/values/strings.xml6
-rw-r--r--templates/other/BlankFragment/root/src/app_package/BlankFragment.java.ftl129
-rw-r--r--templates/other/BlankFragment/template.xml50
-rw-r--r--templates/other/BlankFragment/template_blank_fragment.pngbin0 -> 6003 bytes
7 files changed, 220 insertions, 0 deletions
diff --git a/templates/other/BlankFragment/globals.xml.ftl b/templates/other/BlankFragment/globals.xml.ftl
new file mode 100644
index 0000000..bfc27eb
--- /dev/null
+++ b/templates/other/BlankFragment/globals.xml.ftl
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<globals>
+ <global id="srcOut" value="src/${slashedPackageName(packageName)}" />
+</globals>
diff --git a/templates/other/BlankFragment/recipe.xml.ftl b/templates/other/BlankFragment/recipe.xml.ftl
new file mode 100644
index 0000000..add6d27
--- /dev/null
+++ b/templates/other/BlankFragment/recipe.xml.ftl
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<recipe>
+
+ <merge from="res/values/strings.xml" />
+
+ <#if includeLayout>
+ <instantiate from="res/layout/fragment_blank.xml.ftl"
+ to="res/layout/fragment_${classToResource(className)}.xml" />
+
+ <open file="res/layout/fragment_${classToResource(className)}.xml" />
+ </#if>
+
+ <open file="${srcOut}/${className}.java" />
+
+ <instantiate from="src/app_package/BlankFragment.java.ftl"
+ to="${srcOut}/${className}.java" />
+
+</recipe>
diff --git a/templates/other/BlankFragment/root/res/layout/fragment_blank.xml.ftl b/templates/other/BlankFragment/root/res/layout/fragment_blank.xml.ftl
new file mode 100644
index 0000000..3e04f05
--- /dev/null
+++ b/templates/other/BlankFragment/root/res/layout/fragment_blank.xml.ftl
@@ -0,0 +1,13 @@
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ tools:context=".${className}">
+
+ <!-- TODO: Update blank fragment layout -->
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:text="@string/hello_blank_fragment" />
+
+</FrameLayout>
diff --git a/templates/other/BlankFragment/root/res/values/strings.xml b/templates/other/BlankFragment/root/res/values/strings.xml
new file mode 100644
index 0000000..c8d8b1a
--- /dev/null
+++ b/templates/other/BlankFragment/root/res/values/strings.xml
@@ -0,0 +1,6 @@
+<resources>
+
+<!-- TODO: Remove or change this placeholder text -->
+ <string name="hello_blank_fragment">Hello blank fragment</string>
+
+</resources>
diff --git a/templates/other/BlankFragment/root/src/app_package/BlankFragment.java.ftl b/templates/other/BlankFragment/root/src/app_package/BlankFragment.java.ftl
new file mode 100644
index 0000000..6b3fb1e
--- /dev/null
+++ b/templates/other/BlankFragment/root/src/app_package/BlankFragment.java.ftl
@@ -0,0 +1,129 @@
+package ${packageName};
+
+<#if includeCallbacks>import android.app.Activity;</#if>
+<#if includeCallbacks>import android.net.Uri;</#if>
+import android.os.Bundle;
+import android.support.v4.app.Fragment;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+<#if !includeLayout>import android.widget.TextView;</#if>
+
+/**
+ * A simple {@link android.support.v4.app.Fragment} subclass.
+<#if includeCallbacks>
+ * Activities that contain this fragment must implement the
+ * {@link ${className}.OnFragmentInteractionListener} interface
+ * to handle interaction events.
+</#if>
+<#if includeFactory>
+ * Use the {@link ${className}#newInstance} factory method to
+ * create an instance of this fragment.
+</#if>
+ *
+ */
+public class ${className} extends Fragment {
+<#if includeFactory>
+ // TODO: Rename parameter arguments, choose names that match
+ // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
+ private static final String ARG_PARAM1 = "param1";
+ private static final String ARG_PARAM2 = "param2";
+
+ // TODO: Rename and change types of parameters
+ private String mParam1;
+ private String mParam2;
+</#if>
+
+<#if includeCallbacks>
+ private OnFragmentInteractionListener mListener;
+</#if>
+
+<#if includeFactory>
+ /**
+ * Use this factory method to create a new instance of
+ * this fragment using the provided parameters.
+ *
+ * @param param1 Parameter 1.
+ * @param param2 Parameter 2.
+ * @return A new instance of fragment ${className}.
+ */
+ // TODO: Rename and change types and number of parameters
+ public static ${className} newInstance(String param1, String param2) {
+ ${className} fragment = new ${className}();
+ Bundle args = new Bundle();
+ args.putString(ARG_PARAM1, param1);
+ args.putString(ARG_PARAM2, param2);
+ fragment.setArguments(args);
+ return fragment;
+ }
+</#if>
+ public ${className}() {
+ // Required empty public constructor
+ }
+
+<#if includeFactory>
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ if (getArguments() != null) {
+ mParam1 = getArguments().getString(ARG_PARAM1);
+ mParam2 = getArguments().getString(ARG_PARAM2);
+ }
+ }
+</#if>
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+<#if includeLayout>
+ // Inflate the layout for this fragment
+ return inflater.inflate(R.layout.fragment_${classToResource(className)}, container, false);
+<#else>
+ TextView textView = new TextView(getActivity());
+ textView.setText(R.string.hello_blank_fragment);
+ return textView;
+</#if>
+ }
+
+<#if includeCallbacks>
+ // TODO: Rename method, update argument and hook method into UI event
+ public void onButtonPressed(Uri uri) {
+ if (mListener != null) {
+ mListener.onFragmentInteraction(uri);
+ }
+ }
+
+ @Override
+ public void onAttach(Activity activity) {
+ super.onAttach(activity);
+ try {
+ mListener = (OnFragmentInteractionListener) activity;
+ } catch (ClassCastException e) {
+ throw new ClassCastException(activity.toString()
+ + " must implement OnFragmentInteractionListener");
+ }
+ }
+
+ @Override
+ public void onDetach() {
+ super.onDetach();
+ mListener = null;
+ }
+
+ /**
+ * This interface must be implemented by activities that contain this
+ * fragment to allow an interaction in this fragment to be communicated
+ * to the activity and potentially other fragments contained in that
+ * activity.
+ * <p>
+ * See the Android Training lesson <a href=
+ * "http://developer.android.com/training/basics/fragments/communicating.html"
+ * >Communicating with Other Fragments</a> for more information.
+ */
+ public interface OnFragmentInteractionListener {
+ // TODO: Update argument type and name
+ public void onFragmentInteraction(Uri uri);
+ }
+</#if>
+
+}
diff --git a/templates/other/BlankFragment/template.xml b/templates/other/BlankFragment/template.xml
new file mode 100644
index 0000000..9434c18
--- /dev/null
+++ b/templates/other/BlankFragment/template.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<template
+ format="3"
+ revision="1"
+ name="New Blank Fragment"
+ description="Creates a blank fragment that is compatible back to API level 4."
+ minApi="7"
+ minBuildApi="8">
+
+ <dependency name="android-support-v4" revision="8" />
+
+ <category value="Other" />
+
+ <parameter
+ id="className"
+ name="Fragment Name"
+ type="string"
+ constraints="class|nonempty|unique"
+ default="BlankFragment"
+ help="The name of the fragment class to create" />
+
+ <parameter
+ id="includeLayout"
+ name="Create layout XML?"
+ type="boolean"
+ default="true"
+ help="Generate a layout XML for the fragment" />
+
+ <parameter
+ id="includeFactory"
+ name="Include fragment factory methods?"
+ type="boolean"
+ default="true"
+ help="Generate static fragment factory methods for easy instantiation" />
+
+ <parameter
+ id="includeCallbacks"
+ name="Include interface callbacks?"
+ type="boolean"
+ default="true"
+ help="Generate event callbacks for communication with an Activity or other fragments" />
+
+ <thumbs>
+ <thumb>template_blank_fragment.png</thumb>
+ </thumbs>
+
+ <globals file="globals.xml.ftl" />
+ <execute file="recipe.xml.ftl" />
+
+</template>
diff --git a/templates/other/BlankFragment/template_blank_fragment.png b/templates/other/BlankFragment/template_blank_fragment.png
new file mode 100644
index 0000000..e0e71ce
--- /dev/null
+++ b/templates/other/BlankFragment/template_blank_fragment.png
Binary files differ