use view binding for AbsSlidingMusicPanelActivity
This commit is contained in:
parent
0f14bf037f
commit
3cf4b90779
1 changed files with 23 additions and 37 deletions
|
|
@ -17,6 +17,7 @@ import android.view.animation.PathInterpolator;
|
||||||
|
|
||||||
import com.dkanada.gramophone.App;
|
import com.dkanada.gramophone.App;
|
||||||
import com.dkanada.gramophone.R;
|
import com.dkanada.gramophone.R;
|
||||||
|
import com.dkanada.gramophone.databinding.SlidingMusicPanelLayoutBinding;
|
||||||
import com.dkanada.gramophone.helper.MusicPlayerRemote;
|
import com.dkanada.gramophone.helper.MusicPlayerRemote;
|
||||||
import com.dkanada.gramophone.ui.activities.SplashActivity;
|
import com.dkanada.gramophone.ui.activities.SplashActivity;
|
||||||
import com.dkanada.gramophone.ui.fragments.player.AbsPlayerFragment;
|
import com.dkanada.gramophone.ui.fragments.player.AbsPlayerFragment;
|
||||||
|
|
@ -28,13 +29,8 @@ import com.dkanada.gramophone.util.PreferenceUtil;
|
||||||
import com.dkanada.gramophone.util.ViewUtil;
|
import com.dkanada.gramophone.util.ViewUtil;
|
||||||
import com.sothree.slidinguppanel.SlidingUpPanelLayout;
|
import com.sothree.slidinguppanel.SlidingUpPanelLayout;
|
||||||
|
|
||||||
import butterknife.BindView;
|
|
||||||
import butterknife.ButterKnife;
|
|
||||||
|
|
||||||
public abstract class AbsSlidingMusicPanelActivity extends AbsMusicServiceActivity implements SlidingUpPanelLayout.PanelSlideListener, CardPlayerFragment.Callbacks {
|
public abstract class AbsSlidingMusicPanelActivity extends AbsMusicServiceActivity implements SlidingUpPanelLayout.PanelSlideListener, CardPlayerFragment.Callbacks {
|
||||||
|
private SlidingMusicPanelLayoutBinding binding;
|
||||||
@BindView(R.id.sliding_layout)
|
|
||||||
SlidingUpPanelLayout slidingUpPanelLayout;
|
|
||||||
|
|
||||||
private int navigationbarColor;
|
private int navigationbarColor;
|
||||||
private int taskColor;
|
private int taskColor;
|
||||||
|
|
@ -50,8 +46,9 @@ public abstract class AbsSlidingMusicPanelActivity extends AbsMusicServiceActivi
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
|
||||||
setContentView(createContentView());
|
setContentView(createContentView());
|
||||||
ButterKnife.bind(this);
|
binding = SlidingMusicPanelLayoutBinding.bind(findViewById(R.id.sliding_layout));
|
||||||
|
|
||||||
// TODO use a fragment for the splash activity
|
// TODO use a fragment for the splash activity
|
||||||
if (App.getApiClient() == null) {
|
if (App.getApiClient() == null) {
|
||||||
|
|
@ -85,18 +82,18 @@ public abstract class AbsSlidingMusicPanelActivity extends AbsMusicServiceActivi
|
||||||
// noinspection ConstantConditions
|
// noinspection ConstantConditions
|
||||||
miniPlayerFragment.getView().setOnClickListener(v -> expandPanel());
|
miniPlayerFragment.getView().setOnClickListener(v -> expandPanel());
|
||||||
|
|
||||||
slidingUpPanelLayout.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
|
binding.slidingLayout.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onGlobalLayout() {
|
public void onGlobalLayout() {
|
||||||
slidingUpPanelLayout.getViewTreeObserver().removeOnGlobalLayoutListener(this);
|
binding.slidingLayout.getViewTreeObserver().removeOnGlobalLayoutListener(this);
|
||||||
|
|
||||||
switch (getPanelState()) {
|
switch (getPanelState()) {
|
||||||
case EXPANDED:
|
case EXPANDED:
|
||||||
onPanelSlide(slidingUpPanelLayout, 1);
|
onPanelSlide(binding.slidingLayout, 1);
|
||||||
onPanelExpanded(slidingUpPanelLayout);
|
onPanelExpanded(binding.slidingLayout);
|
||||||
break;
|
break;
|
||||||
case COLLAPSED:
|
case COLLAPSED:
|
||||||
onPanelCollapsed(slidingUpPanelLayout);
|
onPanelCollapsed(binding.slidingLayout);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
playerFragment.onHide();
|
playerFragment.onHide();
|
||||||
|
|
@ -105,7 +102,7 @@ public abstract class AbsSlidingMusicPanelActivity extends AbsMusicServiceActivi
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
slidingUpPanelLayout.addPanelSlideListener(this);
|
binding.slidingLayout.addPanelSlideListener(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -117,7 +114,7 @@ public abstract class AbsSlidingMusicPanelActivity extends AbsMusicServiceActivi
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setAntiDragView(View antiDragView) {
|
public void setAntiDragView(View antiDragView) {
|
||||||
slidingUpPanelLayout.setAntiDragView(antiDragView);
|
binding.slidingLayout.setAntiDragView(antiDragView);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected abstract View createContentView();
|
protected abstract View createContentView();
|
||||||
|
|
@ -126,10 +123,10 @@ public abstract class AbsSlidingMusicPanelActivity extends AbsMusicServiceActivi
|
||||||
public void onServiceConnected() {
|
public void onServiceConnected() {
|
||||||
super.onServiceConnected();
|
super.onServiceConnected();
|
||||||
if (!MusicPlayerRemote.getPlayingQueue().isEmpty()) {
|
if (!MusicPlayerRemote.getPlayingQueue().isEmpty()) {
|
||||||
slidingUpPanelLayout.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
|
binding.slidingLayout.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onGlobalLayout() {
|
public void onGlobalLayout() {
|
||||||
slidingUpPanelLayout.getViewTreeObserver().removeOnGlobalLayoutListener(this);
|
binding.slidingLayout.getViewTreeObserver().removeOnGlobalLayoutListener(this);
|
||||||
hideBottomBar(false);
|
hideBottomBar(false);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
@ -159,7 +156,8 @@ public abstract class AbsSlidingMusicPanelActivity extends AbsMusicServiceActivi
|
||||||
onPanelExpanded(panel);
|
onPanelExpanded(panel);
|
||||||
break;
|
break;
|
||||||
case ANCHORED:
|
case ANCHORED:
|
||||||
collapsePanel(); // this fixes a bug where the panel would get stuck for some reason
|
// this fixes a bug where the panel would get stuck for some reason
|
||||||
|
collapsePanel();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -197,23 +195,23 @@ public abstract class AbsSlidingMusicPanelActivity extends AbsMusicServiceActivi
|
||||||
|
|
||||||
|
|
||||||
public SlidingUpPanelLayout.PanelState getPanelState() {
|
public SlidingUpPanelLayout.PanelState getPanelState() {
|
||||||
return slidingUpPanelLayout == null ? null : slidingUpPanelLayout.getPanelState();
|
return binding.slidingLayout.getPanelState();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void collapsePanel() {
|
public void collapsePanel() {
|
||||||
slidingUpPanelLayout.setPanelState(SlidingUpPanelLayout.PanelState.COLLAPSED);
|
binding.slidingLayout.setPanelState(SlidingUpPanelLayout.PanelState.COLLAPSED);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void expandPanel() {
|
public void expandPanel() {
|
||||||
slidingUpPanelLayout.setPanelState(SlidingUpPanelLayout.PanelState.EXPANDED);
|
binding.slidingLayout.setPanelState(SlidingUpPanelLayout.PanelState.EXPANDED);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void hideBottomBar(final boolean hide) {
|
public void hideBottomBar(final boolean hide) {
|
||||||
if (hide) {
|
if (hide) {
|
||||||
slidingUpPanelLayout.setPanelHeight(0);
|
binding.slidingLayout.setPanelHeight(0);
|
||||||
collapsePanel();
|
collapsePanel();
|
||||||
} else {
|
} else {
|
||||||
slidingUpPanelLayout.setPanelHeight(getResources().getDimensionPixelSize(R.dimen.mini_player_height));
|
binding.slidingLayout.setPanelHeight(getResources().getDimensionPixelSize(R.dimen.mini_player_height));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -227,12 +225,11 @@ public abstract class AbsSlidingMusicPanelActivity extends AbsMusicServiceActivi
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onBackPressed() {
|
public void onBackPressed() {
|
||||||
if (!handleBackPress())
|
if (!handleBackPress()) super.onBackPressed();
|
||||||
super.onBackPressed();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean handleBackPress() {
|
public boolean handleBackPress() {
|
||||||
if (slidingUpPanelLayout.getPanelHeight() != 0 && playerFragment.onBackPressed())
|
if (binding.slidingLayout.getPanelHeight() != 0 && playerFragment.onBackPressed())
|
||||||
return true;
|
return true;
|
||||||
if (getPanelState() == SlidingUpPanelLayout.PanelState.EXPANDED) {
|
if (getPanelState() == SlidingUpPanelLayout.PanelState.EXPANDED) {
|
||||||
collapsePanel();
|
collapsePanel();
|
||||||
|
|
@ -274,6 +271,7 @@ public abstract class AbsSlidingMusicPanelActivity extends AbsMusicServiceActivi
|
||||||
navigationBarColorAnimator = ValueAnimator
|
navigationBarColorAnimator = ValueAnimator
|
||||||
.ofArgb(getWindow().getNavigationBarColor(), color)
|
.ofArgb(getWindow().getNavigationBarColor(), color)
|
||||||
.setDuration(ViewUtil.PHONOGRAPH_ANIM_TIME);
|
.setDuration(ViewUtil.PHONOGRAPH_ANIM_TIME);
|
||||||
|
|
||||||
navigationBarColorAnimator.setInterpolator(new PathInterpolator(0.4f, 0f, 1f, 1f));
|
navigationBarColorAnimator.setInterpolator(new PathInterpolator(0.4f, 0f, 1f, 1f));
|
||||||
navigationBarColorAnimator.addUpdateListener(animation -> AbsSlidingMusicPanelActivity.super.setNavigationbarColor((Integer) animation.getAnimatedValue()));
|
navigationBarColorAnimator.addUpdateListener(animation -> AbsSlidingMusicPanelActivity.super.setNavigationbarColor((Integer) animation.getAnimatedValue()));
|
||||||
navigationBarColorAnimator.start();
|
navigationBarColorAnimator.start();
|
||||||
|
|
@ -298,16 +296,4 @@ public abstract class AbsSlidingMusicPanelActivity extends AbsMusicServiceActivi
|
||||||
protected View getSnackBarContainer() {
|
protected View getSnackBarContainer() {
|
||||||
return findViewById(R.id.content_container);
|
return findViewById(R.id.content_container);
|
||||||
}
|
}
|
||||||
|
|
||||||
public SlidingUpPanelLayout getSlidingUpPanelLayout() {
|
|
||||||
return slidingUpPanelLayout;
|
|
||||||
}
|
|
||||||
|
|
||||||
public MiniPlayerFragment getMiniPlayerFragment() {
|
|
||||||
return miniPlayerFragment;
|
|
||||||
}
|
|
||||||
|
|
||||||
public AbsPlayerFragment getPlayerFragment() {
|
|
||||||
return playerFragment;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue