Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Android] Image block - upload multiple #24346

Merged
merged 5 commits into from
Nov 9, 2020

Conversation

mkevins
Copy link
Contributor

@mkevins mkevins commented Aug 4, 2020

Related PRs

gutenberg-mobile: wordpress-mobile/gutenberg-mobile#2530
WordPress-Android: wordpress-mobile/WordPress-Android#12591

Description

This PR is a first step towards resolving the Android part of this issue: wordpress-mobile/gutenberg-mobile#2255

Some background for context

Before multiple media uploading was available in the block editor, adding media did not allow multiple selection of images from the device, but for image block, multiple (already uploaded) images could be selected from the media library, and at one point in time, all but the first image of this selection would be discarded when confirming the selection. Behavior was added to allow appending these additional images as "sibling blocks".

As other media containing blocks were added, this behavior was restricted to Image blocks, since it wasn't expected that a Cover block or Media & Text block would have multiple respective Cover or Media & Text blocks appended in that scenario. Also, appending blocks would not be correct for Gallery block, where mutiple selected images should be included all in one block. A "multiple" flag was introduced to distinguish when multiple media items should be selected for a given flow, or only a single item. To preserve the behavior for image block which allowed selection of mutlple media library images to be appended at once, this flag has been ignored for that particular flow. I.e. when the multple flag is false for image block, the media library picker still allows multiple images to be selected.

In order to distinguish this behavior for the media library for blocks that don't respect the "multple" flag (currently only Image block), we currently utilize the mAppendsMultipleSelectedToSiblingBlocks flag. When this flag is set, then when the multiple flag is not set but multiple images are selected anyway (i.e. image block), the additional images will be appended as image blocks. Otherwise, the additional images will be discarded.

This PR enables multiple uploads for the image block by passing true as the multiple selection parameter for the media selection activity (the device picker), and setting the mAppendsMultipleSelectedToSiblingBlocks flag, which makes the uploading flow consistent with the media library flow for image block in allowing multiple image selection.

How has this been tested?

Test via: wordpress-mobile/gutenberg-mobile#2530 (comment)

Types of changes

New feature (non-breaking change which adds functionality)

Checklist:

  • My code is tested.
  • My code follows the WordPress code style.
  • My code follows the accessibility standards.
  • My code has proper inline documentation.
  • I've included developer documentation if appropriate.
  • I've updated all React Native files affected by any refactorings/renamings in this PR.

@mkevins mkevins added [Status] In Progress Tracking issues with work in progress [Feature] Media Anything that impacts the experience of managing media Mobile App - i.e. Android or iOS Native mobile impl of the block editor. (Note: used in scripts, ping mobile folks to change) [Block] Image Affects the Image Block labels Aug 4, 2020
@github-actions
Copy link

github-actions bot commented Aug 4, 2020

Size Change: 0 B

Total Size: 1.21 MB

