From 52a5b15116a2041469f13182d58ebf445219c5c7 Mon Sep 17 00:00:00 2001 From: dkanada Date: Thu, 27 Aug 2020 11:57:12 +0900 Subject: [PATCH] revert view binding for detail activities until crash is fixed --- .../ui/activities/AlbumDetailActivity.java | 84 +++++++++++++------ .../ui/activities/ArtistDetailActivity.java | 79 +++++++++++------ .../ui/activities/GenreDetailActivity.java | 36 +++++--- .../ui/activities/PlaylistDetailActivity.java | 41 +++++---- 4 files changed, 159 insertions(+), 81 deletions(-) diff --git a/app/src/main/java/com/dkanada/gramophone/ui/activities/AlbumDetailActivity.java b/app/src/main/java/com/dkanada/gramophone/ui/activities/AlbumDetailActivity.java index 21bec730..669cfa5a 100644 --- a/app/src/main/java/com/dkanada/gramophone/ui/activities/AlbumDetailActivity.java +++ b/app/src/main/java/com/dkanada/gramophone/ui/activities/AlbumDetailActivity.java @@ -7,17 +7,19 @@ import android.os.Bundle; import androidx.annotation.NonNull; import androidx.recyclerview.widget.GridLayoutManager; 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.ImageView; +import android.widget.TextView; import com.afollestad.materialcab.MaterialCab; import com.afollestad.materialdialogs.util.DialogUtils; import com.bumptech.glide.Glide; import com.bumptech.glide.request.RequestListener; import com.bumptech.glide.request.target.Target; -import com.dkanada.gramophone.databinding.ActivityAlbumDetailBinding; import com.google.android.material.appbar.AppBarLayout; import com.kabouzeid.appthemehelper.util.ColorUtil; import com.kabouzeid.appthemehelper.util.MaterialValueHelper; @@ -45,12 +47,41 @@ import org.jellyfin.apiclient.model.querying.ItemQuery; import java.util.List; +import butterknife.BindView; +import butterknife.ButterKnife; + public class AlbumDetailActivity extends AbsSlidingMusicPanelActivity implements PaletteColorHolder, CabHolder, AppBarLayout.OnOffsetChangedListener { public static final String EXTRA_ALBUM = "extra_album"; private Album album; - ActivityAlbumDetailBinding binding; + @BindView(R.id.app_bar_layout) + AppBarLayout appBarLayout; + @BindView(R.id.list) + RecyclerView recyclerView; + @BindView(R.id.image) + ImageView albumArtImageView; + @BindView(R.id.toolbar) + Toolbar toolbar; + @BindView(R.id.header) + View headerView; + + @BindView(R.id.artist_icon) + ImageView artistIconImageView; + @BindView(R.id.duration_icon) + ImageView durationIconImageView; + @BindView(R.id.song_count_icon) + ImageView songCountIconImageView; + @BindView(R.id.album_year_icon) + ImageView albumYearIconImageView; + @BindView(R.id.artist_text) + TextView artistTextView; + @BindView(R.id.duration_text) + TextView durationTextView; + @BindView(R.id.song_count_text) + TextView songCountTextView; + @BindView(R.id.album_year_text) + TextView albumYearTextView; private AlbumSongAdapter adapter; @@ -62,8 +93,7 @@ public class AlbumDetailActivity extends AbsSlidingMusicPanelActivity implements protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - binding = ActivityAlbumDetailBinding.inflate(getLayoutInflater()); - setContentView(binding.getRoot()); + ButterKnife.bind(this); setDrawUnderStatusbar(); setUpObservableListViewParams(); @@ -91,7 +121,7 @@ public class AlbumDetailActivity extends AbsSlidingMusicPanelActivity implements @Override public void onOffsetChanged (AppBarLayout appBarLayout, int verticalOffset) { float headerAlpha = Math.max(0, Math.min(1, 1 + (2 * (float) verticalOffset / headerViewHeight))); - binding.header.setAlpha(headerAlpha); + headerView.setAlpha(headerAlpha); } @Override @@ -106,7 +136,7 @@ public class AlbumDetailActivity extends AbsSlidingMusicPanelActivity implements private void setUpViews() { setUpRecyclerView(); setUpSongsAdapter(); - binding.artistText.setOnClickListener(v -> { + artistTextView.setOnClickListener(v -> { if (album != null) { NavigationUtil.goToArtist(AlbumDetailActivity.this, new Artist(album)); } @@ -133,7 +163,7 @@ public class AlbumDetailActivity extends AbsSlidingMusicPanelActivity implements } }) .dontAnimate() - .into(new CustomPaletteTarget(binding.image) { + .into(new CustomPaletteTarget(albumArtImageView) { @Override public void onColorReady(int color) { setColors(color); @@ -143,26 +173,26 @@ public class AlbumDetailActivity extends AbsSlidingMusicPanelActivity implements private void setColors(int color) { toolbarColor = color; - binding.appBarLayout.setBackgroundColor(color); + appBarLayout.setBackgroundColor(color); setNavigationbarColor(color); setTaskDescriptionColor(color); - binding.toolbar.setBackgroundColor(color); + toolbar.setBackgroundColor(color); // needed to auto readjust the toolbar content color - setSupportActionBar(binding.toolbar); + setSupportActionBar(toolbar); setStatusbarColor(color); int secondaryTextColor = MaterialValueHelper.getSecondaryTextColor(this, ColorUtil.isColorLight(color)); - binding.artistIcon.setColorFilter(secondaryTextColor, PorterDuff.Mode.SRC_IN); - binding.durationIcon.setColorFilter(secondaryTextColor, PorterDuff.Mode.SRC_IN); - binding.songCountIcon.setColorFilter(secondaryTextColor, PorterDuff.Mode.SRC_IN); - binding.albumYearIcon.setColorFilter(secondaryTextColor, PorterDuff.Mode.SRC_IN); + artistIconImageView.setColorFilter(secondaryTextColor, PorterDuff.Mode.SRC_IN); + durationIconImageView.setColorFilter(secondaryTextColor, PorterDuff.Mode.SRC_IN); + songCountIconImageView.setColorFilter(secondaryTextColor, PorterDuff.Mode.SRC_IN); + albumYearIconImageView.setColorFilter(secondaryTextColor, PorterDuff.Mode.SRC_IN); - binding.artistText.setTextColor(MaterialValueHelper.getPrimaryTextColor(this, ColorUtil.isColorLight(color))); - binding.durationText.setTextColor(secondaryTextColor); - binding.songCountText.setTextColor(secondaryTextColor); - binding.albumYearText.setTextColor(secondaryTextColor); + artistTextView.setTextColor(MaterialValueHelper.getPrimaryTextColor(this, ColorUtil.isColorLight(color))); + durationTextView.setTextColor(secondaryTextColor); + songCountTextView.setTextColor(secondaryTextColor); + albumYearTextView.setTextColor(secondaryTextColor); } @Override @@ -171,11 +201,11 @@ public class AlbumDetailActivity extends AbsSlidingMusicPanelActivity implements } private void setUpRecyclerView() { - binding.appBarLayout.addOnOffsetChangedListener(this); + appBarLayout.addOnOffsetChangedListener(this); } private void setUpToolbar() { - setSupportActionBar(binding.toolbar); + setSupportActionBar(toolbar); //noinspection ConstantConditions getSupportActionBar().setTitle(null); getSupportActionBar().setDisplayHomeAsUpEnabled(true); @@ -183,8 +213,8 @@ public class AlbumDetailActivity extends AbsSlidingMusicPanelActivity implements private void setUpSongsAdapter() { adapter = new AlbumSongAdapter(this, getAlbum().songs, R.layout.item_list, false, this); - binding.list.setLayoutManager(new GridLayoutManager(this, 1)); - binding.list.setAdapter(adapter); + recyclerView.setLayoutManager(new GridLayoutManager(this, 1)); + recyclerView.setAdapter(adapter); adapter.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver() { @Override public void onChanged() { @@ -263,7 +293,7 @@ public class AlbumDetailActivity extends AbsSlidingMusicPanelActivity implements if (cab != null && cab.isActive()) { cab.finish(); } else { - binding.list.stopScroll(); + recyclerView.stopScroll(); super.onBackPressed(); } } @@ -278,10 +308,10 @@ public class AlbumDetailActivity extends AbsSlidingMusicPanelActivity implements this.album = album; getSupportActionBar().setTitle(album.title); - binding.artistText.setText(album.artistName); - binding.songCountText.setText(MusicUtil.getSongCountString(this, album.songs.size())); - binding.durationText.setText(MusicUtil.getReadableDurationString(MusicUtil.getTotalDuration(this, album.songs))); - binding.albumYearText.setText(MusicUtil.getYearString(album.year)); + artistTextView.setText(album.artistName); + songCountTextView.setText(MusicUtil.getSongCountString(this, album.songs.size())); + durationTextView.setText(MusicUtil.getReadableDurationString(MusicUtil.getTotalDuration(this, album.songs))); + albumYearTextView.setText(MusicUtil.getYearString(album.year)); if (album.songs.size() != 0) adapter.swapDataSet(album.songs); } diff --git a/app/src/main/java/com/dkanada/gramophone/ui/activities/ArtistDetailActivity.java b/app/src/main/java/com/dkanada/gramophone/ui/activities/ArtistDetailActivity.java index 0a0f45c3..87854cda 100644 --- a/app/src/main/java/com/dkanada/gramophone/ui/activities/ArtistDetailActivity.java +++ b/app/src/main/java/com/dkanada/gramophone/ui/activities/ArtistDetailActivity.java @@ -6,11 +6,16 @@ import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; import androidx.annotation.NonNull; +import androidx.appcompat.widget.Toolbar; import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; +import butterknife.BindView; +import butterknife.ButterKnife; import java.util.List; @@ -20,7 +25,6 @@ import com.bumptech.glide.Glide; import com.bumptech.glide.request.RequestListener; import com.bumptech.glide.request.target.Target; import com.dkanada.gramophone.adapter.song.SongAdapter; -import com.dkanada.gramophone.databinding.ActivityArtistDetailBinding; import com.google.android.material.appbar.AppBarLayout; import com.kabouzeid.appthemehelper.util.ColorUtil; import com.kabouzeid.appthemehelper.util.MaterialValueHelper; @@ -49,7 +53,31 @@ import org.jellyfin.apiclient.model.querying.ItemQuery; public class ArtistDetailActivity extends AbsSlidingMusicPanelActivity implements PaletteColorHolder, CabHolder, AppBarLayout.OnOffsetChangedListener { public static final String EXTRA_ARTIST = "extra_artist"; - ActivityArtistDetailBinding binding; + @BindView(R.id.app_bar_layout) + AppBarLayout appBarLayout; + @BindView(R.id.albums) + RecyclerView albumRecyclerView; + @BindView(R.id.songs) + RecyclerView songRecyclerView; + @BindView(R.id.image) + ImageView artistImage; + @BindView(R.id.toolbar) + Toolbar toolbar; + @BindView(R.id.header) + View headerView; + + @BindView(R.id.duration_icon) + ImageView durationIconImageView; + @BindView(R.id.song_count_icon) + ImageView songCountIconImageView; + @BindView(R.id.album_count_icon) + ImageView albumCountIconImageView; + @BindView(R.id.duration_text) + TextView durationTextView; + @BindView(R.id.song_count_text) + TextView songCountTextView; + @BindView(R.id.album_count_text) + TextView albumCountTextView; private MaterialCab cab; private int headerViewHeight; @@ -63,8 +91,7 @@ public class ArtistDetailActivity extends AbsSlidingMusicPanelActivity implement protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - binding = ActivityArtistDetailBinding.inflate(getLayoutInflater()); - setContentView(binding.getRoot()); + ButterKnife.bind(this); setDrawUnderStatusbar(); setUpObservableListViewParams(); @@ -100,9 +127,9 @@ public class ArtistDetailActivity extends AbsSlidingMusicPanelActivity implement } @Override - public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) { + public void onOffsetChanged (AppBarLayout appBarLayout, int verticalOffset) { float headerAlpha = Math.max(0, Math.min(1, 1 + (2 * (float) verticalOffset / headerViewHeight))); - binding.header.setAlpha(headerAlpha); + headerView.setAlpha(headerAlpha); } @Override @@ -123,18 +150,18 @@ public class ArtistDetailActivity extends AbsSlidingMusicPanelActivity implement } private void setUpSongListView() { - binding.appBarLayout.addOnOffsetChangedListener(this); + appBarLayout.addOnOffsetChangedListener(this); songAdapter = new SongAdapter(this, getArtist().songs, R.layout.item_list, false, this); - binding.songs.setLayoutManager(new GridLayoutManager(this, 1)); - binding.songs.setAdapter(songAdapter); + songRecyclerView.setLayoutManager(new GridLayoutManager(this, 1)); + songRecyclerView.setAdapter(songAdapter); } private void setUpAlbumRecyclerView() { - binding.albums.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false)); + albumRecyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false)); albumAdapter = new HorizontalAlbumAdapter(this, getArtist().albums, usePalette, this); - binding.albums.setAdapter(albumAdapter); + albumRecyclerView.setAdapter(albumAdapter); albumAdapter.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver() { @Override public void onChanged() { @@ -168,7 +195,7 @@ public class ArtistDetailActivity extends AbsSlidingMusicPanelActivity implement } }) .dontAnimate() - .into(new CustomPaletteTarget(binding.image) { + .into(new CustomPaletteTarget(artistImage) { @Override public void onColorReady(int color) { setColors(color); @@ -183,28 +210,28 @@ public class ArtistDetailActivity extends AbsSlidingMusicPanelActivity implement private void setColors(int color) { toolbarColor = color; - binding.appBarLayout.setBackgroundColor(color); + appBarLayout.setBackgroundColor(color); setNavigationbarColor(color); setTaskDescriptionColor(color); - binding.toolbar.setBackgroundColor(color); + toolbar.setBackgroundColor(color); // needed to auto readjust the toolbar content color - setSupportActionBar(binding.toolbar); + setSupportActionBar(toolbar); setStatusbarColor(color); int secondaryTextColor = MaterialValueHelper.getSecondaryTextColor(this, ColorUtil.isColorLight(color)); - binding.durationIcon.setColorFilter(secondaryTextColor, PorterDuff.Mode.SRC_IN); - binding.songCountIcon.setColorFilter(secondaryTextColor, PorterDuff.Mode.SRC_IN); - binding.albumCountIcon.setColorFilter(secondaryTextColor, PorterDuff.Mode.SRC_IN); + durationIconImageView.setColorFilter(secondaryTextColor, PorterDuff.Mode.SRC_IN); + songCountIconImageView.setColorFilter(secondaryTextColor, PorterDuff.Mode.SRC_IN); + albumCountIconImageView.setColorFilter(secondaryTextColor, PorterDuff.Mode.SRC_IN); - binding.durationText.setTextColor(secondaryTextColor); - binding.songCountText.setTextColor(secondaryTextColor); - binding.albumCountText.setTextColor(secondaryTextColor); + durationTextView.setTextColor(secondaryTextColor); + songCountTextView.setTextColor(secondaryTextColor); + albumCountTextView.setTextColor(secondaryTextColor); } private void setUpToolbar() { - setSupportActionBar(binding.toolbar); + setSupportActionBar(toolbar); // noinspection ConstantConditions getSupportActionBar().setTitle(null); getSupportActionBar().setDisplayHomeAsUpEnabled(true); @@ -281,7 +308,7 @@ public class ArtistDetailActivity extends AbsSlidingMusicPanelActivity implement if (cab != null && cab.isActive()) { cab.finish(); } else { - binding.albums.stopScroll(); + albumRecyclerView.stopScroll(); super.onBackPressed(); } } @@ -296,9 +323,9 @@ public class ArtistDetailActivity extends AbsSlidingMusicPanelActivity implement this.artist = artist; getSupportActionBar().setTitle(artist.name); - binding.songCountText.setText(MusicUtil.getSongCountString(this, artist.songs.size())); - binding.albumCountText.setText(MusicUtil.getAlbumCountString(this, artist.albums.size())); - binding.durationText.setText(MusicUtil.getReadableDurationString(MusicUtil.getTotalDuration(this, artist.songs))); + songCountTextView.setText(MusicUtil.getSongCountString(this, artist.songs.size())); + albumCountTextView.setText(MusicUtil.getAlbumCountString(this, artist.albums.size())); + durationTextView.setText(MusicUtil.getReadableDurationString(MusicUtil.getTotalDuration(this, artist.songs))); if (artist.songs.size() != 0) songAdapter.swapDataSet(artist.songs); if (artist.albums.size() != 0) albumAdapter.swapDataSet(artist.albums); diff --git a/app/src/main/java/com/dkanada/gramophone/ui/activities/GenreDetailActivity.java b/app/src/main/java/com/dkanada/gramophone/ui/activities/GenreDetailActivity.java index 8c89ff6b..78d40064 100644 --- a/app/src/main/java/com/dkanada/gramophone/ui/activities/GenreDetailActivity.java +++ b/app/src/main/java/com/dkanada/gramophone/ui/activities/GenreDetailActivity.java @@ -4,12 +4,13 @@ import android.os.Bundle; import androidx.annotation.NonNull; 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 com.afollestad.materialcab.MaterialCab; -import com.dkanada.gramophone.databinding.ActivityGenreDetailBinding; import com.h6ah4i.android.widget.advrecyclerview.utils.WrapperAdapterUtils; import com.kabouzeid.appthemehelper.ThemeStore; import com.dkanada.gramophone.R; @@ -30,10 +31,18 @@ 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 { public static final String EXTRA_GENRE = "extra_genre"; - ActivityGenreDetailBinding binding; + @BindView(R.id.recycler_view) + RecyclerView recyclerView; + @BindView(R.id.toolbar) + Toolbar toolbar; + @BindView(android.R.id.empty) + TextView empty; private Genre genre; @@ -46,12 +55,10 @@ public class GenreDetailActivity extends AbsSlidingMusicPanelActivity implements protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - binding = ActivityGenreDetailBinding.inflate(getLayoutInflater()); - setContentView(binding.getRoot()); + ButterKnife.bind(this); setDrawUnderStatusbar(); setStatusbarColorAuto(); - setNavigationbarColorAuto(); setTaskDescriptionColorAuto(); @@ -77,11 +84,11 @@ public class GenreDetailActivity extends AbsSlidingMusicPanelActivity implements } private void setUpRecyclerView() { - ViewUtil.setUpFastScrollRecyclerViewColor(this, ((FastScrollRecyclerView) binding.recyclerView), ThemeStore.accentColor(this)); - binding.recyclerView.setLayoutManager(new LinearLayoutManager(this)); + ViewUtil.setUpFastScrollRecyclerViewColor(this, ((FastScrollRecyclerView) recyclerView), ThemeStore.accentColor(this)); + recyclerView.setLayoutManager(new LinearLayoutManager(this)); adapter = new SongAdapter(this, new ArrayList<>(), R.layout.item_list, false, this); - binding.recyclerView.setAdapter(adapter); + recyclerView.setAdapter(adapter); adapter.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver() { @Override @@ -93,8 +100,8 @@ public class GenreDetailActivity extends AbsSlidingMusicPanelActivity implements } private void setUpToolBar() { - binding.toolbar.setBackgroundColor(ThemeStore.primaryColor(this)); - setSupportActionBar(binding.toolbar); + toolbar.setBackgroundColor(ThemeStore.primaryColor(this)); + setSupportActionBar(toolbar); //noinspection ConstantConditions getSupportActionBar().setTitle(genre.name); getSupportActionBar().setDisplayHomeAsUpEnabled(true); @@ -138,18 +145,21 @@ public class GenreDetailActivity extends AbsSlidingMusicPanelActivity implements public void onBackPressed() { if (cab != null && cab.isActive()) cab.finish(); else { - binding.recyclerView.stopScroll(); + recyclerView.stopScroll(); super.onBackPressed(); } } private void checkIsEmpty() { - binding.empty.setVisibility(adapter.getItemCount() == 0 ? View.VISIBLE : View.GONE); + empty.setVisibility(adapter.getItemCount() == 0 ? View.VISIBLE : View.GONE); } @Override protected void onDestroy() { - binding.recyclerView.setAdapter(null); + if (recyclerView != null) { + recyclerView.setAdapter(null); + recyclerView = null; + } if (wrappedAdapter != null) { WrapperAdapterUtils.releaseAll(wrappedAdapter); diff --git a/app/src/main/java/com/dkanada/gramophone/ui/activities/PlaylistDetailActivity.java b/app/src/main/java/com/dkanada/gramophone/ui/activities/PlaylistDetailActivity.java index 2bb7e248..1902a30a 100644 --- a/app/src/main/java/com/dkanada/gramophone/ui/activities/PlaylistDetailActivity.java +++ b/app/src/main/java/com/dkanada/gramophone/ui/activities/PlaylistDetailActivity.java @@ -4,13 +4,14 @@ import android.os.Bundle; 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.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.afollestad.materialcab.MaterialCab; -import com.dkanada.gramophone.databinding.ActivityPlaylistDetailBinding; import com.h6ah4i.android.widget.advrecyclerview.animator.GeneralItemAnimator; import com.h6ah4i.android.widget.advrecyclerview.animator.RefactoredDefaultItemAnimator; import com.h6ah4i.android.widget.advrecyclerview.draggable.RecyclerViewDragDropManager; @@ -37,10 +38,18 @@ import org.jellyfin.apiclient.model.playlists.PlaylistItemQuery; import java.util.ArrayList; import java.util.List; +import butterknife.BindView; +import butterknife.ButterKnife; + public class PlaylistDetailActivity extends AbsSlidingMusicPanelActivity implements CabHolder { public static String EXTRA_PLAYLIST = "extra_playlist"; - ActivityPlaylistDetailBinding binding; + @BindView(R.id.recycler_view) + RecyclerView recyclerView; + @BindView(R.id.toolbar) + Toolbar toolbar; + @BindView(android.R.id.empty) + TextView empty; private Playlist playlist; @@ -54,8 +63,7 @@ public class PlaylistDetailActivity extends AbsSlidingMusicPanelActivity impleme protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - binding = ActivityPlaylistDetailBinding.inflate(getLayoutInflater()); - setContentView(binding.getRoot()); + ButterKnife.bind(this); setDrawUnderStatusbar(); setStatusbarColorAuto(); @@ -85,8 +93,8 @@ public class PlaylistDetailActivity extends AbsSlidingMusicPanelActivity impleme } private void setUpRecyclerView() { - ViewUtil.setUpFastScrollRecyclerViewColor(this, ((FastScrollRecyclerView) binding.recyclerView), ThemeStore.accentColor(this)); - binding.recyclerView.setLayoutManager(new LinearLayoutManager(this)); + ViewUtil.setUpFastScrollRecyclerViewColor(this, ((FastScrollRecyclerView) recyclerView), ThemeStore.accentColor(this)); + recyclerView.setLayoutManager(new LinearLayoutManager(this)); recyclerViewDragDropManager = new RecyclerViewDragDropManager(); final GeneralItemAnimator animator = new RefactoredDefaultItemAnimator(); @@ -99,10 +107,10 @@ public class PlaylistDetailActivity extends AbsSlidingMusicPanelActivity impleme wrappedAdapter = recyclerViewDragDropManager.createWrappedAdapter(adapter); - binding.recyclerView.setAdapter(wrappedAdapter); - binding.recyclerView.setItemAnimator(animator); + recyclerView.setAdapter(wrappedAdapter); + recyclerView.setItemAnimator(animator); - recyclerViewDragDropManager.attachRecyclerView(binding.recyclerView); + recyclerViewDragDropManager.attachRecyclerView(recyclerView); adapter.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver() { @Override @@ -114,8 +122,8 @@ public class PlaylistDetailActivity extends AbsSlidingMusicPanelActivity impleme } private void setUpToolbar() { - binding.toolbar.setBackgroundColor(ThemeStore.primaryColor(this)); - setSupportActionBar(binding.toolbar); + toolbar.setBackgroundColor(ThemeStore.primaryColor(this)); + setSupportActionBar(toolbar); //noinspection ConstantConditions getSupportActionBar().setDisplayHomeAsUpEnabled(true); setToolbarTitle(playlist.name); @@ -164,13 +172,13 @@ public class PlaylistDetailActivity extends AbsSlidingMusicPanelActivity impleme if (cab != null && cab.isActive()) { cab.finish(); } else { - binding.recyclerView.stopScroll(); + recyclerView.stopScroll(); super.onBackPressed(); } } private void checkIsEmpty() { - binding.empty.setVisibility(adapter.getItemCount() == 0 ? View.VISIBLE : View.GONE); + empty.setVisibility(adapter.getItemCount() == 0 ? View.VISIBLE : View.GONE); } @Override @@ -189,8 +197,11 @@ public class PlaylistDetailActivity extends AbsSlidingMusicPanelActivity impleme recyclerViewDragDropManager = null; } - binding.recyclerView.setItemAnimator(null); - binding.recyclerView.setAdapter(null); + if (recyclerView != null) { + recyclerView.setItemAnimator(null); + recyclerView.setAdapter(null); + recyclerView = null; + } if (wrappedAdapter != null) { WrapperAdapterUtils.releaseAll(wrappedAdapter);