@Override public void onPrepared(PlayerState playerState) { loadTimeout.cancel(); } });
@Override public void onPrepared(PlayerState playerState) { loadTimeout.cancel(); mediaPlayer.setOnSeekCompleteListener(seekToResettingSeekListener); } });
public void start(Timeout timeout, NoPlayer.LoadTimeoutCallback loadTimeoutCallback) { cancel(); this.loadTimeoutCallback = loadTimeoutCallback; startTime = clock.getCurrentTime(); endTime = startTime + timeout.inMillis(); handler.post(loadTimeoutCheck); }
@Override public void run() { if (clock.getCurrentTime() >= endTime) { loadTimeoutCallback.onLoadTimeout(); cancel(); } else { handler.postDelayed(this, DELAY_MILLIS); } } };
private void reset() { listenersHolder.resetState(); loadTimeout.cancel(); heart.stopBeatingHeart(); exoPlayer.release(); destroySurfaceByHidingVideoContainer(); }
@Test public void givenInitialised_whenCallingOnError_thenCancelsTimeout() { player.initialise(); ArgumentCaptor<NoPlayer.ErrorListener> errorListenerCaptor = ArgumentCaptor.forClass(NoPlayer.ErrorListener.class); verify(listenersHolder).addErrorListener(errorListenerCaptor.capture()); NoPlayer.ErrorListener errorListener = errorListenerCaptor.getValue(); errorListener.onError(mock(NoPlayer.PlayerError.class)); verify(loadTimeout).cancel(); }
@Test public void givenInitialised_whenCallingOnPrepared_thenCancelsTimeout() { player.initialise(); ArgumentCaptor<NoPlayer.PreparedListener> preparedListenerCaptor = ArgumentCaptor.forClass(NoPlayer.PreparedListener.class); verify(listenersHolder).addPreparedListener(preparedListenerCaptor.capture()); NoPlayer.PreparedListener preparedListener = preparedListenerCaptor.getValue(); preparedListener.onPrepared(player); verify(loadTimeout).cancel(); }
@Test public void givenPlayerIsInitialised_whenVideoIsPrepared_thenCancelsTimeout() { player.initialise(); ArgumentCaptor<NoPlayer.PreparedListener> argumentCaptor = ArgumentCaptor.forClass(NoPlayer.PreparedListener.class); verify(listenersHolder).addPreparedListener(argumentCaptor.capture()); NoPlayer.PreparedListener preparedListener = argumentCaptor.getValue(); preparedListener.onPrepared(player); verify(loadTimeout).cancel(); }
private void reset() { delayedActionExecutor.clearAllActions(); listenersHolder.resetState(); loadTimeout.cancel(); heart.stopBeatingHeart(); mediaPlayer.release(); destroySurfaceByHidingVideoContainer(); }
@Test public void givenPlayerHasNotPlayedVideo_whenLoadingVideo_thenPlayerResourcesAreNotReleased() { given(mediaPlayer.hasPlayedContent()).willReturn(false); player.loadVideo(URI, OPTIONS); verify(stateChangedListener, never()).onVideoStopped(); verify(loadTimeout, never()).cancel(); verify(heart, never()).stopBeatingHeart(); verify(mediaPlayer, never()).release(); }
@Test public void givenAttachedPlayerView_whenReleasing_thenPlayerResourcesAreReleased() { player.attach(playerView); player.release(); verify(listenersHolder).resetState(); verify(stateChangedListener).onVideoStopped(); verify(loadTimeout).cancel(); verify(heart).stopBeatingHeart(); verify(containerView).setVisibility(View.GONE); verify(exoPlayerFacade).release(); verify(listenersHolder).clear(); }
@Test public void whenStopping_thenPlayerResourcesAreReleased_andNotListeners() { player.stop(); verify(delayedActionExecutor).clearAllActions(); verify(listenersHolder).resetState(); verify(stateChangedListener).onVideoStopped(); verify(loadTimeout).cancel(); verify(heart).stopBeatingHeart(); verify(mediaPlayer).release(); verify(listenersHolder, never()).clear(); }
@Test public void givenAttachedPlayerView_whenStopping_thenPlayerResourcesAreReleased() { player.attach(playerView); player.stop(); verify(listenersHolder).resetState(); verify(stateChangedListener).onVideoStopped(); verify(loadTimeout).cancel(); verify(heart).stopBeatingHeart(); verify(containerView).setVisibility(View.GONE); verify(exoPlayerFacade).release(); }
@Test public void whenReleasing_thenPlayerResourcesAreReleased() { player.release(); verify(listenersHolder).resetState(); verify(stateChangedListener).onVideoStopped(); verify(loadTimeout).cancel(); verify(heart).stopBeatingHeart(); verify(exoPlayerFacade).release(); verify(listenersHolder).clear(); }
@Test public void givenPlayerHasNotPlayedVideo_whenLoadingVideoWithTimeout_thenPlayerResourcesAreNotReleased() { given(mediaPlayer.hasPlayedContent()).willReturn(false); player.loadVideoWithTimeout(URI, OPTIONS, ANY_TIMEOUT, ANY_LOAD_TIMEOUT_CALLBACK); verify(stateChangedListener, never()).onVideoStopped(); verify(loadTimeout, never()).cancel(); verify(heart, never()).stopBeatingHeart(); verify(mediaPlayer, never()).release(); }
@Test public void whenStopping_thenPlayerResourcesAreReleased() { player.stop(); verify(listenersHolder).resetState(); verify(stateChangedListener).onVideoStopped(); verify(loadTimeout).cancel(); verify(heart).stopBeatingHeart(); verify(exoPlayerFacade).release(); }
@Test public void givenPlayerHasNotPlayedVideo_whenLoadingVideoWithTimeout_thenPlayerResourcesAreNotReleased() { given(exoPlayerFacade.hasPlayedContent()).willReturn(false); player.attach(playerView); player.loadVideoWithTimeout(URI, OPTIONS, ANY_TIMEOUT, ANY_LOAD_TIMEOUT_CALLBACK); verify(stateChangedListener, never()).onVideoStopped(); verify(loadTimeout, never()).cancel(); verify(heart, never()).stopBeatingHeart(); verify(exoPlayerFacade, never()).release(); } }
@Test public void givenPlayerHasNotPlayedVideo_whenLoadingVideo_thenPlayerResourcesAreNotReleased() { given(exoPlayerFacade.hasPlayedContent()).willReturn(false); player.attach(playerView); player.loadVideo(URI, OPTIONS); verify(stateChangedListener, never()).onVideoStopped(); verify(loadTimeout, never()).cancel(); verify(heart, never()).stopBeatingHeart(); verify(exoPlayerFacade, never()).release(); }
@Test public void givenPlayerHasPlayedVideo_whenLoadingVideo_thenPlayerIsReleased_andNotListeners() { given(exoPlayerFacade.hasPlayedContent()).willReturn(true); player.attach(playerView); player.loadVideo(URI, OPTIONS); verify(stateChangedListener).onVideoStopped(); verify(loadTimeout).cancel(); verify(heart).stopBeatingHeart(); verify(exoPlayerFacade).release(); verify(listenersHolder, never()).clear(); }
@Test public void givenPlayerHasPlayedVideo_whenLoadingVideoWithTimeout_thenPlayerResourcesAreReleased_andNotListeners() { given(exoPlayerFacade.hasPlayedContent()).willReturn(true); player.attach(playerView); player.loadVideoWithTimeout(URI, OPTIONS, ANY_TIMEOUT, ANY_LOAD_TIMEOUT_CALLBACK); verify(stateChangedListener).onVideoStopped(); verify(loadTimeout).cancel(); verify(heart).stopBeatingHeart(); verify(exoPlayerFacade).release(); verify(listenersHolder, never()).clear(); }