diff --git a/packages/block-library/src/video/edit.native.js b/packages/block-library/src/video/edit.native.js index 5ceb7270404707..209f2924d857fc 100644 --- a/packages/block-library/src/video/edit.native.js +++ b/packages/block-library/src/video/edit.native.js @@ -153,9 +153,9 @@ class VideoEdit extends Component { this.setState( { isUploadInProgress: false } ); } - onSelectMediaUploadOption( { id, url } ) { + onSelectMediaUploadOption( { id, url, caption } ) { const { setAttributes } = this.props; - setAttributes( { id, src: url } ); + setAttributes( { id, src: url, caption } ); } onVideoContanerLayout( event ) { diff --git a/packages/editor/src/components/provider/index.native.js b/packages/editor/src/components/provider/index.native.js index 76bb230c250bc2..9aa83a05447216 100644 --- a/packages/editor/src/components/provider/index.native.js +++ b/packages/editor/src/components/provider/index.native.js @@ -116,6 +116,7 @@ class NativeEditorProvider extends Component { [ payload.mediaType === 'image' ? 'url' : 'src' ]: payload.mediaUrl, + caption: payload.mediaCaption, } ); const indexAfterSelected = this.props.selectedBlockIndex + 1; diff --git a/packages/react-native-bridge/android/src/main/java/org/wordpress/mobile/ReactNativeGutenbergBridge/RNReactNativeGutenbergBridgeModule.java b/packages/react-native-bridge/android/src/main/java/org/wordpress/mobile/ReactNativeGutenbergBridge/RNReactNativeGutenbergBridgeModule.java index 27e9ef93f0ff51..f643e0ff68210b 100644 --- a/packages/react-native-bridge/android/src/main/java/org/wordpress/mobile/ReactNativeGutenbergBridge/RNReactNativeGutenbergBridgeModule.java +++ b/packages/react-native-bridge/android/src/main/java/org/wordpress/mobile/ReactNativeGutenbergBridge/RNReactNativeGutenbergBridgeModule.java @@ -55,6 +55,7 @@ public class RNReactNativeGutenbergBridgeModule extends ReactContextBaseJavaModu public static final String MAP_KEY_MEDIA_FILE_UPLOAD_MEDIA_ID = "mediaId"; public static final String MAP_KEY_MEDIA_FILE_UPLOAD_MEDIA_URL = "mediaUrl"; public static final String MAP_KEY_MEDIA_FILE_UPLOAD_MEDIA_TYPE = "mediaType"; + public static final String MAP_KEY_MEDIA_FILE_UPLOAD_MEDIA_CAPTION = "mediaCaption"; private static final String MAP_KEY_THEME_UPDATE_COLORS = "colors"; private static final String MAP_KEY_THEME_UPDATE_GRADIENTS = "gradients"; public static final String MAP_KEY_MEDIA_FINAL_SAVE_RESULT_SUCCESS_VALUE = "success"; @@ -122,11 +123,12 @@ public void showNoticeInJS(String message) { emitToJS(EVENT_NAME_SHOW_NOTICE, writableMap); } - public void appendNewMediaBlock(int mediaId, String mediaUri, String mediaType) { + public void appendNewMediaBlock(int mediaId, String mediaUri, String mediaType, String mediaCaption) { WritableMap writableMap = new WritableNativeMap(); writableMap.putString(MAP_KEY_MEDIA_FILE_UPLOAD_MEDIA_TYPE, mediaType); writableMap.putString(MAP_KEY_MEDIA_FILE_UPLOAD_MEDIA_URL, mediaUri); writableMap.putInt(MAP_KEY_MEDIA_FILE_UPLOAD_MEDIA_ID, mediaId); + writableMap.putString(MAP_KEY_MEDIA_FILE_UPLOAD_MEDIA_CAPTION, mediaCaption); emitToJS(EVENT_NAME_MEDIA_APPEND, writableMap); } diff --git a/packages/react-native-bridge/android/src/main/java/org/wordpress/mobile/WPAndroidGlue/WPAndroidGlueCode.java b/packages/react-native-bridge/android/src/main/java/org/wordpress/mobile/WPAndroidGlue/WPAndroidGlueCode.java index 6514acedfb328f..08f6db16825c6d 100644 --- a/packages/react-native-bridge/android/src/main/java/org/wordpress/mobile/WPAndroidGlue/WPAndroidGlueCode.java +++ b/packages/react-native-bridge/android/src/main/java/org/wordpress/mobile/WPAndroidGlue/WPAndroidGlueCode.java @@ -623,9 +623,9 @@ public void setFocusOnTitle() { mRnReactNativeGutenbergBridgePackage.getRNReactNativeGutenbergBridgeModule().setFocusOnTitleInJS(); } - public void appendNewMediaBlock(int mediaId, String mediaUri, String mediaType) { + public void appendNewMediaBlock(int mediaId, String mediaUri, String mediaType, String mediaCaption) { mRnReactNativeGutenbergBridgePackage.getRNReactNativeGutenbergBridgeModule() - .appendNewMediaBlock(mediaId, mediaUri, mediaType); + .appendNewMediaBlock(mediaId, mediaUri, mediaType, mediaCaption); } public void setPreferredColorScheme(boolean isDarkMode) { @@ -864,7 +864,7 @@ private void sendOrDeferAppendMediaSignal(Media media) { if (mIsEditorMounted) { if (!TextUtils.isEmpty(media.getUrl()) && media.getId() > 0) { // send signal to JS - appendNewMediaBlock(media.getId(), media.getUrl(), media.getType()); + appendNewMediaBlock(media.getId(), media.getUrl(), media.getType(), media.getCaption()); } } else { // save the URL, we'll add it once Editor is mounted @@ -882,7 +882,7 @@ private synchronized void dispatchOneMediaToAddAtATimeIfAvailable() { Media media = entry.getValue(); if (!TextUtils.isEmpty(media.getUrl()) && mediaId > 0) { // send signal to JS - appendNewMediaBlock(mediaId, media.getUrl(), media.getType()); + appendNewMediaBlock(mediaId, media.getUrl(), media.getType(), media.getCaption()); iter.remove(); } } diff --git a/packages/react-native-bridge/ios/Gutenberg.swift b/packages/react-native-bridge/ios/Gutenberg.swift index b52699d7ce921c..28008c0281fcd6 100644 --- a/packages/react-native-bridge/ios/Gutenberg.swift +++ b/packages/react-native-bridge/ios/Gutenberg.swift @@ -178,11 +178,12 @@ public class Gutenberg: NSObject { sendEvent(event, body: data) } - public func appendMedia(id: Int32, url: URL, type: MediaType) { + public func appendMedia(id: Int32, url: URL, type: MediaType, caption: String? = nil) { let data: [String: Any] = [ "mediaId" : id, "mediaUrl" : url.absoluteString, "mediaType": type.rawValue, + "mediaCaption": caption, ] sendEvent(.mediaAppend, body: data) }