Search in sources :

Example 16 with Music

use of com.cyl.musiclake.bean.Music in project MusicLake by caiyonglong.

the class PlayQueueLoader method getPlayQueue.

// /**
// * 添加歌曲到歌单
// */
// private static void resetQueue(Context context, List<Music> musics) {
// DBDaoImpl dbDaoImpl = new DBDaoImpl(context);
// dbDaoImpl.insertSongs(musics);
// for (int i = 0; i < musics.size(); i++) {
// dbDaoImpl.insertSongToPlaylist(DBData.PLAY_QUEUE, musics.get(i).getId());
// }
// dbDaoImpl.closeDB();
// }
/**
 * 获取播放队列
 */
public static List<Music> getPlayQueue(Context context) {
    DBDaoImpl dbDaoImpl = new DBDaoImpl(context);
    String sql = "select * from music inner join music_playlist " + "where music.mid = music_playlist.mid " + "and music_playlist.pid=0 ORDER BY music_playlist.date_added DESC";
    Cursor cursor = dbDaoImpl.makeCursor(sql);
    List<Music> results = dbDaoImpl.getSongsForCursor(cursor);
    dbDaoImpl.closeDB();
    return results;
}
Also used : DBDaoImpl(com.cyl.musiclake.data.source.db.DBDaoImpl) Music(com.cyl.musiclake.bean.Music) Cursor(android.database.Cursor)

Example 17 with Music

use of com.cyl.musiclake.bean.Music in project MusicLake by caiyonglong.

the class SongLoader method getMusicInfo.

public static Observable<Music> getMusicInfo(final Context context, Music music) {
    return Observable.create(subscriber -> {
        try {
            DBDaoImpl dbDaoImpl = new DBDaoImpl(context);
            String sql = "select * from " + DBData.MUSIC_TABLE + " where " + DBData.MUSIC_ID + " = '" + music.getId() + "'";
            Cursor cursor = dbDaoImpl.makeCursor(sql);
            List<Music> results = dbDaoImpl.getSongsForCursor(cursor);
            if (results.size() != 0) {
                subscriber.onNext(results.get(0));
            } else {
                subscriber.onNext(music);
            }
            dbDaoImpl.closeDB();
            subscriber.onComplete();
        } catch (Exception e) {
            subscriber.onError(e);
        }
    });
}
Also used : DBDaoImpl(com.cyl.musiclake.data.source.db.DBDaoImpl) Music(com.cyl.musiclake.bean.Music) Cursor(android.database.Cursor)

Example 18 with Music

use of com.cyl.musiclake.bean.Music in project MusicLake by caiyonglong.

the class SongLoader method getSongsForCursor.

/**
 * cursor 获取音乐集合
 *
 * @param context
 * @param cursor
 * @return
 */
private static Observable<List<Music>> getSongsForCursor(Context context, final Cursor cursor) {
    return Observable.create(subscriber -> {
        try {
            DBDaoImpl dbDao = new DBDaoImpl(context);
            List<Music> results = dbDao.getSongsForCursor(cursor);
            cursor.close();
            subscriber.onNext(results);
            subscriber.onComplete();
        } catch (Exception e) {
            subscriber.onError(e);
        }
    });
}
Also used : DBDaoImpl(com.cyl.musiclake.data.source.db.DBDaoImpl) Music(com.cyl.musiclake.bean.Music)

Example 19 with Music

use of com.cyl.musiclake.bean.Music in project MusicLake by caiyonglong.

the class SongLoader method getSongsForMedia.

/**
 * Android 扫描获取到的数据
 *
 * @param context
 * @param cursor
 * @return
 */
public static Observable<List<Music>> getSongsForMedia(Context context, final Cursor cursor) {
    return Observable.create(subscriber -> {
        DBDaoImpl dbDao = new DBDaoImpl(context);
        List<Music> results = new ArrayList<>();
        try {
            if ((cursor != null) && (cursor.moveToFirst())) {
                do {
                    int is_music = cursor.getInt(9);
                    long id = cursor.getLong(0);
                    String title = cursor.getString(1);
                    String artist = cursor.getString(2);
                    String album = cursor.getString(3);
                    int duration = cursor.getInt(4);
                    int trackNumber = cursor.getInt(5);
                    String artistId = cursor.getString(6);
                    long albumId = cursor.getLong(7);
                    String path = cursor.getString(8);
                    String coverUri = CoverLoader.getInstance().getCoverUri(context, albumId);
                    Music music = dbDao.getMusicInfo(id + "");
                    if (music != null) {
                        if (coverUri != null) {
                            music.setCoverUri(coverUri);
                        }
                    } else {
                        music = new Music(id, albumId, artistId, title, artist, album, duration, trackNumber, path);
                    }
                    results.add(music);
                } while (cursor.moveToNext());
            }
            if (cursor != null) {
                cursor.close();
            }
            subscriber.onNext(results);
            subscriber.onComplete();
        } catch (Exception e) {
            subscriber.onError(e);
        }
    });
}
Also used : DBDaoImpl(com.cyl.musiclake.data.source.db.DBDaoImpl) Music(com.cyl.musiclake.bean.Music) ArrayList(java.util.ArrayList)

Example 20 with Music

use of com.cyl.musiclake.bean.Music in project MusicLake by caiyonglong.

the class AlbumSongLoader method getSongsForAlbumDB.

public static Observable<List<Music>> getSongsForAlbumDB(final Context context, final Cursor cursor) {
    return Observable.create(subscriber -> {
        DBDaoImpl dbDaoImpl = new DBDaoImpl(context);
        List<Music> results = dbDaoImpl.getSongsForCursor(cursor);
        dbDaoImpl.closeDB();
        subscriber.onNext(results);
        subscriber.onComplete();
    });
}
Also used : DBDaoImpl(com.cyl.musiclake.data.source.db.DBDaoImpl) Music(com.cyl.musiclake.bean.Music)

Aggregations

Music (com.cyl.musiclake.bean.Music)45 ArrayList (java.util.ArrayList)15 PopupMenu (android.widget.PopupMenu)10 DBDaoImpl (com.cyl.musiclake.data.source.db.DBDaoImpl)9 List (java.util.List)9 Log (android.util.Log)7 MaterialDialog (com.afollestad.materialdialogs.MaterialDialog)7 HashMap (java.util.HashMap)7 Intent (android.content.Intent)6 Cursor (android.database.Cursor)6 Bundle (android.os.Bundle)6 R (com.cyl.musiclake.R)6 PlayManager (com.cyl.musiclake.service.PlayManager)5 FileUtils (com.cyl.musiclake.utils.FileUtils)5 LinearLayoutManager (android.support.v7.widget.LinearLayoutManager)4 RecyclerView (android.support.v7.widget.RecyclerView)4 BindView (butterknife.BindView)4 BaseFragment (com.cyl.musiclake.base.BaseFragment)4 SongAdapter (com.cyl.musiclake.ui.music.local.adapter.SongAdapter)4 AddPlaylistDialog (com.cyl.musiclake.ui.music.local.dialog.AddPlaylistDialog)4