19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/*
29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2007 The Android Open Source Project
39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License.
69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at
79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software
119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and
149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License.
159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
171d3165f10b12165f02b7015ac1a817c5f60e6399Neal Nguyenpackage android.widget.listview;
189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
191d3165f10b12165f02b7015ac1a817c5f60e6399Neal Nguyenimport com.android.frameworks.coretests.R;
209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.app.ListActivity;
229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.database.Cursor;
239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Bundle;
249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.provider.Contacts.People;
259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.view.animation.AlphaAnimation;
269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.view.animation.Animation;
279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.view.animation.AnimationSet;
289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.view.animation.LayoutAnimationController;
299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.view.animation.TranslateAnimation;
309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.widget.ListAdapter;
319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.widget.ListView;
329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.widget.SimpleCursorAdapter;
339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.widget.Toast;
349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/**
369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See 1080989. You need some contacts for this adapter.
379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic class ListWithDisappearingItemBug extends ListActivity {
399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @Override
419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    protected void onCreate(Bundle savedInstanceState) {
429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        super.onCreate(savedInstanceState);
439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Toast.makeText(this, "Make sure you rotate screen to see bug", Toast.LENGTH_LONG).show();
459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        // Get a cursor with all people
479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Cursor c = getContentResolver().query(People.CONTENT_URI, null, null, null, null);
489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        startManagingCursor(c);
499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        ListAdapter adapter = new SimpleCursorAdapter(this,
519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                // Use a template that displays a text view
529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                R.layout.list_with_disappearing_item_bug_item,
539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                // Give the cursor to the list adatper
549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                c,
559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                // Map the NAME column in the people database to...
569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                new String[] {People.NAME} ,
579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                // The "text1" view defined in the XML template
589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                new int[] {R.id.text1});
599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        setListAdapter(adapter);
609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        AnimationSet set = new AnimationSet(true);
629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Animation animation = new AlphaAnimation(0.0f, 1.0f);
649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        animation.setDuration(50);
659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        set.addAnimation(animation);
669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        animation = new TranslateAnimation(
689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Animation.RELATIVE_TO_SELF, 0.0f,Animation.RELATIVE_TO_SELF, 0.0f,
699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Animation.RELATIVE_TO_SELF, -1.0f,Animation.RELATIVE_TO_SELF, 0.0f
709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        );
719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        animation.setDuration(100);
729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        set.addAnimation(animation);
739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        LayoutAnimationController controller =
759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                new LayoutAnimationController(set, 0.5f);
769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        ListView listView = getListView();
779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        listView.setLayoutAnimation(controller);
789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
81