jitsi / jitsi-meet-flutter-sdk

Jitsi Meet plugin for Flutter
Apache License 2.0
31 stars 25 forks source link

"Open Shared Document" screen is frozen on Android physical device. #55

Open TreyThomas93 opened 4 weeks ago

TreyThomas93 commented 4 weeks ago

Hey everyone, I recently came across an issue when opening a shared document. When I open it in a meeting on Android emulator, everything works fine. But when I do the same on Android physical device (Galaxy S20), nothing works. As in I can't click the texfield or any surrounding buttons. The appbar back arrow works, but nothing else. I ran an adb logcat *:E to attempt to capture something and this is what I saw the moment I clicked the "Open Shared Document" button:

04-12 19:46:13.363  1107  1733 E EffectsConfig: Invalid <stream|device> type sec_voice_communication: <stream type="sec_voice_communication">
04-12 19:46:13.363  1107  1733 E EffectsConfig:     <apply effect="aec"/>
04-12 19:46:13.363  1107  1733 E EffectsConfig: </stream>
04-12 19:46:13.367   987  4786 E sm8250_platform: platform_check_backends_match: Invalid snd_device =
04-12 19:46:13.368   987  4786 E voice   : voice_is_in_call_rec_stream: input stream is NULL
04-12 19:46:13.368   987  4786 E voice   : voice_is_in_call_rec_stream: input stream is NULL
04-12 19:46:13.400   987  4786 E soundtrigger: audio_extn_sound_trigger_update_stream_status: invalid input device 0x0, for event 3
04-12 19:46:13.456 13625 13625 E ocessService0:1: Not starting debugger since process cannot load the jdwp agent.
04-12 19:46:14.858  1040  2180 E FRONT_AF_DEBUG: [cam_id_0][CMG_EFL] Front_UpdateAfStatus (line 304) : AF status 0x2 0x3
04-12 19:46:14.858  1040  2180 E FRONT_AF_DEBUG: [CMG_AF_NOTI]MovieCafPhaseFindGoal(). curr(215), Estgoal(222) OffsetGoal(222)
04-12 19:46:15.049  1040  2180 E FRONT_AF_DEBUG: [cam_id_0][CMG_EFL] Front_UpdateAfStatus (line 304) : AF status 0x3 0x2
04-12 19:46:15.049  1040  2180 E FRONT_AF_DEBUG: [FA_EXIF] : 4324       69208209654546510       4324    65267547095695438       4324    58230646908125262       5096    0       228     60679740339519566       215      59923276339609678       215     59360326386188366       215     61330651223162958       215     61049176246452302       1000    0
04-12 19:46:15.049  1040  2180 E FRONT_AF_DEBUG: [CMG_EFL] Front_LogPrintAfResult (line 404) : cur_position 222 , bv -25 , af_method 3 , roi_type 2, fd_cnt 1
04-12 19:46:15.049  1040  2180 E FRONT_AF_DEBUG: [cam_id_0][CMG_EFL] Front_UpdateExifInfo (line 3333) : cur_position 222, bv -25, af_method 3, fd_cnt 1
04-12 19:46:15.199  1040  2182 E FRONT_AF_DEBUG: [cam_id_0][CMG_EFL] Front_UpdateAfStatus (line 304) : AF status 0x2 0x3
04-12 19:46:15.200  1040  2182 E FRONT_AF_DEBUG: [CMG_AF_NOTI]MovieCafPhaseFindGoal(). curr(222), Estgoal(218) OffsetGoal(218)
04-12 19:46:15.400  1040  2181 E FRONT_AF_DEBUG: [cam_id_0][CMG_EFL] Front_UpdateAfStatus (line 304) : AF status 0x3 0x2
04-12 19:46:15.400  1040  2181 E FRONT_AF_DEBUG: [FA_EXIF] : 215        61049176246452302       1000    0       4311    227713264748856732      4311    408983149750519840      4311    62646341439848526       4318     70052625994743886       4318    69771245507313742       4318    67801062404259918       4318    70897085284614222       5096    0
04-12 19:46:15.400  1040  2181 E FRONT_AF_DEBUG: [CMG_EFL] Front_LogPrintAfResult (line 404) : cur_position 218 , bv -25 , af_method 3 , roi_type 0, fd_cnt 0
04-12 19:46:15.400  1040  2181 E FRONT_AF_DEBUG: [cam_id_0][CMG_EFL] Front_UpdateExifInfo (line 3333) : cur_position 218, bv -25, af_method 3, fd_cnt 0
04-12 19:46:16.592   987  1903 E soundtrigger: audio_extn_sound_trigger_update_stream_status: invalid input device 0x0, for event 2

I also saw this when running flutter run -v:

[ +110 ms] W/cr_media( 4545): BLUETOOTH_CONNECT permission is missing.
[   +3 ms] W/cr_media( 4545): registerBluetoothIntentsIfNeeded: Requires BLUETOOTH permission

Even though nothing in the app uses bluetooth. At least intentionally. So I went ahead and added bluetooth permissions and that didn't work. Also, other beta testers testing on physical Android devices are experiencing the same issue.

Not entirely sure how to fix this. Any help would be appreciated. Thanks.

[√] Flutter (Channel stable, 3.19.3, on Microsoft Windows [Version 10.0.22621.3447], locale en-US)
    • Flutter version 3.19.3 on channel stable at C:\dev\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision ba39319843 (5 weeks ago), 2024-03-07 15:22:21 -0600
    • Engine revision 2e4ba9c6fb
    • Dart version 3.3.1
    • DevTools version 2.31.1

[√] Windows Version (Installed version of Windows is version 10 or higher)

[√] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at C:\Users\TreyT\AppData\Local\Android\sdk
    • Platform android-34, build-tools 34.0.0
    • Java binary at: C:\Program Files\Android\Android Studio\jbr\bin\java
    • Java version OpenJDK Runtime Environment (build 17.0.7+0-b2043.56-10550314)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[√] Visual Studio - develop Windows apps (Visual Studio Community 2022 17.8.6)
    • Visual Studio at C:\Program Files\Microsoft Visual Studio\2022\Community
    • Visual Studio Community 2022 version 17.8.34525.116
    • Windows 10 SDK version 10.0.22621.0

[√] Android Studio (version 2023.1)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.7+0-b2043.56-10550314)
saghul commented 3 weeks ago

What Jitsi Meet SDK version are you using? Are you able to reproduce this with the Jitsi meet app?

TreyThomas93 commented 3 weeks ago

Using version 0.2.2 of this package: https://pub.dev/packages/jitsi_meet_flutter_sdk

And when I installed the Jitsi Meet app and started a meeting, the "Open Shared Document" button wasn't there.

saghul commented 3 weeks ago

You'd need to connect to your own server. meet.jit.si (the default server jitsi meet connects to) does not have Etherpad deployed.

TreyThomas93 commented 3 weeks ago

You'd need to connect to your own server. meet.jit.si (the default server jitsi meet connects to) does not have Etherpad deployed.

ah ok. My server requires a jwt. How can I pass that in the header?

saghul commented 3 weeks ago

You can use a full URL in the join room field.

TreyThomas93 commented 3 weeks ago

You can use a full URL in the join room field.

That doesn't let me add the token to the header?

saghul commented 3 weeks ago

You can add a token as a query parameter

TreyThomas93 commented 3 weeks ago

You can add a token as a query parameter

That doesnt make sense. My server is expecting it to be in the header?

TreyThomas93 commented 3 weeks ago

so when I run _flutter run -v_ and tap on the "Open Shared Document" button, I get the following:

[  +91 ms] D/JitsiMeetSDK(22827): ExternalAPI Sending event: CONFERENCE_BLURRED with data: {}
[  +85 ms] D/CompatibilityChangeReporter(22827): Compat change id reported: 183155436; UID 11112; state: ENABLED
[ +184 ms] D/CompatibilityChangeReporter(22827): Compat change id reported: 214741472; UID 11112; state: ENABLED
[  +11 ms] D/ConnectivityManager(22827): StackLog: [android.net.ConnectivityManager.sendRequestForNetwork(ConnectivityManager.java:4300)]
[android.net.ConnectivityManager.registerDefaultNetworkCallbackForUid(ConnectivityManager.java:4864)] [android.net.ConnectivityManager.registerDefaultNetworkCallback(ConnectivityManager.java:4831)]
[ZZ.e(chromium-TrichromeWebViewGoogle.aab-stable-556311633:38)] [ZZ.a(chromium-TrichromeWebViewGoogle.aab-stable-556311633:1)]
[org.chromium.android_webview.AwContentsLifecycleNotifier.onFirstWebViewCreated(chromium-TrichromeWebViewGoogle.aab-stable-556311633:24)] [J.N.MFiR_zHY(Native Method)]
[org.chromium.android_webview.AwContents.<init>(chromium-TrichromeWebViewGoogle.aab-stable-556311633:375)] [com.android.webview.chromium.k.run(chromium-TrichromeWebViewGoogle.aab-stable-556311633:111)]
[Xz0.b(chromium-TrichromeWebViewGoogle.aab-stable-556311633:20)] [Wz0.run(chromium-TrichromeWebViewGoogle.aab-stable-556311633:3)]
[org.chromium.base.task.PostTask.c(chromium-TrichromeWebViewGoogle.aab-stable-556311633:17)] [Xz0.a(chromium-TrichromeWebViewGoogle.aab-stable-556311633:29)]
[com.android.webview.chromium.WebViewChromiumFactoryProvider.a(chromium-TrichromeWebViewGoogle.aab-stable-556311633:3)]
[com.android.webview.chromium.WebViewChromium.init(chromium-TrichromeWebViewGoogle.aab-stable-556311633:327)] [android.webkit.WebView.<init>(WebView.java:448)] [android.webkit.WebView.<init>(WebView.java:368)]      
[android.webkit.WebView.<init>(WebView.java:350)] [android.webkit.WebView.<init>(WebView.java:337)] [android.webkit.WebView.<init>(WebView.java:327)]
[com.reactnativecommunity.webview.RNCWebView.<init>(RNCWebView.java:86)] [com.reactnativecommunity.webview.RNCWebViewManagerImpl.createRNCWebViewInstance(RNCWebViewManagerImpl.kt:62)]
[com.reactnativecommunity.webview.RNCWebViewManagerImpl.createViewInstance(RNCWebViewManagerImpl.kt:66)] [com.reactnativecommunity.webview.RNCWebViewManager.createViewInstance(RNCWebViewManager.java:50)]
[com.reactnativecommunity.webview.RNCWebViewManager.createViewInstance(RNCWebViewManager.java:35)] [com.facebook.react.uimanager.ViewManager.createViewInstance(ViewManager.java:183)]
[com.facebook.react.uimanager.ViewManager.createView(ViewManager.java:115)] [com.facebook.react.uimanager.NativeViewHierarchyManager.createView(NativeViewHierarchyManager.java:281)]
[com.facebook.react.uimanager.UIViewOperationQueue$CreateViewOperation.execute(UIViewOperationQueue.java:194)]
[com.facebook.react.uimanager.UIViewOperationQueue$DispatchUIFrameCallback.dispatchPendingNonBatchedOperations(UIViewOperationQueue.java:1110)]
[com.facebook.react.uimanager.UIViewOperationQueue$DispatchUIFrameCallback.doFrameGuarded(UIViewOperationQueue.java:1081)] [com.facebook.react.uimanager.GuardedFrameCallback.doFrame(GuardedFrameCallback.java:29)]   
[com.facebook.react.modules.core.ReactChoreographer$ReactChoreographerDispatcher.doFrame(ReactChoreographer.java:175)]
[com.facebook.react.modules.core.ChoreographerCompat$FrameCallback$1.doFrame(ChoreographerCompat.java:85)] [android.view.Choreographer$CallbackRecord.run(Choreographer.java:1299)]
[android.view.Choreographer$CallbackRecord.run(Choreographer.java:1309)] [android.view.Choreographer.doCallbacks(Choreographer.java:923)] [android.view.Choreographer.doFrame(Choreographer.java:847)]
[android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1283)]
[   +3 ms] D/ConnectivityManager(22827): StackLog: [android.net.ConnectivityManager.sendRequestForNetwork(ConnectivityManager.java:4300)]
[android.net.ConnectivityManager.sendRequestForNetwork(ConnectivityManager.java:4342)] [android.net.ConnectivityManager.registerNetworkCallback(ConnectivityManager.java:4724)]
[ZZ.e(chromium-TrichromeWebViewGoogle.aab-stable-556311633:111)] [ZZ.a(chromium-TrichromeWebViewGoogle.aab-stable-556311633:1)]
[org.chromium.android_webview.AwContentsLifecycleNotifier.onFirstWebViewCreated(chromium-TrichromeWebViewGoogle.aab-stable-556311633:24)] [J.N.MFiR_zHY(Native Method)]
[org.chromium.android_webview.AwContents.<init>(chromium-TrichromeWebViewGoogle.aab-stable-556311633:375)] [com.android.webview.chromium.k.run(chromium-TrichromeWebViewGoogle.aab-stable-556311633:111)]
[Xz0.b(chromium-TrichromeWebViewGoogle.aab-stable-556311633:20)] [Wz0.run(chromium-TrichromeWebViewGoogle.aab-stable-556311633:3)]
[org.chromium.base.task.PostTask.c(chromium-TrichromeWebViewGoogle.aab-stable-556311633:17)] [Xz0.a(chromium-TrichromeWebViewGoogle.aab-stable-556311633:29)]
[com.android.webview.chromium.WebViewChromiumFactoryProvider.a(chromium-TrichromeWebViewGoogle.aab-stable-556311633:3)]
[com.android.webview.chromium.WebViewChromium.init(chromium-TrichromeWebViewGoogle.aab-stable-556311633:327)] [android.webkit.WebView.<init>(WebView.java:448)] [android.webkit.WebView.<init>(WebView.java:368)]      
[android.webkit.WebView.<init>(WebView.java:350)] [android.webkit.WebView.<init>(WebView.java:337)] [android.webkit.WebView.<init>(WebView.java:327)]
[com.reactnativecommunity.webview.RNCWebView.<init>(RNCWebView.java:86)] [com.reactnativecommunity.webview.RNCWebViewManagerImpl.createRNCWebViewInstance(RNCWebViewManagerImpl.kt:62)]
[com.reactnativecommunity.webview.RNCWebViewManagerImpl.createViewInstance(RNCWebViewManagerImpl.kt:66)] [com.reactnativecommunity.webview.RNCWebViewManager.createViewInstance(RNCWebViewManager.java:50)]
[com.reactnativecommunity.webview.RNCWebViewManager.createViewInstance(RNCWebViewManager.java:35)] [com.facebook.react.uimanager.ViewManager.createViewInstance(ViewManager.java:183)]
[com.facebook.react.uimanager.ViewManager.createView(ViewManager.java:115)] [com.facebook.react.uimanager.NativeViewHierarchyManager.createView(NativeViewHierarchyManager.java:281)]
[com.facebook.react.uimanager.UIViewOperationQueue$CreateViewOperation.execute(UIViewOperationQueue.java:194)]
[com.facebook.react.uimanager.UIViewOperationQueue$DispatchUIFrameCallback.dispatchPendingNonBatchedOperations(UIViewOperationQueue.java:1110)]
[com.facebook.react.uimanager.UIViewOperationQueue$DispatchUIFrameCallback.doFrameGuarded(UIViewOperationQueue.java:1081)] [com.facebook.react.uimanager.GuardedFrameCallback.doFrame(GuardedFrameCallback.java:29)]   
[com.facebook.react.modules.core.ReactChoreographer$ReactChoreographerDispatcher.doFrame(ReactChoreographer.java:175)]
[com.facebook.react.modules.core.ChoreographerCompat$FrameCallback$1.doFrame(ChoreographerCompat.java:85)] [android.view.Choreographer$CallbackRecord.run(Choreographer.java:1299)]
[android.view.Choreographer$CallbackRecord.run(Choreographer.java:1309)] [android.view.Choreographer.doCallbacks(Choreographer.java:923)] [android.view.Choreographer.doFrame(Choreographer.java:847)]
[android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1283)]

It appears to be an issue with ReactNative web view. I noticed that it was a web view after I was able to navigate to Etherpad within the same screen on emulator. Could it just be an issue with RNCWebView on Android?

saghul commented 3 weeks ago

The out of the box Jitsi meet installation takes a token in the query string. Unless you've modified the setup, of course.

Yes it could be a problem with the WebView on Android. Testing with Jitsi meet removes one layer (flutter) so it might help.

TreyThomas93 commented 3 weeks ago

Ok so I was able to connect to a server that has etherpad enabled. And when I clicked the "Open shared document" button, the webview wont let me click on anything. So i believe its an issue with the underlying RNCWebView dependency.

saghul commented 3 weeks ago

Thanks for giving it a try! What version of Etherpad are you currently using?

TreyThomas93 commented 3 weeks ago

Currently using version 1.8.6 of Etherpad. Specifically the docker image etherpad/etherpad:1.8.6

saghul commented 3 weeks ago

I wonder if 1.9.6 would change things. That's the version our Docker setup currently points to.

TreyThomas93 commented 3 weeks ago

Do you suggest we upgrade too?

saghul commented 3 weeks ago

Yes. We haven't received any complaints from Docker users. Then again, neither have we about your version...

TreyThomas93 commented 3 weeks ago

ok we upgraded. but no change. something interesting though. I am using a mirroring software that mirrors my physical device to my pc, and i am able to click on the buttons and text field and display keyboard. So its something with the "tap" gesture detector.