* Fix/ensure view drop stop playback startup (#3875)
* fix: ensure player doesn't start when view is unmounted
* Patch commit to fix the error:
Implicit use of 'self' in closure; use 'self.' to make capture semantics explicit
---------
Co-authored-by: Olivier Bouillet <62574056+freeboub@users.noreply.github.com>
* fix(ios): fix playback status with lifecycle
* chore(ios): fix lint error
* fix(ios): check _playInBackground value within handleExternalPlaybackActiveChange
* perf: ensure we do not provide callback to native if no callback provided from app
* chore: rework bufferConfig to make it more generic and reduce ReactExoplayerView code size
* chore: improve issue template
* fix(android): avoid video view flickering at playback startup
* fix: invert aspect ratio evaluation to find video height / width
* perf: ensure we do not provide callback to native if no callback provided from app
* chore: rework bufferConfig to make it more generic and reduce ReactExoplayerView code size
* chore: improve issue template
* fix(android): avoid video view flickering at playback startup
* chore: fix tvOS supported platform
* chore: fix tvOS build
* chore: update project tvos configuration
* feat(ios): add `showNotificationControls` prop
* feat(android): add `showNotificationControls` prop
* add docs
* feat!: add `metadata` property to srouce
This is breaking change for iOS/tvOS as we are moving some properties, but I believe that this will more readable and more user friendly
* chore(ios): remove UI blocking function
* code review changes for android
* update example
* fix readme
* fix typos
* update docs
* fix typo
* chore: improve sample metadata notification
* update codegen types
* rename properties
* update tvOS example
* reset metadata on source change
* update docs
---------
Co-authored-by: Olivier Bouillet <freeboub@gmail.com>
* fix(ts): onPlaybackRateChangeData was not correctly typed
* fix: ensure tracks are well displayed in the sample
* fix(ios): text tracks selection by index. regression due to codegen rework
* chore: make selection by index testable (need a small manual patch)
* chore(ios): fix linter warning
* fix(ts): onPlaybackRateChangeData was not correctly typed
* fix: ensure tracks are well displayed in the sample
* fix(iOS): ensure orientation is correctly reported
* chore: fix build
* fix: ensure poster works as expected and add it to the sample
* chore: drop audioOnly property as not implemented on any platform
* fix(ios): do not save pause state before seeking
* fix(ts): onPlaybackRateChangeData was not correctly typed
* fix(ios): call PictureInPictureStatusChanged callback with native controls
We add RCTPlayerObserver as playerViewController delegate to be notified with PiP lifecycle
should partially fix#3602
* fix(ios): call onRestoreUserInterfaceForPictureInPictureStop callback with native controls
should partially fix#3602
* fix(ios): fix real time issue when doing fast zapping
* fix(ios): fix delay implementation (timing was not applied correctly)
* chore: fix random crash in sample
* chore: fix linter
* feat: implement opacity to control visibility of subtitles
implemented per discussion on https://github.com/react-native-video/react-native-video/issues/3579
updated docs and linked onTextTrackDataChanged to the subtitle style to clarify intent on how to control visibility.
* chore: update type so that we use a union of 0 1 vs any number
* chore: run ktlint to get rid of white spaces
* feat: add ability to have range of numbers for opacity; while, 0 will still not render the subtitles.
added util function for safeGetFloat
updated types
* feat: add ability to suppress subtitles with opacity 0
add data structure for subtitle styles for extensibility
* chore: run yarn check-ios
* chore: update documentation to clarify differences between android and ios
* Update android/src/main/java/com/brentvatne/exoplayer/ExoPlayerView.java
Co-authored-by: Olivier Bouillet <62574056+freeboub@users.noreply.github.com>
---------
Co-authored-by: Olivier Bouillet <62574056+freeboub@users.noreply.github.com>
* feat: implemented codegenConfig on package.json
* chore: moved directory location of Fabric component
* fix: typefix FabricExample
* chore: pod instaslled FabricExample iOS app
* feat: implemented codegen config on package.json
* feat: implemented codegen of specs/VideoNativeComponent
* chore: removed not using type Filter
* feat: removed unnecessary export on codegen tyepes
* Revert "feat: removed unnecessary export on codegen tyepes"
This reverts commit fc243b0ac5c565eda4886cd865c32ba4e812d7ff.
* refactor: fixed types on Video component and modified types with codegen types
* feat: modified codegenNativeComponent naming (RCTVideo)
* feat: pod installed example basic app
* feat: bump up react-native dev dependency version to 0.73.2 for supporting codegen array event params
* feat: support array param types on event callback function codegen types
* chore: pod installed ios basic example
* feat: modified source prop as optional type
* feat: add original src/VideoComponent.ts again
* Revert "feat: add original src/VideoComponent.ts again"
This reverts commit d63ac94e5330f7c7fb50374f65f8f3f4e0a225d7.
* feat: add original src/VideoComponent.ts again with original file name
* feat: git rm src/specs/VideoNativeComponent.ts
* feat: git mv VideoNativeComponent.ts
* feat: git mv src/specs/VideoNativeComponent.ts
* feat: git mv src/VideoNativeComponent.ts src/specs/VideoNativeComponent.ts
* feat: implemented array type handling on android JAVA
* feat: updated iOS requestHeaders parsing native
* feat: use safeGetArray on android, removed not using import too
* feat: temporary commit - reusing enum types for remaining docs types
* feat: implemented mixed type of SelectedTrack.value for JS layer