From 33c8960a72cb247de5d4c000f451dd646fa8ea15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Fern=C3=A1ndez?= Date: Mon, 20 Jun 2022 12:04:11 +0200 Subject: [PATCH 1/2] feat: add onPause and onResume functions and use setCameraPause postMessage --- .../FullscreenActivity.java | 53 ++++++++++++++----- 1 file changed, 40 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/com/revieve/PluginWebViewJavaSample/FullscreenActivity.java b/app/src/main/java/com/revieve/PluginWebViewJavaSample/FullscreenActivity.java index 449d9fa..70a8e78 100644 --- a/app/src/main/java/com/revieve/PluginWebViewJavaSample/FullscreenActivity.java +++ b/app/src/main/java/com/revieve/PluginWebViewJavaSample/FullscreenActivity.java @@ -7,6 +7,7 @@ import androidx.appcompat.app.AppCompatActivity; import androidx.core.app.ActivityCompat; +import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.os.Handler; @@ -16,6 +17,7 @@ import android.webkit.ConsoleMessage; import android.webkit.PermissionRequest; import android.webkit.WebChromeClient; +import android.webkit.WebMessage; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; @@ -48,6 +50,20 @@ public class FullscreenActivity extends AppCompatActivity { private static final int UI_ANIMATION_DELAY = 300; private final Handler mHideHandler = new Handler(); private View mContentView; + private WebView myWebView; + // Load the revieve-web-plugin from Revieve's production CDN: + final String REVIEVE_CDN_DOMAIN = "https://d38knilzwtuys1.cloudfront.net"; + // Origin set to * + final String REVIEVE_ORIGIN = "*"; + // Select which Revieve API environment to use. Can be test or prod + final String REVIEVE_ENV = "test"; + // Partner ID + final String REVIEVE_PARTNER_ID = "TShEWzW05I"; + + // Construct the full URL + final String REVIEVE_FULL_URL = REVIEVE_CDN_DOMAIN + "/revieve-plugin-v4/app.html?partnerId=" + REVIEVE_PARTNER_ID + "&env=" + REVIEVE_ENV + "&crossOrigin=1&origin=" + REVIEVE_ORIGIN; + + private final Runnable mHidePart2Runnable = new Runnable() { @SuppressLint("InlinedApi") @Override @@ -147,20 +163,8 @@ protected void onPostCreate(Bundle savedInstanceState) { // Revieve webview example: ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1); - // Load the revieve-web-plugin from Revieve's production CDN: - final String REVIEVE_CDN_DOMAIN = "https://d38knilzwtuys1.cloudfront.net"; - // Origin set to * - final String REVIEVE_ORIGIN = "*"; - // Select which Revieve API environment to use. Can be test or prod - final String REVIEVE_ENV = "test"; - // Partner ID - final String REVIEVE_PARTNER_ID = "kToSMAjsNx"; - - // Construct the full URL - final String REVIEVE_FULL_URL = REVIEVE_CDN_DOMAIN + "/revieve-plugin-v4/app.html?partnerId=" + REVIEVE_PARTNER_ID + "&env=" + REVIEVE_ENV + "&crossOrigin=1&origin=" + REVIEVE_ORIGIN; - // Load it - WebView myWebView = (WebView) findViewById(R.id.revieveWebview); + myWebView = (WebView) findViewById(R.id.revieveWebview); myWebView.setWebChromeClient(new WebChromeClient() { private Boolean listenerCalled = false; @@ -212,11 +216,34 @@ public void onProgressChanged(WebView view, int progress) { webSettings.setGeolocationEnabled(true); webSettings.setAllowContentAccess(true); webSettings.setMediaPlaybackRequiresUserGesture(false); + myWebView.setWebContentsDebuggingEnabled(true); myWebView.addJavascriptInterface(new RevieveJSInterface(this), "Android"); myWebView.loadUrl(REVIEVE_FULL_URL); } + @Override + protected void onPause () { + super.onPause(); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + myWebView.postWebMessage( + new WebMessage("{\"type\": \"setCameraPause\", \"payload\": true}"), + Uri.parse(REVIEVE_CDN_DOMAIN) + ); + } + } + + @Override + protected void onResume () { + super.onPause(); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + myWebView.postWebMessage( + new WebMessage("{\"type\": \"setCameraPause\", \"payload\": false}"), + Uri.parse(REVIEVE_CDN_DOMAIN) + ); + } + } + private void toggle() { if (mVisible) { hide(); From 2f9bbbc9519e89155d90e027a7a2a302b023d194 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Fern=C3=A1ndez?= Date: Tue, 21 Jun 2022 10:27:37 +0200 Subject: [PATCH 2/2] fix: onResume had super.onPause() --- .../com/revieve/PluginWebViewJavaSample/FullscreenActivity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/revieve/PluginWebViewJavaSample/FullscreenActivity.java b/app/src/main/java/com/revieve/PluginWebViewJavaSample/FullscreenActivity.java index 70a8e78..517eb94 100644 --- a/app/src/main/java/com/revieve/PluginWebViewJavaSample/FullscreenActivity.java +++ b/app/src/main/java/com/revieve/PluginWebViewJavaSample/FullscreenActivity.java @@ -235,7 +235,7 @@ protected void onPause () { @Override protected void onResume () { - super.onPause(); + super.onResume(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { myWebView.postWebMessage( new WebMessage("{\"type\": \"setCameraPause\", \"payload\": false}"),