Refactoring: Replace usages of ArrayList<> with List<>Collections refactor (#686)

* First replacements of ArrayList with List

* Get rid of ArrayList-Types

* Revert irrelevant changes

* Fixed stuff noticed by @arkon
This commit is contained in:
Christoph Loy 2019-05-17 17:07:03 +02:00 committed by Eugene
commit 37725948f1
74 changed files with 338 additions and 277 deletions

View file

@ -54,6 +54,7 @@ import com.kabouzeid.gramophone.util.PhonographColorUtil;
import com.kabouzeid.gramophone.util.PreferenceUtil;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import butterknife.BindView;
@ -291,7 +292,7 @@ public class AlbumDetailActivity extends AbsSlidingMusicPanelActivity implements
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
int id = item.getItemId();
final ArrayList<Song> songs = adapter.getDataSet();
final List<Song> songs = adapter.getDataSet();
switch (id) {
case R.id.action_sleep_timer:
new SleepTimerDialog().show(getSupportFragmentManager(), "SET_SLEEP_TIMER");

View file

@ -54,6 +54,7 @@ import com.kabouzeid.gramophone.util.PhonographColorUtil;
import com.kabouzeid.gramophone.util.PreferenceUtil;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import butterknife.BindView;
@ -324,7 +325,7 @@ public class ArtistDetailActivity extends AbsSlidingMusicPanelActivity implement
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
int id = item.getItemId();
final ArrayList<Song> songs = songAdapter.getDataSet();
final List<Song> songs = songAdapter.getDataSet();
switch (id) {
case R.id.action_sleep_timer:
new SleepTimerDialog().show(getSupportFragmentManager(), "SET_SLEEP_TIMER");

View file

@ -31,11 +31,12 @@ import com.kabouzeid.gramophone.util.ViewUtil;
import com.simplecityapps.recyclerview_fastscroll.views.FastScrollRecyclerView;
import java.util.ArrayList;
import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
public class GenreDetailActivity extends AbsSlidingMusicPanelActivity implements CabHolder, LoaderManager.LoaderCallbacks<ArrayList<Song>> {
public class GenreDetailActivity extends AbsSlidingMusicPanelActivity implements CabHolder, LoaderManager.LoaderCallbacks<List<Song>> {
private static final int LOADER_ID = LoaderIds.GENRE_DETAIL_ACTIVITY;
@ -174,23 +175,23 @@ public class GenreDetailActivity extends AbsSlidingMusicPanelActivity implements
@Override
@NonNull
public Loader<ArrayList<Song>> onCreateLoader(int id, Bundle args) {
public Loader<List<Song>> onCreateLoader(int id, Bundle args) {
return new GenreDetailActivity.AsyncGenreSongLoader(this, genre);
}
@Override
public void onLoadFinished(@NonNull Loader<ArrayList<Song>> loader, ArrayList<Song> data) {
public void onLoadFinished(@NonNull Loader<List<Song>> loader, List<Song> data) {
if (adapter != null)
adapter.swapDataSet(data);
}
@Override
public void onLoaderReset(@NonNull Loader<ArrayList<Song>> loader) {
public void onLoaderReset(@NonNull Loader<List<Song>> loader) {
if (adapter != null)
adapter.swapDataSet(new ArrayList<>());
}
private static class AsyncGenreSongLoader extends WrappedAsyncTaskLoader<ArrayList<Song>> {
private static class AsyncGenreSongLoader extends WrappedAsyncTaskLoader<List<Song>> {
private final Genre genre;
public AsyncGenreSongLoader(Context context, Genre genre) {
@ -199,7 +200,7 @@ public class GenreDetailActivity extends AbsSlidingMusicPanelActivity implements
}
@Override
public ArrayList<Song> loadInBackground() {
public List<Song> loadInBackground() {
return GenreLoader.getSongs(getContext(), genre.id);
}
}

View file

@ -49,6 +49,7 @@ import com.kabouzeid.gramophone.util.PreferenceUtil;
import com.sothree.slidinguppanel.SlidingUpPanelLayout;
import java.util.ArrayList;
import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
@ -277,7 +278,7 @@ public class MainActivity extends AbsSlidingMusicPanelActivity {
boolean handled = false;
if (intent.getAction() != null && intent.getAction().equals(MediaStore.INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH)) {
final ArrayList<Song> songs = SearchQueryHelper.getSongs(this, intent.getExtras());
final List<Song> songs = SearchQueryHelper.getSongs(this, intent.getExtras());
if (MusicPlayerRemote.getShuffleMode() == MusicService.SHUFFLE_MODE_SHUFFLE) {
MusicPlayerRemote.openAndShuffleQueue(songs, true);
} else {
@ -293,7 +294,7 @@ public class MainActivity extends AbsSlidingMusicPanelActivity {
final int id = (int) parseIdFromIntent(intent, "playlistId", "playlist");
if (id >= 0) {
int position = intent.getIntExtra("position", 0);
ArrayList<Song> songs = new ArrayList<>(PlaylistSongLoader.getPlaylistSongList(this, id));
List<Song> songs = new ArrayList<>(PlaylistSongLoader.getPlaylistSongList(this, id));
MusicPlayerRemote.openQueue(songs, position, true);
handled = true;
}

View file

@ -2,17 +2,18 @@ package com.kabouzeid.gramophone.ui.activities;
import android.content.Context;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.loader.app.LoaderManager;
import androidx.loader.content.Loader;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.appcompat.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.appcompat.widget.Toolbar;
import androidx.loader.app.LoaderManager;
import androidx.loader.content.Loader;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.afollestad.materialcab.MaterialCab;
import com.h6ah4i.android.widget.advrecyclerview.animator.GeneralItemAnimator;
import com.h6ah4i.android.widget.advrecyclerview.animator.RefactoredDefaultItemAnimator;
@ -45,7 +46,7 @@ import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
public class PlaylistDetailActivity extends AbsSlidingMusicPanelActivity implements CabHolder, LoaderManager.LoaderCallbacks<ArrayList<Song>> {
public class PlaylistDetailActivity extends AbsSlidingMusicPanelActivity implements CabHolder, LoaderManager.LoaderCallbacks<List<Song>> {
private static final int LOADER_ID = LoaderIds.PLAYLIST_DETAIL_ACTIVITY;
@ -237,23 +238,23 @@ public class PlaylistDetailActivity extends AbsSlidingMusicPanelActivity impleme
}
@Override
public Loader<ArrayList<Song>> onCreateLoader(int id, Bundle args) {
public Loader<List<Song>> onCreateLoader(int id, Bundle args) {
return new AsyncPlaylistSongLoader(this, playlist);
}
@Override
public void onLoadFinished(Loader<ArrayList<Song>> loader, ArrayList<Song> data) {
public void onLoadFinished(Loader<List<Song>> loader, List<Song> data) {
if (adapter != null)
adapter.swapDataSet(data);
}
@Override
public void onLoaderReset(Loader<ArrayList<Song>> loader) {
public void onLoaderReset(Loader<List<Song>> loader) {
if (adapter != null)
adapter.swapDataSet(new ArrayList<>());
}
private static class AsyncPlaylistSongLoader extends WrappedAsyncTaskLoader<ArrayList<Song>> {
private static class AsyncPlaylistSongLoader extends WrappedAsyncTaskLoader<List<Song>> {
private final Playlist playlist;
public AsyncPlaylistSongLoader(Context context, Playlist playlist) {
@ -262,12 +263,12 @@ public class PlaylistDetailActivity extends AbsSlidingMusicPanelActivity impleme
}
@Override
public ArrayList<Song> loadInBackground() {
public List<Song> loadInBackground() {
if (playlist instanceof AbsCustomPlaylist) {
return ((AbsCustomPlaylist) playlist).getSongs(getContext());
} else {
//noinspection unchecked
return (ArrayList<Song>) (List) PlaylistSongLoader.getPlaylistSongList(getContext(), playlist.id);
return (List) PlaylistSongLoader.getPlaylistSongList(getContext(), playlist.id);
}
}
}

View file

@ -19,13 +19,14 @@ import com.kabouzeid.gramophone.service.MusicService;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
/**
* @author Karim Abou Zeid (kabouzeid)
*/
public abstract class AbsMusicServiceActivity extends AbsBaseActivity implements MusicServiceEventListener {
private final ArrayList<MusicServiceEventListener> mMusicServiceEventListeners = new ArrayList<>();
private final List<MusicServiceEventListener> mMusicServiceEventListeners = new ArrayList<>();
private MusicPlayerRemote.ServiceToken serviceToken;
private MusicStateReceiver musicStateReceiver;

View file

@ -180,8 +180,8 @@ public class AlbumTagEditorActivity extends AbsTagEditorActivity implements Text
@NonNull
@Override
protected List<String> getSongPaths() {
ArrayList<Song> songs = AlbumLoader.getAlbum(this, getId()).songs;
ArrayList<String> paths = new ArrayList<>(songs.size());
List<Song> songs = AlbumLoader.getAlbum(this, getId()).songs;
List<String> paths = new ArrayList<>(songs.size());
for (Song song : songs) {
paths.add(song.data);
}

View file

@ -112,7 +112,7 @@ public class SongTagEditorActivity extends AbsTagEditorActivity implements TextW
@NonNull
@Override
protected List<String> getSongPaths() {
ArrayList<String> paths = new ArrayList<>(1);
List<String> paths = new ArrayList<>(1);
paths.add(SongLoader.getSong(this, getId()).data);
return paths;
}

View file

@ -6,16 +6,6 @@ import android.content.Context;
import android.media.MediaScannerConnection;
import android.os.Bundle;
import android.os.Environment;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.google.android.material.appbar.AppBarLayout;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
import com.google.android.material.snackbar.Snackbar;
import androidx.loader.app.LoaderManager;
import androidx.loader.content.Loader;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.appcompat.widget.Toolbar;
import android.text.Html;
import android.view.LayoutInflater;
import android.view.Menu;
@ -27,8 +17,19 @@ import android.webkit.MimeTypeMap;
import android.widget.PopupMenu;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.Toolbar;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
import androidx.loader.app.LoaderManager;
import androidx.loader.content.Loader;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.afollestad.materialcab.MaterialCab;
import com.afollestad.materialdialogs.MaterialDialog;
import com.google.android.material.appbar.AppBarLayout;
import com.google.android.material.snackbar.Snackbar;
import com.kabouzeid.appthemehelper.ThemeStore;
import com.kabouzeid.appthemehelper.common.ATHToolbarActivity;
import com.kabouzeid.appthemehelper.util.ToolbarContentTintHelper;
@ -291,7 +292,7 @@ public class FoldersFragment extends AbsMainActivityFragment implements MainActi
case R.id.action_scan:
BreadCrumbLayout.Crumb crumb = getActiveCrumb();
if (crumb != null) {
new ListPathsAsyncTask(getActivity(), this::scanPaths).execute(new ListPathsAsyncTask.LoadingInfo(crumb.getFile(), AUDIO_FILE_FILTER));
new ArrayListPathsAsyncTask(getActivity(), this::scanPaths).execute(new ArrayListPathsAsyncTask.LoadingInfo(crumb.getFile(), AUDIO_FILE_FILTER));
}
return true;
}
@ -326,7 +327,7 @@ public class FoldersFragment extends AbsMainActivityFragment implements MainActi
}
@Override
public void onMultipleItemAction(MenuItem item, ArrayList<File> files) {
public void onMultipleItemAction(MenuItem item, List<File> files) {
final int itemId = item.getItemId();
new ListSongsAsyncTask(getActivity(), null, (songs, extra) -> {
if (!songs.isEmpty()) {
@ -347,8 +348,8 @@ public class FoldersFragment extends AbsMainActivityFragment implements MainActi
}).execute(new ListSongsAsyncTask.LoadingInfo(files, AUDIO_FILE_FILTER, getFileComparator()));
}
private ArrayList<File> toList(File file) {
ArrayList<File> files = new ArrayList<>(1);
private List<File> toList(File file) {
List<File> files = new ArrayList<>(1);
files.add(file);
return files;
}
@ -391,7 +392,7 @@ public class FoldersFragment extends AbsMainActivityFragment implements MainActi
Toast.makeText(getActivity(), String.format(getString(R.string.new_start_directory), file.getPath()), Toast.LENGTH_SHORT).show();
return true;
case R.id.action_scan:
new ListPathsAsyncTask(getActivity(), this::scanPaths).execute(new ListPathsAsyncTask.LoadingInfo(file, AUDIO_FILE_FILTER));
new ArrayListPathsAsyncTask(getActivity(), this::scanPaths).execute(new ArrayListPathsAsyncTask.LoadingInfo(file, AUDIO_FILE_FILTER));
return true;
}
return false;
@ -503,7 +504,7 @@ public class FoldersFragment extends AbsMainActivityFragment implements MainActi
}
}
private static class ListSongsAsyncTask extends ListingFilesDialogAsyncTask<ListSongsAsyncTask.LoadingInfo, Void, ArrayList<Song>> {
private static class ListSongsAsyncTask extends ListingFilesDialogAsyncTask<ListSongsAsyncTask.LoadingInfo, Void, List<Song>> {
private WeakReference<Context> contextWeakReference;
private WeakReference<OnSongsListedCallback> callbackWeakReference;
private final Object extra;
@ -523,7 +524,7 @@ public class FoldersFragment extends AbsMainActivityFragment implements MainActi
}
@Override
protected ArrayList<Song> doInBackground(LoadingInfo... params) {
protected List<Song> doInBackground(LoadingInfo... params) {
try {
LoadingInfo info = params[0];
List<File> files = FileUtil.listFilesDeep(info.files, info.fileFilter);
@ -546,7 +547,7 @@ public class FoldersFragment extends AbsMainActivityFragment implements MainActi
}
@Override
protected void onPostExecute(ArrayList<Song> songs) {
protected void onPostExecute(List<Song> songs) {
super.onPostExecute(songs);
OnSongsListedCallback callback = checkCallbackReference();
if (songs != null && callback != null)
@ -582,14 +583,14 @@ public class FoldersFragment extends AbsMainActivityFragment implements MainActi
}
public interface OnSongsListedCallback {
void onSongsListed(@NonNull ArrayList<Song> songs, Object extra);
void onSongsListed(@NonNull List<Song> songs, Object extra);
}
}
public static class ListPathsAsyncTask extends ListingFilesDialogAsyncTask<ListPathsAsyncTask.LoadingInfo, String, String[]> {
public static class ArrayListPathsAsyncTask extends ListingFilesDialogAsyncTask<ArrayListPathsAsyncTask.LoadingInfo, String, String[]> {
private WeakReference<OnPathsListedCallback> onPathsListedCallbackWeakReference;
public ListPathsAsyncTask(Context context, OnPathsListedCallback callback) {
public ArrayListPathsAsyncTask(Context context, OnPathsListedCallback callback) {
super(context, 500);
onPathsListedCallbackWeakReference = new WeakReference<>(callback);
}

View file

@ -16,11 +16,12 @@ import com.kabouzeid.gramophone.model.Album;
import com.kabouzeid.gramophone.util.PreferenceUtil;
import java.util.ArrayList;
import java.util.List;
/**
* @author Karim Abou Zeid (kabouzeid)
*/
public class AlbumsFragment extends AbsLibraryPagerRecyclerViewCustomGridSizeFragment<AlbumAdapter, GridLayoutManager> implements LoaderManager.LoaderCallbacks<ArrayList<Album>> {
public class AlbumsFragment extends AbsLibraryPagerRecyclerViewCustomGridSizeFragment<AlbumAdapter, GridLayoutManager> implements LoaderManager.LoaderCallbacks<List<Album>> {
private static final int LOADER_ID = LoaderIds.ALBUMS_FRAGMENT;
@ -40,7 +41,7 @@ public class AlbumsFragment extends AbsLibraryPagerRecyclerViewCustomGridSizeFra
protected AlbumAdapter createAdapter() {
int itemLayoutRes = getItemLayoutRes();
notifyLayoutResChanged(itemLayoutRes);
ArrayList<Album> dataSet = getAdapter() == null ? new ArrayList<>() : getAdapter().getDataSet();
List<Album> dataSet = getAdapter() == null ? new ArrayList<>() : getAdapter().getDataSet();
return new AlbumAdapter(
getLibraryFragment().getMainActivity(),
dataSet,
@ -116,27 +117,27 @@ public class AlbumsFragment extends AbsLibraryPagerRecyclerViewCustomGridSizeFra
}
@Override
public Loader<ArrayList<Album>> onCreateLoader(int id, Bundle args) {
public Loader<List<Album>> onCreateLoader(int id, Bundle args) {
return new AsyncAlbumLoader(getActivity());
}
@Override
public void onLoadFinished(Loader<ArrayList<Album>> loader, ArrayList<Album> data) {
public void onLoadFinished(Loader<List<Album>> loader, List<Album> data) {
getAdapter().swapDataSet(data);
}
@Override
public void onLoaderReset(Loader<ArrayList<Album>> loader) {
public void onLoaderReset(Loader<List<Album>> loader) {
getAdapter().swapDataSet(new ArrayList<>());
}
private static class AsyncAlbumLoader extends WrappedAsyncTaskLoader<ArrayList<Album>> {
private static class AsyncAlbumLoader extends WrappedAsyncTaskLoader<List<Album>> {
public AsyncAlbumLoader(Context context) {
super(context);
}
@Override
public ArrayList<Album> loadInBackground() {
public List<Album> loadInBackground() {
return AlbumLoader.getAllAlbums(getContext());
}
}

View file

@ -16,11 +16,12 @@ import com.kabouzeid.gramophone.model.Artist;
import com.kabouzeid.gramophone.util.PreferenceUtil;
import java.util.ArrayList;
import java.util.List;
/**
* @author Karim Abou Zeid (kabouzeid)
*/
public class ArtistsFragment extends AbsLibraryPagerRecyclerViewCustomGridSizeFragment<ArtistAdapter, GridLayoutManager> implements LoaderManager.LoaderCallbacks<ArrayList<Artist>> {
public class ArtistsFragment extends AbsLibraryPagerRecyclerViewCustomGridSizeFragment<ArtistAdapter, GridLayoutManager> implements LoaderManager.LoaderCallbacks<List<Artist>> {
private static final int LOADER_ID = LoaderIds.ARTISTS_FRAGMENT;
@ -41,7 +42,7 @@ public class ArtistsFragment extends AbsLibraryPagerRecyclerViewCustomGridSizeFr
protected ArtistAdapter createAdapter() {
int itemLayoutRes = getItemLayoutRes();
notifyLayoutResChanged(itemLayoutRes);
ArrayList<Artist> dataSet = getAdapter() == null ? new ArrayList<>() : getAdapter().getDataSet();
List<Artist> dataSet = getAdapter() == null ? new ArrayList<>() : getAdapter().getDataSet();
return new ArtistAdapter(
getLibraryFragment().getMainActivity(),
dataSet,
@ -118,29 +119,29 @@ public class ArtistsFragment extends AbsLibraryPagerRecyclerViewCustomGridSizeFr
@Override
public Loader<ArrayList<Artist>> onCreateLoader(int id, Bundle args) {
public Loader<List<Artist>> onCreateLoader(int id, Bundle args) {
return new AsyncArtistLoader(getActivity());
}
@Override
public void onLoadFinished(Loader<ArrayList<Artist>> loader, ArrayList<Artist> data) {
public void onLoadFinished(Loader<List<Artist>> loader, List<Artist> data) {
getAdapter().swapDataSet(data);
}
@Override
public void onLoaderReset(Loader<ArrayList<Artist>> loader) {
public void onLoaderReset(Loader<List<Artist>> loader) {
getAdapter().swapDataSet(new ArrayList<>());
}
private static class AsyncArtistLoader extends WrappedAsyncTaskLoader<ArrayList<Artist>> {
private static class AsyncArtistLoader extends WrappedAsyncTaskLoader<List<Artist>> {
public AsyncArtistLoader(Context context) {
super(context);
}
@Override
public ArrayList<Artist> loadInBackground() {
public List<Artist> loadInBackground() {
return ArtistLoader.getAllArtists(getContext());
}
}

View file

@ -15,8 +15,9 @@ import com.kabouzeid.gramophone.misc.WrappedAsyncTaskLoader;
import com.kabouzeid.gramophone.model.Genre;
import java.util.ArrayList;
import java.util.List;
public class GenresFragment extends AbsLibraryPagerRecyclerViewFragment<GenreAdapter, LinearLayoutManager> implements LoaderManager.LoaderCallbacks<ArrayList<Genre>> {
public class GenresFragment extends AbsLibraryPagerRecyclerViewFragment<GenreAdapter, LinearLayoutManager> implements LoaderManager.LoaderCallbacks<List<Genre>> {
private static final int LOADER_ID = LoaderIds.GENRES_FRAGMENT;
@ -35,7 +36,7 @@ public class GenresFragment extends AbsLibraryPagerRecyclerViewFragment<GenreAda
@NonNull
@Override
protected GenreAdapter createAdapter() {
ArrayList<Genre> dataSet = getAdapter() == null ? new ArrayList<>() : getAdapter().getDataSet();
List<Genre> dataSet = getAdapter() == null ? new ArrayList<>() : getAdapter().getDataSet();
return new GenreAdapter(getLibraryFragment().getMainActivity(), dataSet, R.layout.item_list_no_image);
}
@ -51,27 +52,27 @@ public class GenresFragment extends AbsLibraryPagerRecyclerViewFragment<GenreAda
@Override
@NonNull
public Loader<ArrayList<Genre>> onCreateLoader(int id, Bundle args) {
public Loader<List<Genre>> onCreateLoader(int id, Bundle args) {
return new GenresFragment.AsyncGenreLoader(getActivity());
}
@Override
public void onLoadFinished(@NonNull Loader<ArrayList<Genre>> loader, ArrayList<Genre> data) {
public void onLoadFinished(@NonNull Loader<List<Genre>> loader, List<Genre> data) {
getAdapter().swapDataSet(data);
}
@Override
public void onLoaderReset(@NonNull Loader<ArrayList<Genre>> loader) {
public void onLoaderReset(@NonNull Loader<List<Genre>> loader) {
getAdapter().swapDataSet(new ArrayList<>());
}
private static class AsyncGenreLoader extends WrappedAsyncTaskLoader<ArrayList<Genre>> {
private static class AsyncGenreLoader extends WrappedAsyncTaskLoader<List<Genre>> {
public AsyncGenreLoader(Context context) {
super(context);
}
@Override
public ArrayList<Genre> loadInBackground() {
public List<Genre> loadInBackground() {
return GenreLoader.getAllGenres(getContext());
}
}

View file

@ -2,6 +2,7 @@ package com.kabouzeid.gramophone.ui.fragments.mainactivity.library.pager;
import android.content.Context;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.loader.app.LoaderManager;
import androidx.loader.content.Loader;
@ -18,11 +19,12 @@ import com.kabouzeid.gramophone.model.smartplaylist.LastAddedPlaylist;
import com.kabouzeid.gramophone.model.smartplaylist.MyTopTracksPlaylist;
import java.util.ArrayList;
import java.util.List;
/**
* @author Karim Abou Zeid (kabouzeid)
*/
public class PlaylistsFragment extends AbsLibraryPagerRecyclerViewFragment<PlaylistAdapter, LinearLayoutManager> implements LoaderManager.LoaderCallbacks<ArrayList<Playlist>> {
public class PlaylistsFragment extends AbsLibraryPagerRecyclerViewFragment<PlaylistAdapter, LinearLayoutManager> implements LoaderManager.LoaderCallbacks<List<Playlist>> {
private static final int LOADER_ID = LoaderIds.PLAYLISTS_FRAGMENT;
@ -41,7 +43,7 @@ public class PlaylistsFragment extends AbsLibraryPagerRecyclerViewFragment<Playl
@NonNull
@Override
protected PlaylistAdapter createAdapter() {
ArrayList<Playlist> dataSet = getAdapter() == null ? new ArrayList<>() : getAdapter().getDataSet();
List<Playlist> dataSet = getAdapter() == null ? new ArrayList<>() : getAdapter().getDataSet();
return new PlaylistAdapter(getLibraryFragment().getMainActivity(), dataSet, R.layout.item_list_single_row, getLibraryFragment());
}
@ -56,27 +58,27 @@ public class PlaylistsFragment extends AbsLibraryPagerRecyclerViewFragment<Playl
}
@Override
public Loader<ArrayList<Playlist>> onCreateLoader(int id, Bundle args) {
public Loader<List<Playlist>> onCreateLoader(int id, Bundle args) {
return new AsyncPlaylistLoader(getActivity());
}
@Override
public void onLoadFinished(Loader<ArrayList<Playlist>> loader, ArrayList<Playlist> data) {
public void onLoadFinished(Loader<List<Playlist>> loader, List<Playlist> data) {
getAdapter().swapDataSet(data);
}
@Override
public void onLoaderReset(Loader<ArrayList<Playlist>> loader) {
public void onLoaderReset(Loader<List<Playlist>> loader) {
getAdapter().swapDataSet(new ArrayList<>());
}
private static class AsyncPlaylistLoader extends WrappedAsyncTaskLoader<ArrayList<Playlist>> {
private static class AsyncPlaylistLoader extends WrappedAsyncTaskLoader<List<Playlist>> {
public AsyncPlaylistLoader(Context context) {
super(context);
}
private static ArrayList<Playlist> getAllPlaylists(Context context) {
ArrayList<Playlist> playlists = new ArrayList<>();
private static List<Playlist> getAllPlaylists(Context context) {
List<Playlist> playlists = new ArrayList<>();
playlists.add(new LastAddedPlaylist(context));
playlists.add(new HistoryPlaylist(context));
@ -88,7 +90,7 @@ public class PlaylistsFragment extends AbsLibraryPagerRecyclerViewFragment<Playl
}
@Override
public ArrayList<Playlist> loadInBackground() {
public List<Playlist> loadInBackground() {
return getAllPlaylists(getContext());
}
}

View file

@ -17,11 +17,12 @@ import com.kabouzeid.gramophone.model.Song;
import com.kabouzeid.gramophone.util.PreferenceUtil;
import java.util.ArrayList;
import java.util.List;
/**
* @author Karim Abou Zeid (kabouzeid)
*/
public class SongsFragment extends AbsLibraryPagerRecyclerViewCustomGridSizeFragment<SongAdapter, GridLayoutManager> implements LoaderManager.LoaderCallbacks<ArrayList<Song>> {
public class SongsFragment extends AbsLibraryPagerRecyclerViewCustomGridSizeFragment<SongAdapter, GridLayoutManager> implements LoaderManager.LoaderCallbacks<List<Song>> {
private static final int LOADER_ID = LoaderIds.SONGS_FRAGMENT;
@ -43,7 +44,7 @@ public class SongsFragment extends AbsLibraryPagerRecyclerViewCustomGridSizeFrag
int itemLayoutRes = getItemLayoutRes();
notifyLayoutResChanged(itemLayoutRes);
boolean usePalette = loadUsePalette();
ArrayList<Song> dataSet = getAdapter() == null ? new ArrayList<>() : getAdapter().getDataSet();
List<Song> dataSet = getAdapter() == null ? new ArrayList<>() : getAdapter().getDataSet();
if (getGridSize() <= getMaxGridSizeForList()) {
return new ShuffleButtonSongAdapter(
@ -128,27 +129,27 @@ public class SongsFragment extends AbsLibraryPagerRecyclerViewCustomGridSizeFrag
}
@Override
public Loader<ArrayList<Song>> onCreateLoader(int id, Bundle args) {
public Loader<List<Song>> onCreateLoader(int id, Bundle args) {
return new AsyncSongLoader(getActivity());
}
@Override
public void onLoadFinished(Loader<ArrayList<Song>> loader, ArrayList<Song> data) {
public void onLoadFinished(Loader<List<Song>> loader, List<Song> data) {
getAdapter().swapDataSet(data);
}
@Override
public void onLoaderReset(Loader<ArrayList<Song>> loader) {
public void onLoaderReset(Loader<List<Song>> loader) {
getAdapter().swapDataSet(new ArrayList<>());
}
private static class AsyncSongLoader extends WrappedAsyncTaskLoader<ArrayList<Song>> {
private static class AsyncSongLoader extends WrappedAsyncTaskLoader<List<Song>> {
public AsyncSongLoader(Context context) {
super(context);
}
@Override
public ArrayList<Song> loadInBackground() {
public List<Song> loadInBackground() {
return SongLoader.getAllSongs(getContext());
}
}