react-native-video/ios/Video/Features
YangJH 69a7bc2d26
feat: implement enterPictureInPictureOnLeave prop for both platform (Android, iOS) (#3385)
* docs: enable Android PIP

* chore: change comments

* feat(android): implement Android PictureInPicture

* refactor: minor refactor code and apply lint

* fix: rewrite pip action intent code for Android14

* fix: remove redundant codes

* feat: add isInPictureInPicture flag for lifecycle handling

- activity provide helper method for same purpose, but this flag makes code simple

* feat: add pipFullscreenPlayerView for makes PIP include video only

* fix: add manifest value checker for prevent crash

* docs: add pictureInPicture prop's Android guide

* fix: sync controller visibility

* refactor: refining variable name

* fix: check multi window mode when host pause

- some OS version call onPause on multi-window mode

* fix: handling when onStop is called while in multi-window mode

* refactor:  enhance PIP util codes

* fix: fix FullscreenPlayerView constructor

* refactor: add enterPictureInPictureOnLeave prop and pip methods

- remove pictureInPicture boolean prop
- add enterPictureInPictureOnLeave boolean prop
- add enterPictureInPicture method
- add exitPictureInPicture method

* fix: fix lint error

* fix: prevent audio play in background without playInBackground prop

* fix: fix onDetachedFromWindow

* docs: update docs for pip

* fix(android): sync pip controller with external controller state

- for media session

* fix(ios): fix pip active fn variable reference

* refactor(ios): refactor code

* refactor(android): refactor codes

* fix(android): fix lint error

* refactor(android): refactor android pip logics

* fix(android): fix flickering issue when stop picture in picture

* fix(android): fix import

* fix(android): fix picture in picture with fullscreen mode

* fix(ios): fix syntax error

* fix(android): fix Fragment managed code

* refactor(android): remove redundant override lifecycle

* fix(js): add PIP type definition for codegen

* fix(android): fix syntax

* chore(android): fix lint error

* fix(ios): fix enter background handler

* refactor(ios): remove redundant code

* fix(ios): fix applicationDidEnterBackground for PIP

* fix(android): fix onPictureInPictureStatusChanged

* fix(ios): fix RCTPictureInPicture

* refactor(android): Ignore exception for some device ignore pip checker

- some device ignore PIP availability check, so we need to handle exception to prevent crash

* fix(android): add hideWithoutPlayer fn into Kotlin ver

* refactor(android): remove redundant code

* fix(android): fix pip ratio to be calculated with correct ratio value

* fix(android): fix crash issue when unmounting in PIP mode

* fix(android): fix lint error

* Update android/src/main/java/com/brentvatne/react/VideoManagerModule.kt

* fix(android): fix lint error

* fix(ios): fix lint error

* fix(ios): fix lint error

* feat(expo): add android picture in picture config within expo plugin

* fix: Replace Fragment with androidx.activity

- remove code that uses Fragment, which is a tricky implementation

* fix: fix lint error

* fix(android): disable auto enter when player released

* fix(android): fix event handler to check based on Activity it's bound to

---------

Co-authored-by: jonghun <jonghun@toss.im>
Co-authored-by: Olivier Bouillet <62574056+freeboub@users.noreply.github.com>
2025-01-04 12:37:33 +01:00
..
DRMManager.swift fix(tvos): typo (#4204) 2024-09-28 16:39:09 +02:00
DRMManager+AVContentKeySessionDelegate.swift feat(iOS): rewrite DRM Module (#4136) 2024-09-20 17:46:10 +02:00
DRMManager+OnGetLicense.swift feat(iOS): rewrite DRM Module (#4136) 2024-09-20 17:46:10 +02:00
DRMManager+Persitable.swift feat(iOS): rewrite DRM Module (#4136) 2024-09-20 17:46:10 +02:00
RCTIMAAdsManager.swift feat: implement enterPictureInPictureOnLeave prop for both platform (Android, iOS) (#3385) 2025-01-04 12:37:33 +01:00
RCTPictureInPicture.swift feat: implement enterPictureInPictureOnLeave prop for both platform (Android, iOS) (#3385) 2025-01-04 12:37:33 +01:00
RCTPlayerObserver.swift chore(ios): remove some warnings (#4159) 2024-09-13 10:49:43 +02:00
RCTPlayerOperations.swift fix(ios): disables subtitles for none and empty track types (#4319) 2024-12-04 15:35:51 +01:00
RCTVideoErrorHandling.swift feat(iOS): rewrite DRM Module (#4136) 2024-09-20 17:46:10 +02:00
RCTVideoSave.swift chore(ios): remove some warnings (#4159) 2024-09-13 10:49:43 +02:00
RCTVideoTVUtils.swift refactor(ios): remove type assertion within setupPipController (#3493) 2024-01-24 07:54:58 +01:00
RCTVideoUtils.swift fix(ios): Add safety checks and remove some of the ! in types declaration (#4182) 2024-09-22 18:41:25 +02:00
URLSession+data.swift feat!(ios): remove native dependency promises (#3631) 2024-04-04 13:23:44 +02:00