Search in sources :

Example 41 with Music

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

the class MusicCursorWrapper method getMusic.

public Music getMusic() {
    Music music = new Music();
    music.setId(getString(getColumnIndex(DBData.MUSIC_ID)));
    music.setTitle(getString(getColumnIndex(DBData.MUSIC_NAME)));
    music.setArtistId(getString(getColumnIndex(DBData.MUSIC_ALBUM_ID)));
    music.setArtist(getString(getColumnIndex(DBData.MUSIC_ARTIST)));
    music.setAlbum(getString(getColumnIndex(DBData.MUSIC_ALBUM)));
    music.setAlbumId(getLong(getColumnIndex(DBData.MUSIC_ALBUM_ID)));
    music.setDuration(getLong(getColumnIndex(DBData.MUSIC_TIME)));
    music.setUri(getString(getColumnIndex(DBData.MUSIC_PATH)));
    music.setLrcPath(getString(getColumnIndex(DBData.MUSIC_LRC_PATH)));
    music.setCoverUri(getString(getColumnIndex(DBData.MUSIC_COVER)));
    music.setCoverBig(getString(getColumnIndex(DBData.MUSIC_COVER_BIG)));
    music.setCoverSmall(getString(getColumnIndex(DBData.MUSIC_COVER_SMALL)));
    music.setFileName(getString(getColumnIndex(DBData.MUSIC_FILENAME)));
    music.setPrefix(getString(getColumnIndex(DBData.MUSIC_PREFIX)));
    music.setLove(getInt(getColumnIndex(DBData.IS_LOVE)) == 1);
    music.setOnline(getInt(getColumnIndex(DBData.IS_ONLINE)) == 1);
    String type = getString(getColumnIndex(DBData.MUSIC_TYPE));
    music.setType(type);
    music.setFileSize(getLong(getColumnIndex(DBData.MUSIC_SIZE)));
    music.setYear(getString(getColumnIndex(DBData.MUSIC_YEARS)));
    LogUtil.e(music.toString());
    return music;
}
Also used : Music(com.cyl.musiclake.bean.Music)

Example 42 with Music

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

the class AddPlaylistDialog method onCreateDialog.

@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    final Music music = getArguments().getParcelable("music");
    if (music.getType() == Music.Type.LOCAL) {
        return new MaterialDialog.Builder(getActivity()).title("增加到歌单").content("暂不支持添加本地歌曲到在线歌单").build();
    }
    final List<Playlist> playlists = PlaylistLoader.getPlaylist(getActivity());
    final CharSequence[] chars = new CharSequence[playlists.size() + 1];
    chars[0] = "新建歌单";
    for (int i = 0; i < playlists.size(); i++) {
        chars[i + 1] = playlists.get(i).getName();
    }
    return new MaterialDialog.Builder(getActivity()).title("增加到歌单").items(chars).itemsCallback((dialog, itemView, which, text) -> {
        if (which == 0) {
            CreatePlaylistDialog createDialog = CreatePlaylistDialog.newInstance(music);
            createDialog.show(getFragmentManager(), TAG_CREATE);
        } else {
            Log.d("addDialog", which + "----" + playlists.get(which - 1).getId() + "------" + music.getId());
            result = PlaylistLoader.addToPlaylist(getActivity(), playlists.get(which - 1).getId(), music.getId());
            if (result) {
                RxBus.getInstance().post(new Playlist());
                ToastUtils.show(getActivity(), "添加成功");
            } else {
                ToastUtils.show(getActivity(), "歌单中已有此音乐,请勿重复添加");
            }
            dialog.dismiss();
        }
    }).build();
}
Also used : List(java.util.List) Bundle(android.os.Bundle) Music(com.cyl.musiclake.bean.Music) ToastUtils(com.cyl.musiclake.utils.ToastUtils) Playlist(com.cyl.musiclake.bean.Playlist) PlaylistLoader(com.cyl.musiclake.data.source.PlaylistLoader) Dialog(android.app.Dialog) NonNull(android.support.annotation.NonNull) RxBus(com.cyl.musiclake.RxBus) DialogFragment(android.support.v4.app.DialogFragment) MaterialDialog(com.afollestad.materialdialogs.MaterialDialog) Log(android.util.Log) Playlist(com.cyl.musiclake.bean.Playlist) MaterialDialog(com.afollestad.materialdialogs.MaterialDialog) Music(com.cyl.musiclake.bean.Music) NonNull(android.support.annotation.NonNull)

Example 43 with Music

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

the class MusicApiServiceImpl method getMusicList.

