refactor intent extras for detail activities
This commit is contained in:
parent
3c4822329e
commit
cd3ad6b577
10 changed files with 40 additions and 67 deletions
|
|
@ -35,12 +35,6 @@ public abstract class AbsThemeActivity extends ATHToolbarActivity {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* This will set the color of the view with the id "status_bar" on KitKat and Lollipop.
|
||||
* On Lollipop if no such view is found it will set the statusbar color using the native method.
|
||||
*
|
||||
* @param color the new statusbar color (will be shifted down on Lollipop and above)
|
||||
*/
|
||||
public void setStatusbarColor(int color) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
|
||||
final View statusBar = getWindow().getDecorView().getRootView().findViewById(R.id.status_bar);
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ import androidx.recyclerview.widget.RecyclerView;
|
|||
|
||||
import com.afollestad.materialcab.MaterialCab;
|
||||
import com.afollestad.materialdialogs.util.DialogUtils;
|
||||
import com.dkanada.gramophone.BuildConfig;
|
||||
import com.dkanada.gramophone.databinding.ActivityAlbumDetailBinding;
|
||||
import com.google.android.material.appbar.AppBarLayout;
|
||||
import com.kabouzeid.appthemehelper.util.ColorUtil;
|
||||
|
|
@ -39,7 +40,7 @@ import org.jellyfin.apiclient.model.querying.ItemQuery;
|
|||
import java.util.List;
|
||||
|
||||
public class AlbumDetailActivity extends AbsMusicPanelActivity implements PaletteColorHolder, CabHolder, AppBarLayout.OnOffsetChangedListener {
|
||||
public static final String EXTRA_ALBUM = "extra_album";
|
||||
public static final String EXTRA_ALBUM = BuildConfig.APPLICATION_ID + ".extra.album";
|
||||
|
||||
private ActivityAlbumDetailBinding binding;
|
||||
|
||||
|
|
@ -52,6 +53,8 @@ public class AlbumDetailActivity extends AbsMusicPanelActivity implements Palett
|
|||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
album = getIntent().getParcelableExtra(EXTRA_ALBUM);
|
||||
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
setDrawUnderStatusbar();
|
||||
|
|
@ -59,7 +62,6 @@ public class AlbumDetailActivity extends AbsMusicPanelActivity implements Palett
|
|||
setUpToolbar();
|
||||
setUpViews();
|
||||
|
||||
Album album = getIntent().getExtras().getParcelable(EXTRA_ALBUM);
|
||||
loadAlbumCover(album);
|
||||
setAlbum(album);
|
||||
|
||||
|
|
@ -94,9 +96,7 @@ public class AlbumDetailActivity extends AbsMusicPanelActivity implements Palett
|
|||
setUpRecyclerView();
|
||||
setUpSongsAdapter();
|
||||
binding.artistText.setOnClickListener(v -> {
|
||||
if (album != null) {
|
||||
NavigationUtil.goToArtist(AlbumDetailActivity.this, new Artist(album));
|
||||
}
|
||||
});
|
||||
|
||||
setColors(DialogUtils.resolveColor(this, R.attr.defaultFooterColor));
|
||||
|
|
@ -149,13 +149,12 @@ public class AlbumDetailActivity extends AbsMusicPanelActivity implements Palett
|
|||
|
||||
private void setUpToolbar() {
|
||||
setSupportActionBar(binding.toolbar);
|
||||
// noinspection ConstantConditions
|
||||
binding.toolbar.setTitle(null);
|
||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
}
|
||||
|
||||
private void setUpSongsAdapter() {
|
||||
adapter = new AlbumSongAdapter(this, getAlbum().songs, R.layout.item_list, false, this);
|
||||
adapter = new AlbumSongAdapter(this, album.songs, R.layout.item_list, false, this);
|
||||
binding.list.setLayoutManager(new GridLayoutManager(this, 1));
|
||||
binding.list.setAdapter(adapter);
|
||||
adapter.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver() {
|
||||
|
|
@ -258,9 +257,4 @@ public class AlbumDetailActivity extends AbsMusicPanelActivity implements Palett
|
|||
|
||||
if (album.songs.size() != 0) adapter.swapDataSet(album.songs);
|
||||
}
|
||||
|
||||
private Album getAlbum() {
|
||||
if (album == null) album = new Album();
|
||||
return album;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import androidx.recyclerview.widget.RecyclerView;
|
|||
|
||||
import com.afollestad.materialcab.MaterialCab;
|
||||
import com.afollestad.materialdialogs.util.DialogUtils;
|
||||
import com.dkanada.gramophone.BuildConfig;
|
||||
import com.dkanada.gramophone.adapter.song.SongAdapter;
|
||||
import com.dkanada.gramophone.databinding.ActivityArtistDetailBinding;
|
||||
import com.google.android.material.appbar.AppBarLayout;
|
||||
|
|
@ -40,7 +41,7 @@ import org.jellyfin.apiclient.model.querying.ItemQuery;
|
|||
import java.util.List;
|
||||
|
||||
public class ArtistDetailActivity extends AbsMusicPanelActivity implements PaletteColorHolder, CabHolder, AppBarLayout.OnOffsetChangedListener {
|
||||
public static final String EXTRA_ARTIST = "extra_artist";
|
||||
public static final String EXTRA_ARTIST = BuildConfig.APPLICATION_ID + ".extra.artist";
|
||||
|
||||
private ActivityArtistDetailBinding binding;
|
||||
|
||||
|
|
@ -54,6 +55,8 @@ public class ArtistDetailActivity extends AbsMusicPanelActivity implements Palet
|
|||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
artist = getIntent().getParcelableExtra(EXTRA_ARTIST);
|
||||
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
// must be loaded before album adapter
|
||||
|
|
@ -64,7 +67,6 @@ public class ArtistDetailActivity extends AbsMusicPanelActivity implements Palet
|
|||
setUpToolbar();
|
||||
setUpViews();
|
||||
|
||||
Artist artist = getIntent().getExtras().getParcelable(EXTRA_ARTIST);
|
||||
loadArtistImage(artist);
|
||||
setArtist(artist);
|
||||
|
||||
|
|
@ -111,7 +113,7 @@ public class ArtistDetailActivity extends AbsMusicPanelActivity implements Palet
|
|||
private void setUpSongListView() {
|
||||
binding.appBarLayout.addOnOffsetChangedListener(this);
|
||||
|
||||
songAdapter = new SongAdapter(this, getArtist().songs, R.layout.item_list, false, this);
|
||||
songAdapter = new SongAdapter(this, artist.songs, R.layout.item_list, false, this);
|
||||
|
||||
binding.songs.setLayoutManager(new GridLayoutManager(this, 1));
|
||||
binding.songs.setAdapter(songAdapter);
|
||||
|
|
@ -121,7 +123,7 @@ public class ArtistDetailActivity extends AbsMusicPanelActivity implements Palet
|
|||
|
||||
private void setUpAlbumRecyclerView() {
|
||||
binding.albums.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false));
|
||||
albumAdapter = new HorizontalAlbumAdapter(this, getArtist().albums, usePalette, this);
|
||||
albumAdapter = new HorizontalAlbumAdapter(this, artist.albums, usePalette, this);
|
||||
binding.albums.setAdapter(albumAdapter);
|
||||
|
||||
// NestedScrollView will ignore horizontal RecyclerView without this line
|
||||
|
|
@ -183,7 +185,6 @@ public class ArtistDetailActivity extends AbsMusicPanelActivity implements Palet
|
|||
|
||||
private void setUpToolbar() {
|
||||
setSupportActionBar(binding.toolbar);
|
||||
// noinspection ConstantConditions
|
||||
binding.toolbar.setTitle(null);
|
||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
}
|
||||
|
|
@ -281,9 +282,4 @@ public class ArtistDetailActivity extends AbsMusicPanelActivity implements Palet
|
|||
if (artist.songs.size() != 0) songAdapter.swapDataSet(artist.songs);
|
||||
if (artist.albums.size() != 0) albumAdapter.swapDataSet(artist.albums);
|
||||
}
|
||||
|
||||
private Artist getArtist() {
|
||||
if (artist == null) artist = new Artist();
|
||||
return artist;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import androidx.recyclerview.widget.LinearLayoutManager;
|
|||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.afollestad.materialcab.MaterialCab;
|
||||
import com.dkanada.gramophone.BuildConfig;
|
||||
import com.dkanada.gramophone.databinding.ActivityGenreDetailBinding;
|
||||
import com.kabouzeid.appthemehelper.ThemeStore;
|
||||
import com.dkanada.gramophone.R;
|
||||
|
|
@ -28,7 +29,7 @@ import org.jellyfin.apiclient.model.querying.ItemQuery;
|
|||
import java.util.ArrayList;
|
||||
|
||||
public class GenreDetailActivity extends AbsMusicPanelActivity implements CabHolder {
|
||||
public static final String EXTRA_GENRE = "extra_genre";
|
||||
public static final String EXTRA_GENRE = BuildConfig.APPLICATION_ID + ".extra.genre";
|
||||
|
||||
private ActivityGenreDetailBinding binding;
|
||||
|
||||
|
|
@ -39,6 +40,8 @@ public class GenreDetailActivity extends AbsMusicPanelActivity implements CabHol
|
|||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
genre = getIntent().getParcelableExtra(EXTRA_GENRE);
|
||||
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
setDrawUnderStatusbar();
|
||||
|
|
@ -47,8 +50,6 @@ public class GenreDetailActivity extends AbsMusicPanelActivity implements CabHol
|
|||
setNavigationbarColorAuto();
|
||||
setTaskDescriptionColorAuto();
|
||||
|
||||
genre = getIntent().getExtras().getParcelable(EXTRA_GENRE);
|
||||
|
||||
setUpRecyclerView();
|
||||
setUpToolBar();
|
||||
|
||||
|
|
@ -86,7 +87,6 @@ public class GenreDetailActivity extends AbsMusicPanelActivity implements CabHol
|
|||
private void setUpToolBar() {
|
||||
binding.toolbar.setBackgroundColor(ThemeStore.primaryColor(this));
|
||||
setSupportActionBar(binding.toolbar);
|
||||
// noinspection ConstantConditions
|
||||
binding.toolbar.setTitle(genre.name);
|
||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import androidx.recyclerview.widget.LinearLayoutManager;
|
|||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.afollestad.materialcab.MaterialCab;
|
||||
import com.dkanada.gramophone.BuildConfig;
|
||||
import com.dkanada.gramophone.databinding.ActivityPlaylistDetailBinding;
|
||||
import com.h6ah4i.android.widget.advrecyclerview.animator.GeneralItemAnimator;
|
||||
import com.h6ah4i.android.widget.advrecyclerview.animator.RefactoredDefaultItemAnimator;
|
||||
|
|
@ -29,14 +30,13 @@ import com.dkanada.gramophone.activities.base.AbsMusicPanelActivity;
|
|||
import com.dkanada.gramophone.util.ThemeUtil;
|
||||
import com.dkanada.gramophone.util.PlaylistUtil;
|
||||
import com.dkanada.gramophone.util.ViewUtil;
|
||||
import com.simplecityapps.recyclerview_fastscroll.views.FastScrollRecyclerView;
|
||||
|
||||
import org.jellyfin.apiclient.model.playlists.PlaylistItemQuery;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class PlaylistDetailActivity extends AbsMusicPanelActivity implements CabHolder {
|
||||
public static String EXTRA_PLAYLIST = "extra_playlist";
|
||||
public static String EXTRA_PLAYLIST = BuildConfig.APPLICATION_ID + ".extra.playlist";
|
||||
|
||||
private ActivityPlaylistDetailBinding binding;
|
||||
|
||||
|
|
@ -50,6 +50,8 @@ public class PlaylistDetailActivity extends AbsMusicPanelActivity implements Cab
|
|||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
playlist = getIntent().getParcelableExtra(EXTRA_PLAYLIST);
|
||||
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
setDrawUnderStatusbar();
|
||||
|
|
@ -58,8 +60,6 @@ public class PlaylistDetailActivity extends AbsMusicPanelActivity implements Cab
|
|||
setNavigationbarColorAuto();
|
||||
setTaskDescriptionColorAuto();
|
||||
|
||||
playlist = getIntent().getExtras().getParcelable(EXTRA_PLAYLIST);
|
||||
|
||||
setUpRecyclerView();
|
||||
setUpToolbar();
|
||||
|
||||
|
|
@ -79,7 +79,7 @@ public class PlaylistDetailActivity extends AbsMusicPanelActivity implements Cab
|
|||
}
|
||||
|
||||
private void setUpRecyclerView() {
|
||||
ViewUtil.setUpFastScrollRecyclerViewColor(this, ((FastScrollRecyclerView) binding.recyclerView), ThemeStore.accentColor(this));
|
||||
ViewUtil.setUpFastScrollRecyclerViewColor(this, binding.recyclerView, ThemeStore.accentColor(this));
|
||||
binding.recyclerView.setLayoutManager(new LinearLayoutManager(this));
|
||||
|
||||
recyclerViewDragDropManager = new RecyclerViewDragDropManager();
|
||||
|
|
@ -108,16 +108,11 @@ public class PlaylistDetailActivity extends AbsMusicPanelActivity implements Cab
|
|||
}
|
||||
|
||||
private void setUpToolbar() {
|
||||
binding.toolbar.setTitle(playlist.name);
|
||||
binding.toolbar.setBackgroundColor(ThemeStore.primaryColor(this));
|
||||
setSupportActionBar(binding.toolbar);
|
||||
// noinspection ConstantConditions
|
||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
setToolbarTitle(playlist.name);
|
||||
}
|
||||
|
||||
private void setToolbarTitle(String title) {
|
||||
// noinspection ConstantConditions
|
||||
binding.toolbar.setTitle(title);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -106,7 +106,7 @@ public class GenreAdapter extends RecyclerView.Adapter<GenreAdapter.ViewHolder>
|
|||
@Override
|
||||
public String getSectionName(int position) {
|
||||
final Genre genre = dataSet.get(position);
|
||||
return genre.id.hashCode() == -1 ? "" : MusicUtil.getSectionName(dataSet.get(position).name);
|
||||
return MusicUtil.getSectionName(genre.name);
|
||||
}
|
||||
|
||||
public class ViewHolder extends MediaEntryViewHolder {
|
||||
|
|
|
|||
|
|
@ -35,9 +35,11 @@ public class PlaylistAdapter extends AbsMultiSelectAdapter<PlaylistAdapter.ViewH
|
|||
|
||||
public PlaylistAdapter(AppCompatActivity activity, List<Playlist> dataSet, @LayoutRes int itemLayoutRes, @Nullable CabHolder cabHolder) {
|
||||
super(activity, cabHolder, R.menu.menu_playlists_selection);
|
||||
|
||||
this.activity = activity;
|
||||
this.dataSet = dataSet;
|
||||
this.itemLayoutRes = itemLayoutRes;
|
||||
|
||||
setHasStableIds(true);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -33,8 +33,7 @@ public class QueryUtil {
|
|||
App.getApiClient().GetUserViews(id, new Response<ItemsResult>() {
|
||||
@Override
|
||||
public void onResponse(ItemsResult result) {
|
||||
List<BaseItemDto> libraries = new ArrayList<>();
|
||||
libraries.addAll(Arrays.asList(result.getItems()));
|
||||
List<BaseItemDto> libraries = new ArrayList<>(Arrays.asList(result.getItems()));
|
||||
|
||||
callback.onLoadMedia(libraries);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,14 +23,7 @@ public class AppShortcutLauncherActivity extends Activity {
|
|||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
int shortcutType = SHORTCUT_TYPE_DEFAULT;
|
||||
|
||||
Bundle extras = getIntent().getExtras();
|
||||
if (extras != null) {
|
||||
shortcutType = extras.getInt(EXTRA_SHORTCUT, SHORTCUT_TYPE_DEFAULT);
|
||||
}
|
||||
|
||||
switch (shortcutType) {
|
||||
switch (getIntent().getIntExtra(EXTRA_SHORTCUT, SHORTCUT_TYPE_DEFAULT)) {
|
||||
case SHORTCUT_TYPE_SHUFFLE:
|
||||
DynamicShortcutManager.reportShortcutUsed(this, ShuffleShortcutType.getId());
|
||||
break;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue