jwplayer / jwplayer-react-native

MIT License
32 stars 9 forks source link

[BUG] [Android] App crash when re-entering full screen from a player that was previously sent into PIP mode whilst full screen #90

Open jmurth1234 opened 1 month ago

jmurth1234 commented 1 month ago

Describe the bug If you try to re-enter full screen from a player that was previously sent into PIP mode whilst full screen, the app crashes

To Reproduce

Steps to reproduce the behavior:

  1. Enable PIP on the player here https://github.com/jwplayer/jwplayer-react-native/blob/master/Example/app/jsx/components/Player.js#L25
  2. Open app and go to player
  3. Fullscreen the player
  4. Enter PIP (either via going to the home screen or the PIP button)
  5. Re-enter the application
  6. Attempt to enter full screen again

Expected behavior The app does not crash

Screenshots / Visual evidence If applicable, add screenshots or recordings to help explain your problem. (Required if reproduction is not 100% reliable)

https://github.com/user-attachments/assets/a9ea4d3e-d350-431b-a38c-384d44938b61

Desktop (please complete the following information):

System: OS: macOS 15.1 CPU: (8) arm64 Apple M2 Memory: 217.17 MB / 16.00 GB Shell: 5.9 - /bin/zsh Binaries: Node: 22.4.0 - /opt/homebrew/bin/node Yarn: 1.22.22 - /opt/homebrew/bin/yarn npm: 10.8.1 - /opt/homebrew/bin/npm Watchman: Not Found Managers: CocoaPods: 1.15.2 - /opt/homebrew/bin/pod SDKs: iOS SDK: Platforms: DriverKit 24.1, iOS 18.1, macOS 15.1, tvOS 18.1, visionOS 2.1, watchOS 11.1 Android SDK: Not Found IDEs: Android Studio: 2024.1 AI-241.15989.150.2411.11948838 Xcode: 16.1/16B5014f - /usr/bin/xcodebuild Languages: Java: 17.0.12 - /opt/homebrew/opt/openjdk@17/bin/javac npmPackages: @react-native-community/cli: Not Found react: 18.1.0 => 18.1.0 react-native: 0.70.14 => 0.70.14 react-native-macos: Not Found npmGlobalPackages: react-native: Not Found (node:70011) [DEP0040] DeprecationWarning: The punycode module is deprecated. Please use a userland alternative instead. (Use node --trace-deprecation ... to show where the warning was created) Device(s) affected

Additional context

10-09 18:29:35.868 25176 25176 I ViewRootImpl@608bc9c[]: handleResized, msg = 4 frames=ClientWindowFrames{frame=[152,448][1787,1477] display=[-100000,-100000][100000,100000] parentFrame=[0,0][0,0]} forceNextWindowRelayout=false displayId=0 dragResizing=false compatScale=1.0 frameChanged=false attachedFrameChanged=false configChanged=false displayChanged=false compatScaleChanged=false
10-09 18:29:35.869 25713 25713 I chromium: [INFO:CONSOLE(10)] "[core trigger] fullscreen", source: https://intercept.jw/assets/jwplayer/jwplayer.js (10)
10-09 18:29:35.869 25713 25713 D AndroidRuntime: Shutting down VM
10-09 18:29:35.869 25713 25713 E AndroidRuntime: FATAL EXCEPTION: main
10-09 18:29:35.869 25713 25713 E AndroidRuntime: Process: com.rnjwplayer, PID: 25713
10-09 18:29:35.869 25713 25713 E AndroidRuntime: java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
10-09 18:29:35.869 25713 25713 E AndroidRuntime:    at android.view.ViewGroup.addViewInner(ViewGroup.java:5509)
10-09 18:29:35.869 25713 25713 E AndroidRuntime:    at android.view.ViewGroup.addView(ViewGroup.java:5328)
10-09 18:29:35.869 25713 25713 E AndroidRuntime:    at android.view.ViewGroup.addView(ViewGroup.java:5300)
10-09 18:29:35.869 25713 25713 E AndroidRuntime:    at com.jwplayer.rnjwplayer.RNJWPlayerView$fullscreenHandler$2.run(RNJWPlayerView.java:625)
10-09 18:29:35.869 25713 25713 E AndroidRuntime:    at android.os.Handler.handleCallback(Handler.java:958)
10-09 18:29:35.869 25713 25713 E AndroidRuntime:    at android.os.Handler.dispatchMessage(Handler.java:99)
10-09 18:29:35.869 25713 25713 E AndroidRuntime:    at android.os.Looper.loopOnce(Looper.java:230)
10-09 18:29:35.869 25713 25713 E AndroidRuntime:    at android.os.Looper.loop(Looper.java:319)
10-09 18:29:35.869 25713 25713 E AndroidRuntime:    at android.app.ActivityThread.main(ActivityThread.java:8919)
10-09 18:29:35.869 25713 25713 E AndroidRuntime:    at java.lang.reflect.Method.invoke(Native Method)
10-09 18:29:35.869 25713 25713 E AndroidRuntime:    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:578)
10-09 18:29:35.869 25713 25713 E AndroidRuntime:    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)
10-09 18:29:35.869 25713 25797 I ViewRootImpl@2c6c8d8[MainActivity]: mWNT: t=0xb4000070eda627d0 mBlastBufferQueue=0xb4000072cda58310 fn= 339 mRenderHdrSdrRatio=1.0 caller= android.view.ViewRootImpl$6.onFrameDraw:5635 android.view.ViewRootImpl$2.onFrameDraw:2146 android.view.ThreadedRenderer$1.onFrameDraw:792
10-09 18:29:35.880  1741  1768 V WindowManager: Relayout Window{179f7ae u0 com.rnjwplayer/com.rnjwplayer.MainActivity}: viewVisibility=0 req=1440x3200 ty=1 d0
10-09 18:29:35.880  1741  1768 D WindowManager: updateSystemBarAttributes: displayId=0, win=Window{179f7ae u0 com.rnjwplayer/com.rnjwplayer.MainActivity}, navColorWin=Window{179f7ae u0 com.rnjwplayer/com.rnjwplayer.MainActivity}, focusedCanBeNavColorWin=false, behavior=1, appearance=0, statusBarAppearanceRegions=[AppearanceRegion{ bounds=[0,0][1440,3200]}], requestedVisibilities=-9, from=com.android.server.wm.DisplayPolicy.finishPostLayoutPolicyLw:2320 com.android.server.wm.DisplayContent.applySurfaceChangesTransaction:6130 com.android.server.wm.RootWindowContainer.applySurfaceChangesTransaction:1180

JWP Ticketing To expedite resolution and maintain confidentiality, submit a JWP request in addition to this new Issue. A JWP request offers the following benefits:

ℹ️ While Issues are valuable for open-source collaboration, a JWP request ensures that you will receive clear timelines and efficient support.