Preserve player toolbar state through all activities. Disabled double

tap to favorite.
This commit is contained in:
Karim Abou Zeid 2017-09-11 13:50:48 +02:00
commit a7cc766f2e
No known key found for this signature in database
GPG key ID: 948B11DC67FD9BAF
4 changed files with 54 additions and 22 deletions

View file

@ -2,6 +2,7 @@ package com.kabouzeid.gramophone.ui.fragments.player;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.support.annotation.Nullable;
import android.support.v7.widget.Toolbar; import android.support.v7.widget.Toolbar;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.View; import android.view.View;
@ -25,12 +26,11 @@ public abstract class AbsPlayerFragment extends AbsMusicServiceFragment implemen
public static final String TAG = AbsPlayerFragment.class.getSimpleName(); public static final String TAG = AbsPlayerFragment.class.getSimpleName();
private Callbacks callbacks; private Callbacks callbacks;
private boolean isToolbarVisible; private static boolean isToolbarShown = true;
@Override @Override
public void onAttach(Context context) { public void onAttach(Context context) {
super.onAttach(context); super.onAttach(context);
isToolbarVisible = true;
try { try {
callbacks = (Callbacks) context; callbacks = (Callbacks) context;
} catch (ClassCastException e) { } catch (ClassCastException e) {
@ -91,14 +91,28 @@ public abstract class AbsPlayerFragment extends AbsMusicServiceFragment implemen
MusicUtil.toggleFavorite(getActivity(), song); MusicUtil.toggleFavorite(getActivity(), song);
} }
protected void toggleToolbar(final View toolbar) { protected boolean isToolbarShown() {
return isToolbarShown;
}
protected void setToolbarShown(boolean toolbarShown) {
isToolbarShown = toolbarShown;
}
protected void showToolbar(@Nullable final View toolbar) {
if (toolbar == null) return; if (toolbar == null) return;
isToolbarVisible = !isToolbarVisible; setToolbarShown(true);
if (isToolbarVisible) {
toolbar.setVisibility(View.VISIBLE); toolbar.setVisibility(View.VISIBLE);
toolbar.animate().alpha(1f).setDuration(PlayerAlbumCoverFragment.VISIBILITY_ANIM_DURATION); toolbar.animate().alpha(1f).setDuration(PlayerAlbumCoverFragment.VISIBILITY_ANIM_DURATION);
} else { }
protected void hideToolbar(@Nullable final View toolbar) {
if (toolbar == null) return;
setToolbarShown(false);
toolbar.animate().alpha(0f).setDuration(PlayerAlbumCoverFragment.VISIBILITY_ANIM_DURATION).withEndAction(new Runnable() { toolbar.animate().alpha(0f).setDuration(PlayerAlbumCoverFragment.VISIBILITY_ANIM_DURATION).withEndAction(new Runnable() {
@Override @Override
public void run() { public void run() {
@ -106,6 +120,21 @@ public abstract class AbsPlayerFragment extends AbsMusicServiceFragment implemen
} }
}); });
} }
protected void toggleToolbar(@Nullable final View toolbar) {
if (isToolbarShown()) {
hideToolbar(toolbar);
} else {
showToolbar(toolbar);
}
}
protected void checkToggleToolbar(@Nullable final View toolbar) {
if (toolbar != null && !isToolbarShown() && toolbar.getVisibility() != View.GONE) {
hideToolbar(toolbar);
} else if (toolbar != null && isToolbarShown() && toolbar.getVisibility() != View.VISIBLE) {
showToolbar(toolbar);
}
} }
protected String getUpNextAndQueueTime() { protected String getUpNextAndQueueTime() {

View file

@ -79,15 +79,6 @@ public class PlayerAlbumCoverFragment extends AbsMusicServiceFragment implements
} }
return super.onSingleTapConfirmed(e); return super.onSingleTapConfirmed(e);
} }
@Override
public boolean onDoubleTap(MotionEvent e) {
if (callbacks != null) {
callbacks.onFavoriteToggled();
return true;
}
return super.onDoubleTap(e);
}
}); });
@Override @Override

View file

@ -171,6 +171,12 @@ public class CardPlayerFragment extends AbsPlayerFragment implements PlayerAlbum
super.onPause(); super.onPause();
} }
@Override
public void onResume() {
super.onResume();
checkToggleToolbar(toolbarContainer);
}
@Override @Override
public void onServiceConnected() { public void onServiceConnected() {
updateQueue(); updateQueue();

View file

@ -166,6 +166,12 @@ public class FlatPlayerFragment extends AbsPlayerFragment implements PlayerAlbum
super.onPause(); super.onPause();
} }
@Override
public void onResume() {
super.onResume();
checkToggleToolbar(toolbarContainer);
}
@Override @Override
public void onServiceConnected() { public void onServiceConnected() {
updateQueue(); updateQueue();