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"})
33f607bdc167f66b3e7003acaa4736ae46d78c1492Romain Guypublic class TransparentListActivity 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);
81f607bdc167f66b3e7003acaa4736ae46d78c1492Romain Guy
827b5b6abf852c039983eded25ebe43a70fef5a4abRomain Guy        getWindow().setBackgroundDrawable(getResources().getDrawable(R.drawable.gradient));
8309147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy        setContentView(R.layout.list_activity);
8409147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy
8509147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy        ListAdapter adapter = new SimpleListAdapter(this);
8609147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy
8709147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy        ListView list = (ListView) findViewById(R.id.list);
8809147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy        list.setAdapter(adapter);
89f607bdc167f66b3e7003acaa4736ae46d78c1492Romain Guy        list.setCacheColorHint(0);
900bb5667b4ef91fefd0500fae0186789d15d54e0eRomain Guy        list.setVerticalFadingEdgeEnabled(true);
918694230ff25fa0a60e480d424843e56b718f0516Romain Guy
92fb8b763f762ae21923c58d64caa729b012f40e05Romain Guy        registerForContextMenu(list);
93fb8b763f762ae21923c58d64caa729b012f40e05Romain Guy    }
94fb8b763f762ae21923c58d64caa729b012f40e05Romain Guy
95fb8b763f762ae21923c58d64caa729b012f40e05Romain Guy    @Override
96fb8b763f762ae21923c58d64caa729b012f40e05Romain Guy    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
97fb8b763f762ae21923c58d64caa729b012f40e05Romain Guy        super.onCreateContextMenu(menu, v, menuInfo);
98fb8b763f762ae21923c58d64caa729b012f40e05Romain Guy        menu.setHeaderTitle("Context menu");
99fb8b763f762ae21923c58d64caa729b012f40e05Romain Guy        menu.add("List item 1");
100fb8b763f762ae21923c58d64caa729b012f40e05Romain Guy        menu.add("List item 2");
101fb8b763f762ae21923c58d64caa729b012f40e05Romain Guy        menu.add("List item 3");
10209147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy    }
10309147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy
10409147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy    private static class SimpleListAdapter extends ArrayAdapter<String> {
10509147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy        public SimpleListAdapter(Context context) {
10609147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            super(context, android.R.layout.simple_list_item_1, DATA_LIST);
10709147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy        }
10809147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy
10909147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy        @Override
11009147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy        public View getView(int position, View convertView, ViewGroup parent) {
11109147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            TextView v = (TextView) super.getView(position, convertView, parent);
11209147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            final Resources r = getContext().getResources();
11309147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            final DisplayMetrics metrics = r.getDisplayMetrics();
11409147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            v.setCompoundDrawablePadding((int) (6 * metrics.density + 0.5f));
11509147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            v.setCompoundDrawablesWithIntrinsicBounds(r.getDrawable(R.drawable.icon),
11609147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy                    null, null, null);
11709147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy            return v;
11809147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy        }
11909147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy    }
12009147fbdc8206a0cac78bfe9083e7e15b3c5689cRomain Guy}