From e0826c110f10031cbb2ec913247d9650fb5b4922 Mon Sep 17 00:00:00 2001 From: jhnstn Date: Fri, 5 May 2023 22:18:06 -0400 Subject: [PATCH 1/7] Add Gutenberg Embed WebView --- .../src/main/AndroidManifest.xml | 3 + .../GutenbergBridgeJS2Parent.java | 2 + .../GutenbergEmbedWebViewActivity.java | 176 ++++++++++++++++++ .../RNReactNativeGutenbergBridgeModule.java | 5 + .../WPAndroidGlue/WPAndroidGlueCode.java | 24 ++- .../activity_gutenberg_embed_web_view.xml | 44 +++++ .../res/menu/menu_gutenberg_embed_webview.xml | 4 + packages/react-native-bridge/index.js | 14 +- .../java/com/gutenberg/MainApplication.java | 5 + 9 files changed, 275 insertions(+), 2 deletions(-) create mode 100644 packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/ReactNativeGutenbergBridge/GutenbergEmbedWebViewActivity.java create mode 100644 packages/react-native-bridge/android/react-native-bridge/src/main/res/layout/activity_gutenberg_embed_web_view.xml create mode 100644 packages/react-native-bridge/android/react-native-bridge/src/main/res/menu/menu_gutenberg_embed_webview.xml diff --git a/packages/react-native-bridge/android/react-native-bridge/src/main/AndroidManifest.xml b/packages/react-native-bridge/android/react-native-bridge/src/main/AndroidManifest.xml index c4d5efc7496118..7d31a2d03bd6cf 100644 --- a/packages/react-native-bridge/android/react-native-bridge/src/main/AndroidManifest.xml +++ b/packages/react-native-bridge/android/react-native-bridge/src/main/AndroidManifest.xml @@ -20,6 +20,9 @@ + diff --git a/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/ReactNativeGutenbergBridge/GutenbergBridgeJS2Parent.java b/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/ReactNativeGutenbergBridge/GutenbergBridgeJS2Parent.java index 8991486676a705..645ab8a9125c81 100644 --- a/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/ReactNativeGutenbergBridge/GutenbergBridgeJS2Parent.java +++ b/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/ReactNativeGutenbergBridge/GutenbergBridgeJS2Parent.java @@ -146,6 +146,8 @@ void gutenbergDidRequestUnsupportedBlockFallback(ReplaceUnsupportedBlockCallback String blockName, String blockTitle); + void gutenbergDidRequestEmbedFullscreenPreview(String content, String title); + void gutenbergDidSendButtonPressedAction(String buttonType); void onShowUserSuggestions(Consumer onResult); diff --git a/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/ReactNativeGutenbergBridge/GutenbergEmbedWebViewActivity.java b/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/ReactNativeGutenbergBridge/GutenbergEmbedWebViewActivity.java new file mode 100644 index 00000000000000..5e9ac450eed56c --- /dev/null +++ b/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/ReactNativeGutenbergBridge/GutenbergEmbedWebViewActivity.java @@ -0,0 +1,176 @@ +package org.wordpress.mobile.ReactNativeGutenbergBridge; + +import android.annotation.SuppressLint; +import android.graphics.Bitmap; +import android.os.Bundle; +import android.os.Handler; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; +import android.view.View; +import android.webkit.CookieManager; +import android.webkit.WebChromeClient; +import android.webkit.WebSettings; +import android.webkit.WebView; +import android.webkit.WebViewClient; +import android.widget.ProgressBar; + +import androidx.annotation.Nullable; +import androidx.appcompat.app.ActionBar; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; + +import java.util.concurrent.atomic.AtomicBoolean; + +public class GutenbergEmbedWebViewActivity extends AppCompatActivity { + public static final String ARG_CONTENT = "content"; + public static final String ARG_TITLE = "title"; + private static final String JAVA_SCRIPT_INTERFACE_NAME = "wpwebkit"; + + protected WebView mWebView; + + private ProgressBar mProgressBar; + private AtomicBoolean mIsWebPageLoaded = new AtomicBoolean(false); + private final Handler mWebPageLoadedHandler = new Handler(); + private final Runnable mWebPageLoadedRunnable = new Runnable() { + @Override public void run() { + if (!mIsWebPageLoaded.getAndSet(true)) { + mProgressBar.setVisibility(View.GONE); + } + } + }; + + + @SuppressLint("SetJavaScriptEnabled") + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_gutenberg_embed_web_view); + + setupToolbar(); + + mWebView = findViewById(R.id.embed_web_view); + + mProgressBar = findViewById(R.id.progress_bar); + + // Set settings + WebSettings settings = mWebView.getSettings(); + settings.setJavaScriptEnabled(true); + settings.setDomStorageEnabled(true); + CookieManager cookieManager = CookieManager.getInstance(); + cookieManager.setAcceptThirdPartyCookies(mWebView, true); + + // Setup WebView client + setupWebViewClient(); + + // Setup Web Chrome client + mWebView.setWebChromeClient(new WebChromeClient() { + @Override + public void onProgressChanged(WebView view, int progress) { + if (progress == 100) { + mWebPageLoadedHandler.removeCallbacks(mWebPageLoadedRunnable); + mWebPageLoadedHandler.postDelayed(mWebPageLoadedRunnable, 1500); + } else { + mIsWebPageLoaded.compareAndSet(true, false); + if (mProgressBar.getVisibility() == View.GONE) { + mProgressBar.setVisibility(View.VISIBLE); + } + mProgressBar.setProgress(progress); + } + } + }); + + load(); + } + + protected void load() { + mWebView.loadUrl("https://wordpress.org/gutenberg/"); + } + + private void setupToolbar() { + setTitle(""); + + Toolbar toolbar = findViewById(R.id.toolbar); + if (toolbar != null) { + setSupportActionBar(toolbar); + + ActionBar actionBar = getSupportActionBar(); + if (actionBar != null) { + actionBar.setDisplayShowTitleEnabled(true); + actionBar.setDisplayHomeAsUpEnabled(true); + actionBar.setHomeAsUpIndicator(R.drawable.ic_close_24px); + actionBar.setSubtitle(""); + actionBar.setTitle(getToolbarTitle()); + } + } + } + + protected String getToolbarTitle() { + return ""; + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + super.onCreateOptionsMenu(menu); + + MenuInflater inflater = getMenuInflater(); + inflater.inflate(R.menu.menu_gutenberg_embed_webview, menu); + return true; + } + + @Override + public boolean onOptionsItemSelected(final MenuItem item) { + if (mWebView == null) { + return false; + } + + int itemID = item.getItemId(); + + if (itemID == android.R.id.home) { + finish(); + } + + return super.onOptionsItemSelected(item); + } + + private void setupWebViewClient() { + mWebView.setWebViewClient(new WebViewClient() { + @Override + public void onPageStarted(WebView view, String url, Bitmap favicon) { + // Center the embed with a black background; + // @TODO should this use the preferred color scheme? + String css = "body{margin:0;background:#000;display:flex;align-items:center;}"; + String js = String.format("(()=>{const c='%s';const s=document.createElement('style');s.textContent=c;document.head.append(s);})()", css); + view.evaluateJavascript(js,null); + super.onPageStarted(view, url, favicon); + } + }); + } + + @Override + public void onBackPressed() { + if (mWebView.canGoBack()) { + mWebView.goBack(); + } else { + super.onBackPressed(); + } + } + + @Override + public void finish() { + runOnUiThread(() -> { + mWebView.removeJavascriptInterface(JAVA_SCRIPT_INTERFACE_NAME); // not sure we need this; + mWebView.clearHistory(); + mWebView.clearFormData(); + mWebView.clearCache(true); + mWebView.clearSslPreferences(); + }); + + super.finish(); + } + + @Override + protected void onDestroy() { + mWebPageLoadedHandler.removeCallbacks(mWebPageLoadedRunnable); // Not sure we add any callbacks, might not need this + super.onDestroy(); + } +} diff --git a/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/ReactNativeGutenbergBridge/RNReactNativeGutenbergBridgeModule.java b/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/ReactNativeGutenbergBridge/RNReactNativeGutenbergBridgeModule.java index e779f15007ba31..199d3e3c7b8314 100644 --- a/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/ReactNativeGutenbergBridge/RNReactNativeGutenbergBridgeModule.java +++ b/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/ReactNativeGutenbergBridge/RNReactNativeGutenbergBridgeModule.java @@ -367,6 +367,11 @@ public void requestUnsupportedBlockFallback(String content, String blockId, Stri replaceBlock(savedContent, savedBlockId), content, blockId, blockName, blockTitle); } + @ReactMethod + public void requestEmbedFullscreenPreview(String content, String title) { + mGutenbergBridgeJS2Parent.gutenbergDidRequestEmbedFullscreenPreview(content,title); + } + @ReactMethod public void actionButtonPressed(String buttonType) { mGutenbergBridgeJS2Parent.gutenbergDidSendButtonPressedAction(buttonType); diff --git a/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/WPAndroidGlue/WPAndroidGlueCode.java b/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/WPAndroidGlue/WPAndroidGlueCode.java index 10e07b40ea6ee0..b7586b580206f3 100644 --- a/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/WPAndroidGlue/WPAndroidGlueCode.java +++ b/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/WPAndroidGlue/WPAndroidGlueCode.java @@ -100,6 +100,7 @@ public class WPAndroidGlueCode { private OnImageFullscreenPreviewListener mOnImageFullscreenPreviewListener; private OnMediaEditorListener mOnMediaEditorListener; private OnGutenbergDidRequestUnsupportedBlockFallbackListener mOnGutenbergDidRequestUnsupportedBlockFallbackListener; + private OnGutenbergDidRequestEmbedFullscreenPreviewListener mOnGutenbergDidRequestEmbedFullscreenPreviewListener; private OnGutenbergDidSendButtonPressedActionListener mOnGutenbergDidSendButtonPressedActionListener; private ReplaceUnsupportedBlockCallback mReplaceUnsupportedBlockCallback; private OnMediaFilesCollectionBasedBlockEditorListener mOnMediaFilesCollectionBasedBlockEditorListener; @@ -178,6 +179,10 @@ public interface OnImageFullscreenPreviewListener { void onImageFullscreenPreviewClicked(String mediaUrl); } + public interface OnEmbedFullscreenPreviewListener { + void onEmbedFullscreenPreviewClicked(String html, String title); + } + public interface OnReattachMediaUploadQueryListener { void onQueryCurrentProgressForUploadingMedia(); } @@ -210,6 +215,10 @@ public interface OnGutenbergDidRequestUnsupportedBlockFallbackListener { void gutenbergDidRequestUnsupportedBlockFallback(UnsupportedBlock unsupportedBlock); } + public interface OnGutenbergDidRequestEmbedFullscreenPreviewListener { + void gutenbergDidRequestEmbedFullscreenPreview(String html, String title); + } + public interface OnGutenbergDidSendButtonPressedActionListener { void gutenbergDidSendButtonPressedAction(String buttonType); } @@ -443,7 +452,12 @@ public void performPostRequest(String pathFromJS, ReadableMap data, Consumer + + + + + + + + + + + + + diff --git a/packages/react-native-bridge/android/react-native-bridge/src/main/res/menu/menu_gutenberg_embed_webview.xml b/packages/react-native-bridge/android/react-native-bridge/src/main/res/menu/menu_gutenberg_embed_webview.xml new file mode 100644 index 00000000000000..169bf732c74b9c --- /dev/null +++ b/packages/react-native-bridge/android/react-native-bridge/src/main/res/menu/menu_gutenberg_embed_webview.xml @@ -0,0 +1,4 @@ + + + diff --git a/packages/react-native-bridge/index.js b/packages/react-native-bridge/index.js index 0129327903db13..d432f0de9e2383 100644 --- a/packages/react-native-bridge/index.js +++ b/packages/react-native-bridge/index.js @@ -197,7 +197,7 @@ export function requestMediaPicker( source, filter, multiple, callback ) { } /** - * Request to render an unsuported block. + * Request to render an unsupported block. * * A way to show unsupported blocks to the user is to render it on a web view. * @@ -290,6 +290,18 @@ export function requestImageFullscreenPreview( ); } +export function requestEmbedFullscreenPreview( content, title ) { + if ( isIOS ) { + /* eslint-disable-next-line no-console */ + console.warn( 'requestEmbedFullscreenPreview is not supported on iOS' ); + return; + } + return RNReactNativeGutenbergBridge.requestEmbedFullscreenPreview( + content, + title + ); +} + export function requestMediaEditor( mediaUrl, callback ) { return RNReactNativeGutenbergBridge.requestMediaEditor( mediaUrl, diff --git a/packages/react-native-editor/android/app/src/main/java/com/gutenberg/MainApplication.java b/packages/react-native-editor/android/app/src/main/java/com/gutenberg/MainApplication.java index b8565d216f6b37..b781357bee369a 100644 --- a/packages/react-native-editor/android/app/src/main/java/com/gutenberg/MainApplication.java +++ b/packages/react-native-editor/android/app/src/main/java/com/gutenberg/MainApplication.java @@ -167,6 +167,11 @@ public void requestImageFullscreenPreview(String mediaUrl) { } + @Override + public void requestEmbedFullscreenPreview(String content, String title) { + + } + @Override public void requestMediaEditor(MediaSelectedCallback mediaSelectedCallback, String mediaUrl) { From 8fbeb8cdf63539181b930dd3e73c2fd486924d2d Mon Sep 17 00:00:00 2001 From: jhnstn Date: Mon, 8 May 2023 11:50:49 -0400 Subject: [PATCH 2/7] Clean up --- .../GutenbergEmbedWebViewActivity.java | 13 +++++-------- .../mobile/WPAndroidGlue/WPAndroidGlueCode.java | 8 +------- 2 files changed, 6 insertions(+), 15 deletions(-) diff --git a/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/ReactNativeGutenbergBridge/GutenbergEmbedWebViewActivity.java b/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/ReactNativeGutenbergBridge/GutenbergEmbedWebViewActivity.java index 5e9ac450eed56c..3073a4f66747c4 100644 --- a/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/ReactNativeGutenbergBridge/GutenbergEmbedWebViewActivity.java +++ b/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/ReactNativeGutenbergBridge/GutenbergEmbedWebViewActivity.java @@ -40,7 +40,6 @@ public class GutenbergEmbedWebViewActivity extends AppCompatActivity { } }; - @SuppressLint("SetJavaScriptEnabled") protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -55,9 +54,8 @@ protected void onCreate(@Nullable Bundle savedInstanceState) { // Set settings WebSettings settings = mWebView.getSettings(); settings.setJavaScriptEnabled(true); - settings.setDomStorageEnabled(true); - CookieManager cookieManager = CookieManager.getInstance(); - cookieManager.setAcceptThirdPartyCookies(mWebView, true); + //CookieManager cookieManager = CookieManager.getInstance(); + //cookieManager.setAcceptThirdPartyCookies(mWebView, true); // Setup WebView client setupWebViewClient(); @@ -137,10 +135,9 @@ private void setupWebViewClient() { @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { // Center the embed with a black background; - // @TODO should this use the preferred color scheme? String css = "body{margin:0;background:#000;display:flex;align-items:center;}"; String js = String.format("(()=>{const c='%s';const s=document.createElement('style');s.textContent=c;document.head.append(s);})()", css); - view.evaluateJavascript(js,null); + view.evaluateJavascript(js, null); super.onPageStarted(view, url, favicon); } }); @@ -158,7 +155,7 @@ public void onBackPressed() { @Override public void finish() { runOnUiThread(() -> { - mWebView.removeJavascriptInterface(JAVA_SCRIPT_INTERFACE_NAME); // not sure we need this; + mWebView.removeJavascriptInterface(JAVA_SCRIPT_INTERFACE_NAME); mWebView.clearHistory(); mWebView.clearFormData(); mWebView.clearCache(true); @@ -170,7 +167,7 @@ public void finish() { @Override protected void onDestroy() { - mWebPageLoadedHandler.removeCallbacks(mWebPageLoadedRunnable); // Not sure we add any callbacks, might not need this + mWebPageLoadedHandler.removeCallbacks(mWebPageLoadedRunnable); super.onDestroy(); } } diff --git a/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/WPAndroidGlue/WPAndroidGlueCode.java b/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/WPAndroidGlue/WPAndroidGlueCode.java index b7586b580206f3..44e59cbc733549 100644 --- a/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/WPAndroidGlue/WPAndroidGlueCode.java +++ b/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/WPAndroidGlue/WPAndroidGlueCode.java @@ -452,12 +452,7 @@ public void performPostRequest(String pathFromJS, ReadableMap data, Consumer Date: Mon, 8 May 2023 20:34:28 -0400 Subject: [PATCH 3/7] Rename method Fix renaming --ammend --- .../ReactNativeGutenbergBridge/GutenbergBridgeJS2Parent.java | 2 +- .../RNReactNativeGutenbergBridgeModule.java | 2 +- .../org/wordpress/mobile/WPAndroidGlue/WPAndroidGlueCode.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/ReactNativeGutenbergBridge/GutenbergBridgeJS2Parent.java b/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/ReactNativeGutenbergBridge/GutenbergBridgeJS2Parent.java index 645ab8a9125c81..f5c0d325990b46 100644 --- a/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/ReactNativeGutenbergBridge/GutenbergBridgeJS2Parent.java +++ b/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/ReactNativeGutenbergBridge/GutenbergBridgeJS2Parent.java @@ -146,7 +146,7 @@ void gutenbergDidRequestUnsupportedBlockFallback(ReplaceUnsupportedBlockCallback String blockName, String blockTitle); - void gutenbergDidRequestEmbedFullscreenPreview(String content, String title); + void requestEmbedFullscreenPreview(String content, String title); void gutenbergDidSendButtonPressedAction(String buttonType); diff --git a/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/ReactNativeGutenbergBridge/RNReactNativeGutenbergBridgeModule.java b/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/ReactNativeGutenbergBridge/RNReactNativeGutenbergBridgeModule.java index 199d3e3c7b8314..14a0a0a8e82771 100644 --- a/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/ReactNativeGutenbergBridge/RNReactNativeGutenbergBridgeModule.java +++ b/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/ReactNativeGutenbergBridge/RNReactNativeGutenbergBridgeModule.java @@ -369,7 +369,7 @@ public void requestUnsupportedBlockFallback(String content, String blockId, Stri @ReactMethod public void requestEmbedFullscreenPreview(String content, String title) { - mGutenbergBridgeJS2Parent.gutenbergDidRequestEmbedFullscreenPreview(content,title); + mGutenbergBridgeJS2Parent.requestEmbedFullscreenPreview(content,title); } @ReactMethod diff --git a/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/WPAndroidGlue/WPAndroidGlueCode.java b/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/WPAndroidGlue/WPAndroidGlueCode.java index 44e59cbc733549..67799988f97e46 100644 --- a/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/WPAndroidGlue/WPAndroidGlueCode.java +++ b/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/WPAndroidGlue/WPAndroidGlueCode.java @@ -471,7 +471,7 @@ public void gutenbergDidRequestUnsupportedBlockFallback(ReplaceUnsupportedBlockC gutenbergDidRequestUnsupportedBlockFallback(new UnsupportedBlock(blockId, blockName, blockTitle, content)); } - public void gutenbergDidRequestEmbedFullscreenPreview(String html, String title) { + public void requestEmbedFullscreenPreview(String html, String title) { mOnGutenbergDidRequestEmbedFullscreenPreviewListener. gutenbergDidRequestEmbedFullscreenPreview(html, title); } From 19cdfa9f77b6720d0bf8ae316335e31022aacccf Mon Sep 17 00:00:00 2001 From: jhnstn Date: Mon, 8 May 2023 23:52:01 -0400 Subject: [PATCH 4/7] Remove commented out code --- .../GutenbergEmbedWebViewActivity.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/ReactNativeGutenbergBridge/GutenbergEmbedWebViewActivity.java b/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/ReactNativeGutenbergBridge/GutenbergEmbedWebViewActivity.java index 3073a4f66747c4..ff5b6566ac20e5 100644 --- a/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/ReactNativeGutenbergBridge/GutenbergEmbedWebViewActivity.java +++ b/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/ReactNativeGutenbergBridge/GutenbergEmbedWebViewActivity.java @@ -54,8 +54,6 @@ protected void onCreate(@Nullable Bundle savedInstanceState) { // Set settings WebSettings settings = mWebView.getSettings(); settings.setJavaScriptEnabled(true); - //CookieManager cookieManager = CookieManager.getInstance(); - //cookieManager.setAcceptThirdPartyCookies(mWebView, true); // Setup WebView client setupWebViewClient(); From e1391fe49e5ee94de1908d7f2fd6b2a92283ce96 Mon Sep 17 00:00:00 2001 From: jhnstn Date: Tue, 9 May 2023 11:23:32 -0400 Subject: [PATCH 5/7] Removed unused method --- .../org/wordpress/mobile/WPAndroidGlue/WPAndroidGlueCode.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/WPAndroidGlue/WPAndroidGlueCode.java b/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/WPAndroidGlue/WPAndroidGlueCode.java index 67799988f97e46..e270f91dbcae15 100644 --- a/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/WPAndroidGlue/WPAndroidGlueCode.java +++ b/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/WPAndroidGlue/WPAndroidGlueCode.java @@ -179,10 +179,6 @@ public interface OnImageFullscreenPreviewListener { void onImageFullscreenPreviewClicked(String mediaUrl); } - public interface OnEmbedFullscreenPreviewListener { - void onEmbedFullscreenPreviewClicked(String html, String title); - } - public interface OnReattachMediaUploadQueryListener { void onQueryCurrentProgressForUploadingMedia(); } From 78c3d691d61ce786fcfc561518cc5e1131638dcc Mon Sep 17 00:00:00 2001 From: jhnstn Date: Tue, 9 May 2023 11:27:54 -0400 Subject: [PATCH 6/7] Remove unused menu layout --- .../GutenbergEmbedWebViewActivity.java | 9 --------- .../src/main/res/menu/menu_gutenberg_embed_webview.xml | 4 ---- 2 files changed, 13 deletions(-) delete mode 100644 packages/react-native-bridge/android/react-native-bridge/src/main/res/menu/menu_gutenberg_embed_webview.xml diff --git a/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/ReactNativeGutenbergBridge/GutenbergEmbedWebViewActivity.java b/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/ReactNativeGutenbergBridge/GutenbergEmbedWebViewActivity.java index ff5b6566ac20e5..c74e18653c7dc4 100644 --- a/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/ReactNativeGutenbergBridge/GutenbergEmbedWebViewActivity.java +++ b/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/ReactNativeGutenbergBridge/GutenbergEmbedWebViewActivity.java @@ -104,15 +104,6 @@ protected String getToolbarTitle() { return ""; } - @Override - public boolean onCreateOptionsMenu(Menu menu) { - super.onCreateOptionsMenu(menu); - - MenuInflater inflater = getMenuInflater(); - inflater.inflate(R.menu.menu_gutenberg_embed_webview, menu); - return true; - } - @Override public boolean onOptionsItemSelected(final MenuItem item) { if (mWebView == null) { diff --git a/packages/react-native-bridge/android/react-native-bridge/src/main/res/menu/menu_gutenberg_embed_webview.xml b/packages/react-native-bridge/android/react-native-bridge/src/main/res/menu/menu_gutenberg_embed_webview.xml deleted file mode 100644 index 169bf732c74b9c..00000000000000 --- a/packages/react-native-bridge/android/react-native-bridge/src/main/res/menu/menu_gutenberg_embed_webview.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - From 50b6f41113fc77ded469d2c14778cea2ef9f826e Mon Sep 17 00:00:00 2001 From: jhnstn Date: Tue, 9 May 2023 13:38:55 -0400 Subject: [PATCH 7/7] Update load and get title methods These are no longer overriden in the main Android app --- .../GutenbergEmbedWebViewActivity.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/ReactNativeGutenbergBridge/GutenbergEmbedWebViewActivity.java b/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/ReactNativeGutenbergBridge/GutenbergEmbedWebViewActivity.java index c74e18653c7dc4..30125a853ad0fb 100644 --- a/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/ReactNativeGutenbergBridge/GutenbergEmbedWebViewActivity.java +++ b/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/ReactNativeGutenbergBridge/GutenbergEmbedWebViewActivity.java @@ -79,7 +79,8 @@ public void onProgressChanged(WebView view, int progress) { } protected void load() { - mWebView.loadUrl("https://wordpress.org/gutenberg/"); + String content = getIntent().getExtras().getString(ARG_CONTENT); + mWebView.loadData(content, "text/html", "UTF-8"); } private void setupToolbar() { @@ -101,7 +102,7 @@ private void setupToolbar() { } protected String getToolbarTitle() { - return ""; + return getIntent().getExtras().getString(ARG_TITLE); } @Override