package com.atomjack.vcfp.fragments; import android.content.Context; import android.os.Bundle; import android.support.annotation.Nullable; import android.view.View; import android.widget.SeekBar; import com.atomjack.vcfp.model.PlexMedia; import com.atomjack.vcfp.services.SubscriptionService; import butterknife.ButterKnife; public class CastPlayerFragment extends PlayerFragment { private SubscriptionService subscriptionService; public CastPlayerFragment() { super(); } public interface CastPlayerFragmentListener { SubscriptionService getSubscriptionService(); } @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); ButterKnife.bind(this, view); } @Override public void onAttach(Context context) { super.onAttach(context); try { CastPlayerFragmentListener listener = (CastPlayerFragmentListener) getActivity(); subscriptionService = listener.getSubscriptionService(); } catch (ClassCastException e) { throw new ClassCastException(getActivity().toString() + " must implement OnHeadlineSelectedListener"); } } @Override public PlexMedia getNowPlayingMedia() { return nowPlayingMedia; } @Override protected void doRewind() { if(position > -1) { nowPlayingMedia.viewOffset = Integer.toString((position * 1000) - 15000); if (Integer.parseInt(nowPlayingMedia.viewOffset) < 0) { position = 0; nowPlayingMedia.viewOffset = "0"; } subscriptionService.seekTo(Integer.parseInt(nowPlayingMedia.viewOffset) / 1000); } } @Override protected void doForward() { logger.d("Doing forward, position: %d", position); if(position > -1) { nowPlayingMedia.viewOffset = Integer.toString((position * 1000) + 30000); subscriptionService.seekTo(Integer.parseInt(nowPlayingMedia.viewOffset) / 1000); } } @Override protected void doPlay() { subscriptionService.play(); } @Override protected void doPause() { subscriptionService.pause(); } @Override protected void doStop() { try { subscriptionService.stop(); } catch (Exception ex) { ex.printStackTrace(); } } @Override protected void doNext() { subscriptionService.next(); } @Override protected void doPrevious() { subscriptionService.previous(); } @Override public void onStopTrackingTouch(SeekBar seekBar) { logger.d("stopped changing progress: %d", seekBar.getProgress()); try { nowPlayingMedia.viewOffset = Integer.toString(seekBar.getProgress() * 1000); subscriptionService.seekTo(Integer.parseInt(nowPlayingMedia.viewOffset) / 1000); } catch (Exception ex) { ex.printStackTrace(); } isSeeking = false; } }