Allow camera/mic in command UI webview

Stephen Paul Weber created

Change summary

src/main/java/eu/siacs/conversations/entities/Conversation.java | 9 +++
1 file changed, 9 insertions(+)

Detailed changes

src/main/java/eu/siacs/conversations/entities/Conversation.java 🔗

@@ -41,6 +41,7 @@ import android.widget.ListView;
 import android.widget.TextView;
 import android.widget.Toast;
 import android.widget.Spinner;
+import android.webkit.PermissionRequest;
 import android.webkit.JavascriptInterface;
 import android.webkit.WebMessage;
 import android.webkit.WebView;
@@ -2826,6 +2827,7 @@ public class Conversation extends AbstractEntity
                 public void bind(Item oob) {
                     setTextOrHide(binding.desc, Optional.fromNullable(oob.el.findChildContent("desc", "jabber:x:oob")));
                     binding.webview.getSettings().setJavaScriptEnabled(true);
+                    binding.webview.getSettings().setMediaPlaybackRequiresUserGesture(false);
                     binding.webview.getSettings().setUserAgentString("Mozilla/5.0 (Linux; Android 11) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Mobile Safari/537.36");
                     binding.webview.getSettings().setDatabaseEnabled(true);
                     binding.webview.getSettings().setDomStorageEnabled(true);
@@ -2835,6 +2837,13 @@ public class Conversation extends AbstractEntity
                             binding.progressbar.setVisibility(newProgress < 100 ? View.VISIBLE : View.GONE);
                             binding.progressbar.setProgress(newProgress);
                         }
+
+                        @Override
+                        public void onPermissionRequest(final PermissionRequest request) {
+                            getView().post(() -> {
+                                request.grant(request.getResources());
+                            });
+                        }
                     });
                     binding.webview.setWebViewClient(new WebViewClient() {
                         @Override