package com.glasstunes.cards;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import com.glasstunes.GlassTunesApp;
import com.glasstunes.R;
import com.glasstunes.controller.MusicController;
import com.glasstunes.screenslide.BasicCardFragment;
import com.woodblockwithoutco.remotemetadataprovider.media.enums.PlayState;
import com.woodblockwithoutco.remotemetadataprovider.media.listeners.OnPlaybackStateChangeListener;
public class PausePlayCard extends BasicCardFragment implements
OnPlaybackStateChangeListener {
public static PausePlayCard newInstance() {
PausePlayCard frag = new PausePlayCard();
Bundle args = BasicCardFragment.generateArgs(
R.drawable.ic_musicplayer_play, R.string.av_play);
frag.setArguments(args);
return frag;
}
private boolean isPlaying = false;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public void onStart() {
super.onStart();
((GlassTunesApp) getActivity().getApplication())
.addOnPlaybackStateChangedListener(this);
}
@Override
public void onStop() {
super.onStop();
((GlassTunesApp) getActivity().getApplication())
.removeOnPlaybackStateChangedListener(this);
}
@Override
public void onSelect() {
super.onSelect();
if (isPlaying) {
MusicController.getInstance().pause(getActivity());
} else {
MusicController.getInstance().play(getActivity());
}
getActivity().setResult(Activity.RESULT_OK);
getActivity().finish();
}
@Override
public void onPlaybackStateChanged(PlayState playbackState) {
switch (playbackState) {
case BUFFERING:
isPlaying = true;
break;
case ERROR:
isPlaying = false;
break;
case FAST_FORWARDING:
break;
case PAUSED:
isPlaying = false;
break;
case PLAYING:
isPlaying = true;
break;
case REWINDING:
break;
case SKIPPING_BACKWARDS:
break;
case SKIPPING_FORWARDS:
break;
case STOPPED:
isPlaying = false;
break;
}
updateState(getView());
}
private void updateState(View view) {
setIconRes(isPlaying ? R.drawable.ic_musicplayer_pause
: R.drawable.ic_musicplayer_play);
setLabelRes(isPlaying ? R.string.av_pause : R.string.av_play);
}
}