Support preventsDisplaySleepDuringVideoPlayback (#2019)
* Add flag on iOS * Add flag in Android * Add documentation * Add changelog entry * Also set setKeepScreenOn * Fix prop not being set * add preventsDisplaySleepDuringVideoPlayback to exoplayer * Update android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java * Update android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java Co-authored-by: Jens Andersson <jens@fritan.com> Co-authored-by: Anton Tanderup <antontandrup@gmail.com> Co-authored-by: Jens Andersson <jens@fritan.com>
This commit is contained in:
		| @@ -136,6 +136,7 @@ class ReactExoplayerView extends FrameLayout implements | ||||
|     private Dynamic textTrackValue; | ||||
|     private ReadableArray textTracks; | ||||
|     private boolean disableFocus; | ||||
|     private boolean preventsDisplaySleepDuringVideoPlayback = true; | ||||
|     private float mProgressUpdateInterval = 250.0f; | ||||
|     private boolean playInBackground = false; | ||||
|     private Map<String, String> requestHeaders; | ||||
| @@ -564,7 +565,7 @@ class ReactExoplayerView extends FrameLayout implements | ||||
|             initializePlayer(); | ||||
|         } | ||||
|         if (!disableFocus) { | ||||
|             setKeepScreenOn(true); | ||||
|             setKeepScreenOn(preventsDisplaySleepDuringVideoPlayback); | ||||
|         } | ||||
|     } | ||||
|  | ||||
| @@ -586,7 +587,6 @@ class ReactExoplayerView extends FrameLayout implements | ||||
|         if (isFullscreen) { | ||||
|             setFullscreen(false); | ||||
|         } | ||||
|         setKeepScreenOn(false); | ||||
|         audioManager.abandonAudioFocus(this); | ||||
|     } | ||||
|  | ||||
| @@ -670,11 +670,15 @@ class ReactExoplayerView extends FrameLayout implements | ||||
|                 text += "idle"; | ||||
|                 eventEmitter.idle(); | ||||
|                 clearProgressMessageHandler(); | ||||
|                 if (!playWhenReady) { | ||||
|                     setKeepScreenOn(false); | ||||
|                 } | ||||
|                 break; | ||||
|             case Player.STATE_BUFFERING: | ||||
|                 text += "buffering"; | ||||
|                 onBuffering(true); | ||||
|                 clearProgressMessageHandler(); | ||||
|                 setKeepScreenOn(preventsDisplaySleepDuringVideoPlayback); | ||||
|                 break; | ||||
|             case Player.STATE_READY: | ||||
|                 text += "ready"; | ||||
| @@ -686,11 +690,13 @@ class ReactExoplayerView extends FrameLayout implements | ||||
|                 if (playerControlView != null) { | ||||
|                     playerControlView.show(); | ||||
|                 } | ||||
|                 setKeepScreenOn(preventsDisplaySleepDuringVideoPlayback); | ||||
|                 break; | ||||
|             case Player.STATE_ENDED: | ||||
|                 text += "ended"; | ||||
|                 eventEmitter.end(); | ||||
|                 onStopPlayback(); | ||||
|                 setKeepScreenOn(false); | ||||
|                 break; | ||||
|             default: | ||||
|                 text += "unknown"; | ||||
| @@ -1003,6 +1009,10 @@ class ReactExoplayerView extends FrameLayout implements | ||||
|         this.repeat = repeat; | ||||
|     } | ||||
|  | ||||
|     public void setPreventsDisplaySleepDuringVideoPlayback(boolean preventsDisplaySleepDuringVideoPlayback) { | ||||
|         this.preventsDisplaySleepDuringVideoPlayback = preventsDisplaySleepDuringVideoPlayback; | ||||
|     } | ||||
|  | ||||
|     public void setSelectedTrack(int trackType, String type, Dynamic value) { | ||||
|         if (player == null) return; | ||||
|         int rendererIndex = getTrackRendererIndex(trackType); | ||||
|   | ||||
| @@ -44,6 +44,7 @@ public class ReactExoplayerViewManager extends ViewGroupManager<ReactExoplayerVi | ||||
|     private static final String PROP_BUFFER_CONFIG_MAX_BUFFER_MS = "maxBufferMs"; | ||||
|     private static final String PROP_BUFFER_CONFIG_BUFFER_FOR_PLAYBACK_MS = "bufferForPlaybackMs"; | ||||
|     private static final String PROP_BUFFER_CONFIG_BUFFER_FOR_PLAYBACK_AFTER_REBUFFER_MS = "bufferForPlaybackAfterRebufferMs"; | ||||
|     private static final String PROP_PREVENTS_DISPLAY_SLEEP_DURING_VIDEO_PLAYBACK = "preventsDisplaySleepDuringVideoPlayback"; | ||||
|     private static final String PROP_PROGRESS_UPDATE_INTERVAL = "progressUpdateInterval"; | ||||
|     private static final String PROP_REPORT_BANDWIDTH = "reportBandwidth"; | ||||
|     private static final String PROP_SEEK = "seek"; | ||||
| @@ -150,6 +151,11 @@ public class ReactExoplayerViewManager extends ViewGroupManager<ReactExoplayerVi | ||||
|         videoView.setRepeatModifier(repeat); | ||||
|     } | ||||
|  | ||||
|     @ReactProp(name = PROP_PREVENTS_DISPLAY_SLEEP_DURING_VIDEO_PLAYBACK, defaultBoolean = false) | ||||
|     public void setPreventsDisplaySleepDuringVideoPlayback(final ReactExoplayerView videoView, final boolean preventsSleep) { | ||||
|         videoView.setPreventsDisplaySleepDuringVideoPlayback(preventsSleep); | ||||
|     } | ||||
|  | ||||
|     @ReactProp(name = PROP_SELECTED_VIDEO_TRACK) | ||||
|     public void setSelectedVideoTrack(final ReactExoplayerView videoView, | ||||
|                                      @Nullable ReadableMap selectedVideoTrack) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user