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