load global playlists on main activity
This commit is contained in:
parent
d5e2b95ca3
commit
5fcd9e979a
11 changed files with 76 additions and 157 deletions
|
|
@ -191,7 +191,7 @@ public class PlaylistDetailActivity extends AbsSlidingMusicPanelActivity impleme
|
|||
}
|
||||
|
||||
// Playlist renamed
|
||||
final String playlistName = PlaylistsUtil.getNameForPlaylist(this, playlist.id);
|
||||
final String playlistName = PlaylistsUtil.getNameForPlaylist(this, playlist.id.hashCode());
|
||||
if (!playlistName.equals(playlist.name)) {
|
||||
playlist = PlaylistLoader.getPlaylist(this, playlist.id);
|
||||
setToolbarTitle(playlist.name);
|
||||
|
|
@ -268,7 +268,7 @@ public class PlaylistDetailActivity extends AbsSlidingMusicPanelActivity impleme
|
|||
return ((AbsSmartPlaylist) playlist).getSongs(getContext());
|
||||
} else {
|
||||
//noinspection unchecked
|
||||
return (List) PlaylistSongLoader.getPlaylistSongList(getContext(), playlist.id);
|
||||
return (List) PlaylistSongLoader.getPlaylistSongList(getContext(), playlist.id.hashCode());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,16 +4,16 @@ 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 com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.adapter.PlaylistAdapter;
|
||||
import com.kabouzeid.gramophone.interfaces.LoaderIds;
|
||||
import com.kabouzeid.gramophone.loader.PlaylistLoader;
|
||||
import com.kabouzeid.gramophone.misc.WrappedAsyncTaskLoader;
|
||||
import com.kabouzeid.gramophone.interfaces.MediaCallback;
|
||||
import com.kabouzeid.gramophone.model.Playlist;
|
||||
import com.kabouzeid.gramophone.util.QueryUtil;
|
||||
|
||||
import org.jellyfin.apiclient.model.querying.ItemQuery;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
|
@ -21,14 +21,10 @@ import java.util.List;
|
|||
/**
|
||||
* @author Karim Abou Zeid (kabouzeid)
|
||||
*/
|
||||
public class PlaylistsFragment extends AbsLibraryPagerRecyclerViewFragment<PlaylistAdapter, LinearLayoutManager> implements LoaderManager.LoaderCallbacks<List<Playlist>> {
|
||||
|
||||
private static final int LOADER_ID = LoaderIds.PLAYLISTS_FRAGMENT;
|
||||
|
||||
public class PlaylistsFragment extends AbsLibraryPagerRecyclerViewFragment<PlaylistAdapter, LinearLayoutManager> {
|
||||
@Override
|
||||
public void onActivityCreated(Bundle savedInstanceState) {
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
getLoaderManager().initLoader(LOADER_ID, null, this);
|
||||
}
|
||||
|
||||
@NonNull
|
||||
|
|
@ -41,7 +37,17 @@ public class PlaylistsFragment extends AbsLibraryPagerRecyclerViewFragment<Playl
|
|||
@Override
|
||||
protected PlaylistAdapter createAdapter() {
|
||||
List<Playlist> dataSet = getAdapter() == null ? new ArrayList<>() : getAdapter().getDataSet();
|
||||
return new PlaylistAdapter(getLibraryFragment().getMainActivity(), dataSet, R.layout.item_list_single_row, getLibraryFragment());
|
||||
|
||||
PlaylistAdapter adapter = new PlaylistAdapter(getLibraryFragment().getMainActivity(), dataSet, R.layout.item_list_single_row, getLibraryFragment());
|
||||
QueryUtil.getPlaylists(new MediaCallback() {
|
||||
@Override
|
||||
public void onLoadMedia(List<?> media) {
|
||||
dataSet.addAll((List<Playlist>) media);
|
||||
adapter.notifyDataSetChanged();
|
||||
}
|
||||
});
|
||||
|
||||
return adapter;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -51,39 +57,5 @@ public class PlaylistsFragment extends AbsLibraryPagerRecyclerViewFragment<Playl
|
|||
|
||||
@Override
|
||||
public void onMediaStoreChanged() {
|
||||
getLoaderManager().restartLoader(LOADER_ID, null, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Loader<List<Playlist>> onCreateLoader(int id, Bundle args) {
|
||||
return new AsyncPlaylistLoader(getActivity());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadFinished(Loader<List<Playlist>> loader, List<Playlist> data) {
|
||||
getAdapter().swapDataSet(data);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoaderReset(Loader<List<Playlist>> loader) {
|
||||
getAdapter().swapDataSet(new ArrayList<>());
|
||||
}
|
||||
|
||||
private static class AsyncPlaylistLoader extends WrappedAsyncTaskLoader<List<Playlist>> {
|
||||
public AsyncPlaylistLoader(Context context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
private static List<Playlist> getAllPlaylists(Context context) {
|
||||
List<Playlist> playlists = new ArrayList<>();
|
||||
playlists.addAll(PlaylistLoader.getAllPlaylists(context));
|
||||
|
||||
return playlists;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Playlist> loadInBackground() {
|
||||
return getAllPlaylists(getContext());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue