Skip to content

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

@jmurth1234

Description

@jmurth1234

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)

Nova.Launcher.Screen.Recording.mp4

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

  • Device:
  • OS: Android
  • Version: Varying

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:

  • Associates the Issue with your company
  • Permits securely share sensitive information related to the bug, request, or question
  • Enhances JWP's ability to track progress and provide timely updates
  • Enables you to track and manage multiple issues through a single platform
ℹ️ While Issues are valuable for open-source collaboration, a JWP request ensures that you will receive clear timelines and efficient support.

Metadata

Metadata

Assignees

No one assigned

    Labels

    GroomedJWP team has reviewed the ticket and deemed it necessarybugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions