blob: a3c8341adc1249b3fa407f35d5247cdf827cfb7a [file] [log] [blame]
<#ftl>
<#include "/ActivityCardsCommon.ftli">
<#--
Copyright 2013 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
package ${sample.package};
import android.app.Activity;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewTreeObserver;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.TextView;
/**
* A simple launcher activity offering access to the individual samples in this project.
*/
public class MainActivity extends Activity implements AdapterView.OnItemClickListener {
private Sample[] mSamples;
private GridView mGridView;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Prepare list of samples in this dashboard.
<#if (sample.activity?size > 0)>
mSamples = new Sample[]{
<#list sample.activity as activity>
new Sample(R.string.<@make_activity_res activity "title"/>, R.string.<@make_activity_res activity "description"/>,
${activity.class}.class),
</#list>
};
<#else>
/* TODO: Define at least one <activity> tag in template-params.xml like so:
<activity>
<class>[Java class that implements the activity]</class>
<title>[Title bar text]</title>
<description>[One or two sentence description of what this activity does]</description>
</activity>
Once activity tags are defined, this text will disappear and be replaced by code
that adds your activities to the grid of cards.
*/
</#if>
// Prepare the GridView
mGridView = (GridView) findViewById(android.R.id.list);
mGridView.setAdapter(new SampleAdapter());
mGridView.setOnItemClickListener(this);
}
@Override
public void onItemClick(AdapterView<?> container, View view, int position, long id) {
startActivity(mSamples[position].intent);
}
private class SampleAdapter extends BaseAdapter {
@Override
public int getCount() {
return mSamples.length;
}
@Override
public Object getItem(int position) {
return mSamples[position];
}
@Override
public long getItemId(int position) {
return mSamples[position].hashCode();
}
@Override
public View getView(int position, View convertView, ViewGroup container) {
if (convertView == null) {
convertView = getLayoutInflater().inflate(R.layout.sample_dashboard_item,
container, false);
}
((TextView) convertView.findViewById(android.R.id.text1)).setText(
mSamples[position].titleResId);
((TextView) convertView.findViewById(android.R.id.text2)).setText(
mSamples[position].descriptionResId);
return convertView;
}
}
private class Sample {
int titleResId;
int descriptionResId;
Intent intent;
private Sample(int titleResId, int descriptionResId, Intent intent) {
this.intent = intent;
this.titleResId = titleResId;
this.descriptionResId = descriptionResId;
}
private Sample(int titleResId, int descriptionResId,
Class<? extends Activity> activityClass) {
this(titleResId, descriptionResId,
new Intent(MainActivity.this, activityClass));
}
}
}