From 592a0003207d403fff04d9d2d49a810643dee46f Mon Sep 17 00:00:00 2001 From: Dratwas Date: Mon, 2 Sep 2019 16:42:42 +0200 Subject: [PATCH 01/15] WIP --- .../ui/photopicker/PhotoPickerActivity.java | 2 +- .../ui/photopicker/PhotoPickerFragment.java | 4 ++-- .../android/ui/posts/EditPostActivity.java | 22 ++++++++++--------- .../editor/EditorFragmentAbstract.java | 2 +- .../editor/GutenbergEditorFragment.java | 4 ++-- libs/gutenberg-mobile | 2 +- 6 files changed, 19 insertions(+), 17 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/photopicker/PhotoPickerActivity.java b/WordPress/src/main/java/org/wordpress/android/ui/photopicker/PhotoPickerActivity.java index 6bf70089a2f4..96757dc962e1 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/photopicker/PhotoPickerActivity.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/photopicker/PhotoPickerActivity.java @@ -288,7 +288,7 @@ public void onPhotoPickerMediaChosen(@NonNull List uriList) { } @Override - public void onPhotoPickerIconClicked(@NonNull PhotoPickerFragment.PhotoPickerIcon icon) { + public void onPhotoPickerIconClicked(@NonNull PhotoPickerFragment.PhotoPickerIcon icon, boolean multiple) { switch (icon) { case ANDROID_CAPTURE_PHOTO: launchCamera(); diff --git a/WordPress/src/main/java/org/wordpress/android/ui/photopicker/PhotoPickerFragment.java b/WordPress/src/main/java/org/wordpress/android/ui/photopicker/PhotoPickerFragment.java index 6fd4e4b174b3..5d02eb41131d 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/photopicker/PhotoPickerFragment.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/photopicker/PhotoPickerFragment.java @@ -68,7 +68,7 @@ public enum PhotoPickerIcon { public interface PhotoPickerListener { void onPhotoPickerMediaChosen(@NonNull List uriList); - void onPhotoPickerIconClicked(@NonNull PhotoPickerIcon icon); + void onPhotoPickerIconClicked(@NonNull PhotoPickerIcon icon, boolean allowMultipleSelection); } private EmptyViewRecyclerView mRecycler; @@ -252,7 +252,7 @@ public void doIconClicked(@NonNull PhotoPickerIcon icon) { } if (mListener != null) { - mListener.onPhotoPickerIconClicked(icon); + mListener.onPhotoPickerIconClicked(icon, false); } } diff --git a/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java b/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java index 1191be0519c9..b3f67958ac08 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java @@ -1146,7 +1146,7 @@ public void onMediaToolbarButtonClicked(MediaToolbarAction action) { * picker, or WP media picker */ @Override - public void onPhotoPickerIconClicked(@NonNull PhotoPickerIcon icon) { + public void onPhotoPickerIconClicked(@NonNull PhotoPickerIcon icon, boolean allowMultipleSelection) { hidePhotoPicker(); switch (icon) { case ANDROID_CAPTURE_PHOTO: @@ -1156,7 +1156,7 @@ public void onPhotoPickerIconClicked(@NonNull PhotoPickerIcon icon) { launchVideoCamera(); break; case ANDROID_CHOOSE_PHOTO: - launchPictureLibrary(); + launchPictureLibrary(allowMultipleSelection); break; case ANDROID_CHOOSE_VIDEO: launchVideoLibrary(); @@ -1618,9 +1618,9 @@ private void onUploadProgress(MediaModel media, float progress) { } } - private void launchPictureLibrary() { + private void launchPictureLibrary(boolean allowMultipleSelection) { // don't allow multiple selection for Gutenberg, as we're on a single image block for now - WPMediaUtils.launchPictureLibrary(this, !mShowGutenbergEditor); + WPMediaUtils.launchPictureLibrary(this, allowMultipleSelection); } private void launchVideoLibrary() { @@ -2998,10 +2998,12 @@ private void addMediaLegacyEditor(Uri mediaUri, boolean isVideo) { private void addMediaItemGroupOrSingleItem(Intent data) { ClipData clipData = data.getClipData(); if (clipData != null) { + ArrayList uriList = new ArrayList<>(); for (int i = 0; i < clipData.getItemCount(); i++) { ClipData.Item item = clipData.getItemAt(i); - addMedia(item.getUri(), false); + uriList.add(item.getUri()); } + addMediaList(uriList, false); } else { addMedia(data.getData(), false); } @@ -3474,23 +3476,23 @@ public void onAddMediaVideoClicked() { } @Override - public void onAddPhotoClicked() { - onPhotoPickerIconClicked(PhotoPickerIcon.ANDROID_CHOOSE_PHOTO); + public void onAddPhotoClicked(boolean allowMultipleSelection) { + onPhotoPickerIconClicked(PhotoPickerIcon.ANDROID_CHOOSE_PHOTO, allowMultipleSelection); } @Override public void onCapturePhotoClicked() { - onPhotoPickerIconClicked(PhotoPickerIcon.ANDROID_CAPTURE_PHOTO); + onPhotoPickerIconClicked(PhotoPickerIcon.ANDROID_CAPTURE_PHOTO, false); } @Override public void onAddVideoClicked() { - onPhotoPickerIconClicked(PhotoPickerIcon.ANDROID_CHOOSE_VIDEO); + onPhotoPickerIconClicked(PhotoPickerIcon.ANDROID_CHOOSE_VIDEO, true); } @Override public void onCaptureVideoClicked() { - onPhotoPickerIconClicked(PhotoPickerIcon.ANDROID_CAPTURE_VIDEO); + onPhotoPickerIconClicked(PhotoPickerIcon.ANDROID_CAPTURE_VIDEO, false); } @Override diff --git a/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/EditorFragmentAbstract.java b/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/EditorFragmentAbstract.java index d66329186d4b..033c069e9bce 100644 --- a/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/EditorFragmentAbstract.java +++ b/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/EditorFragmentAbstract.java @@ -186,7 +186,7 @@ public interface EditorFragmentListener { void onAddMediaClicked(); void onAddMediaImageClicked(); void onAddMediaVideoClicked(); - void onAddPhotoClicked(); + void onAddPhotoClicked(boolean allowMultipleSelection); void onCapturePhotoClicked(); void onAddVideoClicked(); void onCaptureVideoClicked(); diff --git a/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/GutenbergEditorFragment.java b/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/GutenbergEditorFragment.java index 2e9809a3767c..5361c5bd84e0 100644 --- a/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/GutenbergEditorFragment.java +++ b/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/GutenbergEditorFragment.java @@ -231,8 +231,8 @@ public void onMediaLibraryVideoButtonClicked() { } @Override - public void onUploadPhotoButtonClicked() { - mEditorFragmentListener.onAddPhotoClicked(); + public void onUploadPhotoButtonClicked(boolean allowMultipleSelection) { + mEditorFragmentListener.onAddPhotoClicked(allowMultipleSelection); } @Override diff --git a/libs/gutenberg-mobile b/libs/gutenberg-mobile index b1a6e4aa8470..34a014d2a432 160000 --- a/libs/gutenberg-mobile +++ b/libs/gutenberg-mobile @@ -1 +1 @@ -Subproject commit b1a6e4aa8470628eaf74fed895303a4a120fd767 +Subproject commit 34a014d2a4326698dc505446008df5ce2740ea92 From f503a9e6dbb3a2fc23c1243b6e4c48672f4eae4c Mon Sep 17 00:00:00 2001 From: Dratwas Date: Wed, 4 Sep 2019 15:37:36 +0200 Subject: [PATCH 02/15] WIP --- .../android/ui/posts/EditPostActivity.java | 38 +++++++++++++++++-- .../android/editor/AztecEditorFragment.java | 3 ++ .../android/editor/EditorFragment.java | 2 + .../editor/EditorFragmentAbstract.java | 6 ++- .../editor/GutenbergEditorFragment.java | 27 +++++++++++-- .../android/editor/LegacyEditorFragment.java | 4 ++ 6 files changed, 70 insertions(+), 10 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java b/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java index b3f67958ac08..1dbaeff33917 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java @@ -22,6 +22,7 @@ import android.text.TextUtils; import android.text.style.CharacterStyle; import android.text.style.SuggestionSpan; +import android.util.ArrayMap; import android.view.ContextThemeWrapper; import android.view.DragEvent; import android.view.Menu; @@ -273,6 +274,7 @@ enum RestartEditorOptions { private boolean mShowNewEditor; private boolean mShowGutenbergEditor; private boolean mMediaInsertedOnCreation; + private boolean mAllowMultipleSelection; private List mPendingVideoPressInfoRequests; private List mAztecBackspaceDeletedOrGbBlockDeletedMediaItemIds = new ArrayList<>(); @@ -1148,6 +1150,7 @@ public void onMediaToolbarButtonClicked(MediaToolbarAction action) { @Override public void onPhotoPickerIconClicked(@NonNull PhotoPickerIcon icon, boolean allowMultipleSelection) { hidePhotoPicker(); + mAllowMultipleSelection = allowMultipleSelection; switch (icon) { case ANDROID_CAPTURE_PHOTO: launchCamera(); @@ -2397,6 +2400,26 @@ private boolean addExistingMediaToEditor(@NonNull AddExistingdMediaSource source return true; } + private boolean addExistingMediaToEditor(@NonNull AddExistingdMediaSource source, List mediaIdList) { + ArrayList> mediaList = new ArrayList<>(); + for (Long mediaId : mediaIdList) { + MediaModel media = mMediaStore.getSiteMediaWithId(mSite, mediaId); + if (media == null) { + AppLog.w(T.MEDIA, "Cannot add null media to post"); + return false; + } + trackAddMediaEvent(source, media); + + MediaFile mediaFile = FluxCUtils.mediaFileFromMediaModel(media); + String urlToUse = TextUtils.isEmpty(media.getUrl()) ? media.getFilePath() : media.getUrl(); + ArrayMap mediaMap = new ArrayMap<>(); + mediaMap.put(urlToUse, mediaFile); + mediaList.add(mediaMap); + } + mEditorFragment.appendMediaFiles(mediaList); + return true; + } + private class LoadPostContentTask extends AsyncTask { @Override protected Spanned doInBackground(String... params) { @@ -3228,8 +3251,13 @@ private void handleMediaPickerResult(Intent data) { if (ids.size() > 1 && allAreImages && !mShowGutenbergEditor) { showInsertMediaDialog(ids); } else { - for (Long id : ids) { - addExistingMediaToEditor(AddExistingdMediaSource.WP_MEDIA_LIBRARY, id); + if (mAllowMultipleSelection) { + addExistingMediaToEditor(AddExistingdMediaSource.WP_MEDIA_LIBRARY, ids); + mAllowMultipleSelection = false; + } else { + for (Long id : ids) { + addExistingMediaToEditor(AddExistingdMediaSource.WP_MEDIA_LIBRARY, id); + } } savePostAsync(null); } @@ -3466,12 +3494,14 @@ public void onAddMediaClicked() { } @Override - public void onAddMediaImageClicked() { + public void onAddMediaImageClicked(boolean allowMultipleSelection) { + mAllowMultipleSelection = allowMultipleSelection; ActivityLauncher.viewMediaPickerForResult(this, mSite, MediaBrowserType.GUTENBERG_IMAGE_PICKER); } @Override - public void onAddMediaVideoClicked() { + public void onAddMediaVideoClicked(boolean allowMultipleSelection) { + mAllowMultipleSelection = allowMultipleSelection; ActivityLauncher.viewMediaPickerForResult(this, mSite, MediaBrowserType.GUTENBERG_VIDEO_PICKER); } diff --git a/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/AztecEditorFragment.java b/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/AztecEditorFragment.java index fc14014af906..b341102f5fc9 100644 --- a/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/AztecEditorFragment.java +++ b/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/AztecEditorFragment.java @@ -105,6 +105,7 @@ import java.util.HashMap; import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Set; import java.util.UUID; @@ -1098,6 +1099,8 @@ private void replaceDrawable(Drawable newDrawable) { } } + @Override public void appendMediaFiles(ArrayList> mediaList) {} + private Drawable getLoadingMediaErrorPlaceholder(String msg) { if (TextUtils.isEmpty(msg)) { ToastUtils.showToast(getActivity(), R.string.error_media_load); diff --git a/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/EditorFragment.java b/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/EditorFragment.java index f2a11028f169..cd6ca1ad822e 100755 --- a/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/EditorFragment.java +++ b/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/EditorFragment.java @@ -1059,6 +1059,8 @@ public void run() { }); } + @Override public void appendMediaFiles(ArrayList> mediaList) {} + @Override public void appendGallery(MediaGallery mediaGallery) { if (!mDomHasLoaded) { diff --git a/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/EditorFragmentAbstract.java b/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/EditorFragmentAbstract.java index 033c069e9bce..8c37d2e15de1 100644 --- a/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/EditorFragmentAbstract.java +++ b/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/EditorFragmentAbstract.java @@ -18,6 +18,7 @@ import java.util.ArrayList; import java.util.HashMap; +import java.util.Map; import java.util.Set; public abstract class EditorFragmentAbstract extends Fragment { @@ -27,6 +28,7 @@ public abstract class EditorFragmentAbstract extends Fragment { public abstract CharSequence getContent(CharSequence originalContent) throws EditorFragmentNotAddedException; public abstract LiveData getTitleOrContentChanged(); public abstract void appendMediaFile(MediaFile mediaFile, String imageUrl, ImageLoader imageLoader); + public abstract void appendMediaFiles(ArrayList> mediaList); public abstract void appendGallery(MediaGallery mediaGallery); public abstract void setUrlForVideoPressId(String videoPressId, String url, String posterUrl); public abstract boolean isUploadingMedia(); @@ -184,8 +186,8 @@ public interface EditorFragmentListener { void onEditorFragmentContentReady(ArrayList unsupportedBlocks); void onSettingsClicked(); void onAddMediaClicked(); - void onAddMediaImageClicked(); - void onAddMediaVideoClicked(); + void onAddMediaImageClicked(boolean allowMultipleSelection); + void onAddMediaVideoClicked(boolean allowMultipleSelection); void onAddPhotoClicked(boolean allowMultipleSelection); void onCapturePhotoClicked(); void onAddVideoClicked(); diff --git a/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/GutenbergEditorFragment.java b/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/GutenbergEditorFragment.java index 5361c5bd84e0..b120ca9d2f42 100644 --- a/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/GutenbergEditorFragment.java +++ b/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/GutenbergEditorFragment.java @@ -51,6 +51,7 @@ import java.util.Arrays; import java.util.HashSet; import java.util.Locale; +import java.util.Map; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; @@ -219,15 +220,15 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle sa ViewGroup gutenbergContainer = view.findViewById(R.id.gutenberg_container); getGutenbergContainerFragment().attachToContainer(gutenbergContainer, new OnMediaLibraryButtonListener() { - @Override public void onMediaLibraryImageButtonClicked() { + @Override public void onMediaLibraryImageButtonClicked(boolean allowMultipleSelection) { mEditorFragmentListener.onTrackableEvent(TrackableEvent.MEDIA_BUTTON_TAPPED); - mEditorFragmentListener.onAddMediaImageClicked(); + mEditorFragmentListener.onAddMediaImageClicked(allowMultipleSelection); } @Override - public void onMediaLibraryVideoButtonClicked() { + public void onMediaLibraryVideoButtonClicked(boolean allowMultipleSelection) { mEditorFragmentListener.onTrackableEvent(TrackableEvent.MEDIA_BUTTON_TAPPED); - mEditorFragmentListener.onAddMediaVideoClicked(); + mEditorFragmentListener.onAddMediaVideoClicked(allowMultipleSelection); } @Override @@ -675,6 +676,24 @@ public void appendMediaFile(final MediaFile mediaFile, final String mediaUrl, Im } } + @Override + public void appendMediaFiles(ArrayList> mediaList) { + if (getActivity() == null) { + // appendMediaFile may be called from a background thread (example: EditPostActivity.java#L2165) and + // Activity may have already be gone. + // Ticket: https://github.com/wordpress-mobile/WordPress-Android/issues/7386 + AppLog.d(T.MEDIA, "appendMediaFile() called but Activity is null!"); + return; + } + String mediaUrl = (String) mediaList.get(0).keySet().toArray()[0]; + if (URLUtil.isNetworkUrl(mediaUrl)) { +// getGutenbergContainerFragment().appendMediaFile(mediaList); + } else { +// getGutenbergContainerFragment().appendUploadMediaFile(mediaList); +// mUploadingMediaProgressMax.put(String.valueOf(mediaFile.getId()), 0f); + } + } + @Override public void appendGallery(MediaGallery mediaGallery) { } diff --git a/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/LegacyEditorFragment.java b/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/LegacyEditorFragment.java index b51a5758e369..c6b42987bf3e 100644 --- a/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/LegacyEditorFragment.java +++ b/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/LegacyEditorFragment.java @@ -71,7 +71,9 @@ import org.wordpress.android.util.helpers.WPUnderlineSpan; import org.wordpress.android.util.widgets.WPEditText; +import java.util.ArrayList; import java.util.Locale; +import java.util.Map; public class LegacyEditorFragment extends EditorFragmentAbstract implements TextWatcher, WPEditText.OnSelectionChangedListener, View.OnTouchListener { @@ -1147,6 +1149,8 @@ public void appendMediaFile(final MediaFile mediaFile, final String imageUrl, fi mContentEditText.getSelectionStart(), mContentEditText.getSelectionEnd()); } + @Override public void appendMediaFiles(ArrayList> mediaList) {} + @Override public void appendGallery(MediaGallery mediaGallery) { Editable editableText = mContentEditText.getText(); From 30e45a1e8a05f990eae12a6b2603d97e5a95c2c7 Mon Sep 17 00:00:00 2001 From: Dratwas Date: Mon, 9 Sep 2019 15:40:08 +0200 Subject: [PATCH 03/15] WIP partially done - WPMedia --- .../android/ui/posts/EditPostActivity.java | 10 +++++----- .../android/editor/AztecEditorFragment.java | 2 +- .../android/editor/EditorFragment.java | 2 +- .../android/editor/EditorFragmentAbstract.java | 2 +- .../editor/GutenbergContainerFragment.java | 7 +++++++ .../android/editor/GutenbergEditorFragment.java | 17 ++++++++++++++--- .../android/editor/LegacyEditorFragment.java | 3 +-- libs/gutenberg-mobile | 2 +- 8 files changed, 31 insertions(+), 14 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java b/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java index 1dbaeff33917..2dcb4abc6069 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java @@ -2401,7 +2401,7 @@ private boolean addExistingMediaToEditor(@NonNull AddExistingdMediaSource source } private boolean addExistingMediaToEditor(@NonNull AddExistingdMediaSource source, List mediaIdList) { - ArrayList> mediaList = new ArrayList<>(); + ArrayMap mediaMap = new ArrayMap<>(); for (Long mediaId : mediaIdList) { MediaModel media = mMediaStore.getSiteMediaWithId(mSite, mediaId); if (media == null) { @@ -2412,11 +2412,10 @@ private boolean addExistingMediaToEditor(@NonNull AddExistingdMediaSource source MediaFile mediaFile = FluxCUtils.mediaFileFromMediaModel(media); String urlToUse = TextUtils.isEmpty(media.getUrl()) ? media.getFilePath() : media.getUrl(); - ArrayMap mediaMap = new ArrayMap<>(); + mediaMap.put(urlToUse, mediaFile); - mediaList.add(mediaMap); } - mEditorFragment.appendMediaFiles(mediaList); + mEditorFragment.appendMediaFiles(mediaMap); return true; } @@ -3251,7 +3250,8 @@ private void handleMediaPickerResult(Intent data) { if (ids.size() > 1 && allAreImages && !mShowGutenbergEditor) { showInsertMediaDialog(ids); } else { - if (mAllowMultipleSelection) { + // if mAllowMultipleSelection and gutenberg editor, pass all ids to addExistingMediaToEditor at once + if (mShowGutenbergEditor && mAllowMultipleSelection) { addExistingMediaToEditor(AddExistingdMediaSource.WP_MEDIA_LIBRARY, ids); mAllowMultipleSelection = false; } else { diff --git a/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/AztecEditorFragment.java b/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/AztecEditorFragment.java index b341102f5fc9..6c4d22ded434 100644 --- a/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/AztecEditorFragment.java +++ b/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/AztecEditorFragment.java @@ -1099,7 +1099,7 @@ private void replaceDrawable(Drawable newDrawable) { } } - @Override public void appendMediaFiles(ArrayList> mediaList) {} + @Override public void appendMediaFiles(Map mediaList) {} private Drawable getLoadingMediaErrorPlaceholder(String msg) { if (TextUtils.isEmpty(msg)) { diff --git a/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/EditorFragment.java b/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/EditorFragment.java index cd6ca1ad822e..217fd7545688 100755 --- a/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/EditorFragment.java +++ b/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/EditorFragment.java @@ -1059,7 +1059,7 @@ public void run() { }); } - @Override public void appendMediaFiles(ArrayList> mediaList) {} + @Override public void appendMediaFiles(Map mediaList) {} @Override public void appendGallery(MediaGallery mediaGallery) { diff --git a/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/EditorFragmentAbstract.java b/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/EditorFragmentAbstract.java index 8c37d2e15de1..df57439213db 100644 --- a/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/EditorFragmentAbstract.java +++ b/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/EditorFragmentAbstract.java @@ -28,7 +28,7 @@ public abstract class EditorFragmentAbstract extends Fragment { public abstract CharSequence getContent(CharSequence originalContent) throws EditorFragmentNotAddedException; public abstract LiveData getTitleOrContentChanged(); public abstract void appendMediaFile(MediaFile mediaFile, String imageUrl, ImageLoader imageLoader); - public abstract void appendMediaFiles(ArrayList> mediaList); + public abstract void appendMediaFiles(Map mediaList); public abstract void appendGallery(MediaGallery mediaGallery); public abstract void setUrlForVideoPressId(String videoPressId, String url, String posterUrl); public abstract boolean isUploadingMedia(); diff --git a/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/GutenbergContainerFragment.java b/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/GutenbergContainerFragment.java index a7ef66a43db9..031749aafeca 100644 --- a/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/GutenbergContainerFragment.java +++ b/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/GutenbergContainerFragment.java @@ -5,6 +5,7 @@ import androidx.fragment.app.Fragment; +import org.wordpress.mobile.WPAndroidGlue.Media; import org.wordpress.mobile.WPAndroidGlue.WPAndroidGlueCode; import org.wordpress.mobile.WPAndroidGlue.WPAndroidGlueCode.OnAuthHeaderRequestedListener; import org.wordpress.mobile.WPAndroidGlue.WPAndroidGlueCode.OnEditorMountListener; @@ -12,6 +13,8 @@ import org.wordpress.mobile.WPAndroidGlue.WPAndroidGlueCode.OnMediaLibraryButtonListener; import org.wordpress.mobile.WPAndroidGlue.WPAndroidGlueCode.OnReattachQueryListener; +import java.util.ArrayList; + public class GutenbergContainerFragment extends Fragment { public static final String TAG = "gutenberg_container_fragment_tag"; @@ -123,6 +126,10 @@ public void appendMediaFile(int mediaId, final String mediaUrl, final boolean is mWPAndroidGlueCode.appendMediaFile(mediaId, mediaUrl, isVideo); } + public void appendMediaFiles(ArrayList mediaList) { + mWPAndroidGlueCode.appendMediaFiles(mediaList); + } + public void showDevOptionsDialog() { mWPAndroidGlueCode.showDevOptionsDialog(); } diff --git a/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/GutenbergEditorFragment.java b/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/GutenbergEditorFragment.java index b120ca9d2f42..d0df145dce57 100644 --- a/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/GutenbergEditorFragment.java +++ b/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/GutenbergEditorFragment.java @@ -40,6 +40,7 @@ import org.wordpress.android.util.helpers.MediaFile; import org.wordpress.android.util.helpers.MediaGallery; import org.wordpress.aztec.IHistoryListener; +import org.wordpress.mobile.WPAndroidGlue.Media; import org.wordpress.mobile.WPAndroidGlue.WPAndroidGlueCode.OnAuthHeaderRequestedListener; import org.wordpress.mobile.WPAndroidGlue.WPAndroidGlueCode.OnEditorMountListener; import org.wordpress.mobile.WPAndroidGlue.WPAndroidGlueCode.OnGetContentTimeout; @@ -677,7 +678,7 @@ public void appendMediaFile(final MediaFile mediaFile, final String mediaUrl, Im } @Override - public void appendMediaFiles(ArrayList> mediaList) { + public void appendMediaFiles(Map mediaList) { if (getActivity() == null) { // appendMediaFile may be called from a background thread (example: EditPostActivity.java#L2165) and // Activity may have already be gone. @@ -685,9 +686,19 @@ public void appendMediaFiles(ArrayList> mediaList) { AppLog.d(T.MEDIA, "appendMediaFile() called but Activity is null!"); return; } - String mediaUrl = (String) mediaList.get(0).keySet().toArray()[0]; + ArrayList rnMediaList = new ArrayList<>(); + for (Map.Entry mediaEntry : mediaList.entrySet()) { + rnMediaList.add( + new Media( + Integer.valueOf(mediaEntry.getValue().getMediaId()), + mediaEntry.getKey(), + mediaEntry.getValue().getMimeType() + ) + ); + } + String mediaUrl = rnMediaList.get(0).getMediaUrl(); if (URLUtil.isNetworkUrl(mediaUrl)) { -// getGutenbergContainerFragment().appendMediaFile(mediaList); + getGutenbergContainerFragment().appendMediaFiles(rnMediaList); } else { // getGutenbergContainerFragment().appendUploadMediaFile(mediaList); // mUploadingMediaProgressMax.put(String.valueOf(mediaFile.getId()), 0f); diff --git a/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/LegacyEditorFragment.java b/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/LegacyEditorFragment.java index c6b42987bf3e..8f1896ab8bce 100644 --- a/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/LegacyEditorFragment.java +++ b/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/LegacyEditorFragment.java @@ -71,7 +71,6 @@ import org.wordpress.android.util.helpers.WPUnderlineSpan; import org.wordpress.android.util.widgets.WPEditText; -import java.util.ArrayList; import java.util.Locale; import java.util.Map; @@ -1149,7 +1148,7 @@ public void appendMediaFile(final MediaFile mediaFile, final String imageUrl, fi mContentEditText.getSelectionStart(), mContentEditText.getSelectionEnd()); } - @Override public void appendMediaFiles(ArrayList> mediaList) {} + @Override public void appendMediaFiles(Map mediaList) {} @Override public void appendGallery(MediaGallery mediaGallery) { diff --git a/libs/gutenberg-mobile b/libs/gutenberg-mobile index 34a014d2a432..f02d6b3bf59c 160000 --- a/libs/gutenberg-mobile +++ b/libs/gutenberg-mobile @@ -1 +1 @@ -Subproject commit 34a014d2a4326698dc505446008df5ce2740ea92 +Subproject commit f02d6b3bf59c002d79df2e2c9578235537d2c0d8 From bd0b225fd659b2389cee5139bec5c25661d34701 Mon Sep 17 00:00:00 2001 From: Dratwas Date: Mon, 9 Sep 2019 15:40:26 +0200 Subject: [PATCH 04/15] fix typo --- .../org/wordpress/android/editor/GutenbergEditorFragment.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/GutenbergEditorFragment.java b/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/GutenbergEditorFragment.java index d0df145dce57..fd3cb3b1747f 100644 --- a/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/GutenbergEditorFragment.java +++ b/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/GutenbergEditorFragment.java @@ -696,7 +696,7 @@ public void appendMediaFiles(Map mediaList) { ) ); } - String mediaUrl = rnMediaList.get(0).getMediaUrl(); + String mediaUrl = rnMediaList.get(0).getUrl(); if (URLUtil.isNetworkUrl(mediaUrl)) { getGutenbergContainerFragment().appendMediaFiles(rnMediaList); } else { From bdc178a4b3f6d42087b18185089cae5084b10773 Mon Sep 17 00:00:00 2001 From: Dratwas Date: Tue, 10 Sep 2019 12:48:44 +0200 Subject: [PATCH 05/15] support uploading of multiple media --- .../android/ui/posts/EditPostActivity.java | 58 +++++++++++++++---- .../editor/GutenbergContainerFragment.java | 4 ++ .../editor/GutenbergEditorFragment.java | 45 +++++++++----- libs/gutenberg-mobile | 2 +- 4 files changed, 83 insertions(+), 26 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java b/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java index 2dcb4abc6069..baea1e194e37 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java @@ -1622,7 +1622,6 @@ private void onUploadProgress(MediaModel media, float progress) { } private void launchPictureLibrary(boolean allowMultipleSelection) { - // don't allow multiple selection for Gutenberg, as we're on a single image block for now WPMediaUtils.launchPictureLibrary(this, allowMultipleSelection); } @@ -2836,7 +2835,7 @@ private boolean addMedia(Uri mediaUri, boolean isNew) { private void addMediaList(@NonNull List uriList, boolean isNew) { // fetch any shared media first - must be done on the main thread List fetchedUriList = fetchMediaList(uriList); - mAddMediaListThread = new AddMediaListThread(fetchedUriList, isNew); + mAddMediaListThread = new AddMediaListThread(fetchedUriList, isNew, mAllowMultipleSelection); mAddMediaListThread.start(); } @@ -2859,6 +2858,9 @@ private class AddMediaListThread extends Thread { private final boolean mIsNew; private ProgressDialog mProgressDialog; private boolean mDidAnyFail; + private int mFinishedUploads = 0; + private boolean mAllowMultipleSelection = false; + private Map mediaMap = new ArrayMap<>(); AddMediaListThread(@NonNull List uriList, boolean isNew) { this.mUriList.addAll(uriList); @@ -2866,6 +2868,13 @@ private class AddMediaListThread extends Thread { showOverlay(false); } + AddMediaListThread(@NonNull List uriList, boolean isNew, boolean allowMultipleSelection) { + this.mUriList.addAll(uriList); + this.mIsNew = isNew; + this.mAllowMultipleSelection = allowMultipleSelection; + showOverlay(false); + } + private void showProgressDialog(final boolean show) { runOnUiThread(new Runnable() { @Override @@ -2975,24 +2984,49 @@ private boolean processMedia(Uri mediaUri) { } private void postProcessMedia(final Uri mediaUri, final String path, final boolean isVideo) { - runOnUiThread(new Runnable() { - @Override - public void run() { - if (isModernEditor()) { - addMediaVisualEditor(mediaUri, path); - } else { - addMediaLegacyEditor(mediaUri, isVideo); - } + if (mAllowMultipleSelection) { + MediaFile mediaFile = getMediaFile(mediaUri); + if (mediaFile != null) { + mediaMap.put(path, mediaFile); } - }); + mFinishedUploads++; + if (mUriList.size() != mFinishedUploads) { + runOnUiThread(new Runnable() { + @Override + public void run() { + mEditorFragment.appendMediaFiles(mediaMap); + } + }); + } + } else { + runOnUiThread(new Runnable() { + @Override + public void run() { + if (isModernEditor()) { + addMediaVisualEditor(mediaUri, path); + } else { + addMediaLegacyEditor(mediaUri, isVideo); + } + } + }); + } } } private void addMediaVisualEditor(Uri uri, String path) { + MediaFile mediaFile = getMediaFile(uri); + if (mediaFile != null) { + mEditorFragment.appendMediaFile(mediaFile, path, mImageLoader); + } + } + + private MediaFile getMediaFile(Uri uri) { MediaModel media = queueFileForUpload(uri, getContentResolver().getType(uri)); MediaFile mediaFile = FluxCUtils.mediaFileFromMediaModel(media); if (media != null) { - mEditorFragment.appendMediaFile(mediaFile, path, mImageLoader); + return mediaFile; + } else { + return null; } } diff --git a/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/GutenbergContainerFragment.java b/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/GutenbergContainerFragment.java index 031749aafeca..eae039d5b8d8 100644 --- a/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/GutenbergContainerFragment.java +++ b/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/GutenbergContainerFragment.java @@ -138,6 +138,10 @@ public void appendUploadMediaFile(final int mediaId, final String mediaUri, fina mWPAndroidGlueCode.appendUploadMediaFile(mediaId, mediaUri, isVideo); } + public void appendUploadMediaFiles(ArrayList mediaList) { + mWPAndroidGlueCode.appendUploadMediaFiles(mediaList); + } + public void mediaFileUploadProgress(final int mediaId, final float progress) { mWPAndroidGlueCode.mediaFileUploadProgress(mediaId, progress); } diff --git a/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/GutenbergEditorFragment.java b/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/GutenbergEditorFragment.java index fd3cb3b1747f..a43221296309 100644 --- a/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/GutenbergEditorFragment.java +++ b/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/GutenbergEditorFragment.java @@ -683,25 +683,44 @@ public void appendMediaFiles(Map mediaList) { // appendMediaFile may be called from a background thread (example: EditPostActivity.java#L2165) and // Activity may have already be gone. // Ticket: https://github.com/wordpress-mobile/WordPress-Android/issues/7386 - AppLog.d(T.MEDIA, "appendMediaFile() called but Activity is null!"); + AppLog.d(T.MEDIA, "appendMediaFiles() called but Activity is null!"); return; } + ArrayList rnMediaList = new ArrayList<>(); - for (Map.Entry mediaEntry : mediaList.entrySet()) { - rnMediaList.add( - new Media( - Integer.valueOf(mediaEntry.getValue().getMediaId()), - mediaEntry.getKey(), - mediaEntry.getValue().getMimeType() - ) - ); - } - String mediaUrl = rnMediaList.get(0).getUrl(); + + // Get media URL of first of media first to check if it is network or local one. + String mediaUrl = ""; + Object[] mediaUrls = mediaList.keySet().toArray(); + if (mediaUrls != null && mediaUrls.length > 0) { + mediaUrl = (String) mediaUrls[0]; + } + if (URLUtil.isNetworkUrl(mediaUrl)) { + for (Map.Entry mediaEntry : mediaList.entrySet()) { + rnMediaList.add( + new Media( + Integer.valueOf(mediaEntry.getValue().getMediaId()), + mediaEntry.getKey(), + mediaEntry.getValue().getMimeType() + ) + ); + } getGutenbergContainerFragment().appendMediaFiles(rnMediaList); } else { -// getGutenbergContainerFragment().appendUploadMediaFile(mediaList); -// mUploadingMediaProgressMax.put(String.valueOf(mediaFile.getId()), 0f); + for (Map.Entry mediaEntry : mediaList.entrySet()) { + rnMediaList.add( + new Media( + mediaEntry.getValue().getId(), + "file://" + mediaEntry.getKey(), + mediaEntry.getValue().getMimeType() + ) + ); + } + getGutenbergContainerFragment().appendUploadMediaFiles(rnMediaList); + for (Media media : rnMediaList) { + mUploadingMediaProgressMax.put(String.valueOf(media.getId()), 0f); + } } } diff --git a/libs/gutenberg-mobile b/libs/gutenberg-mobile index f02d6b3bf59c..2164e3d572a8 160000 --- a/libs/gutenberg-mobile +++ b/libs/gutenberg-mobile @@ -1 +1 @@ -Subproject commit f02d6b3bf59c002d79df2e2c9578235537d2c0d8 +Subproject commit 2164e3d572a8f1cd270006404de3d10b2f625edb From bef3ec6c48d8073fe4e7de9511f22ee18638981b Mon Sep 17 00:00:00 2001 From: Dratwas Date: Tue, 10 Sep 2019 14:12:38 +0200 Subject: [PATCH 06/15] support multiple video select from device --- .../wordpress/android/ui/posts/EditPostActivity.java | 11 +++++------ .../android/editor/EditorFragmentAbstract.java | 2 +- .../android/editor/GutenbergEditorFragment.java | 4 ++-- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java b/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java index baea1e194e37..eeb013978f07 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java @@ -1162,7 +1162,7 @@ public void onPhotoPickerIconClicked(@NonNull PhotoPickerIcon icon, boolean allo launchPictureLibrary(allowMultipleSelection); break; case ANDROID_CHOOSE_VIDEO: - launchVideoLibrary(); + launchVideoLibrary(allowMultipleSelection); break; case WP_MEDIA: ActivityLauncher.viewMediaPickerForResult(this, mSite, MediaBrowserType.EDITOR_PICKER); @@ -1625,9 +1625,8 @@ private void launchPictureLibrary(boolean allowMultipleSelection) { WPMediaUtils.launchPictureLibrary(this, allowMultipleSelection); } - private void launchVideoLibrary() { - // don't allow multiple selection for Gutenberg, as we're on a single image block for now - WPMediaUtils.launchVideoLibrary(this, !mShowGutenbergEditor); + private void launchVideoLibrary(boolean allowMultipleSelection) { + WPMediaUtils.launchVideoLibrary(this, allowMultipleSelection); } private void launchVideoCamera() { @@ -3550,8 +3549,8 @@ public void onCapturePhotoClicked() { } @Override - public void onAddVideoClicked() { - onPhotoPickerIconClicked(PhotoPickerIcon.ANDROID_CHOOSE_VIDEO, true); + public void onAddVideoClicked(boolean allowMultipleSelectio) { + onPhotoPickerIconClicked(PhotoPickerIcon.ANDROID_CHOOSE_VIDEO, allowMultipleSelectio); } @Override diff --git a/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/EditorFragmentAbstract.java b/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/EditorFragmentAbstract.java index df57439213db..185a9ccda851 100644 --- a/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/EditorFragmentAbstract.java +++ b/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/EditorFragmentAbstract.java @@ -190,7 +190,7 @@ public interface EditorFragmentListener { void onAddMediaVideoClicked(boolean allowMultipleSelection); void onAddPhotoClicked(boolean allowMultipleSelection); void onCapturePhotoClicked(); - void onAddVideoClicked(); + void onAddVideoClicked(boolean allowMultipleSelection); void onCaptureVideoClicked(); boolean onMediaRetryClicked(String mediaId); void onMediaRetryAllClicked(Set mediaIdSet); diff --git a/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/GutenbergEditorFragment.java b/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/GutenbergEditorFragment.java index a43221296309..af817afdb959 100644 --- a/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/GutenbergEditorFragment.java +++ b/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/GutenbergEditorFragment.java @@ -238,8 +238,8 @@ public void onUploadPhotoButtonClicked(boolean allowMultipleSelection) { } @Override - public void onUploadVideoButtonClicked() { - mEditorFragmentListener.onAddVideoClicked(); + public void onUploadVideoButtonClicked(boolean allowMultipleSelection) { + mEditorFragmentListener.onAddVideoClicked(allowMultipleSelection); } @Override From 19497eb7633ba5de616aca059085de8791546475 Mon Sep 17 00:00:00 2001 From: Dratwas Date: Tue, 10 Sep 2019 14:36:23 +0200 Subject: [PATCH 07/15] fix lint issues --- .../java/org/wordpress/android/editor/AztecEditorFragment.java | 2 +- .../main/java/org/wordpress/android/editor/EditorFragment.java | 2 +- .../java/org/wordpress/android/editor/LegacyEditorFragment.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/AztecEditorFragment.java b/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/AztecEditorFragment.java index 6c4d22ded434..b03ea8aead6c 100644 --- a/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/AztecEditorFragment.java +++ b/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/AztecEditorFragment.java @@ -1099,7 +1099,7 @@ private void replaceDrawable(Drawable newDrawable) { } } - @Override public void appendMediaFiles(Map mediaList) {} + @Override public void appendMediaFiles(Map mediaList) { } private Drawable getLoadingMediaErrorPlaceholder(String msg) { if (TextUtils.isEmpty(msg)) { diff --git a/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/EditorFragment.java b/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/EditorFragment.java index 217fd7545688..18057dc77bfd 100755 --- a/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/EditorFragment.java +++ b/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/EditorFragment.java @@ -1059,7 +1059,7 @@ public void run() { }); } - @Override public void appendMediaFiles(Map mediaList) {} + @Override public void appendMediaFiles(Map mediaList) { } @Override public void appendGallery(MediaGallery mediaGallery) { diff --git a/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/LegacyEditorFragment.java b/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/LegacyEditorFragment.java index 8f1896ab8bce..b09115eb758f 100644 --- a/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/LegacyEditorFragment.java +++ b/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/LegacyEditorFragment.java @@ -1148,7 +1148,7 @@ public void appendMediaFile(final MediaFile mediaFile, final String imageUrl, fi mContentEditText.getSelectionStart(), mContentEditText.getSelectionEnd()); } - @Override public void appendMediaFiles(Map mediaList) {} + @Override public void appendMediaFiles(Map mediaList) { } @Override public void appendGallery(MediaGallery mediaGallery) { From 68982f276456bb1e41ae79ebb18aae6331aa16ac Mon Sep 17 00:00:00 2001 From: Dratwas Date: Tue, 10 Sep 2019 14:40:37 +0200 Subject: [PATCH 08/15] update gutenberg-mobile ref --- libs/gutenberg-mobile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/gutenberg-mobile b/libs/gutenberg-mobile index 2164e3d572a8..d306057cd457 160000 --- a/libs/gutenberg-mobile +++ b/libs/gutenberg-mobile @@ -1 +1 @@ -Subproject commit 2164e3d572a8f1cd270006404de3d10b2f625edb +Subproject commit d306057cd45745b56ec0ed7791382c75c44ac3ad From 6dd86a4bde04c8e54c354ccc0d36447da0b6e064 Mon Sep 17 00:00:00 2001 From: Dratwas Date: Tue, 10 Sep 2019 16:53:24 +0200 Subject: [PATCH 09/15] update gutenberg ref --- libs/gutenberg-mobile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/gutenberg-mobile b/libs/gutenberg-mobile index d306057cd457..8147c57bcfce 160000 --- a/libs/gutenberg-mobile +++ b/libs/gutenberg-mobile @@ -1 +1 @@ -Subproject commit d306057cd45745b56ec0ed7791382c75c44ac3ad +Subproject commit 8147c57bcfce8213d65404b42c5064a2d6542e9d From 8d2867edca7d35f661d1f418e558a00bfb23ed9c Mon Sep 17 00:00:00 2001 From: Dratwas Date: Mon, 16 Sep 2019 16:49:24 +0200 Subject: [PATCH 10/15] update gutenberg ref --- libs/gutenberg-mobile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/gutenberg-mobile b/libs/gutenberg-mobile index 8147c57bcfce..a6f1d7ef3b64 160000 --- a/libs/gutenberg-mobile +++ b/libs/gutenberg-mobile @@ -1 +1 @@ -Subproject commit 8147c57bcfce8213d65404b42c5064a2d6542e9d +Subproject commit a6f1d7ef3b64afed81ba937fea1d855acd8a6cc5 From 7717bb25c3880c094cf9cfe19fd6f01d834ae96d Mon Sep 17 00:00:00 2001 From: Dratwas Date: Wed, 25 Sep 2019 09:50:54 +0200 Subject: [PATCH 11/15] fix indentation --- .../java/org/wordpress/android/ui/posts/EditPostActivity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java b/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java index eca00b972240..e07d97046a85 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java @@ -2832,7 +2832,7 @@ public void run() { runOnUiThread(new Runnable() { @Override public void run() { - addMediaVisualEditor(mediaUri, path); + addMediaVisualEditor(mediaUri, path); } }); } From 7418599c7eda1dfa4f39defabb1c9a393b5bc432 Mon Sep 17 00:00:00 2001 From: Dratwas Date: Wed, 25 Sep 2019 11:28:41 +0200 Subject: [PATCH 12/15] fix if condition --- .../java/org/wordpress/android/ui/posts/EditPostActivity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java b/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java index e07d97046a85..7cd6d33e6776 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java @@ -2820,7 +2820,7 @@ private void postProcessMedia(final Uri mediaUri, final String path, final boole mediaMap.put(path, mediaFile); } mFinishedUploads++; - if (mUriList.size() != mFinishedUploads) { + if (mUriList.size() == mFinishedUploads) { runOnUiThread(new Runnable() { @Override public void run() { From d6d8e7a12a7672735c5e2d854c4194f4b7c609f1 Mon Sep 17 00:00:00 2001 From: Dratwas Date: Wed, 2 Oct 2019 13:06:51 +0200 Subject: [PATCH 13/15] update gutenberg-mobile --- libs/gutenberg-mobile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/gutenberg-mobile b/libs/gutenberg-mobile index 7671b26a8634..af39e760a5ea 160000 --- a/libs/gutenberg-mobile +++ b/libs/gutenberg-mobile @@ -1 +1 @@ -Subproject commit 7671b26a8634430fccfc2509f847dc0ecfc05050 +Subproject commit af39e760a5ea5db90c32f5f3942779fd615624fe From b5b94949e3c959525c99ca1971026112bad89319 Mon Sep 17 00:00:00 2001 From: Dratwas Date: Wed, 2 Oct 2019 13:25:10 +0200 Subject: [PATCH 14/15] review related changes --- .../android/ui/posts/EditPostActivity.java | 27 +++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java b/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java index c1e6a8273b93..32bb24c5140a 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java @@ -1217,10 +1217,10 @@ public void onPhotoPickerIconClicked(@NonNull PhotoPickerIcon icon, boolean allo launchVideoCamera(); break; case ANDROID_CHOOSE_PHOTO: - launchPictureLibrary(allowMultipleSelection); + launchPictureLibrary(); break; case ANDROID_CHOOSE_VIDEO: - launchVideoLibrary(allowMultipleSelection); + launchVideoLibrary(); break; case WP_MEDIA: ActivityLauncher.viewMediaPickerForResult(this, mSite, MediaBrowserType.EDITOR_PICKER); @@ -1789,12 +1789,12 @@ private void onUploadProgress(MediaModel media, float progress) { } } - private void launchPictureLibrary(boolean allowMultipleSelection) { - WPMediaUtils.launchPictureLibrary(this, allowMultipleSelection); + private void launchPictureLibrary() { + WPMediaUtils.launchPictureLibrary(this, mAllowMultipleSelection); } - private void launchVideoLibrary(boolean allowMultipleSelection) { - WPMediaUtils.launchVideoLibrary(this, allowMultipleSelection); + private void launchVideoLibrary() { + WPMediaUtils.launchVideoLibrary(this, mAllowMultipleSelection); } private void launchVideoCamera() { @@ -2523,23 +2523,22 @@ private boolean addExistingMediaToEditor(@NonNull AddExistingdMediaSource source return true; } - private boolean addExistingMediaToEditor(@NonNull AddExistingdMediaSource source, List mediaIdList) { + private void addExistingMediaToEditor(@NonNull AddExistingdMediaSource source, List mediaIdList) { ArrayMap mediaMap = new ArrayMap<>(); for (Long mediaId : mediaIdList) { MediaModel media = mMediaStore.getSiteMediaWithId(mSite, mediaId); if (media == null) { AppLog.w(T.MEDIA, "Cannot add null media to post"); - return false; - } - trackAddMediaEvent(source, media); + } else { + trackAddMediaEvent(source, media); - MediaFile mediaFile = FluxCUtils.mediaFileFromMediaModel(media); - String urlToUse = TextUtils.isEmpty(media.getUrl()) ? media.getFilePath() : media.getUrl(); + MediaFile mediaFile = FluxCUtils.mediaFileFromMediaModel(media); + String urlToUse = TextUtils.isEmpty(media.getUrl()) ? media.getFilePath() : media.getUrl(); - mediaMap.put(urlToUse, mediaFile); + mediaMap.put(urlToUse, mediaFile); + } } mEditorFragment.appendMediaFiles(mediaMap); - return true; } private class LoadPostContentTask extends AsyncTask { From 27c32af6ac4e7d78b1e483c257437fc354b7b2d3 Mon Sep 17 00:00:00 2001 From: Matthew Kevins Date: Wed, 2 Oct 2019 23:29:36 +1000 Subject: [PATCH 15/15] Update gutenberg-mobile reference --- libs/gutenberg-mobile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/gutenberg-mobile b/libs/gutenberg-mobile index af39e760a5ea..b8e8fe1f6b43 160000 --- a/libs/gutenberg-mobile +++ b/libs/gutenberg-mobile @@ -1 +1 @@ -Subproject commit af39e760a5ea5db90c32f5f3942779fd615624fe +Subproject commit b8e8fe1f6b438b5cfcc9a9bf86d23616969eeff5