package com.architjn.acjmusicplayer.utils.adapters;
import android.content.Context;
import android.content.Intent;
import android.support.v7.widget.PopupMenu;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.architjn.acjmusicplayer.R;
import com.architjn.acjmusicplayer.service.PlayerService;
import com.architjn.acjmusicplayer.ui.layouts.activity.AlbumActivity;
import com.architjn.acjmusicplayer.utils.PermissionChecker;
import com.architjn.acjmusicplayer.utils.Utils;
import com.architjn.acjmusicplayer.utils.items.Song;
import java.util.ArrayList;
/**
* Created by architjn on 28/11/15.
*/
public class AlbumSongListAdapter extends RecyclerView.Adapter<AlbumSongListAdapter.SimpleItemViewHolder> {
private ArrayList<Song> items;
private AlbumActivity albumActivity;
private PermissionChecker permissionChecker;
private Context context;
public AlbumSongListAdapter(Context context, ArrayList<Song> items,
AlbumActivity albumActivity, PermissionChecker permissionChecker) {
this.context = context;
this.items = items;
this.albumActivity = albumActivity;
this.permissionChecker = permissionChecker;
}
@Override
public AlbumSongListAdapter.SimpleItemViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext()).
inflate(R.layout.album_list_item, parent, false);
return new SimpleItemViewHolder(itemView);
}
@Override
public void onBindViewHolder(final AlbumSongListAdapter.SimpleItemViewHolder holder, final int position) {
holder.name.setText(items.get(position).getName());
holder.count.setText(String.valueOf(position + 1));
holder.duration.setText(items.get(position).getDuration());
setOnClickListeners(holder, position);
}
private void setOnClickListeners(SimpleItemViewHolder holder, final int position) {
holder.mainView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new Thread(new Runnable() {
public void run() {
Intent i = new Intent();
i.setAction(PlayerService.ACTION_PLAY_ALBUM);
i.putExtra("songPos", position);
i.putExtra("albumId", items.get(position).getAlbumId());
context.sendBroadcast(i);
}
}).start();
}
});
holder.menu.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
PopupMenu pm = new PopupMenu(context, view);
pm.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
Intent intent = new Intent();
new Utils(context).handleSongMenuClick(item, items,
intent, position, albumActivity, permissionChecker);
notifyDataSetChanged();
return false;
}
});
pm.inflate(R.menu.popup_song);
pm.show();
}
});
}
@Override
public int getItemCount() {
return items.size();
}
public class SimpleItemViewHolder extends RecyclerView.ViewHolder {
public TextView name, count, duration;
public View mainView, menu;
public SimpleItemViewHolder(View itemView) {
super(itemView);
mainView = itemView;
name = (TextView) itemView.findViewById(R.id.album_item_name);
duration = (TextView) itemView.findViewById(R.id.album_item_duration);
count = (TextView) itemView.findViewById(R.id.album_item_count);
menu = itemView.findViewById(R.id.album_item_menu);
}
}
}