Added Nullity Annotations

This commit is contained in:
Karim Abou Zeid 2015-07-10 02:37:10 +02:00
commit 5317c51400
102 changed files with 772 additions and 404 deletions

View file

@ -16,6 +16,7 @@ import java.util.ArrayList;
* @author Karim Abou Zeid (kabouzeid)
*/
public abstract class AbsMultiSelectAdapter<VH extends RecyclerView.ViewHolder, I> extends RecyclerView.Adapter<VH> implements MaterialCab.Callback {
@Nullable
private final CabHolder cabHolder;
private MaterialCab cab;
private ArrayList<I> checked;

View file

@ -3,6 +3,7 @@ package com.kabouzeid.gramophone.adapter;
import android.annotation.TargetApi;
import android.graphics.Bitmap;
import android.os.Build;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.util.Pair;
import android.support.v7.app.AppCompatActivity;
@ -54,10 +55,12 @@ public class AlbumAdapter extends AbsMultiSelectAdapter<AlbumAdapter.ViewHolder,
public static final String TAG = AlbumAdapter.class.getSimpleName();
private static final int FADE_IN_TIME = 500;
@NonNull
private final AppCompatActivity activity;
private boolean usePalette;
private List<Album> dataSet;
@NonNull
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(activity).inflate(R.layout.item_grid_album, parent, false);
@ -65,7 +68,7 @@ public class AlbumAdapter extends AbsMultiSelectAdapter<AlbumAdapter.ViewHolder,
}
@Override
public void onBindViewHolder(final ViewHolder holder, int position) {
public void onBindViewHolder(@NonNull final ViewHolder holder, int position) {
final Album album = dataSet.get(position);
resetColors(holder.title, holder.artist, holder.footer);
@ -114,7 +117,7 @@ public class AlbumAdapter extends AbsMultiSelectAdapter<AlbumAdapter.ViewHolder,
}
@Override
protected void onMultipleItemAction(MenuItem menuItem, ArrayList<Album> selection) {
protected void onMultipleItemAction(@NonNull MenuItem menuItem, @NonNull ArrayList<Album> selection) {
switch (menuItem.getItemId()) {
case R.id.action_delete_from_disk:
DeleteSongsDialog.create(getSongList(selection)).show(activity.getSupportFragmentManager(), "DELETE_SONGS");
@ -128,7 +131,8 @@ public class AlbumAdapter extends AbsMultiSelectAdapter<AlbumAdapter.ViewHolder,
}
}
private ArrayList<Song> getSongList(List<Album> albums) {
@NonNull
private ArrayList<Song> getSongList(@NonNull List<Album> albums) {
final ArrayList<Song> songs = new ArrayList<>();
for (Album album : albums) {
songs.addAll(AlbumSongLoader.getAlbumSongList(activity, album.id));
@ -137,14 +141,19 @@ public class AlbumAdapter extends AbsMultiSelectAdapter<AlbumAdapter.ViewHolder,
}
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener, View.OnLongClickListener {
@NonNull
final ImageView albumArt;
@NonNull
final TextView title;
@NonNull
final TextView artist;
final View footer;
@NonNull
final ImageView checkMark;
@NonNull
final View view;
public ViewHolder(View itemView) {
public ViewHolder(@NonNull View itemView) {
super(itemView);
view = itemView;
albumArt = (ImageView) itemView.findViewById(R.id.album_art);
@ -161,7 +170,7 @@ public class AlbumAdapter extends AbsMultiSelectAdapter<AlbumAdapter.ViewHolder,
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
public boolean onTouch(@NonNull View view, @NonNull MotionEvent motionEvent) {
((FrameLayout) view.findViewById(R.id.content)).getForeground().setHotspot(motionEvent.getX(), motionEvent.getY());
return false;
}
@ -191,7 +200,7 @@ public class AlbumAdapter extends AbsMultiSelectAdapter<AlbumAdapter.ViewHolder,
}
}
public AlbumAdapter(AppCompatActivity activity, @Nullable CabHolder cabHolder) {
public AlbumAdapter(@NonNull AppCompatActivity activity, @Nullable CabHolder cabHolder) {
super(activity, cabHolder, R.menu.menu_media_selection);
this.activity = activity;
usePalette = PreferenceUtils.getInstance(activity).coloredAlbumFooters();
@ -208,13 +217,13 @@ public class AlbumAdapter extends AbsMultiSelectAdapter<AlbumAdapter.ViewHolder,
dataSet = AlbumLoader.getAllAlbums(activity);
}
private void applyPalette(Bitmap bitmap, final TextView title, final TextView artist, final View footer) {
private void applyPalette(@Nullable Bitmap bitmap, @NonNull final TextView title, @NonNull final TextView artist, @NonNull final View footer) {
if (bitmap != null) {
Palette.from(bitmap)
.resizeBitmapSize(100)
.generate(new Palette.PaletteAsyncListener() {
@Override
public void onGenerated(Palette palette) {
public void onGenerated(@NonNull Palette palette) {
final Palette.Swatch vibrantSwatch = palette.getVibrantSwatch();
if (vibrantSwatch != null) {
title.setTextColor(Util.getOpaqueColor(vibrantSwatch.getTitleTextColor()));
@ -230,14 +239,14 @@ public class AlbumAdapter extends AbsMultiSelectAdapter<AlbumAdapter.ViewHolder,
}
}
private void paletteBlackAndWhite(final TextView title, final TextView artist, final View footer) {
private void paletteBlackAndWhite(@NonNull final TextView title, @NonNull final TextView artist, final View footer) {
title.setTextColor(Util.getOpaqueColor(DialogUtils.resolveColor(activity, R.attr.title_text_color)));
artist.setTextColor(Util.getOpaqueColor(DialogUtils.resolveColor(activity, R.attr.caption_text_color)));
int defaultBarColor = DialogUtils.resolveColor(activity, R.attr.default_bar_color);
ViewUtil.animateViewColor(footer, defaultBarColor, defaultBarColor);
}
private void resetColors(final TextView title, final TextView artist, final View footer) {
private void resetColors(@NonNull final TextView title, @NonNull final TextView artist, @NonNull final View footer) {
title.setTextColor(DialogUtils.resolveColor(activity, R.attr.title_text_color));
artist.setTextColor(DialogUtils.resolveColor(activity, R.attr.caption_text_color));
int defaultBarColor = DialogUtils.resolveColor(activity, R.attr.default_bar_color);
@ -257,7 +266,7 @@ public class AlbumAdapter extends AbsMultiSelectAdapter<AlbumAdapter.ViewHolder,
}
@Subscribe
public void onDataBaseEvent(DataBaseChangedEvent event) {
public void onDataBaseEvent(@NonNull DataBaseChangedEvent event) {
switch (event.getAction()) {
case DataBaseChangedEvent.ALBUMS_CHANGED:
case DataBaseChangedEvent.DATABASE_CHANGED:
@ -268,7 +277,7 @@ public class AlbumAdapter extends AbsMultiSelectAdapter<AlbumAdapter.ViewHolder,
}
@Subscribe
public void onUIChangeEvent(UIPreferenceChangedEvent event) {
public void onUIChangeEvent(@NonNull UIPreferenceChangedEvent event) {
switch (event.getAction()) {
case UIPreferenceChangedEvent.ALBUM_OVERVIEW_PALETTE_CHANGED:
usePalette = (boolean) event.getValue();

View file

@ -1,5 +1,6 @@
package com.kabouzeid.gramophone.adapter;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.util.Pair;
import android.support.v7.app.AppCompatActivity;
@ -43,11 +44,13 @@ import retrofit.client.Response;
* @author Karim Abou Zeid (kabouzeid)
*/
public class ArtistAdapter extends AbsMultiSelectAdapter<ArtistAdapter.ViewHolder, Artist> {
@NonNull
protected final AppCompatActivity activity;
protected List<Artist> dataSet;
@NonNull
protected final LastFMRestClient lastFMRestClient;
public ArtistAdapter(AppCompatActivity activity, @Nullable CabHolder cabHolder) {
public ArtistAdapter(@NonNull AppCompatActivity activity, @Nullable CabHolder cabHolder) {
super(activity, cabHolder, R.menu.menu_media_selection);
this.activity = activity;
lastFMRestClient = new LastFMRestClient(activity);
@ -64,6 +67,7 @@ public class ArtistAdapter extends AbsMultiSelectAdapter<ArtistAdapter.ViewHolde
dataSet = ArtistLoader.getAllArtists(activity);
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(activity).inflate(R.layout.item_list_artist, parent, false);
@ -71,7 +75,7 @@ public class ArtistAdapter extends AbsMultiSelectAdapter<ArtistAdapter.ViewHolde
}
@Override
public void onBindViewHolder(final ViewHolder holder, int position) {
public void onBindViewHolder(@NonNull final ViewHolder holder, int position) {
final Artist artist = dataSet.get(position);
holder.artistName.setText(artist.name);
@ -85,7 +89,7 @@ public class ArtistAdapter extends AbsMultiSelectAdapter<ArtistAdapter.ViewHolde
lastFMRestClient.getApiService().getArtistInfo(artist.name, null, new Callback<ArtistInfo>() {
@Override
public void success(ArtistInfo artistInfo, Response response) {
public void success(@NonNull ArtistInfo artistInfo, Response response) {
if (artistInfo.getArtist() != null) {
int thumbnailIndex = 0;
List<Image> images = artistInfo.getArtist().getImage();
@ -127,7 +131,7 @@ public class ArtistAdapter extends AbsMultiSelectAdapter<ArtistAdapter.ViewHolde
}
@Override
protected void onMultipleItemAction(MenuItem menuItem, ArrayList<Artist> selection) {
protected void onMultipleItemAction(@NonNull MenuItem menuItem, @NonNull ArrayList<Artist> selection) {
switch (menuItem.getItemId()) {
case R.id.action_delete_from_disk:
DeleteSongsDialog.create(getSongList(selection)).show(activity.getSupportFragmentManager(), "DELETE_SONGS");
@ -141,7 +145,8 @@ public class ArtistAdapter extends AbsMultiSelectAdapter<ArtistAdapter.ViewHolde
}
}
private ArrayList<Song> getSongList(List<Artist> artists) {
@NonNull
private ArrayList<Song> getSongList(@NonNull List<Artist> artists) {
final ArrayList<Song> songs = new ArrayList<>();
for (Artist artist : artists) {
songs.addAll(ArtistSongLoader.getArtistSongList(activity, artist.id));
@ -150,12 +155,16 @@ public class ArtistAdapter extends AbsMultiSelectAdapter<ArtistAdapter.ViewHolde
}
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener, View.OnLongClickListener {
@NonNull
final TextView artistName;
@NonNull
final TextView artistInfo;
@NonNull
final ImageView artistImage;
@NonNull
final View view;
public ViewHolder(View itemView) {
public ViewHolder(@NonNull View itemView) {
super(itemView);
view = itemView;
artistName = (TextView) itemView.findViewById(R.id.artist_name);
@ -200,7 +209,7 @@ public class ArtistAdapter extends AbsMultiSelectAdapter<ArtistAdapter.ViewHolde
}
@Subscribe
public void onDataBaseEvent(DataBaseChangedEvent event) {
public void onDataBaseEvent(@NonNull DataBaseChangedEvent event) {
switch (event.getAction()) {
case DataBaseChangedEvent.ARTISTS_CHANGED:
case DataBaseChangedEvent.DATABASE_CHANGED:

View file

@ -1,5 +1,6 @@
package com.kabouzeid.gramophone.adapter;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.util.Pair;
import android.support.v7.app.AppCompatActivity;
@ -38,11 +39,12 @@ public class ArtistAlbumAdapter extends AbsMultiSelectAdapter<ArtistAlbumAdapter
private static final int TYPE_MIDDLE = 2;
private static final int TYPE_LAST = 3;
@NonNull
private final AppCompatActivity activity;
private ArrayList<Album> dataSet;
private final int listMargin;
public ArtistAlbumAdapter(AppCompatActivity activity, ArrayList<Album> objects, @Nullable CabHolder cabHolder) {
public ArtistAlbumAdapter(@NonNull AppCompatActivity activity, ArrayList<Album> objects, @Nullable CabHolder cabHolder) {
super(activity, cabHolder, R.menu.menu_media_selection);
this.activity = activity;
dataSet = objects;
@ -60,6 +62,7 @@ public class ArtistAlbumAdapter extends AbsMultiSelectAdapter<ArtistAlbumAdapter
notifyDataSetChanged();
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(activity).inflate(R.layout.item_grid_artist_album, parent, false);
@ -73,7 +76,7 @@ public class ArtistAlbumAdapter extends AbsMultiSelectAdapter<ArtistAlbumAdapter
}
@Override
public void onBindViewHolder(final ViewHolder holder, int position) {
public void onBindViewHolder(@NonNull final ViewHolder holder, int position) {
final Album album = dataSet.get(position);
ImageLoader.getInstance().displayImage(
@ -111,7 +114,7 @@ public class ArtistAlbumAdapter extends AbsMultiSelectAdapter<ArtistAlbumAdapter
}
@Override
protected void onMultipleItemAction(MenuItem menuItem, ArrayList<Album> selection) {
protected void onMultipleItemAction(@NonNull MenuItem menuItem, @NonNull ArrayList<Album> selection) {
switch (menuItem.getItemId()) {
case R.id.action_delete_from_disk:
DeleteSongsDialog.create(getSongList(selection)).show(activity.getSupportFragmentManager(), "DELETE_SONGS");
@ -125,7 +128,8 @@ public class ArtistAlbumAdapter extends AbsMultiSelectAdapter<ArtistAlbumAdapter
}
}
private ArrayList<Song> getSongList(List<Album> albums) {
@NonNull
private ArrayList<Song> getSongList(@NonNull List<Album> albums) {
final ArrayList<Song> songs = new ArrayList<>();
for (Album album : albums) {
songs.addAll(AlbumSongLoader.getAlbumSongList(activity, album.id));
@ -134,12 +138,16 @@ public class ArtistAlbumAdapter extends AbsMultiSelectAdapter<ArtistAlbumAdapter
}
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener, View.OnLongClickListener {
@NonNull
final ImageView albumArt;
@NonNull
final TextView title;
@NonNull
final TextView year;
@NonNull
final View view;
public ViewHolder(View itemView) {
public ViewHolder(@NonNull View itemView) {
super(itemView);
view = itemView;
albumArt = (ImageView) itemView.findViewById(R.id.album_art);

View file

@ -2,6 +2,7 @@ package com.kabouzeid.gramophone.adapter;
import android.content.Context;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
@ -25,13 +26,15 @@ public class PagerAdapter extends FragmentPagerAdapter {
private final List<Holder> mHolderList = new ArrayList<>();
@NonNull
private final Context mContext;
private int mCurrentPage;
@NonNull
private final String[] titles;
public PagerAdapter(final Context context, final FragmentManager fragmentManager) {
public PagerAdapter(@NonNull final Context context, final FragmentManager fragmentManager) {
super(fragmentManager);
mContext = context;
titles = new String[]{
@ -43,7 +46,7 @@ public class PagerAdapter extends FragmentPagerAdapter {
}
@SuppressWarnings("synthetic-access")
public void add(final Class<? extends Fragment> className, final Bundle params) {
public void add(@NonNull final Class<? extends Fragment> className, final Bundle params) {
final Holder mHolder = new Holder();
mHolder.mClassName = className.getName();
mHolder.mParams = params;
@ -61,8 +64,9 @@ public class PagerAdapter extends FragmentPagerAdapter {
return getItem(position);
}
@NonNull
@Override
public Object instantiateItem(final ViewGroup container, final int position) {
public Object instantiateItem(@NonNull final ViewGroup container, final int position) {
final Fragment mFragment = (Fragment) super.instantiateItem(container, position);
final WeakReference<Fragment> mWeakFragment = mFragmentArray.get(position);
if (mWeakFragment != null) {
@ -93,6 +97,7 @@ public class PagerAdapter extends FragmentPagerAdapter {
return mHolderList.size();
}
@NonNull
@Override
public CharSequence getPageTitle(final int position) {
return titles[position]

View file

@ -1,5 +1,7 @@
package com.kabouzeid.gramophone.adapter;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.view.LayoutInflater;
import android.view.MenuItem;
@ -24,15 +26,17 @@ import java.util.ArrayList;
*/
public class PlayingQueueAdapter extends ArrayAdapter<Song> {
@NonNull
private final AppCompatActivity activity;
public PlayingQueueAdapter(AppCompatActivity activity, ArrayList<Song> playList) {
public PlayingQueueAdapter(@NonNull AppCompatActivity activity, @NonNull ArrayList<Song> playList) {
super(activity, R.layout.item_list_playlist_song, playList);
this.activity = activity;
}
@Nullable
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
public View getView(final int position, @Nullable View convertView, ViewGroup parent) {
final Song song = getItem(position);
if (convertView == null) {
convertView = LayoutInflater.from(activity).inflate(R.layout.item_list_playlist_song, parent, false);
@ -56,7 +60,7 @@ public class PlayingQueueAdapter extends ArrayAdapter<Song> {
popupMenu.inflate(R.menu.menu_item_playing_queue_song);
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
public boolean onMenuItemClick(@NonNull MenuItem item) {
if (item.getItemId() == R.id.action_remove_from_playing_queue) {
MusicPlayerRemote.removeFromQueue(position);
notifyDataSetChanged();

View file

@ -1,5 +1,6 @@
package com.kabouzeid.gramophone.adapter;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.util.Pair;
import android.support.v7.app.AppCompatActivity;
@ -72,6 +73,7 @@ public class PlaylistAdapter extends AbsMultiSelectAdapter<PlaylistAdapter.ViewH
dataSet.addAll(PlaylistLoader.getAllPlaylists(activity));
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
int layoutRes = viewType == VIEW_TYPE_DEFAULT ? R.layout.item_list_playlist : R.layout.item_list_smart_playlist;
@ -80,7 +82,7 @@ public class PlaylistAdapter extends AbsMultiSelectAdapter<PlaylistAdapter.ViewH
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
final Playlist playlist = dataSet.get(position);
holder.playlistName.setText(playlist.name);
holder.view.setActivated(isChecked(playlist));
@ -110,7 +112,7 @@ public class PlaylistAdapter extends AbsMultiSelectAdapter<PlaylistAdapter.ViewH
}
@Override
protected void onMultipleItemAction(MenuItem menuItem, ArrayList<Playlist> selection) {
protected void onMultipleItemAction(@NonNull MenuItem menuItem, @NonNull ArrayList<Playlist> selection) {
switch (menuItem.getItemId()) {
case R.id.action_delete_playlist:
for (int i = 0; i < selection.size(); i++) {
@ -135,7 +137,8 @@ public class PlaylistAdapter extends AbsMultiSelectAdapter<PlaylistAdapter.ViewH
}
}
private ArrayList<Song> getSongList(List<Playlist> playlists) {
@NonNull
private ArrayList<Song> getSongList(@NonNull List<Playlist> playlists) {
final ArrayList<Song> songs = new ArrayList<>();
for (Playlist playlist : playlists) {
if (playlist instanceof AbsSmartPlaylist) {
@ -156,7 +159,7 @@ public class PlaylistAdapter extends AbsMultiSelectAdapter<PlaylistAdapter.ViewH
ImageView icon;
View view;
public ViewHolder(View itemView) {
public ViewHolder(@NonNull View itemView) {
super(itemView);
ButterKnife.inject(this, itemView);
view = itemView;
@ -169,7 +172,7 @@ public class PlaylistAdapter extends AbsMultiSelectAdapter<PlaylistAdapter.ViewH
popupMenu.inflate(getItemViewType() == VIEW_TYPE_SMART ? R.menu.menu_item_smart_playlist : R.menu.menu_item_playlist);
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
public boolean onMenuItemClick(@NonNull MenuItem item) {
if (item.getItemId() == R.id.action_clear_playlist) {
Playlist playlist = dataSet.get(getAdapterPosition());
if (playlist instanceof AbsSmartPlaylist) {
@ -219,7 +222,7 @@ public class PlaylistAdapter extends AbsMultiSelectAdapter<PlaylistAdapter.ViewH
}
@Subscribe
public void onDataBaseEvent(DataBaseChangedEvent event) {
public void onDataBaseEvent(@NonNull DataBaseChangedEvent event) {
switch (event.getAction()) {
case DataBaseChangedEvent.PLAYLISTS_CHANGED:
case DataBaseChangedEvent.DATABASE_CHANGED:

View file

@ -1,5 +1,7 @@
package com.kabouzeid.gramophone.adapter;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.util.Pair;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.RecyclerView;
@ -48,18 +50,21 @@ public class SearchAdapter extends RecyclerView.Adapter<SearchAdapter.ViewHolder
private static final int ARTIST = 2;
private static final int SONG = 3;
@NonNull
private final AppCompatActivity activity;
@NonNull
private List results = Collections.emptyList();
private String query;
@NonNull
private final LastFMRestClient lastFMRestClient;
public SearchAdapter(AppCompatActivity activity) {
public SearchAdapter(@NonNull AppCompatActivity activity) {
this.activity = activity;
lastFMRestClient = new LastFMRestClient(activity);
}
@SuppressWarnings("unchecked")
public void search(String query) {
public void search(@NonNull String query) {
this.query = query;
results = new ArrayList();
if (!query.trim().equals("")) {
@ -92,6 +97,7 @@ public class SearchAdapter extends RecyclerView.Adapter<SearchAdapter.ViewHolder
return HEADER;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
if (viewType == ALBUM)
@ -104,7 +110,7 @@ public class SearchAdapter extends RecyclerView.Adapter<SearchAdapter.ViewHolder
}
@Override
public void onBindViewHolder(final ViewHolder holder, int position) {
public void onBindViewHolder(@NonNull final ViewHolder holder, int position) {
switch (getItemViewType(position)) {
case ALBUM:
final Album album = (Album) results.get(position);
@ -130,7 +136,7 @@ public class SearchAdapter extends RecyclerView.Adapter<SearchAdapter.ViewHolder
}
lastFMRestClient.getApiService().getArtistInfo(artist.name, null, new Callback<ArtistInfo>() {
@Override
public void success(ArtistInfo artistInfo, Response response) {
public void success(@NonNull ArtistInfo artistInfo, Response response) {
if (artistInfo.getArtist() != null) {
int thumbnailIndex = 0;
List<Image> images = artistInfo.getArtist().getImage();
@ -177,12 +183,15 @@ public class SearchAdapter extends RecyclerView.Adapter<SearchAdapter.ViewHolder
}
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
@Nullable
private final ImageView image;
@NonNull
public final TextView title;
@Nullable
public final TextView subTitle;
private final int viewType;
public ViewHolder(View itemView, int viewType) {
public ViewHolder(@NonNull View itemView, int viewType) {
super(itemView);
itemView.setOnClickListener(this);
this.viewType = viewType;
@ -208,7 +217,7 @@ public class SearchAdapter extends RecyclerView.Adapter<SearchAdapter.ViewHolder
popupMenu.inflate(R.menu.menu_item_song);
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem menuItem) {
public boolean onMenuItemClick(@NonNull MenuItem menuItem) {
return MenuItemClickHelper.handleSongMenuClick(activity, (Song) results.get(getAdapterPosition()), menuItem);
}
});
@ -269,7 +278,7 @@ public class SearchAdapter extends RecyclerView.Adapter<SearchAdapter.ViewHolder
}
@Subscribe
public void onDataBaseEvent(DataBaseChangedEvent event) {
public void onDataBaseEvent(@NonNull DataBaseChangedEvent event) {
switch (event.getAction()) {
case DataBaseChangedEvent.ALBUMS_CHANGED:
case DataBaseChangedEvent.DATABASE_CHANGED:

View file

@ -1,5 +1,6 @@
package com.kabouzeid.gramophone.adapter.songadapter;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.RecyclerView;
@ -49,6 +50,7 @@ public class AlbumSongAdapter extends AbsMultiSelectAdapter<AlbumSongAdapter.Vie
notifyDataSetChanged();
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(activity).inflate(R.layout.item_list_album_song, parent, false);
@ -56,7 +58,7 @@ public class AlbumSongAdapter extends AbsMultiSelectAdapter<AlbumSongAdapter.Vie
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
final Song song = dataSet.get(position);
final int trackNumber = MusicUtil.getFixedTrackNumber(song.trackNumber);
@ -78,7 +80,7 @@ public class AlbumSongAdapter extends AbsMultiSelectAdapter<AlbumSongAdapter.Vie
}
@Override
protected void onMultipleItemAction(MenuItem menuItem, ArrayList<Song> selection) {
protected void onMultipleItemAction(@NonNull MenuItem menuItem, @NonNull ArrayList<Song> selection) {
switch (menuItem.getItemId()) {
case R.id.action_delete_from_disk:
DeleteSongsDialog.create(selection).show(activity.getSupportFragmentManager(), "DELETE_SONGS");
@ -93,13 +95,18 @@ public class AlbumSongAdapter extends AbsMultiSelectAdapter<AlbumSongAdapter.Vie
}
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener, View.OnLongClickListener {
@NonNull
final TextView songTitle;
@NonNull
final TextView trackNumber;
@NonNull
final TextView artistName;
@NonNull
final ImageView overflowButton;
@NonNull
final View view;
public ViewHolder(View itemView) {
public ViewHolder(@NonNull View itemView) {
super(itemView);
view = itemView;
songTitle = (TextView) itemView.findViewById(R.id.song_title);
@ -115,7 +122,7 @@ public class AlbumSongAdapter extends AbsMultiSelectAdapter<AlbumSongAdapter.Vie
popupMenu.inflate(R.menu.menu_item_song);
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
public boolean onMenuItemClick(@NonNull MenuItem item) {
return MenuItemClickHelper.handleSongMenuClick(activity, dataSet.get(getAdapterPosition()), item);
}
});

View file

@ -1,5 +1,6 @@
package com.kabouzeid.gramophone.adapter.songadapter;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.util.Pair;
import android.support.v7.app.AppCompatActivity;
@ -34,14 +35,16 @@ import java.util.ArrayList;
*/
public class ArtistSongAdapter extends ArrayAdapter<Song> implements MaterialCab.Callback {
@Nullable
private final CabHolder cabHolder;
private MaterialCab cab;
private ArrayList<Song> dataSet;
private ArrayList<Song> checked;
@NonNull
private final AppCompatActivity activity;
public ArtistSongAdapter(AppCompatActivity activity, ArrayList<Song> songs, @Nullable CabHolder cabHolder) {
public ArtistSongAdapter(@NonNull AppCompatActivity activity, @NonNull ArrayList<Song> songs, @Nullable CabHolder cabHolder) {
super(activity, R.layout.item_list_song, songs);
this.activity = activity;
this.cabHolder = cabHolder;
@ -55,8 +58,9 @@ public class ArtistSongAdapter extends ArrayAdapter<Song> implements MaterialCab
addAll(dataSet);
}
@Nullable
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
public View getView(final int position, @Nullable View convertView, ViewGroup parent) {
final Song song = getItem(position);
if (convertView == null) {
convertView = LayoutInflater.from(getContext()).inflate(R.layout.item_list_artist_song, parent, false);
@ -87,7 +91,7 @@ public class ArtistSongAdapter extends ArrayAdapter<Song> implements MaterialCab
popupMenu.inflate(R.menu.menu_item_song);
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
public boolean onMenuItemClick(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.action_go_to_album:
Pair[] albumPairs = new Pair[]{
@ -127,7 +131,7 @@ public class ArtistSongAdapter extends ArrayAdapter<Song> implements MaterialCab
return convertView;
}
private void onMultipleItemAction(MenuItem menuItem, ArrayList<Song> selection) {
private void onMultipleItemAction(@NonNull MenuItem menuItem, @NonNull ArrayList<Song> selection) {
switch (menuItem.getItemId()) {
case R.id.action_delete_from_disk:
DeleteSongsDialog.create(selection).show(activity.getSupportFragmentManager(), "DELETE_SONGS");
@ -182,7 +186,7 @@ public class ArtistSongAdapter extends ArrayAdapter<Song> implements MaterialCab
}
@Override
public boolean onCabItemClicked(MenuItem menuItem) {
public boolean onCabItemClicked(@NonNull MenuItem menuItem) {
onMultipleItemAction(menuItem, new ArrayList<>(checked));
cab.finish();
uncheckAll();

View file

@ -1,5 +1,6 @@
package com.kabouzeid.gramophone.adapter.songadapter;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.util.Pair;
import android.support.v7.app.AppCompatActivity;
@ -39,11 +40,12 @@ import java.util.List;
public class PlaylistSongAdapter extends AbsPlaylistSongAdapter<PlaylistSongAdapter.ViewHolder, PlaylistSong> {
public static final String TAG = PlaylistSongAdapter.class.getSimpleName();
@NonNull
protected final AppCompatActivity activity;
protected ArrayList<PlaylistSong> dataSet;
private Playlist playlist;
public PlaylistSongAdapter(AppCompatActivity activity, Playlist playlist, @Nullable CabHolder cabHolder) {
public PlaylistSongAdapter(@NonNull AppCompatActivity activity, @NonNull Playlist playlist, @Nullable CabHolder cabHolder) {
super(activity, cabHolder, R.menu.menu_playlists_songs_selection);
this.activity = activity;
this.playlist = playlist;
@ -67,6 +69,7 @@ public class PlaylistSongAdapter extends AbsPlaylistSongAdapter<PlaylistSongAdap
return dataSet;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(activity).inflate(R.layout.item_list_song, parent, false);
@ -74,7 +77,7 @@ public class PlaylistSongAdapter extends AbsPlaylistSongAdapter<PlaylistSongAdap
}
@Override
public void onBindViewHolder(final ViewHolder holder, int position) {
public void onBindViewHolder(@NonNull final ViewHolder holder, int position) {
final PlaylistSong song = dataSet.get(position);
holder.itemView.setActivated(isChecked(song));
@ -102,7 +105,7 @@ public class PlaylistSongAdapter extends AbsPlaylistSongAdapter<PlaylistSongAdap
}
@Override
protected void onMultipleItemAction(MenuItem menuItem, ArrayList<PlaylistSong> selection) {
protected void onMultipleItemAction(@NonNull MenuItem menuItem, ArrayList<PlaylistSong> selection) {
switch (menuItem.getItemId()) {
case R.id.action_delete_from_playlist:
RemoveFromPlaylistDialog.create(selection).show(activity.getSupportFragmentManager(), "ADD_PLAYLIST");
@ -129,12 +132,16 @@ public class PlaylistSongAdapter extends AbsPlaylistSongAdapter<PlaylistSongAdap
}
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener, View.OnLongClickListener {
@NonNull
final TextView songTitle;
@NonNull
final TextView songInfo;
@NonNull
final ImageView overflowButton;
@NonNull
final ImageView albumArt;
public ViewHolder(View itemView, final int songMenu) {
public ViewHolder(@NonNull View itemView, final int songMenu) {
super(itemView);
songTitle = (TextView) itemView.findViewById(R.id.song_title);
songInfo = (TextView) itemView.findViewById(R.id.song_info);
@ -149,7 +156,7 @@ public class PlaylistSongAdapter extends AbsPlaylistSongAdapter<PlaylistSongAdap
popupMenu.inflate(songMenu);
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
public boolean onMenuItemClick(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.action_delete_from_playlist:
RemoveFromPlaylistDialog.create(dataSet.get(getAdapterPosition())).show(activity.getSupportFragmentManager(), "ADD_PLAYLIST");

View file

@ -1,6 +1,7 @@
package com.kabouzeid.gramophone.adapter.songadapter;
import android.graphics.Typeface;
import android.support.annotation.NonNull;
import android.support.v4.util.Pair;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.RecyclerView;
@ -63,6 +64,7 @@ public class SongAdapter extends AbsMultiSelectAdapter<SongAdapter.ViewHolder, S
dataSet = SongLoader.getAllSongs(activity);
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(activity).inflate(R.layout.item_list_song, parent, false);
@ -75,7 +77,7 @@ public class SongAdapter extends AbsMultiSelectAdapter<SongAdapter.ViewHolder, S
}
@Override
public void onBindViewHolder(final ViewHolder holder, int position) {
public void onBindViewHolder(@NonNull final ViewHolder holder, int position) {
if (getItemViewType(position) == SONG) {
final Song song = dataSet.get(position - 1);
@ -118,7 +120,7 @@ public class SongAdapter extends AbsMultiSelectAdapter<SongAdapter.ViewHolder, S
}
@Override
protected void onMultipleItemAction(MenuItem menuItem, ArrayList<Song> selection) {
protected void onMultipleItemAction(@NonNull MenuItem menuItem, @NonNull ArrayList<Song> selection) {
switch (menuItem.getItemId()) {
case R.id.action_delete_from_disk:
DeleteSongsDialog.create(selection).show(activity.getSupportFragmentManager(), "DELETE_SONGS");
@ -133,15 +135,20 @@ public class SongAdapter extends AbsMultiSelectAdapter<SongAdapter.ViewHolder, S
}
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener, View.OnLongClickListener {
@NonNull
final TextView songTitle;
@NonNull
final TextView songInfo;
@NonNull
final ImageView overflowButton;
@NonNull
final ImageView albumArt;
final View separator;
final View short_separator;
@NonNull
final View view;
public ViewHolder(View itemView) {
public ViewHolder(@NonNull View itemView) {
super(itemView);
view = itemView;
songTitle = (TextView) itemView.findViewById(R.id.song_title);
@ -159,7 +166,7 @@ public class SongAdapter extends AbsMultiSelectAdapter<SongAdapter.ViewHolder, S
popupMenu.inflate(R.menu.menu_item_song);
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
public boolean onMenuItemClick(@NonNull MenuItem item) {
final int position = getAdapterPosition() - 1;
switch (item.getItemId()) {
case R.id.action_go_to_album:
@ -212,7 +219,7 @@ public class SongAdapter extends AbsMultiSelectAdapter<SongAdapter.ViewHolder, S
}
@Subscribe
public void onDataBaseEvent(DataBaseChangedEvent event) {
public void onDataBaseEvent(@NonNull DataBaseChangedEvent event) {
switch (event.getAction()) {
case DataBaseChangedEvent.SONGS_CHANGED:
case DataBaseChangedEvent.DATABASE_CHANGED:

View file

@ -1,5 +1,6 @@
package com.kabouzeid.gramophone.adapter.songadapter.smartplaylist;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.util.Pair;
import android.support.v7.app.AppCompatActivity;
@ -51,7 +52,7 @@ public class SmartPlaylistSongAdapter extends AbsPlaylistSongAdapter<SmartPlayli
return dataSet.get(position).id;
}
public SmartPlaylistSongAdapter(AppCompatActivity activity, AbsSmartPlaylist playlist, @Nullable CabHolder cabHolder) {
public SmartPlaylistSongAdapter(AppCompatActivity activity, @NonNull AbsSmartPlaylist playlist, @Nullable CabHolder cabHolder) {
super(activity, cabHolder, R.menu.menu_cannot_delete_single_songs_playlist_songs_selection);
this.activity = activity;
this.playlist = playlist;
@ -63,6 +64,7 @@ public class SmartPlaylistSongAdapter extends AbsPlaylistSongAdapter<SmartPlayli
return dataSet;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(activity).inflate(R.layout.item_list_song, parent, false);
@ -70,7 +72,7 @@ public class SmartPlaylistSongAdapter extends AbsPlaylistSongAdapter<SmartPlayli
}
@Override
public void onBindViewHolder(final ViewHolder holder, int position) {
public void onBindViewHolder(@NonNull final ViewHolder holder, int position) {
final Song song = dataSet.get(position);
holder.itemView.setActivated(isChecked(song));
@ -98,7 +100,7 @@ public class SmartPlaylistSongAdapter extends AbsPlaylistSongAdapter<SmartPlayli
}
@Override
protected void onMultipleItemAction(MenuItem menuItem, ArrayList<Song> selection) {
protected void onMultipleItemAction(@NonNull MenuItem menuItem, @NonNull ArrayList<Song> selection) {
switch (menuItem.getItemId()) {
case R.id.action_add_to_playlist:
onAddToPlaylist(selection);
@ -113,17 +115,21 @@ public class SmartPlaylistSongAdapter extends AbsPlaylistSongAdapter<SmartPlayli
AddToPlaylistDialog.create(songs).show(activity.getSupportFragmentManager(), "ADD_PLAYLIST");
}
protected void onAddToCurrentPlaying(ArrayList<Song> songs) {
protected void onAddToCurrentPlaying(@NonNull ArrayList<Song> songs) {
MusicPlayerRemote.enqueue(songs);
}
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener, View.OnLongClickListener {
@NonNull
final TextView songTitle;
@NonNull
final TextView songInfo;
@NonNull
final ImageView overflowButton;
@NonNull
final ImageView albumArt;
public ViewHolder(View itemView, final int songMenu) {
public ViewHolder(@NonNull View itemView, final int songMenu) {
super(itemView);
songTitle = (TextView) itemView.findViewById(R.id.song_title);
songInfo = (TextView) itemView.findViewById(R.id.song_info);
@ -138,7 +144,7 @@ public class SmartPlaylistSongAdapter extends AbsPlaylistSongAdapter<SmartPlayli
popupMenu.inflate(songMenu);
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
public boolean onMenuItemClick(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.action_go_to_album:
Pair[] albumPairs = new Pair[]{