From 9035e7dfc94f6bcc8ec8e89a08367d87552148b7 Mon Sep 17 00:00:00 2001 From: Gabriel Rivero Date: Tue, 3 May 2022 16:43:53 -0400 Subject: [PATCH] VEX-6625: Handle state to keep playing after gaining connection (#28) This PR handles autoplay after disconnection Jira: VEX-6625 There was an error in react-native-video not being properly handled, in addition, the state of the player when reconnecting using a free user was not the expected one, requesting the player to keep playing when ready, made the behavior consistent in all scenarios Velocity PR: crunchyroll/velocity#2430 Reviews Major reviewer (domain expert): @jctorresM Minor reviewer: @jacob-livingston --- .../java/com/brentvatne/exoplayer/ReactExoplayerView.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java b/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java index 7d7a7c0e..fcddb28c 100644 --- a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java +++ b/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java @@ -817,7 +817,6 @@ class ReactExoplayerView extends FrameLayout implements case Player.STATE_IDLE: case Player.STATE_ENDED: initializePlayer(); - break; case Player.STATE_BUFFERING: case Player.STATE_READY: if (!player.getPlayWhenReady()) { @@ -827,7 +826,6 @@ class ReactExoplayerView extends FrameLayout implements default: break; } - } else { initializePlayer(); } @@ -1314,6 +1312,12 @@ class ReactExoplayerView extends FrameLayout implements setPlayWhenReady(true); return; } + } else if (cause instanceof HttpDataSource.HttpDataSourceException) { + // this exception happens when connectivity is lost + updateResumePosition(); + initializePlayer(); + setPlayWhenReady(true); + return; } else { errorCode = "2021"; errorString = getResources().getString(R.string.unrecognized_media_format);