1792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project/*
2792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project * Copyright (C) 2007 The Android Open Source Project
3792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project *
4792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
5792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project * you may not use this file except in compliance with the License.
6792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project * You may obtain a copy of the License at
7792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project *
8792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
9792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project *
10792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software
11792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
12792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project * See the License for the specific language governing permissions and
14792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project * limitations under the License.
15792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project */
16792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project
17792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Projectpackage com.android.music;
18792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project
19792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Projectimport android.app.ListActivity;
20792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Projectimport android.content.ContentResolver;
21792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Projectimport android.content.ContentUris;
22792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Projectimport android.content.Intent;
23792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Projectimport android.database.Cursor;
24792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Projectimport android.media.AudioManager;
25792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Projectimport android.os.Bundle;
26792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Projectimport android.provider.MediaStore;
27792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Projectimport android.view.View;
28792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Projectimport android.widget.ListView;
29792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Projectimport android.widget.SimpleCursorAdapter;
30792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project
31792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Projectimport java.lang.Integer;
32792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project
33792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Projectpublic class VideoBrowserActivity extends ListActivity implements MusicUtils.Defs
34792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project{
35792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project    public VideoBrowserActivity()
36792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project    {
37792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project    }
38792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project
39792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project    /** Called when the activity is first created. */
40792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project    @Override
41792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project    public void onCreate(Bundle icicle)
42792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project    {
43792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project        super.onCreate(icicle);
44792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project        setVolumeControlStream(AudioManager.STREAM_MUSIC);
45792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project        init();
46792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project    }
47792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project
48792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project    public void init() {
49792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project
50792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project        // Set the layout for this activity.  You can find it
51792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project        // in assets/res/any/layout/media_picker_activity.xml
52792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project        setContentView(R.layout.media_picker_activity);
53792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project
54792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project        MakeCursor();
55792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project
56792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project        if (mCursor == null) {
57792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project            MusicUtils.displayDatabaseError(this);
58792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project            return;
59792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project        }
60792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project
61792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project        if (mCursor.getCount() > 0) {
62792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project            setTitle(R.string.videos_title);
63792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project        } else {
64792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project            setTitle(R.string.no_videos_title);
65792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project        }
66792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project
67792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project        // Map Cursor columns to views defined in media_list_item.xml
68792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project        SimpleCursorAdapter adapter = new SimpleCursorAdapter(
69792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project                this,
70792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project                android.R.layout.simple_list_item_1,
71792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project                mCursor,
72792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project                new String[] { MediaStore.Video.Media.TITLE},
73792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project                new int[] { android.R.id.text1 });
74792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project
75792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project        setListAdapter(adapter);
76792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project    }
77792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project
78792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project    @Override
79792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project    protected void onListItemClick(ListView l, View v, int position, long id)
80792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project    {
81792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project        Intent intent = new Intent(Intent.ACTION_VIEW);
82792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project        mCursor.moveToPosition(position);
83792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project        String type = mCursor.getString(mCursor.getColumnIndexOrThrow(MediaStore.Video.Media.MIME_TYPE));
84792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project        intent.setDataAndType(ContentUris.withAppendedId(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, id), type);
85792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project
86792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project        startActivity(intent);
87792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project    }
88792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project
89792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project    private void MakeCursor() {
90792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project        String[] cols = new String[] {
91792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project                MediaStore.Video.Media._ID,
92792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project                MediaStore.Video.Media.TITLE,
93792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project                MediaStore.Video.Media.DATA,
94792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project                MediaStore.Video.Media.MIME_TYPE,
95792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project                MediaStore.Video.Media.ARTIST
96792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project        };
97792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project        ContentResolver resolver = getContentResolver();
98792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project        if (resolver == null) {
99792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project            System.out.println("resolver = null");
100792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project        } else {
101792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project            mSortOrder = MediaStore.Video.Media.TITLE + " COLLATE UNICODE";
102792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project            mWhereClause = MediaStore.Video.Media.TITLE + " != ''";
103792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project            mCursor = resolver.query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
104792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project                cols, mWhereClause , null, mSortOrder);
105792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project        }
106792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project    }
107792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project
10877a7c123c3473131a6e2cda32c25d00333bc46fdChannagoud Kadabi    @Override
10977a7c123c3473131a6e2cda32c25d00333bc46fdChannagoud Kadabi    public void onDestroy() {
11077a7c123c3473131a6e2cda32c25d00333bc46fdChannagoud Kadabi        if (mCursor != null) {
11177a7c123c3473131a6e2cda32c25d00333bc46fdChannagoud Kadabi            mCursor.close();
11277a7c123c3473131a6e2cda32c25d00333bc46fdChannagoud Kadabi        }
11377a7c123c3473131a6e2cda32c25d00333bc46fdChannagoud Kadabi        super.onDestroy();
11477a7c123c3473131a6e2cda32c25d00333bc46fdChannagoud Kadabi    }
11577a7c123c3473131a6e2cda32c25d00333bc46fdChannagoud Kadabi
116792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project    private Cursor mCursor;
117792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project    private String mWhereClause;
118792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project    private String mSortOrder;
119792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project}
120792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project
121