diff --git a/gutenberg b/gutenberg index acb42fac47..2fc48c9362 160000 --- a/gutenberg +++ b/gutenberg @@ -1 +1 @@ -Subproject commit acb42fac47544c350f05a92db8b6fc428141b7c4 +Subproject commit 2fc48c9362f274df2ae828d618d1c272b94b471f diff --git a/react-native-gutenberg-bridge/android/src/main/java/org/wordpress/mobile/ReactNativeGutenbergBridge/GutenbergBridgeJS2Parent.java b/react-native-gutenberg-bridge/android/src/main/java/org/wordpress/mobile/ReactNativeGutenbergBridge/GutenbergBridgeJS2Parent.java index 4235522ca8..b4908a620c 100644 --- a/react-native-gutenberg-bridge/android/src/main/java/org/wordpress/mobile/ReactNativeGutenbergBridge/GutenbergBridgeJS2Parent.java +++ b/react-native-gutenberg-bridge/android/src/main/java/org/wordpress/mobile/ReactNativeGutenbergBridge/GutenbergBridgeJS2Parent.java @@ -19,4 +19,6 @@ interface MediaUploadCallback { void onUploadMediaPressed(MediaUploadCallback mediaUploadCallback); void onCapturePhotoPressed(MediaUploadCallback mediaUploadCallback); + + void onImageQueryReattach(MediaUploadCallback mediaUploadCallback); } diff --git a/react-native-gutenberg-bridge/android/src/main/java/org/wordpress/mobile/ReactNativeGutenbergBridge/RNReactNativeGutenbergBridgeModule.java b/react-native-gutenberg-bridge/android/src/main/java/org/wordpress/mobile/ReactNativeGutenbergBridge/RNReactNativeGutenbergBridgeModule.java index d66e57c066..f26dc60942 100644 --- a/react-native-gutenberg-bridge/android/src/main/java/org/wordpress/mobile/ReactNativeGutenbergBridge/RNReactNativeGutenbergBridgeModule.java +++ b/react-native-gutenberg-bridge/android/src/main/java/org/wordpress/mobile/ReactNativeGutenbergBridge/RNReactNativeGutenbergBridgeModule.java @@ -83,36 +83,25 @@ public void onMediaLibraryPressed(final Callback onMediaSelected) { } @ReactMethod - public void onUploadMediaPressed(final Callback onUploadMediaSelected) { - mGutenbergBridgeJS2Parent.onUploadMediaPressed(new GutenbergBridgeJS2Parent.MediaUploadCallback() { - @Override - public void onUploadMediaFileSelected(int mediaId, String mediaUri) { - onUploadMediaSelected.invoke(mediaId, mediaUri, 0); - } - - @Override - public void onMediaFileUploadProgress(int mediaId, float progress) { - setMediaFileUploadDataInJS(MEDIA_UPLOAD_STATE_UPLOADING, mediaId, null, progress); - } - - @Override - public void onMediaFileUploadSucceeded(int mediaId, String mediaUrl, int mediaServerId) { - setMediaFileUploadDataInJS(MEDIA_UPLOAD_STATE_SUCCEEDED, mediaId, mediaUrl, 1, mediaServerId); - } + public void onImageQueryReattach(final Callback onImageQueryReattached) { + mGutenbergBridgeJS2Parent.onImageQueryReattach(getNewUploadMediaCallback(onImageQueryReattached)); + } - @Override - public void onMediaFileUploadFailed(int mediaId) { - setMediaFileUploadDataInJS(MEDIA_UPLOAD_STATE_FAILED, mediaId, null, 0 ); - } - }); + @ReactMethod + public void onUploadMediaPressed(final Callback onUploadMediaSelected) { + mGutenbergBridgeJS2Parent.onUploadMediaPressed(getNewUploadMediaCallback(onUploadMediaSelected)); } @ReactMethod - public void onCapturePhotoPressed(final Callback onUploadMediaSelected) { - mGutenbergBridgeJS2Parent.onCapturePhotoPressed(new GutenbergBridgeJS2Parent.MediaUploadCallback() { + public void onCapturePhotoPressed(final Callback onPhotoCaptured) { + mGutenbergBridgeJS2Parent.onCapturePhotoPressed(getNewUploadMediaCallback(onPhotoCaptured)); + } + + private GutenbergBridgeJS2Parent.MediaUploadCallback getNewUploadMediaCallback(final Callback jsCallback) { + return new GutenbergBridgeJS2Parent.MediaUploadCallback() { @Override public void onUploadMediaFileSelected(int mediaId, String mediaUri) { - onUploadMediaSelected.invoke(mediaId, mediaUri, 0); + jsCallback.invoke(mediaId, mediaUri, 0); } @Override @@ -129,7 +118,7 @@ public void onMediaFileUploadSucceeded(int mediaId, String mediaUrl, int mediaSe public void onMediaFileUploadFailed(int mediaId) { setMediaFileUploadDataInJS(MEDIA_UPLOAD_STATE_FAILED, mediaId, null, 0); } - }); + }; } private void setMediaFileUploadDataInJS(int state, int mediaId, String mediaUrl, float progress) { diff --git a/react-native-gutenberg-bridge/android/src/main/java/org/wordpress/mobile/WPAndroidGlue/WPAndroidGlueCode.java b/react-native-gutenberg-bridge/android/src/main/java/org/wordpress/mobile/WPAndroidGlue/WPAndroidGlueCode.java index fcc9d9d3d0..4648427c80 100644 --- a/react-native-gutenberg-bridge/android/src/main/java/org/wordpress/mobile/WPAndroidGlue/WPAndroidGlueCode.java +++ b/react-native-gutenberg-bridge/android/src/main/java/org/wordpress/mobile/WPAndroidGlue/WPAndroidGlueCode.java @@ -72,7 +72,12 @@ public interface OnMediaLibraryButtonListener { void onCapturePhotoButtonClicked(); } - protected List getPackages(final OnMediaLibraryButtonListener onMediaLibraryButtonListener) { + public interface OnReattachQueryListener { + void onQueryCurrentProgressForUploadingMedia(); + } + + protected List getPackages(final OnMediaLibraryButtonListener onMediaLibraryButtonListener, + final OnReattachQueryListener onReattachQueryListener) { mRnReactNativeGutenbergBridgePackage = new RNReactNativeGutenbergBridgePackage(new GutenbergBridgeJS2Parent() { @Override public void responseHtml(String title, String html, boolean changed) { @@ -100,6 +105,11 @@ public void onCapturePhotoPressed(MediaUploadCallback mediaUploadCallback) { mPendingMediaUploadCallback = mediaUploadCallback; onMediaLibraryButtonListener.onCapturePhotoButtonClicked(); } + + @Override public void onImageQueryReattach(MediaUploadCallback mediaUploadCallback) { + mPendingMediaUploadCallback = mediaUploadCallback; + onReattachQueryListener.onQueryCurrentProgressForUploadingMedia(); + } }); return Arrays.asList( new MainReactPackage(), @@ -111,6 +121,7 @@ public void onCapturePhotoPressed(MediaUploadCallback mediaUploadCallback) { public void onCreateView(View reactRootView, boolean htmlModeEnabled, OnMediaLibraryButtonListener onMediaLibraryButtonListener, + OnReattachQueryListener onReattachQueryListener, Application application, boolean isDebug, boolean buildGutenbergFromSource, boolean isNewPost) { mReactRootView = (ReactRootView) reactRootView; @@ -119,7 +130,7 @@ public void onCreateView(View reactRootView, boolean htmlModeEnabled, ReactInstanceManager.builder() .setApplication(application) .setJSMainModulePath("index") - .addPackages(getPackages(onMediaLibraryButtonListener)) + .addPackages(getPackages(onMediaLibraryButtonListener, onReattachQueryListener)) .setUseDeveloperSupport(isDebug) .setInitialLifecycleState(LifecycleState.RESUMED); if (!buildGutenbergFromSource) { diff --git a/react-native-gutenberg-bridge/index.js b/react-native-gutenberg-bridge/index.js index 648776d0f4..7ddbaf5dad 100644 --- a/react-native-gutenberg-bridge/index.js +++ b/react-native-gutenberg-bridge/index.js @@ -52,4 +52,8 @@ export function onCapturePhotoPressed( callback ) { return RNReactNativeGutenbergBridge.onCapturePhotoPressed( callback ); } +export function onImageQueryReattach( callback ) { + return RNReactNativeGutenbergBridge.onImageQueryReattach( callback ); +} + export default RNReactNativeGutenbergBridge;