109147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy/*
209147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy * Copyright (C) 2010 The Android Open Source Project
309147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy *
409147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy * Licensed under the Apache License, Version 2.0 (the "License");
509147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy * you may not use this file except in compliance with the License.
609147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy * You may obtain a copy of the License at
709147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy *
809147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy *      http://www.apache.org/licenses/LICENSE-2.0
909147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy *
1009147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy * Unless required by applicable law or agreed to in writing, software
1109147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy * distributed under the License is distributed on an "AS IS" BASIS,
1209147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1309147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy * See the License for the specific language governing permissions and
1409147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy * limitations under the License.
1509147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy */
1609147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy
17f607bdc167f66b3e7003acaa4736ae46d78c1492Romain Guypackage com.android.test.hwui;
1809147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy
1909147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guyimport android.app.Activity;
2009147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guyimport android.content.Context;
2109147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guyimport android.content.res.Resources;
2209147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guyimport android.os.Bundle;
2309147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guyimport android.util.DisplayMetrics;
24fb8b763f762ae21923c58d64caa729b012f40e05Romain Guyimport android.view.ContextMenu;
2509147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guyimport android.view.View;
2609147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guyimport android.view.ViewGroup;
2709147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guyimport android.widget.ArrayAdapter;
2809147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guyimport android.widget.ListAdapter;
2909147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guyimport android.widget.ListView;
3009147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guyimport android.widget.TextView;
3109147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy
3209147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy@SuppressWarnings({"UnusedDeclaration"})
3309147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guypublic class ListActivity extends Activity {
3409147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy    private static final String[] DATA_LIST = {
3509147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra",
3609147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Angola", "Anguilla", "Antarctica", "Antigua and Barbuda", "Argentina",
3709147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Armenia", "Aruba", "Australia", "Austria", "Azerbaijan",
3809147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Bahrain", "Bangladesh", "Barbados", "Belarus", "Belgium",
3909147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Belize", "Benin", "Bermuda", "Bhutan", "Bolivia",
4009147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Bosnia and Herzegovina", "Botswana", "Bouvet Island", "Brazil",
4109147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "British Indian Ocean Territory", "British Virgin Islands", "Brunei", "Bulgaria",
4209147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Burkina Faso", "Burundi", "Cote d'Ivoire", "Cambodia", "Cameroon", "Canada", "Cape Verde",
4309147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Cayman Islands", "Central African Republic", "Chad", "Chile", "China",
4409147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Christmas Island", "Cocos (Keeling) Islands", "Colombia", "Comoros", "Congo",
4509147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Cook Islands", "Costa Rica", "Croatia", "Cuba", "Cyprus", "Czech Republic",
4609147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Democratic Republic of the Congo", "Denmark", "Djibouti", "Dominica", "Dominican Republic",
4709147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "East Timor", "Ecuador", "Egypt", "El Salvador", "Equatorial Guinea", "Eritrea",
4809147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Estonia", "Ethiopia", "Faeroe Islands", "Falkland Islands", "Fiji", "Finland",
4909147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Former Yugoslav Republic of Macedonia", "France", "French Guiana", "French Polynesia",
5009147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "French Southern Territories", "Gabon", "Georgia", "Germany", "Ghana", "Gibraltar",
5109147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Greece", "Greenland", "Grenada", "Guadeloupe", "Guam", "Guatemala", "Guinea", "Guinea-Bissau",
5209147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Guyana", "Haiti", "Heard Island and McDonald Islands", "Honduras", "Hong Kong", "Hungary",
5309147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Iceland", "India", "Indonesia", "Iran", "Iraq", "Ireland", "Israel", "Italy", "Jamaica",
5409147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Japan", "Jordan", "Kazakhstan", "Kenya", "Kiribati", "Kuwait", "Kyrgyzstan", "Laos",
5509147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Latvia", "Lebanon", "Lesotho", "Liberia", "Libya", "Liechtenstein", "Lithuania", "Luxembourg",
5609147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Macau", "Madagascar", "Malawi", "Malaysia", "Maldives", "Mali", "Malta", "Marshall Islands",
5709147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Martinique", "Mauritania", "Mauritius", "Mayotte", "Mexico", "Micronesia", "Moldova",
5809147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Monaco", "Mongolia", "Montserrat", "Morocco", "Mozambique", "Myanmar", "Namibia",
5909147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Nauru", "Nepal", "Netherlands", "Netherlands Antilles", "New Caledonia", "New Zealand",
6009147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Nicaragua", "Niger", "Nigeria", "Niue", "Norfolk Island", "North Korea", "Northern Marianas",
6109147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Norway", "Oman", "Pakistan", "Palau", "Panama", "Papua New Guinea", "Paraguay", "Peru",
6209147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Philippines", "Pitcairn Islands", "Poland", "Portugal", "Puerto Rico", "Qatar",
6309147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Reunion", "Romania", "Russia", "Rwanda", "Sqo Tome and Principe", "Saint Helena",
6409147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Saint Kitts and Nevis", "Saint Lucia", "Saint Pierre and Miquelon",
6509147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Saint Vincent and the Grenadines", "Samoa", "San Marino", "Saudi Arabia", "Senegal",
6609147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Seychelles", "Sierra Leone", "Singapore", "Slovakia", "Slovenia", "Solomon Islands",
6709147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Somalia", "South Africa", "South Georgia and the South Sandwich Islands", "South Korea",
6809147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Spain", "Sri Lanka", "Sudan", "Suriname", "Svalbard and Jan Mayen", "Swaziland", "Sweden",
6909147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Switzerland", "Syria", "Taiwan", "Tajikistan", "Tanzania", "Thailand", "The Bahamas",
7009147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "The Gambia", "Togo", "Tokelau", "Tonga", "Trinidad and Tobago", "Tunisia", "Turkey",
7109147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Turkmenistan", "Turks and Caicos Islands", "Tuvalu", "Virgin Islands", "Uganda",
7209147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Ukraine", "United Arab Emirates", "United Kingdom",
7309147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "United States", "United States Minor Outlying Islands", "Uruguay", "Uzbekistan",
7409147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Vanuatu", "Vatican City", "Venezuela", "Vietnam", "Wallis and Futuna", "Western Sahara",
7509147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Yemen", "Yugoslavia", "Zambia", "Zimbabwe"
7609147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy    };
7709147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy
7809147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy    @Override
7909147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy    protected void onCreate(Bundle savedInstanceState) {
8009147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy        super.onCreate(savedInstanceState);
8109147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy        setContentView(R.layout.list_activity);
8209147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy
8309147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy        ListAdapter adapter = new SimpleListAdapter(this);
8409147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy
85f69913056b8c6000ff0306573a97971702e8d35aRomain Guy        final ListView list = (ListView) findViewById(R.id.list);
8609147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy        list.setAdapter(adapter);
87fb8b763f762ae21923c58d64caa729b012f40e05Romain Guy
88fb8b763f762ae21923c58d64caa729b012f40e05Romain Guy        registerForContextMenu(list);
89fb8b763f762ae21923c58d64caa729b012f40e05Romain Guy    }
90f9284695e8c10dad4daf3d2c84f607483bcb56caRomain Guy
91f9284695e8c10dad4daf3d2c84f607483bcb56caRomain Guy    public void startProfiling(View v) {
92f9284695e8c10dad4daf3d2c84f607483bcb56caRomain Guy    }
93f9284695e8c10dad4daf3d2c84f607483bcb56caRomain Guy
94f9284695e8c10dad4daf3d2c84f607483bcb56caRomain Guy    public void stopProfiling(View v) {
95f9284695e8c10dad4daf3d2c84f607483bcb56caRomain Guy    }
96fb8b763f762ae21923c58d64caa729b012f40e05Romain Guy
97fb8b763f762ae21923c58d64caa729b012f40e05Romain Guy    @Override
98fb8b763f762ae21923c58d64caa729b012f40e05Romain Guy    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
99fb8b763f762ae21923c58d64caa729b012f40e05Romain Guy        super.onCreateContextMenu(menu, v, menuInfo);
100fb8b763f762ae21923c58d64caa729b012f40e05Romain Guy        menu.setHeaderTitle("Context menu");
101fb8b763f762ae21923c58d64caa729b012f40e05Romain Guy        menu.add("List item 1");
102fb8b763f762ae21923c58d64caa729b012f40e05Romain Guy        menu.add("List item 2");
103fb8b763f762ae21923c58d64caa729b012f40e05Romain Guy        menu.add("List item 3");
10409147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy    }
10509147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy
10609147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy    private static class SimpleListAdapter extends ArrayAdapter<String> {
10709147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy        public SimpleListAdapter(Context context) {
10809147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            super(context, android.R.layout.simple_list_item_1, DATA_LIST);
10909147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy        }
11009147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy
11109147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy        @Override
11209147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy        public View getView(int position, View convertView, ViewGroup parent) {
11309147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            TextView v = (TextView) super.getView(position, convertView, parent);
11409147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            final Resources r = getContext().getResources();
11509147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            final DisplayMetrics metrics = r.getDisplayMetrics();
11609147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            v.setCompoundDrawablePadding((int) (6 * metrics.density + 0.5f));
11709147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            v.setCompoundDrawablesWithIntrinsicBounds(r.getDrawable(R.drawable.icon),
11809147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy                    null, null, null);
11909147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            return v;
12009147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy        }
12109147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy    }
12209147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy}