Search in sources :

Example 21 with Music

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

the class ArtistSongLoader method getSongsForArtistDB.

public static Observable<List<Music>> getSongsForArtistDB(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)

Example 22 with Music

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

the class AlbumMusicAdapter method onBindViewHolder.

@Override
public void onBindViewHolder(final ItemHolder holder, final int position) {
    Music localItem = musicInfos.get(position);
    holder.title.setText(ConvertUtils.getTitle(localItem.getTitle()));
    holder.artist.setText(ConvertUtils.getArtistAndAlbum(localItem.getArtist(), localItem.getAlbum()));
    if (PlayManager.getPlayingMusic() != null && PlayManager.getPlayingMusic().equals(localItem)) {
        holder.v_playing.setVisibility(View.VISIBLE);
    } else {
        holder.v_playing.setVisibility(View.GONE);
    }
    setOnPopupMenuListener(holder, position);
}
Also used : Music(com.cyl.musiclake.bean.Music)

Example 23 with Music

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

the class DBDaoImpl method getMusicInfo.

/**
 * 获取音乐信息
 *
 * @param mid
 * @return
 */
public Music getMusicInfo(String mid) {
    // 查询歌单
    String query = "select * from music where mid = '" + mid + "'";
    Cursor cursor = db.rawQuery(query, null);
    if (cursor != null && cursor.getCount() > 0) {
        if (cursor.moveToFirst()) {
            Music music = new MusicCursorWrapper(cursor).getMusic();
            return music;
        }
    }
    // 记得关闭游标
    if (cursor != null) {
        cursor.close();
    }
    return null;
}
Also used : Music(com.cyl.musiclake.bean.Music) Cursor(android.database.Cursor)

Example 24 with Music

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

the class QQApiServiceImpl method search.

/**
 * @param
 * @return
 */
@SuppressWarnings({ "unchecked", "varargs" })
public static Observable<List<Music>> search(String key, int limit, int page) {
    Map<String, String> params = new HashMap<>();
    // page
    params.put("p", String.valueOf(page));
    // limit
    params.put("n", String.valueOf(limit));
    // key
    params.put("w", key);
    params.put("aggr", "1");
    params.put("cr", "1");
    params.put("lossless", "1");
    params.put("format", "json");
    return getApiService().searchByQQ(params).flatMap(qqApiModel -> {
        List<Music> musicList = new ArrayList<>();
        List<QQApiModel.DataBean.SongBean.ListBean> songList = qqApiModel.getData().getSong().getList();
        for (int i = 0; i < songList.size(); i++) {
            QQApiModel.DataBean.SongBean.ListBean song = songList.get(i);
            Music music = new Music();
            music.setType(Music.Type.QQ);
            music.setOnline(true);
            music.setId(song.getSongmid());
            music.setTitle(song.getSongname());
            String artists = song.getSinger().get(0).getName();
            String artistIds = song.getSinger().get(0).getId() + "";
            for (int j = 1; j < song.getSinger().size(); j++) {
                artists += "," + song.getSinger().get(j).getName();
                artistIds += "," + song.getSinger().get(j).getId();
            }
            music.setArtist(artists);
            music.setArtistId(artistIds);
            music.setAlbum(song.getAlbumname());
            music.setAlbumId(song.getAlbumid());
            music.setDuration(song.getPubtime());
            // qq音乐播放地址前缀,代表音乐品质 M500一般,M800高
            music.setPrefix(song.getSize128() != 0 ? "M500" : "M800");
            String cover = "https://y.gtimg.cn/music/photo_new/T002R300x300M000" + song.getAlbummid() + ".jpg";
            String coverBig = "https://y.gtimg.cn/music/photo_new/T002R500x500M000" + song.getAlbummid() + ".jpg";
            String coverSmall = "https://y.gtimg.cn/music/photo_new/T002R150x150M000" + song.getAlbummid() + ".jpg";
            music.setCoverUri(cover);
            music.setCoverBig(coverBig);
            music.setCoverSmall(coverSmall);
            musicList.add(music);
        }
        LogUtil.e("search", page + "--" + limit + "qq :" + musicList.size());
        return Observable.fromArray(musicList);
    });
}
Also used : HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) Music(com.cyl.musiclake.bean.Music)

Example 25 with Music

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

the class XiamiServiceImpl method search.

/**
 * 搜索虾米音乐
 *
 * @param key   关键字
 * @param limit
 * @param page
 * @return
 */
@SuppressWarnings({ "unchecked", "varargs" })
public static Observable<List<Music>> search(String key, int limit, int page) {
    Map<String, String> params = new HashMap<>();
    // page
    params.put("v", "2.0");
    // page
    params.put("page", String.valueOf(page));
    // limit
    params.put("limit", String.valueOf(limit));
    // key
    params.put("key", key);
    params.put("r", "search/songs");
    params.put("app_key", "1");
    params.put("format", "json");
    return getApiService().searchByXiaMi(params).flatMap(xiaMiModel -> {
        List<Music> musicList = new ArrayList<>();
        List<XiamiModel.DataBean.SongsBean> songs = xiaMiModel.getData().getSongs();
        for (int i = 0; i < songs.size(); i++) {
            XiamiModel.DataBean.SongsBean song = songs.get(i);
            Music music = new Music();
            music.setType(Music.Type.XIAMI);
            music.setOnline(true);
            music.setId(String.valueOf(song.getSong_id()));
            music.setTitle(song.getSong_name());
            music.setArtist(song.getArtist_name());
            music.setArtistId(String.valueOf(song.getArtist_id()));
            music.setAlbum(song.getAlbum_name());
            music.setAlbumId(song.getAlbum_id());
            music.setUri(song.getListen_file());
            String cover = song.getAlbum_logo() + "@1e_1c_0i_1o_100Q_250w_250h";
            String coverBig = song.getAlbum_logo() + "@1e_1c_0i_1o_100Q_400w_400h";
            String coverSmall = song.getAlbum_logo() + "@1e_1c_0i_1o_100Q_150w_150h";
            music.setCoverUri(cover);
            music.setCoverBig(coverBig);
            music.setCoverSmall(coverSmall);
            music.setLrcPath(song.getLyric());
            musicList.add(music);
        }
        LogUtil.e("search", page + "--" + limit + "xiami :" + musicList.size());
        return Observable.fromArray(musicList);
    });
}
Also used : HashMap(java.util.HashMap) Music(com.cyl.musiclake.bean.Music) ArrayList(java.util.ArrayList)

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