From af4987b679486e992005c5bf9fc8a19909cfbeea Mon Sep 17 00:00:00 2001 From: Karim Abou Zeid Date: Thu, 24 Dec 2015 22:54:27 +0100 Subject: [PATCH] Clean ups --- .../ui/activities/MainActivity.java | 5 +- .../base/AbsSlidingMusicPanelActivity.java | 79 +++++++++---------- .../ui/fragments/player/PlayerFragment.java | 2 +- 3 files changed, 43 insertions(+), 43 deletions(-) diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/MainActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/MainActivity.java index 0bf6a00f..62e7c94a 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/MainActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/MainActivity.java @@ -62,6 +62,7 @@ import com.kabouzeid.gramophone.util.Util; import com.kabouzeid.gramophone.util.ViewUtil; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; +import com.sothree.slidinguppanel.SlidingUpPanelLayout; import java.io.File; import java.util.ArrayList; @@ -260,8 +261,8 @@ public class MainActivity extends AbsSlidingMusicPanelActivity @Override public void onClick(View v) { drawerLayout.closeDrawers(); - if (isPanelCollapsed()) { - toggleSlidingPanel(); + if (getPanelState() == SlidingUpPanelLayout.PanelState.COLLAPSED) { + expandPanel(); } } }); diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/base/AbsSlidingMusicPanelActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/base/AbsSlidingMusicPanelActivity.java index 32d01d53..24e44fb5 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/base/AbsSlidingMusicPanelActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/base/AbsSlidingMusicPanelActivity.java @@ -9,6 +9,7 @@ import android.support.annotation.FloatRange; import android.support.annotation.LayoutRes; import android.view.View; import android.view.ViewGroup; +import android.view.ViewTreeObserver; import com.kabouzeid.gramophone.R; import com.kabouzeid.gramophone.helper.MusicPlayerRemote; @@ -47,29 +48,32 @@ public abstract class AbsSlidingMusicPanelActivity extends AbsMusicServiceActivi playerFragment = (AbsPlayerFragment) getSupportFragmentManager().findFragmentById(R.id.player_fragment); miniPlayerFragment = (MiniPlayerFragment) getSupportFragmentManager().findFragmentById(R.id.mini_player_fragment); - if (miniPlayerFragment.getView() != null) { - miniPlayerFragment.getView().setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - toggleSlidingPanel(); - } - }); - } - - slidingUpPanelLayout.setPanelSlideListener(this); - playerFragment.onHide(); - - slidingUpPanelLayout.post(new Runnable() { + //noinspection ConstantConditions + miniPlayerFragment.getView().setOnClickListener(new View.OnClickListener() { @Override - public void run() { - if (!isPanelCollapsed()) { + public void onClick(View v) { + expandPanel(); + } + }); + + slidingUpPanelLayout.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { + @Override + public void onGlobalLayout() { + slidingUpPanelLayout.getViewTreeObserver().removeOnGlobalLayoutListener(this); + + if (getPanelState() == SlidingUpPanelLayout.PanelState.EXPANDED) { onPanelSlide(slidingUpPanelLayout, 1); onPanelExpanded(slidingUpPanelLayout); - } else if (isPanelCollapsed()) { + } else if (getPanelState() == SlidingUpPanelLayout.PanelState.COLLAPSED) { onPanelCollapsed(slidingUpPanelLayout); } } }); + slidingUpPanelLayout.setPanelSlideListener(this); + + hideBottomBar(MusicPlayerRemote.getPlayingQueue().isEmpty()); + + playerFragment.onHide(); } public void setAntiDragView(View antiDragView) { @@ -136,30 +140,25 @@ public abstract class AbsSlidingMusicPanelActivity extends AbsMusicServiceActivi miniPlayerFragment.getView().setVisibility(alpha == 0 ? View.GONE : View.VISIBLE); } - public void toggleSlidingPanel() { - if (isPanelCollapsed()) { - slidingUpPanelLayout.setPanelState(SlidingUpPanelLayout.PanelState.EXPANDED); - } else { - slidingUpPanelLayout.setPanelState(SlidingUpPanelLayout.PanelState.COLLAPSED); - } + + public SlidingUpPanelLayout.PanelState getPanelState() { + return slidingUpPanelLayout == null ? null : slidingUpPanelLayout.getPanelState(); } - public boolean isPanelCollapsed() { - return slidingUpPanelLayout == null || slidingUpPanelLayout.getPanelState() == SlidingUpPanelLayout.PanelState.COLLAPSED; + public void collapsePanel() { + slidingUpPanelLayout.setPanelState(SlidingUpPanelLayout.PanelState.COLLAPSED); + } + + public void expandPanel() { + slidingUpPanelLayout.setPanelState(SlidingUpPanelLayout.PanelState.EXPANDED); } public void hideBottomBar(final boolean hide) { - slidingUpPanelLayout.post(new Runnable() { - @Override - public void run() { - if (hide) { - slidingUpPanelLayout.setPanelHeight(0); - slidingUpPanelLayout.setPanelState(SlidingUpPanelLayout.PanelState.COLLAPSED); - } else { - slidingUpPanelLayout.setPanelHeight(getResources().getDimensionPixelSize(R.dimen.mini_player_height)); - } - } - }); + if (hide) { + slidingUpPanelLayout.setPanelState(SlidingUpPanelLayout.PanelState.HIDDEN); + } else if (getPanelState() == SlidingUpPanelLayout.PanelState.HIDDEN) { + collapsePanel(); + } } protected View wrapSlidingMusicPanel(@LayoutRes int resId) { @@ -173,8 +172,8 @@ public abstract class AbsSlidingMusicPanelActivity extends AbsMusicServiceActivi @Override public void onBackPressed() { if (playerFragment.onBackPressed()) return; - if (!isPanelCollapsed()) { - slidingUpPanelLayout.setPanelState(SlidingUpPanelLayout.PanelState.COLLAPSED); + if (getPanelState() == SlidingUpPanelLayout.PanelState.EXPANDED) { + collapsePanel(); return; } super.onBackPressed(); @@ -183,7 +182,7 @@ public abstract class AbsSlidingMusicPanelActivity extends AbsMusicServiceActivi @Override protected void setNavigationBarColor(@ColorInt int color) { this.navigationBarColor = color; - if (isPanelCollapsed()) { + if (getPanelState() == SlidingUpPanelLayout.PanelState.COLLAPSED) { super.setNavigationBarColor(color); } } @@ -191,14 +190,14 @@ public abstract class AbsSlidingMusicPanelActivity extends AbsMusicServiceActivi @Override protected void notifyTaskColorChange(@ColorInt int color) { this.taskColor = color; - if (isPanelCollapsed()) { + if (getPanelState() == null || getPanelState() == SlidingUpPanelLayout.PanelState.COLLAPSED) { super.notifyTaskColorChange(color); } } @Override public void onPaletteColorChanged() { - if (!isPanelCollapsed()) { + if (getPanelState() == SlidingUpPanelLayout.PanelState.COLLAPSED) { int playerFragmentColor = playerFragment.getPaletteColor(); super.notifyTaskColorChange(playerFragmentColor); if (shouldColorNavigationBar()) { diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/player/PlayerFragment.java b/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/player/PlayerFragment.java index 22fa7570..632c26b8 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/player/PlayerFragment.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/player/PlayerFragment.java @@ -246,7 +246,7 @@ public class PlayerFragment extends AbsPlayerFragment implements PlayerAlbumCove @Override public boolean onBackPressed() { - if (slidingUpPanelLayout.getPanelState() != SlidingUpPanelLayout.PanelState.COLLAPSED) { + if (slidingUpPanelLayout.getPanelState() == SlidingUpPanelLayout.PanelState.EXPANDED) { slidingUpPanelLayout.setPanelState(SlidingUpPanelLayout.PanelState.COLLAPSED); return true; }