/** * 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); } }
public void testAttributes() { Song song = new Song("Song"); assertEquals(song.getName(), "Song"); song.setAlbum("Album"); assertEquals(song.getAlbum(), "Album"); song.setArtist("Artist"); assertEquals(song.getArtist(), "Artist"); song.setBeatsPerMinute(123); assertEquals(song.getBeatsPerMinute(), 123); song.setBitrate(192); assertEquals(song.getBitrate(), 192); song.setComment("Comment"); assertEquals(song.getComment(), "Comment"); song.setCompilation(true); assertEquals(song.isCompilation(), true); song.setCompilation(false); assertEquals(song.isCompilation(), false); song.setComposer("Composer"); assertEquals(song.getComposer(), "Composer"); song.setDataKind(SongDataKind.DAAP_STREAM); assertEquals(song.getDataKind(), SongDataKind.DAAP_STREAM); song.setDataUrl("http://www.somewhere.ee"); assertEquals(song.getDataUrl(), "http://www.somewhere.ee"); song.setDateAdded(9999999); assertEquals(song.getDateAdded(), 9999999); song.setDateModified(6666666); assertEquals(song.getDateModified(), 6666666); song.setDescription("Description"); assertEquals(song.getDescription(), "Description"); song.setDisabled(true); assertEquals(song.isDisabled(), true); song.setDisabled(false); assertEquals(song.isDisabled(), false); song.setDiscCount(100); assertEquals(song.getDiscCount(), 100); song.setDiscNumber(99); assertEquals(song.getDiscNumber(), 99); song.setEqPreset(SongEqPreset.LATIN); assertEquals(song.getEqPreset(), SongEqPreset.LATIN); song.setFormat(SongFormat.M4A); assertEquals(song.getFormat(), SongFormat.M4A); song.setGenre(SongGenre.NEW_AGE); assertEquals(song.getGenre(), SongGenre.NEW_AGE); song.setGrouping("Grouping"); assertEquals(song.getGrouping(), "Grouping"); song.setRelativeVolume(50); assertEquals(song.getRelativeVolume(), 50); song.setSampleRate(44100); assertEquals(song.getSampleRate(), 44100); song.setSize(6 * 1024 * 1024); assertEquals(song.getSize(), 6 * 1024 * 1024); song.setStartTime(3333333); assertEquals(song.getStartTime(), 3333333); song.setStopTime(4444444); assertEquals(song.getStopTime(), 4444444); song.setTime(5555555); assertEquals(song.getTime(), 5555555); song.setTrackCount(88); assertEquals(song.getTrackCount(), 88); song.setTrackNumber(87); assertEquals(song.getTrackNumber(), 87); song.setUserRating(SongUserRating.FOUR); assertEquals(song.getUserRating(), SongUserRating.FOUR); song.setYear(2004); assertEquals(song.getYear(), 2004); }