From 4458931f22bee5e5c47a04d713eb7493206c7af0 Mon Sep 17 00:00:00 2001 From: dkanada Date: Wed, 29 Apr 2020 02:35:24 +0900 Subject: [PATCH] fix outstanding issues with genre activity --- .../ui/activities/GenreDetailActivity.java | 67 +++++-------------- 1 file changed, 18 insertions(+), 49 deletions(-) diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/GenreDetailActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/GenreDetailActivity.java index 15f7129a..44fdb82f 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/GenreDetailActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/GenreDetailActivity.java @@ -1,10 +1,7 @@ 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; @@ -20,26 +17,24 @@ import com.kabouzeid.gramophone.R; import com.kabouzeid.gramophone.adapter.song.SongAdapter; import com.kabouzeid.gramophone.helper.MusicPlayerRemote; import com.kabouzeid.gramophone.interfaces.CabHolder; -import com.kabouzeid.gramophone.interfaces.LoaderIds; -import com.kabouzeid.gramophone.loader.GenreLoader; -import com.kabouzeid.gramophone.misc.WrappedAsyncTaskLoader; +import com.kabouzeid.gramophone.interfaces.MediaCallback; import com.kabouzeid.gramophone.model.Genre; import com.kabouzeid.gramophone.model.Song; import com.kabouzeid.gramophone.ui.activities.base.AbsSlidingMusicPanelActivity; import com.kabouzeid.gramophone.util.PhonographColorUtil; +import com.kabouzeid.gramophone.util.QueryUtil; import com.kabouzeid.gramophone.util.ViewUtil; import com.simplecityapps.recyclerview_fastscroll.views.FastScrollRecyclerView; +import org.jellyfin.apiclient.model.querying.ItemQuery; + import java.util.ArrayList; import java.util.List; import butterknife.BindView; import butterknife.ButterKnife; -public class GenreDetailActivity extends AbsSlidingMusicPanelActivity implements CabHolder, LoaderManager.LoaderCallbacks> { - - private static final int LOADER_ID = LoaderIds.GENRE_DETAIL_ACTIVITY; - +public class GenreDetailActivity extends AbsSlidingMusicPanelActivity implements CabHolder { public static final String EXTRA_GENRE = "extra_genre"; @BindView(R.id.recycler_view) @@ -69,10 +64,17 @@ public class GenreDetailActivity extends AbsSlidingMusicPanelActivity implements genre = getIntent().getExtras().getParcelable(EXTRA_GENRE); setUpRecyclerView(); - setUpToolBar(); - getSupportLoaderManager().initLoader(LOADER_ID, null, this); + ItemQuery query = new ItemQuery(); + query.setGenreIds(new String[]{genre.id}); + QueryUtil.getSongs(query, new MediaCallback() { + @Override + public void onLoadMedia(List media) { + adapter.getDataSet().addAll((List) media); + adapter.notifyDataSetChanged(); + } + }); } @Override @@ -121,6 +123,7 @@ public class GenreDetailActivity extends AbsSlidingMusicPanelActivity implements onBackPressed(); return true; } + return super.onOptionsItemSelected(item); } @@ -133,6 +136,7 @@ public class GenreDetailActivity extends AbsSlidingMusicPanelActivity implements .setCloseDrawableRes(R.drawable.ic_close_white_24dp) .setBackgroundColor(PhonographColorUtil.shiftBackgroundColorForLightText(ThemeStore.primaryColor(this))) .start(callback); + return cab; } @@ -148,13 +152,10 @@ public class GenreDetailActivity extends AbsSlidingMusicPanelActivity implements @Override public void onMediaStoreChanged() { super.onMediaStoreChanged(); - getSupportLoaderManager().restartLoader(LOADER_ID, null, this); } private void checkIsEmpty() { - empty.setVisibility( - adapter.getItemCount() == 0 ? View.VISIBLE : View.GONE - ); + empty.setVisibility(adapter.getItemCount() == 0 ? View.VISIBLE : View.GONE); } @Override @@ -168,40 +169,8 @@ public class GenreDetailActivity extends AbsSlidingMusicPanelActivity implements WrapperAdapterUtils.releaseAll(wrappedAdapter); wrappedAdapter = null; } - adapter = null; + adapter = null; super.onDestroy(); } - - @Override - @NonNull - public Loader> onCreateLoader(int id, Bundle args) { - return new GenreDetailActivity.AsyncGenreSongLoader(this, genre); - } - - @Override - public void onLoadFinished(@NonNull Loader> loader, List data) { - if (adapter != null) - adapter.swapDataSet(data); - } - - @Override - public void onLoaderReset(@NonNull Loader> loader) { - if (adapter != null) - adapter.swapDataSet(new ArrayList<>()); - } - - private static class AsyncGenreSongLoader extends WrappedAsyncTaskLoader> { - private final Genre genre; - - public AsyncGenreSongLoader(Context context, Genre genre) { - super(context); - this.genre = genre; - } - - @Override - public List loadInBackground() { - return GenreLoader.getSongs(getContext(), genre.id.hashCode()); - } - } }