use view binding for three more activities

This commit is contained in:
dkanada 2020-08-17 04:29:09 +09:00
commit eb1a4442f4
3 changed files with 31 additions and 53 deletions

View file

@ -4,14 +4,13 @@ import android.os.Bundle;
import android.view.Menu; import android.view.Menu;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.widget.TextView;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.appcompat.widget.Toolbar;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import com.afollestad.materialcab.MaterialCab; 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.GeneralItemAnimator;
import com.h6ah4i.android.widget.advrecyclerview.animator.RefactoredDefaultItemAnimator; import com.h6ah4i.android.widget.advrecyclerview.animator.RefactoredDefaultItemAnimator;
import com.h6ah4i.android.widget.advrecyclerview.draggable.RecyclerViewDragDropManager; import com.h6ah4i.android.widget.advrecyclerview.draggable.RecyclerViewDragDropManager;
@ -38,20 +37,10 @@ import org.jellyfin.apiclient.model.playlists.PlaylistItemQuery;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
public class PlaylistDetailActivity extends AbsSlidingMusicPanelActivity implements CabHolder { public class PlaylistDetailActivity extends AbsSlidingMusicPanelActivity implements CabHolder {
@NonNull
public static String EXTRA_PLAYLIST = "extra_playlist"; public static String EXTRA_PLAYLIST = "extra_playlist";
@BindView(R.id.recycler_view) ActivityPlaylistDetailBinding binding;
RecyclerView recyclerView;
@BindView(R.id.toolbar)
Toolbar toolbar;
@BindView(android.R.id.empty)
TextView empty;
private Playlist playlist; private Playlist playlist;
@ -64,10 +53,13 @@ public class PlaylistDetailActivity extends AbsSlidingMusicPanelActivity impleme
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setDrawUnderStatusbar();
ButterKnife.bind(this);
binding = ActivityPlaylistDetailBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
setDrawUnderStatusbar();
setStatusbarColorAuto(); setStatusbarColorAuto();
setNavigationbarColorAuto(); setNavigationbarColorAuto();
setTaskDescriptionColorAuto(); setTaskDescriptionColorAuto();
@ -93,8 +85,8 @@ public class PlaylistDetailActivity extends AbsSlidingMusicPanelActivity impleme
} }
private void setUpRecyclerView() { private void setUpRecyclerView() {
ViewUtil.setUpFastScrollRecyclerViewColor(this, ((FastScrollRecyclerView) recyclerView), ThemeStore.accentColor(this)); ViewUtil.setUpFastScrollRecyclerViewColor(this, ((FastScrollRecyclerView) binding.recyclerView), ThemeStore.accentColor(this));
recyclerView.setLayoutManager(new LinearLayoutManager(this)); binding.recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerViewDragDropManager = new RecyclerViewDragDropManager(); recyclerViewDragDropManager = new RecyclerViewDragDropManager();
final GeneralItemAnimator animator = new RefactoredDefaultItemAnimator(); final GeneralItemAnimator animator = new RefactoredDefaultItemAnimator();
@ -107,10 +99,10 @@ public class PlaylistDetailActivity extends AbsSlidingMusicPanelActivity impleme
wrappedAdapter = recyclerViewDragDropManager.createWrappedAdapter(adapter); wrappedAdapter = recyclerViewDragDropManager.createWrappedAdapter(adapter);
recyclerView.setAdapter(wrappedAdapter); binding.recyclerView.setAdapter(wrappedAdapter);
recyclerView.setItemAnimator(animator); binding.recyclerView.setItemAnimator(animator);
recyclerViewDragDropManager.attachRecyclerView(recyclerView); recyclerViewDragDropManager.attachRecyclerView(binding.recyclerView);
adapter.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver() { adapter.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver() {
@Override @Override
@ -122,8 +114,8 @@ public class PlaylistDetailActivity extends AbsSlidingMusicPanelActivity impleme
} }
private void setUpToolbar() { private void setUpToolbar() {
toolbar.setBackgroundColor(ThemeStore.primaryColor(this)); binding.toolbar.setBackgroundColor(ThemeStore.primaryColor(this));
setSupportActionBar(toolbar); setSupportActionBar(binding.toolbar);
//noinspection ConstantConditions //noinspection ConstantConditions
getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayHomeAsUpEnabled(true);
setToolbarTitle(playlist.name); setToolbarTitle(playlist.name);
@ -172,13 +164,13 @@ public class PlaylistDetailActivity extends AbsSlidingMusicPanelActivity impleme
if (cab != null && cab.isActive()) { if (cab != null && cab.isActive()) {
cab.finish(); cab.finish();
} else { } else {
recyclerView.stopScroll(); binding.recyclerView.stopScroll();
super.onBackPressed(); super.onBackPressed();
} }
} }
private void checkIsEmpty() { private void checkIsEmpty() {
empty.setVisibility(adapter.getItemCount() == 0 ? View.VISIBLE : View.GONE); binding.empty.setVisibility(adapter.getItemCount() == 0 ? View.VISIBLE : View.GONE);
} }
@Override @Override
@ -197,11 +189,8 @@ public class PlaylistDetailActivity extends AbsSlidingMusicPanelActivity impleme
recyclerViewDragDropManager = null; recyclerViewDragDropManager = null;
} }
if (recyclerView != null) { binding.recyclerView.setItemAnimator(null);
recyclerView.setItemAnimator(null); binding.recyclerView.setAdapter(null);
recyclerView.setAdapter(null);
recyclerView = null;
}
if (wrappedAdapter != null) { if (wrappedAdapter != null) {
WrapperAdapterUtils.releaseAll(wrappedAdapter); WrapperAdapterUtils.releaseAll(wrappedAdapter);

View file

@ -15,6 +15,7 @@ import androidx.recyclerview.widget.RecyclerView;
import com.dkanada.gramophone.R; import com.dkanada.gramophone.R;
import com.dkanada.gramophone.adapter.SearchAdapter; import com.dkanada.gramophone.adapter.SearchAdapter;
import com.dkanada.gramophone.databinding.ActivitySearchBinding;
import com.dkanada.gramophone.interfaces.MediaCallback; import com.dkanada.gramophone.interfaces.MediaCallback;
import com.dkanada.gramophone.model.Album; import com.dkanada.gramophone.model.Album;
import com.dkanada.gramophone.model.Artist; import com.dkanada.gramophone.model.Artist;
@ -33,21 +34,10 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import butterknife.BindView;
import butterknife.ButterKnife;
public class SearchActivity extends AbsMusicServiceActivity implements SearchView.OnQueryTextListener { public class SearchActivity extends AbsMusicServiceActivity implements SearchView.OnQueryTextListener {
public static final String QUERY = "query"; public static final String QUERY = "query";
@BindView(R.id.recycler_view) ActivitySearchBinding binding;
RecyclerView recyclerView;
@BindView(R.id.toolbar)
Toolbar toolbar;
@BindView(android.R.id.empty)
TextView empty;
SearchView searchView; SearchView searchView;
@ -59,26 +49,28 @@ public class SearchActivity extends AbsMusicServiceActivity implements SearchVie
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search);
setDrawUnderStatusbar();
ButterKnife.bind(this);
binding = ActivitySearchBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
setDrawUnderStatusbar();
setStatusbarColorAuto(); setStatusbarColorAuto();
setNavigationbarColorAuto(); setNavigationbarColorAuto();
setTaskDescriptionColorAuto(); setTaskDescriptionColorAuto();
recyclerView.setLayoutManager(new LinearLayoutManager(this)); binding.recyclerView.setLayoutManager(new LinearLayoutManager(this));
adapter = new SearchAdapter(this, Collections.emptyList()); adapter = new SearchAdapter(this, Collections.emptyList());
adapter.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver() { adapter.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver() {
@Override @Override
public void onChanged() { public void onChanged() {
super.onChanged(); super.onChanged();
empty.setVisibility(adapter.getItemCount() < 1 ? View.VISIBLE : View.GONE); binding.empty.setVisibility(adapter.getItemCount() < 1 ? View.VISIBLE : View.GONE);
} }
}); });
recyclerView.setAdapter(adapter); binding.recyclerView.setAdapter(adapter);
recyclerView.setOnTouchListener((v, event) -> { binding.recyclerView.setOnTouchListener((v, event) -> {
hideSoftKeyboard(); hideSoftKeyboard();
return false; return false;
}); });
@ -99,8 +91,8 @@ public class SearchActivity extends AbsMusicServiceActivity implements SearchVie
} }
private void setUpToolBar() { private void setUpToolBar() {
toolbar.setBackgroundColor(ThemeStore.primaryColor(this)); binding.toolbar.setBackgroundColor(ThemeStore.primaryColor(this));
setSupportActionBar(toolbar); setSupportActionBar(binding.toolbar);
// noinspection ConstantConditions // noinspection ConstantConditions
getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayHomeAsUpEnabled(true);
} }

View file

@ -26,8 +26,6 @@ import org.jellyfin.apiclient.model.logging.ILogger;
import org.jellyfin.apiclient.model.serialization.GsonJsonSerializer; import org.jellyfin.apiclient.model.serialization.GsonJsonSerializer;
import org.jellyfin.apiclient.model.serialization.IJsonSerializer; import org.jellyfin.apiclient.model.serialization.IJsonSerializer;
import butterknife.ButterKnife;
public class SplashActivity extends AbsBaseActivity { public class SplashActivity extends AbsBaseActivity {
public static final String TAG = SplashActivity.class.getSimpleName(); public static final String TAG = SplashActivity.class.getSimpleName();
@ -39,7 +37,6 @@ public class SplashActivity extends AbsBaseActivity {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash); setContentView(R.layout.activity_splash);
setDrawUnderStatusbar(); setDrawUnderStatusbar();
ButterKnife.bind(this);
setStatusbarColorAuto(); setStatusbarColorAuto();
setNavigationbarColorAuto(); setNavigationbarColorAuto();