ℹ️ View Unchanged
Filename Size Change
build/a11y/index.js 1.14 kB 0 B
build/annotations/index.js 3.78 kB 0 B
build/api-fetch/index.js 3.45 kB 0 B
build/autop/index.js 2.84 kB 0 B
build/blob/index.js 665 B 0 B
build/block-directory/index.js 8.72 kB 0 B
build/block-directory/style-rtl.css 943 B 0 B
build/block-directory/style.css 942 B 0 B
build/block-editor/index.js 133 kB 0 B
build/block-editor/style-rtl.css 11.2 kB 0 B
build/block-editor/style.css 11.2 kB 0 B
build/block-library/editor-rtl.css 8.96 kB 0 B
build/block-library/editor.css 8.96 kB 0 B
build/block-library/index.js 147 kB 0 B
build/block-library/style-rtl.css 8.03 kB 0 B
build/block-library/style.css 8.03 kB 0 B
build/block-library/theme-rtl.css 792 B 0 B
build/block-library/theme.css 793 B 0 B
build/block-serialization-default-parser/index.js 1.88 kB 0 B
build/block-serialization-spec-parser/index.js 3.1 kB 0 B
build/blocks/index.js 48.1 kB 0 B
build/components/index.js 172 kB 0 B
build/components/style-rtl.css 15.3 kB 0 B
build/components/style.css 15.3 kB 0 B
build/compose/index.js 9.8 kB 0 B
build/core-data/index.js 12.5 kB 0 B
build/data-controls/index.js 771 B 0 B
build/data/index.js 8.8 kB 0 B
build/date/index.js 31.8 kB 0 B
build/deprecated/index.js 769 B 0 B
build/dom-ready/index.js 571 B 0 B
build/dom/index.js 4.46 kB 0 B
build/edit-navigation/index.js 11.2 kB 0 B
build/edit-navigation/style-rtl.css 881 B 0 B
build/edit-navigation/style.css 885 B 0 B
build/edit-post/index.js 306 kB 0 B
build/edit-post/style-rtl.css 6.41 kB 0 B
build/edit-post/style.css 6.39 kB 0 B
build/edit-site/index.js 22.6 kB 0 B
build/edit-site/style-rtl.css 3.91 kB 0 B
build/edit-site/style.css 3.91 kB 0 B
build/edit-widgets/index.js 26.3 kB 0 B
build/edit-widgets/style-rtl.css 3.12 kB 0 B
build/edit-widgets/style.css 3.12 kB 0 B
build/editor/editor-styles-rtl.css 480 B 0 B
build/editor/editor-styles.css 482 B 0 B
build/editor/index.js 42.8 kB 0 B
build/editor/style-rtl.css 3.85 kB 0 B
build/editor/style.css 3.85 kB 0 B
build/element/index.js 4.65 kB 0 B
build/escape-html/index.js 735 B 0 B
build/format-library/index.js 6.92 kB 0 B
build/format-library/style-rtl.css 547 B 0 B
build/format-library/style.css 548 B 0 B
build/hooks/index.js 2.16 kB 0 B
build/html-entities/index.js 623 B 0 B
build/i18n/index.js 3.57 kB 0 B
build/is-shallow-equal/index.js 712 B 0 B
build/keyboard-shortcuts/index.js 2.52 kB 0 B
build/keycodes/index.js 1.94 kB 0 B
build/list-reusable-blocks/index.js 3.11 kB 0 B
build/list-reusable-blocks/style-rtl.css 476 B 0 B
build/list-reusable-blocks/style.css 476 B 0 B
build/media-utils/index.js 5.34 kB 0 B
build/notices/index.js 1.78 kB 0 B
build/nux/index.js 3.42 kB 0 B
build/nux/style-rtl.css 671 B 0 B
build/nux/style.css 668 B 0 B
build/plugins/index.js 2.56 kB 0 B
build/primitives/index.js 1.43 kB 0 B
build/priority-queue/index.js 791 B 0 B
build/redux-routine/index.js 2.85 kB 0 B
build/reusable-blocks/index.js 3.06 kB 0 B
build/rich-text/index.js 13.2 kB 0 B
build/server-side-render/index.js 2.77 kB 0 B
build/shortcode/index.js 1.69 kB 0 B
build/token-list/index.js 1.27 kB 0 B
build/url/index.js 4.06 kB 0 B
build/viewport/index.js 1.84 kB 0 B
build/warning/index.js 1.14 kB 0 B
build/wordcount/index.js 1.22 kB 0 B

compressed-size-action

@mkevins mkevins marked this pull request as ready for review August 6, 2020 08:21
@mkevins mkevins requested a review from geriux August 6, 2020 08:28
Copy link
Member

@geriux geriux left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! Nice work!

@mkevins mkevins merged commit f06dcd9 into master Nov 9, 2020
@mkevins mkevins deleted the rnmobile/try/image-block-upload-multiple branch November 9, 2020 00:47
@github-actions github-actions bot added this to the Gutenberg 9.4 milestone Nov 9, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Block] Image Affects the Image Block [Feature] Media Anything that impacts the experience of managing media Mobile App - i.e. Android or iOS Native mobile impl of the block editor. (Note: used in scripts, ping mobile folks to change) [Status] In Progress Tracking issues with work in progress
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants