Make search work in all activities in the music app, enable the
music app itself as a media search provider, and fix some issues
surrounding searching items that have unknown artist or album.
diff --git a/src/com/android/music/ArtistAlbumBrowserActivity.java b/src/com/android/music/ArtistAlbumBrowserActivity.java
index c906d0e..13a2387 100644
--- a/src/com/android/music/ArtistAlbumBrowserActivity.java
+++ b/src/com/android/music/ArtistAlbumBrowserActivity.java
@@ -68,6 +68,8 @@
private String mCurrentAlbumId;
private String mCurrentAlbumName;
private String mCurrentArtistNameForAlbum;
+ boolean mIsUnknownArtist;
+ boolean mIsUnknownAlbum;
private ArtistAlbumListAdapter mAdapter;
private boolean mAdapterSent;
private final static int SEARCH = CHILD_MENU_BASE;
@@ -164,6 +166,7 @@
setListAdapter(null);
mAdapter = null;
unregisterReceiver(mScanListener);
+ setListAdapter(null);
super.onDestroy();
}
@@ -301,7 +304,6 @@
SubMenu sub = menu.addSubMenu(0, ADD_TO_PLAYLIST, 0, R.string.add_to_playlist);
MusicUtils.makePlaylistMenu(this, sub);
menu.add(0, DELETE_ITEM, 0, R.string.delete_item);
- menu.add(0, SEARCH, 0, R.string.search_title);
ExpandableListContextMenuInfo mi = (ExpandableListContextMenuInfo) menuInfoIn;
@@ -319,10 +321,14 @@
mCurrentArtistId = mArtistCursor.getString(mArtistCursor.getColumnIndexOrThrow(MediaStore.Audio.Artists._ID));
mCurrentArtistName = mArtistCursor.getString(mArtistCursor.getColumnIndexOrThrow(MediaStore.Audio.Artists.ARTIST));
mCurrentAlbumId = null;
- if (mCurrentArtistName == null || mCurrentArtistName.equals(MediaFile.UNKNOWN_STRING)) {
+ mIsUnknownArtist = mCurrentArtistName == null ||
+ mCurrentArtistName.equals(MediaFile.UNKNOWN_STRING);
+ mIsUnknownAlbum = true;
+ if (mIsUnknownArtist) {
menu.setHeaderTitle(getString(R.string.unknown_artist_name));
} else {
menu.setHeaderTitle(mCurrentArtistName);
+ menu.add(0, SEARCH, 0, R.string.search_title);
}
return;
} else if (itemtype == ExpandableListView.PACKED_POSITION_TYPE_CHILD) {
@@ -340,11 +346,18 @@
mArtistCursor.moveToPosition(gpos);
mCurrentArtistNameForAlbum = mArtistCursor.getString(
mArtistCursor.getColumnIndexOrThrow(MediaStore.Audio.Artists.ARTIST));
- if (mCurrentAlbumName == null || mCurrentAlbumName.equals(MediaFile.UNKNOWN_STRING)) {
+ mIsUnknownArtist = mCurrentArtistNameForAlbum == null ||
+ mCurrentArtistNameForAlbum.equals(MediaFile.UNKNOWN_STRING);
+ mIsUnknownAlbum = mCurrentAlbumName == null ||
+ mCurrentAlbumName.equals(MediaFile.UNKNOWN_STRING);
+ if (mIsUnknownAlbum) {
menu.setHeaderTitle(getString(R.string.unknown_album_name));
} else {
menu.setHeaderTitle(mCurrentAlbumName);
}
+ if (!mIsUnknownAlbum || !mIsUnknownArtist) {
+ menu.add(0, SEARCH, 0, R.string.search_title);
+ }
}
}
@@ -431,8 +444,14 @@
i.putExtra(MediaStore.EXTRA_MEDIA_ARTIST, mCurrentArtistName);
i.putExtra(MediaStore.EXTRA_MEDIA_FOCUS, MediaStore.Audio.Artists.ENTRY_CONTENT_TYPE);
} else {
- title = mCurrentAlbumName;
- query = mCurrentArtistNameForAlbum + " " + mCurrentAlbumName;
+ if (mIsUnknownAlbum) {
+ title = query = mCurrentArtistNameForAlbum;
+ } else {
+ title = query = mCurrentAlbumName;
+ if (!mIsUnknownArtist) {
+ query = query + " " + mCurrentArtistNameForAlbum;
+ }
+ }
i.putExtra(MediaStore.EXTRA_MEDIA_ARTIST, mCurrentArtistNameForAlbum);
i.putExtra(MediaStore.EXTRA_MEDIA_ALBUM, mCurrentAlbumName);
i.putExtra(MediaStore.EXTRA_MEDIA_FOCUS, MediaStore.Audio.Albums.ENTRY_CONTENT_TYPE);