RecyclerView
This commit is contained in:
parent
af21f191dd
commit
02e15fa739
25 changed files with 305 additions and 430 deletions
|
|
@ -1,5 +1,6 @@
|
|||
package com.kabouzeid.gramophone.adapter;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.view.LayoutInflater;
|
||||
|
|
@ -13,13 +14,13 @@ import android.widget.TextView;
|
|||
|
||||
import com.kabouzeid.gramophone.App;
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.adapter.songadapter.SongAdapter;
|
||||
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
|
||||
import com.kabouzeid.gramophone.helper.SongDetailDialogHelper;
|
||||
import com.kabouzeid.gramophone.loader.SongFilePathLoader;
|
||||
import com.kabouzeid.gramophone.misc.AppKeys;
|
||||
import com.kabouzeid.gramophone.model.Song;
|
||||
import com.kabouzeid.gramophone.ui.activities.tageditor.SongTagEditorActivity;
|
||||
import com.kabouzeid.gramophone.util.NavigationUtil;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
|
|
@ -28,22 +29,18 @@ import java.util.List;
|
|||
* Created by karim on 24.01.15.
|
||||
*/
|
||||
public class PlayingQueueAdapter extends ArrayAdapter<Song> {
|
||||
private Context context;
|
||||
private App app;
|
||||
private SongAdapter.GoToAble goToAble;
|
||||
private Activity activity;
|
||||
|
||||
public PlayingQueueAdapter(Context context, SongAdapter.GoToAble goToAble, List<Song> playList) {
|
||||
super(context, R.layout.item_playlist, playList);
|
||||
this.context = context;
|
||||
app = (App) context.getApplicationContext();
|
||||
this.goToAble = goToAble;
|
||||
public PlayingQueueAdapter(Activity activity, List<Song> playList) {
|
||||
super(activity, R.layout.item_playlist, playList);
|
||||
this.activity = activity;
|
||||
}
|
||||
|
||||
@Override
|
||||
public View getView(int position, View convertView, ViewGroup parent) {
|
||||
final Song song = getItem(position);
|
||||
if (convertView == null) {
|
||||
convertView = LayoutInflater.from(context).inflate(R.layout.item_playlist, parent, false);
|
||||
convertView = LayoutInflater.from(activity).inflate(R.layout.item_playlist, parent, false);
|
||||
}
|
||||
final TextView title = (TextView) convertView.findViewById(R.id.song_title);
|
||||
final ImageView playingIndicator = (ImageView) convertView.findViewById(R.id.playing_indicator);
|
||||
|
|
@ -61,31 +58,27 @@ public class PlayingQueueAdapter extends ArrayAdapter<Song> {
|
|||
overflowButton.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(final View v) {
|
||||
PopupMenu popupMenu = new PopupMenu(context, v);
|
||||
PopupMenu popupMenu = new PopupMenu(activity, v);
|
||||
popupMenu.inflate(R.menu.menu_song);
|
||||
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
|
||||
@Override
|
||||
public boolean onMenuItemClick(MenuItem item) {
|
||||
switch (item.getItemId()) {
|
||||
case R.id.action_tag_editor:
|
||||
Intent intent = new Intent(context, SongTagEditorActivity.class);
|
||||
Intent intent = new Intent(activity, SongTagEditorActivity.class);
|
||||
intent.putExtra(AppKeys.E_ID, song.id);
|
||||
context.startActivity(intent);
|
||||
activity.startActivity(intent);
|
||||
return true;
|
||||
case R.id.action_details:
|
||||
String songFilePath = SongFilePathLoader.getSongFilePath(context, song.id);
|
||||
String songFilePath = SongFilePathLoader.getSongFilePath(activity, song.id);
|
||||
File songFile = new File(songFilePath);
|
||||
SongDetailDialogHelper.getDialog(context, songFile).show();
|
||||
SongDetailDialogHelper.getDialog(activity, songFile).show();
|
||||
return true;
|
||||
case R.id.action_go_to_album:
|
||||
if (goToAble != null) {
|
||||
goToAble.goToAlbum(song.albumId);
|
||||
}
|
||||
NavigationUtil.goToAlbum(activity, song.albumId, null);
|
||||
return true;
|
||||
case R.id.action_go_to_artist:
|
||||
if (goToAble != null) {
|
||||
goToAble.goToArtist(song.artistId);
|
||||
}
|
||||
NavigationUtil.goToAlbum(activity, song.artistId, null);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,8 @@
|
|||
package com.kabouzeid.gramophone.adapter.songadapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.support.v4.util.Pair;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
|
|
@ -16,8 +17,10 @@ import com.kabouzeid.gramophone.helper.SongDetailDialogHelper;
|
|||
import com.kabouzeid.gramophone.loader.SongFilePathLoader;
|
||||
import com.kabouzeid.gramophone.misc.AppKeys;
|
||||
import com.kabouzeid.gramophone.model.Song;
|
||||
import com.kabouzeid.gramophone.ui.activities.base.AbsFabActivity;
|
||||
import com.kabouzeid.gramophone.ui.activities.tageditor.SongTagEditorActivity;
|
||||
import com.kabouzeid.gramophone.util.MusicUtil;
|
||||
import com.kabouzeid.gramophone.util.NavigationUtil;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
|
|
@ -27,13 +30,11 @@ import java.util.List;
|
|||
*/
|
||||
public class SongAdapter extends ArrayAdapter<Song> {
|
||||
public static final String TAG = SongAdapter.class.getSimpleName();
|
||||
protected Context context;
|
||||
protected GoToAble goToAble;
|
||||
protected Activity activity;
|
||||
|
||||
public SongAdapter(Context context, GoToAble goToAble, List<Song> objects) {
|
||||
super(context, R.layout.item_song, objects);
|
||||
this.context = context;
|
||||
this.goToAble = goToAble;
|
||||
public SongAdapter(Activity activity, List<Song> objects) {
|
||||
super(activity, R.layout.item_song, objects);
|
||||
this.activity = activity;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -50,31 +51,33 @@ public class SongAdapter extends ArrayAdapter<Song> {
|
|||
overflowButton.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(final View v) {
|
||||
PopupMenu popupMenu = new PopupMenu(context, v);
|
||||
PopupMenu popupMenu = new PopupMenu(activity, v);
|
||||
popupMenu.inflate(R.menu.menu_song);
|
||||
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
|
||||
@Override
|
||||
public boolean onMenuItemClick(MenuItem item) {
|
||||
switch (item.getItemId()) {
|
||||
case R.id.action_tag_editor:
|
||||
Intent intent = new Intent(context, SongTagEditorActivity.class);
|
||||
Intent intent = new Intent(activity, SongTagEditorActivity.class);
|
||||
intent.putExtra(AppKeys.E_ID, song.id);
|
||||
context.startActivity(intent);
|
||||
activity.startActivity(intent);
|
||||
return true;
|
||||
case R.id.action_details:
|
||||
String songFilePath = SongFilePathLoader.getSongFilePath(context, song.id);
|
||||
String songFilePath = SongFilePathLoader.getSongFilePath(activity, song.id);
|
||||
File songFile = new File(songFilePath);
|
||||
SongDetailDialogHelper.getDialog(context, songFile).show();
|
||||
SongDetailDialogHelper.getDialog(activity, songFile).show();
|
||||
return true;
|
||||
case R.id.action_go_to_album:
|
||||
if (goToAble != null) {
|
||||
goToAble.goToAlbum(song.albumId);
|
||||
}
|
||||
Pair[] albumPairs = null;
|
||||
if (activity instanceof AbsFabActivity)
|
||||
albumPairs = ((AbsFabActivity) activity).getSharedViewsWithFab(albumPairs);
|
||||
NavigationUtil.goToAlbum(activity, song.albumId, albumPairs);
|
||||
return true;
|
||||
case R.id.action_go_to_artist:
|
||||
if (goToAble != null) {
|
||||
goToAble.goToArtist(song.artistId);
|
||||
}
|
||||
Pair[] artistPairs = null;
|
||||
if (activity instanceof AbsFabActivity)
|
||||
artistPairs = ((AbsFabActivity) activity).getSharedViewsWithFab(artistPairs);
|
||||
NavigationUtil.goToArtist(activity, song.artistId, artistPairs);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
|
@ -90,11 +93,4 @@ public class SongAdapter extends ArrayAdapter<Song> {
|
|||
|
||||
return convertView;
|
||||
}
|
||||
|
||||
public static interface GoToAble {
|
||||
public void goToAlbum(int albumId);
|
||||
|
||||
public void goToArtist(int artistId);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,8 @@
|
|||
package com.kabouzeid.gramophone.adapter.songadapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.support.v4.util.Pair;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
|
|
@ -15,8 +16,10 @@ import com.kabouzeid.gramophone.helper.SongDetailDialogHelper;
|
|||
import com.kabouzeid.gramophone.loader.SongFilePathLoader;
|
||||
import com.kabouzeid.gramophone.misc.AppKeys;
|
||||
import com.kabouzeid.gramophone.model.Song;
|
||||
import com.kabouzeid.gramophone.ui.activities.base.AbsFabActivity;
|
||||
import com.kabouzeid.gramophone.ui.activities.tageditor.SongTagEditorActivity;
|
||||
import com.kabouzeid.gramophone.util.MusicUtil;
|
||||
import com.kabouzeid.gramophone.util.NavigationUtil;
|
||||
import com.squareup.picasso.Picasso;
|
||||
|
||||
import java.io.File;
|
||||
|
|
@ -28,8 +31,8 @@ import java.util.List;
|
|||
public class SongViewListAdapter extends SongAdapter {
|
||||
public static final String TAG = SongViewListAdapter.class.getSimpleName();
|
||||
|
||||
public SongViewListAdapter(Context context, SongAdapter.GoToAble goToAble, List<Song> objects) {
|
||||
super(context, goToAble, objects);
|
||||
public SongViewListAdapter(Activity activity, List<Song> objects) {
|
||||
super(activity, objects);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -46,31 +49,33 @@ public class SongViewListAdapter extends SongAdapter {
|
|||
overflowButton.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(final View v) {
|
||||
PopupMenu popupMenu = new PopupMenu(context, v);
|
||||
PopupMenu popupMenu = new PopupMenu(activity, v);
|
||||
popupMenu.inflate(R.menu.menu_song);
|
||||
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
|
||||
@Override
|
||||
public boolean onMenuItemClick(MenuItem item) {
|
||||
switch (item.getItemId()) {
|
||||
case R.id.action_tag_editor:
|
||||
Intent intent = new Intent(context, SongTagEditorActivity.class);
|
||||
Intent intent = new Intent(activity, SongTagEditorActivity.class);
|
||||
intent.putExtra(AppKeys.E_ID, song.id);
|
||||
context.startActivity(intent);
|
||||
activity.startActivity(intent);
|
||||
return true;
|
||||
case R.id.action_details:
|
||||
String songFilePath = SongFilePathLoader.getSongFilePath(context, song.id);
|
||||
String songFilePath = SongFilePathLoader.getSongFilePath(activity, song.id);
|
||||
File songFile = new File(songFilePath);
|
||||
SongDetailDialogHelper.getDialog(context, songFile).show();
|
||||
SongDetailDialogHelper.getDialog(activity, songFile).show();
|
||||
return true;
|
||||
case R.id.action_go_to_album:
|
||||
if (goToAble != null) {
|
||||
goToAble.goToAlbum(song.albumId);
|
||||
}
|
||||
Pair[] albumPairs = new Pair[]{Pair.create(albumArt, getContext().getResources().getString(R.string.transition_album_cover))};
|
||||
if (activity instanceof AbsFabActivity)
|
||||
albumPairs = ((AbsFabActivity) activity).getSharedViewsWithFab(albumPairs);
|
||||
NavigationUtil.goToAlbum(activity, song.albumId, albumPairs);
|
||||
return true;
|
||||
case R.id.action_go_to_artist:
|
||||
if (goToAble != null) {
|
||||
goToAble.goToArtist(song.artistId);
|
||||
}
|
||||
Pair[] artistPairs = null;
|
||||
if (activity instanceof AbsFabActivity)
|
||||
artistPairs = ((AbsFabActivity) activity).getSharedViewsWithFab(artistPairs);
|
||||
NavigationUtil.goToArtist(activity, song.artistId, artistPairs);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue