Search in sources :

Example 6 with Music

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

the class NeteaseMusicListActivity method listener.

@Override
protected void listener() {
    mAdapter.setOnItemClickListener((adapter, view, position) -> {
        if (view.getId() != R.id.iv_more) {
            action = 0;
            LogUtil.e(TAG, toplist.get(position).toString());
            mPresenter.getMusicInfo(toplist.get(position));
        }
    });
    mAdapter.setOnItemChildClickListener((adapter, view, position) -> {
        NeteaseMusic music = toplist.get(position);
        PopupMenu popupMenu = new PopupMenu(getApplicationContext(), view);
        popupMenu.setOnMenuItemClickListener(item -> {
            switch(item.getItemId()) {
                case R.id.popup_song_detail:
                    StringBuilder sb = new StringBuilder();
                    sb.append("艺术家:").append(music.getAuthors()).append("\n").append("专辑:").append(music.getAlbum().getName()).append("\n").append("播放时长:").append(FormatUtil.formatTime(music.getDuration())).append("\n").append("播放地址:").append(music.getMp3Url());
                    new MaterialDialog.Builder(NeteaseMusicListActivity.this).title("歌曲详情").content(sb.toString()).positiveText("确定").build().show();
                    break;
                case R.id.popup_song_goto_artist:
                    Log.e(TAG, music.toString());
                    Music music1 = new Music();
                    music1.setTitle(music.getName());
                    music1.setArtist(music.getArtists().get(0).getName());
                    Intent intent = new Intent(this, ArtistInfoActivity.class);
                    intent.putExtra(Extras.TING_UID, music1);
                    startActivity(intent);
                    break;
                case R.id.popup_add_playlist:
                    mPresenter.addPlaylist(new Music(music));
                    break;
                case R.id.popup_song_download:
                    action = 1;
                    mPresenter.getMusicInfo(music);
                    break;
            }
            return false;
        });
        popupMenu.inflate(R.menu.popup_song_online);
        popupMenu.show();
    });
}
Also used : MaterialDialog(com.afollestad.materialdialogs.MaterialDialog) NeteaseMusic(com.cyl.musiclake.api.netease.NeteaseMusic) Music(com.cyl.musiclake.bean.Music) NeteaseMusic(com.cyl.musiclake.api.netease.NeteaseMusic) Intent(android.content.Intent) PopupMenu(android.widget.PopupMenu)

Example 7 with Music

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

the class DownloadedFragment method listener.