public static Observable<List<Music>> getMusicList(String pid) {
    return getMusicApiService().getMusicList(getToken(), pid).flatMap(myMusicInfo -> {
        List<Music> musicList = new ArrayList<>();
        for (int i = 0; i < myMusicInfo.getData().size(); i++) {
            MusicInfo musicInfo = myMusicInfo.getData().get(i);
            Music music = new Music();
            music.setId(musicInfo.getSong_id());
            music.setTitle(musicInfo.getSourceData().getName());
            music.setType(musicInfo.getSourceData().getSource());
            music.setAlbum(musicInfo.getSourceData().getAlbum().getName());
            music.setAlbumId(Long.parseLong(musicInfo.getSourceData().getAlbum().getId()));
            String artists = musicInfo.getSourceData().getArtists().get(0).getName();
            String artistIds = musicInfo.getSourceData().getArtists().get(0).getId();
            for (int j = 1; j < musicInfo.getSourceData().getArtists().size(); j++) {
                artists += "," + musicInfo.getSourceData().getArtists().get(j).getName();
                artistIds += "," + musicInfo.getSourceData().getArtists().get(j).getId();
            }
            music.setArtist(artists);
            music.setArtistId(artistIds);
            music.setCoverUri(musicInfo.getSourceData().getAlbum().getCover());
            music.setCoverBig(musicInfo.getSourceData().getAlbum().getCover());
            music.setCoverSmall(musicInfo.getSourceData().getAlbum().getCover());
            musicList.add(music);
        }
        return Observable.fromArray(musicList);
    });
}
Also used : Music(com.cyl.musiclake.bean.Music) ArrayList(java.util.ArrayList)

Example 44 with Music

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

the class BaiduApiServiceImpl method getOnlineSongs.

public static Observable<List<Music>> getOnlineSongs(String type, int limit, int mOffset) {
    Map<String, String> params = new HashMap<>();
    params.put(Constants.PARAM_METHOD, Constants.METHOD_GET_MUSIC_LIST);
    params.put(Constants.PARAM_TYPE, type);
    params.put(Constants.PARAM_SIZE, String.valueOf(limit));
    params.put(Constants.PARAM_OFFSET, String.valueOf(mOffset));
    return getApiService().getOnlineSongs(params).flatMap(baiduSongList -> {
        List<Music> musicList = new ArrayList<>();
        for (BaiduMusicInfo songInfo : baiduSongList.getSong_list()) {
            Music music = new Music();
            music.setType(Music.Type.BAIDU);
            music.setOnline(true);
            music.setId(songInfo.getSong_id());
            music.setAlbum(songInfo.getAlbum_title());
            music.setAlbumId(songInfo.getAlbum_id());
            music.setArtist(songInfo.getArtist_name());
            music.setArtistId(songInfo.getTing_uid());
            music.setTitle(songInfo.getTitle());
            music.setLrcPath(songInfo.getLrclink());
            music.setCoverSmall(songInfo.getPic_small());
            music.setCoverUri(songInfo.getPic_big());
            music.setCoverBig(songInfo.getPic_radio());
            musicList.add(music);
        }
        return Observable.create((ObservableOnSubscribe<List<Music>>) e -> {
            try {
                e.onNext(musicList);
                e.onComplete();
            } catch (Exception ep) {
                e.onError(ep);
            }
        });
    });
}
Also used : List(java.util.List) Music(com.cyl.musiclake.bean.Music) LogUtil(com.cyl.musiclake.utils.LogUtil) FileUtils(com.cyl.musiclake.utils.FileUtils) ObservableOnSubscribe(io.reactivex.ObservableOnSubscribe) Map(java.util.Map) HashMap(java.util.HashMap) Observable(io.reactivex.Observable) Constants(com.cyl.musiclake.common.Constants) ApiManager(com.cyl.musiclake.net.ApiManager) ArrayList(java.util.ArrayList) HashMap(java.util.HashMap) Music(com.cyl.musiclake.bean.Music) ArrayList(java.util.ArrayList) List(java.util.List) ArrayList(java.util.ArrayList)

Example 45 with Music

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

the class NeteaseApiServiceImpl method getTopMusicList.

public static Observable<List<Music>> getTopMusicList(int ids) {
    return getApiService().getTopList(ids).flatMap(topList -> {
        List<Music> musicList = new ArrayList<>();
        for (NeteaseMusic songInfo : topList.getResult().getTracks()) {
            Music music = new Music();
            music.setType(Music.Type.NETEASE);
            music.setOnline(true);
            music.setId(String.valueOf(songInfo.getId()));
            music.setAlbum(songInfo.getAlbum().getName());
            music.setAlbumId(songInfo.getAlbum().getId());
            music.setArtist(songInfo.getArtists().get(0).getName());
            // music.setArtistId(songInfo.getArtists().get(0).getId());
            music.setTitle(songInfo.getName());
            music.setCoverSmall(songInfo.getAlbum().getPicUrl());
            music.setCoverUri(songInfo.getAlbum().getBlurPicUrl());
            music.setCoverBig(songInfo.getAlbum().getPicUrl());
            musicList.add(music);
        }
        return Observable.create((ObservableOnSubscribe<List<Music>>) e -> {
            try {
                e.onNext(musicList);
                e.onComplete();
            } catch (Exception ep) {
                e.onError(ep);
            }
        });
    });
}
Also used : List(java.util.List) Music(com.cyl.musiclake.bean.Music) LogUtil(com.cyl.musiclake.utils.LogUtil) ObservableOnSubscribe(io.reactivex.ObservableOnSubscribe) Map(java.util.Map) HashMap(java.util.HashMap) Observable(io.reactivex.Observable) ApiManager(com.cyl.musiclake.net.ApiManager) ArrayList(java.util.ArrayList) Music(com.cyl.musiclake.bean.Music) ArrayList(java.util.ArrayList) List(java.util.List) 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