@@ -1,7 +1,6 @@
11package org.reflexfrp.reflexdom;
22
33import android.annotation.TargetApi;
4−import android.app.Activity;
54import android.net.Uri;
65import android.os.Build;
76import android.os.Handler;
@@ -25,8 +24,10 @@ import android.content.Intent;
2524
2625import java.nio.charset.StandardCharsets;
2726
27+import systems.obsidian.HaskellActivity;
28+
2829public class MainWidget {
29− private static Object startMainWidget(final Activity a, String url, long jsaddleCallbacks, final String initialJS) {
30+ private static Object startMainWidget(final HaskellActivity a, String url, long jsaddleCallbacks, final String initialJS) {
3031 CookieManager.setAcceptFileSchemeCookies(true); //TODO: Can we do this just for our own WebView?
3132
3233 // Remove title and notification bars
@@ -90,19 +91,18 @@ public class MainWidget {
9091 // Need to accept permissions to use the camera and audio
9192 @Override
9293 public void onPermissionRequest(final PermissionRequest request) {
93− a.runOnUiThread(new Runnable() {
94− @TargetApi(Build.VERSION_CODES.LOLLIPOP)
95− @Override
96− public void run() {
97− // Make sure the request is coming from the file system ...
98− if(request.getOrigin().toString().startsWith("file://")) {
99− request.grant(request.getResources());
100− }
101− else {
102− request.deny();
103− }
104− }
105− });
94+ if(request.getOrigin().toString().startsWith("file://")) {
95+ a.requestWebViewPermissions(request);
96+ }
97+ else {
98+ a.runOnUiThread(new Runnable() {
99+ @TargetApi(Build.VERSION_CODES.LOLLIPOP)
100+ @Override
101+ public void run() {
102+ request.deny();
103+ }
104+ });
105+ }
106106 }
107107
108108 @Override