@Override
protected void listener() {
    mAdapter.setOnItemClickListener((adapter, view, position) -> {
        if (view.getId() != R.id.iv_more) {
            PlayManager.setPlayList(musicList);
            PlayManager.play(position);
        }
    });
    mAdapter.setOnItemChildClickListener((adapter, view, position) -> {
        Music music = (Music) adapter.getItem(position);
        PopupMenu popupMenu = new PopupMenu(getContext(), view);
        popupMenu.setOnMenuItemClickListener(item -> {
            switch(item.getItemId()) {
                case R.id.popup_song_play:
                    PlayManager.setPlayList(musicList);
                    PlayManager.play(position);
                    break;
                case R.id.popup_song_detail:
                    ShowDetailDialog.newInstance((Music) adapter.getItem(position)).show(getChildFragmentManager(), getTag());
                    break;
                case R.id.popup_song_goto_album:
                    Log.e("album", music.toString() + "");
                    NavigateUtil.navigateToAlbum(getActivity(), music.getAlbumId(), music.getAlbum(), null);
                    break;
                case R.id.popup_song_goto_artist:
                    NavigateUtil.navigateToArtist(getActivity(), music.getArtistId(), music.getArtist(), null);
                    break;
                case R.id.popup_song_addto_queue:
                    AddPlaylistDialog.newInstance(music).show(getChildFragmentManager(), "ADD_PLAYLIST");
                    break;
                case R.id.popup_song_delete:
                    new MaterialDialog.Builder(getContext()).title("提示").content("是否删除这首歌曲?").onPositive((dialog, which) -> {
                        FileUtils.delFile(musicList.get(position).getUri());
                        SongLoader.removeSong(getActivity(), musicList.get(position));
                        mAdapter.notifyItemChanged(position);
                    }).positiveText("确定").negativeText("取消").show();
                    break;
            }
            return false;
        });
        popupMenu.inflate(R.menu.popup_song);
        popupMenu.show();
    });
}
Also used : DownloadPresenter(com.cyl.musiclake.ui.music.online.presenter.DownloadPresenter) NavigateUtil(com.cyl.musiclake.common.NavigateUtil) Bundle(android.os.Bundle) Music(com.cyl.musiclake.bean.Music) FileUtils(com.cyl.musiclake.utils.FileUtils) R(com.cyl.musiclake.R) AddPlaylistDialog(com.cyl.musiclake.ui.music.local.dialog.AddPlaylistDialog) LinearLayoutManager(android.support.v7.widget.LinearLayoutManager) SongLoader(com.cyl.musiclake.data.source.SongLoader) ArrayList(java.util.ArrayList) BindView(butterknife.BindView) RecyclerView(android.support.v7.widget.RecyclerView) List(java.util.List) BaseFragment(com.cyl.musiclake.base.BaseFragment) DownloadContract(com.cyl.musiclake.ui.music.online.contract.DownloadContract) PopupMenu(android.widget.PopupMenu) ShowDetailDialog(com.cyl.musiclake.ui.music.local.dialog.ShowDetailDialog) SongAdapter(com.cyl.musiclake.ui.music.local.adapter.SongAdapter) MaterialDialog(com.afollestad.materialdialogs.MaterialDialog) Log(android.util.Log) PlayManager(com.cyl.musiclake.service.PlayManager) Music(com.cyl.musiclake.bean.Music) PopupMenu(android.widget.PopupMenu)

Example 8 with Music

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

the class OnlineMusicAdapter method convert.

@Override
protected void convert(BaseViewHolder holder, BaiduMusicInfo baiduMusicInfo) {
    Music music = new Music();
    music.setTitle(baiduMusicInfo.getTitle());
    music.setArtist(baiduMusicInfo.getArtist_name());
    music.setAlbum(baiduMusicInfo.getAlbum_title());
    music.setCoverUri(baiduMusicInfo.getPic_big());
    music.setId(baiduMusicInfo.getSong_id());
    music.setLrcPath(baiduMusicInfo.getLrclink());
    holder.setText(R.id.tv_title, baiduMusicInfo.getTitle());
    holder.setText(R.id.tv_artist, baiduMusicInfo.getArtist_name());
    GlideApp.with(mContext).load(music.getCoverUri()).diskCacheStrategy(DiskCacheStrategy.ALL).into((ImageView) holder.getView(R.id.iv_cover));
    holder.addOnClickListener(R.id.iv_more);
}
Also used : Music(com.cyl.musiclake.bean.Music)

Example 9 with Music

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

the class PlayControlsPresenter method updateFavoriteSong.

public void updateFavoriteSong() {
    Music music = PlayManager.getPlayingMusic();
    if (music == null)
        return;
    PlayManager.updateFavorite(music);
    mView.updateFavorite(!PlayManager.getPlayingMusic().isLove());
}
Also used : Music(com.cyl.musiclake.bean.Music)

Example 10 with Music

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

the class ShowDetailDialog method onCreateDialog.

@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    final Music music = getArguments().getParcelable("music");
    StringBuilder sb = new StringBuilder();
    sb.append("歌名:").append(music.getTitle()).append("\n\n").append("歌手:").append(music.getArtist()).append("\n\n").append("专辑:").append(music.getAlbum());
    return new MaterialDialog.Builder(getActivity()).title("歌曲详情").content(sb.toString()).positiveText("确定").build();
}
Also used : Music(com.cyl.musiclake.bean.Music) NonNull(android.support.annotation.NonNull)

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