/** * Loads all metadata from the local music library into the in-app database. * * @param Activity activity * @param Globals globals */ private void loadAllSongs(Activity activity, Globals g) { for (int i = 0; i < artists.size(); i++) { String artist = artists.get(i); final String where = MediaStore.Audio.AlbumColumns.ARTIST + "='" + artist.replace("'", "''") + "'"; Cursor cursor = activity .getContentResolver() .query( MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, where, null, MediaStore.Audio.Albums.ARTIST + " ASC"); ArrayList<String> albumList = new ArrayList<String>(); while (cursor.moveToNext()) { String songTitle = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.TITLE)); String path = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA)); Song song = new Song(songTitle, path, true); String albumTitle = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM)); song.setAlbum(albumTitle); song.setArtist(cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST))); String artPath = ""; if (albumTitle != "") { String trackNumString = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.TRACK)); int trackNum; if (trackNumString != null && !trackNumString.equals("null")) { trackNum = Integer.parseInt(trackNumString); } else { trackNum = 0; } song.setTrackNum(trackNum); Cursor artCursor = activity .getContentResolver() .query( MediaStore.Audio.Albums.EXTERNAL_CONTENT_URI, new String[] { MediaStore.Audio.Albums.ALBUM, MediaStore.Audio.Albums.ALBUM_ART }, MediaStore.Audio.Albums.ALBUM + "=?", new String[] {albumTitle}, null); if (artCursor.moveToFirst() && artCursor.getString(1) != null) { artPath = artCursor.getString(1); } song.setAlbumArt(artPath); artCursor.close(); } else { song.setTrackNum(0); // SET DEFAULT ALBUM ART?? } song.setIpAddr(g.getIpAddr()); if (!albumList.contains(albumTitle)) { Song albumSong = new Song("DISPLAY_ALBUM", "", true); albumSong.setAlbum(albumTitle); albumSong.setArtist( cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST))); albumSong.setTrackNum(-1); albumSong.setAlbumArt(artPath); albumSong.setIpAddr(g.getIpAddr()); g.db.addSongToLibrary(albumSong); albumList.add(albumTitle); } g.db.addSongToLibrary(song); } cursor.close(); g.sendUIMessage(0); } }