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;
23f9284695e8c10dad4daf3d2c84f607483bcb56caRomain Guyimport android.os.Environment;
2409147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guyimport android.util.DisplayMetrics;
25fb8b763f762ae21923c58d64caa729b012f40e05Romain Guyimport android.view.ContextMenu;
2609147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guyimport android.view.View;
27f9284695e8c10dad4daf3d2c84f607483bcb56caRomain Guyimport android.view.ViewDebug;
2809147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guyimport android.view.ViewGroup;
2909147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guyimport android.widget.ArrayAdapter;
3009147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guyimport android.widget.ListAdapter;
3109147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guyimport android.widget.ListView;
3209147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guyimport android.widget.TextView;
3309147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy
34f9284695e8c10dad4daf3d2c84f607483bcb56caRomain Guyimport java.io.File;
35f9284695e8c10dad4daf3d2c84f607483bcb56caRomain Guy
3609147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy@SuppressWarnings({"UnusedDeclaration"})
3709147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guypublic class ListActivity extends Activity {
3809147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy    private static final String[] DATA_LIST = {
3909147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra",
4009147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Angola", "Anguilla", "Antarctica", "Antigua and Barbuda", "Argentina",
4109147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Armenia", "Aruba", "Australia", "Austria", "Azerbaijan",
4209147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Bahrain", "Bangladesh", "Barbados", "Belarus", "Belgium",
4309147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Belize", "Benin", "Bermuda", "Bhutan", "Bolivia",
4409147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Bosnia and Herzegovina", "Botswana", "Bouvet Island", "Brazil",
4509147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "British Indian Ocean Territory", "British Virgin Islands", "Brunei", "Bulgaria",
4609147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Burkina Faso", "Burundi", "Cote d'Ivoire", "Cambodia", "Cameroon", "Canada", "Cape Verde",
4709147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Cayman Islands", "Central African Republic", "Chad", "Chile", "China",
4809147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Christmas Island", "Cocos (Keeling) Islands", "Colombia", "Comoros", "Congo",
4909147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Cook Islands", "Costa Rica", "Croatia", "Cuba", "Cyprus", "Czech Republic",
5009147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Democratic Republic of the Congo", "Denmark", "Djibouti", "Dominica", "Dominican Republic",
5109147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "East Timor", "Ecuador", "Egypt", "El Salvador", "Equatorial Guinea", "Eritrea",
5209147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Estonia", "Ethiopia", "Faeroe Islands", "Falkland Islands", "Fiji", "Finland",
5309147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Former Yugoslav Republic of Macedonia", "France", "French Guiana", "French Polynesia",
5409147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "French Southern Territories", "Gabon", "Georgia", "Germany", "Ghana", "Gibraltar",
5509147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Greece", "Greenland", "Grenada", "Guadeloupe", "Guam", "Guatemala", "Guinea", "Guinea-Bissau",
5609147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Guyana", "Haiti", "Heard Island and McDonald Islands", "Honduras", "Hong Kong", "Hungary",
5709147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Iceland", "India", "Indonesia", "Iran", "Iraq", "Ireland", "Israel", "Italy", "Jamaica",
5809147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Japan", "Jordan", "Kazakhstan", "Kenya", "Kiribati", "Kuwait", "Kyrgyzstan", "Laos",
5909147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Latvia", "Lebanon", "Lesotho", "Liberia", "Libya", "Liechtenstein", "Lithuania", "Luxembourg",
6009147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Macau", "Madagascar", "Malawi", "Malaysia", "Maldives", "Mali", "Malta", "Marshall Islands",
6109147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Martinique", "Mauritania", "Mauritius", "Mayotte", "Mexico", "Micronesia", "Moldova",
6209147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Monaco", "Mongolia", "Montserrat", "Morocco", "Mozambique", "Myanmar", "Namibia",
6309147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Nauru", "Nepal", "Netherlands", "Netherlands Antilles", "New Caledonia", "New Zealand",
6409147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Nicaragua", "Niger", "Nigeria", "Niue", "Norfolk Island", "North Korea", "Northern Marianas",
6509147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Norway", "Oman", "Pakistan", "Palau", "Panama", "Papua New Guinea", "Paraguay", "Peru",
6609147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Philippines", "Pitcairn Islands", "Poland", "Portugal", "Puerto Rico", "Qatar",
6709147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Reunion", "Romania", "Russia", "Rwanda", "Sqo Tome and Principe", "Saint Helena",
6809147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Saint Kitts and Nevis", "Saint Lucia", "Saint Pierre and Miquelon",
6909147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Saint Vincent and the Grenadines", "Samoa", "San Marino", "Saudi Arabia", "Senegal",
7009147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Seychelles", "Sierra Leone", "Singapore", "Slovakia", "Slovenia", "Solomon Islands",
7109147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Somalia", "South Africa", "South Georgia and the South Sandwich Islands", "South Korea",
7209147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Spain", "Sri Lanka", "Sudan", "Suriname", "Svalbard and Jan Mayen", "Swaziland", "Sweden",
7309147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Switzerland", "Syria", "Taiwan", "Tajikistan", "Tanzania", "Thailand", "The Bahamas",
7409147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "The Gambia", "Togo", "Tokelau", "Tonga", "Trinidad and Tobago", "Tunisia", "Turkey",
7509147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Turkmenistan", "Turks and Caicos Islands", "Tuvalu", "Virgin Islands", "Uganda",
7609147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Ukraine", "United Arab Emirates", "United Kingdom",
7709147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "United States", "United States Minor Outlying Islands", "Uruguay", "Uzbekistan",
7809147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Vanuatu", "Vatican City", "Venezuela", "Vietnam", "Wallis and Futuna", "Western Sahara",
7909147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            "Yemen", "Yugoslavia", "Zambia", "Zimbabwe"
8009147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy    };
8109147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy
8209147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy    @Override
8309147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy    protected void onCreate(Bundle savedInstanceState) {
8409147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy        super.onCreate(savedInstanceState);
8509147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy        setContentView(R.layout.list_activity);
8609147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy
8709147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy        ListAdapter adapter = new SimpleListAdapter(this);
8809147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy
8909147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy        ListView list = (ListView) findViewById(R.id.list);
9009147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy        list.setAdapter(adapter);
91fb8b763f762ae21923c58d64caa729b012f40e05Romain Guy
92fb8b763f762ae21923c58d64caa729b012f40e05Romain Guy        registerForContextMenu(list);
93fb8b763f762ae21923c58d64caa729b012f40e05Romain Guy    }
94f9284695e8c10dad4daf3d2c84f607483bcb56caRomain Guy
95f9284695e8c10dad4daf3d2c84f607483bcb56caRomain Guy    public void startProfiling(View v) {
96f9284695e8c10dad4daf3d2c84f607483bcb56caRomain Guy    }
97f9284695e8c10dad4daf3d2c84f607483bcb56caRomain Guy
98f9284695e8c10dad4daf3d2c84f607483bcb56caRomain Guy    public void stopProfiling(View v) {
99f9284695e8c10dad4daf3d2c84f607483bcb56caRomain Guy    }
100fb8b763f762ae21923c58d64caa729b012f40e05Romain Guy
101fb8b763f762ae21923c58d64caa729b012f40e05Romain Guy    @Override
102fb8b763f762ae21923c58d64caa729b012f40e05Romain Guy    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
103fb8b763f762ae21923c58d64caa729b012f40e05Romain Guy        super.onCreateContextMenu(menu, v, menuInfo);
104fb8b763f762ae21923c58d64caa729b012f40e05Romain Guy        menu.setHeaderTitle("Context menu");
105fb8b763f762ae21923c58d64caa729b012f40e05Romain Guy        menu.add("List item 1");
106fb8b763f762ae21923c58d64caa729b012f40e05Romain Guy        menu.add("List item 2");
107fb8b763f762ae21923c58d64caa729b012f40e05Romain Guy        menu.add("List item 3");
10809147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy    }
10909147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy
11009147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy    private static class SimpleListAdapter extends ArrayAdapter<String> {
11109147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy        public SimpleListAdapter(Context context) {
11209147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            super(context, android.R.layout.simple_list_item_1, DATA_LIST);
11309147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy        }
11409147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy
11509147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy        @Override
11609147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy        public View getView(int position, View convertView, ViewGroup parent) {
11709147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            TextView v = (TextView) super.getView(position, convertView, parent);
11809147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            final Resources r = getContext().getResources();
11909147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            final DisplayMetrics metrics = r.getDisplayMetrics();
12009147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            v.setCompoundDrawablePadding((int) (6 * metrics.density + 0.5f));
12109147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            v.setCompoundDrawablesWithIntrinsicBounds(r.getDrawable(R.drawable.icon),
12209147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy                    null, null, null);
12309147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            return v;
12409147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy        }
12509147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy    }
12609147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy}