wordpress-mobile / AztecEditor-Android

A reusable native Android rich text editor component.
Mozilla Public License 2.0
675 stars 112 forks source link

Avoid creating loading drawables when there are no images/videos to load #983

Closed mchowning closed 2 years ago

mchowning commented 2 years ago

Improves performance by only creating the placeholder drawables for images and videos when there are images or videos, instead of doing it every time we call fromHtml. This makes a big difference in performance when there are a lot of AztecText views on the screen at once (i.e., in Gutenberg-Mobile).

Before this change, scrolling from the top to the bottom of a Gutenberg post containing 500 paragraph blocks could cause the device to allocate and deallocate over a gigabyte of data to create VectorDrawables and Bitmaps for image and video placeholders for every block. After this change, there is no memory allocated or deallocated for that purpose when there are no image or video spans in the HTML passed to Aztec.

Please read the PR description in the WPAndroid repo for more information.

Test

  1. Verify that the Aztec demo app still works fine
  2. Verify that Gutenberg still works fine via the tests described in the WPAndroid PR

Make sure strings will be translated:

mchowning commented 2 years ago

👋 @planarvoid and @AmandaRiu ! I don't think there should be any issues, but would either of you want to take a look at this change and let me know if you have any concerns from a Day One perspective? 🙇