/* * Copyright (C) 2015 Naman Dwivedi * * Licensed under the GNU General Public License v3 * * This is free software: you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU General Public License for more details. */ package com.wm.remusic.adapter; import android.app.Activity; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import com.wm.remusic.R; import com.wm.remusic.fragment.SimpleMoreFragment; import com.wm.remusic.info.MusicInfo; import com.wm.remusic.service.MusicPlayer; import com.wm.remusic.uitl.MusicUtils; import java.util.ArrayList; import java.util.HashMap; import java.util.List; public class SearchAdapter extends RecyclerView.Adapter<SearchAdapter.ItemHolder> { private Activity mContext; private List<MusicInfo> searchResults = new ArrayList<>(); public SearchAdapter(Activity context) { this.mContext = context; } @Override public ItemHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) { View v0 = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.fragment_musci_common_item, null); ItemHolder ml0 = new ItemHolder(v0); return ml0; } @Override public void onBindViewHolder(final ItemHolder itemHolder, int i) { MusicInfo song = searchResults.get(i); itemHolder.title.setText(song.musicName); itemHolder.songartist.setText(song.artist); setOnPopupMenuListener(itemHolder, i); } @Override public void onViewRecycled(ItemHolder itemHolder) { } @Override public int getItemCount() { return searchResults.size(); } private void setOnPopupMenuListener(ItemHolder itemHolder, final int position) { itemHolder.menu.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { SimpleMoreFragment morefragment = SimpleMoreFragment.newInstance(searchResults.get(position).songId); morefragment.show(((AppCompatActivity) mContext).getSupportFragmentManager(), "music"); } }); } public void updateSearchResults(List searchResults) { this.searchResults = searchResults; } public class ItemHolder extends RecyclerView.ViewHolder implements View.OnClickListener { TextView title, songartist; ImageView menu, albumArt; public ItemHolder(View view) { super(view); this.title = (TextView) view.findViewById(R.id.viewpager_list_toptext); this.songartist = (TextView) view.findViewById(R.id.viewpager_list_bottom_text); this.albumArt = (ImageView) view.findViewById(R.id.play_state); this.menu = (ImageView) view.findViewById(R.id.viewpager_list_button); view.setOnClickListener(this); } @Override public void onClick(View v) { new Thread(new Runnable() { @Override public void run() { long[] list = new long[searchResults.size()]; HashMap<Long, MusicInfo> infos = new HashMap(); for (int i = 0; i < searchResults.size(); i++) { MusicInfo info = searchResults.get(i); list[i] = info.songId; info.islocal = true; info.albumData = MusicUtils.getAlbumArtUri(info.albumId) + ""; infos.put(list[i], searchResults.get(i)); } MusicPlayer.playAll(infos, list, getAdapterPosition(), false); } }).start(); } } }