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.Intent;
import android.support.annotation.Nullable;
import android.support.v7.widget.Toolbar;
import android.view.MenuItem;
import android.view.View;
@ -25,12 +26,11 @@ public abstract class AbsPlayerFragment extends AbsMusicServiceFragment implemen
public static final String TAG = AbsPlayerFragment.class.getSimpleName();
private Callbacks callbacks;
private boolean isToolbarVisible;
private static boolean isToolbarShown = true;
@Override
public void onAttach(Context context) {
super.onAttach(context);
isToolbarVisible = true;
try {
callbacks = (Callbacks) context;
} catch (ClassCastException e) {
@ -91,20 +91,49 @@ public abstract class AbsPlayerFragment extends AbsMusicServiceFragment implemen
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;
isToolbarVisible = !isToolbarVisible;
if (isToolbarVisible) {
toolbar.setVisibility(View.VISIBLE);
toolbar.animate().alpha(1f).setDuration(PlayerAlbumCoverFragment.VISIBILITY_ANIM_DURATION);
setToolbarShown(true);
toolbar.setVisibility(View.VISIBLE);
toolbar.animate().alpha(1f).setDuration(PlayerAlbumCoverFragment.VISIBILITY_ANIM_DURATION);
}
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() {
@Override
public void run() {
toolbar.setVisibility(View.GONE);
}
});
}
protected void toggleToolbar(@Nullable final View toolbar) {
if (isToolbarShown()) {
hideToolbar(toolbar);
} else {
toolbar.animate().alpha(0f).setDuration(PlayerAlbumCoverFragment.VISIBILITY_ANIM_DURATION).withEndAction(new Runnable() {
@Override
public void run() {
toolbar.setVisibility(View.GONE);
}
});
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);
}
}

View file

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

View file

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

View file

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