revert view binding for detail activities until crash is fixed

This commit is contained in:
dkanada 2020-08-27 11:57:12 +09:00
commit 52a5b15116
4 changed files with 160 additions and 82 deletions

View file

@ -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);
}

View file

@ -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);

View file

@ -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);

View file

@ -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);