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

Editor - Move Undo/Redo to the header #18705

Merged
merged 22 commits into from
Jul 11, 2023
Merged

Conversation

geriux
Copy link
Contributor

@geriux geriux commented Jun 27, 2023

Related PRs:

This PR adds new undo/redo buttons in the navigation bar when the editor is opened, it also updates the existing menu icon.

Screenshots

Light mode Dark mode
Landscape Light mode Landscape Dark mode
RTL Languages
Tablet Portrait Light mode Tablet Portrait Dark mode
Tablet Landscape Light mode Tablet Landscape Dark mode

To test

  • Install the build
  • Create a new post
  • Add a few blocks/text
  • Tap on the new undo/redo buttons in the navigation bar
  • Expect the content to change accordingly depending on the button you've tapped

Bonus testing: follow these test cases.

Regression Notes

  1. Potential unintended areas of impact
    Post publishing

  2. What I did to test those areas of impact (or what existing automated tests I relied on)
    Rely on current tests and manual testing

  3. What automated tests I added (or what prevented me from doing so)
    Added new tests for testing the new undo/redo buttons in the navigation bar.

PR submission checklist:

  • I have completed the Regression Notes.
  • I have considered adding accessibility improvements for my changes.
  • I have considered if this change warrants user-facing release notes and have added them to RELEASE-NOTES.txt if necessary.

UI Changes testing checklist:

  • Portrait and landscape orientations.
  • Light and dark modes.
  • Fonts: Larger, smaller and bold text.
  • High contrast.
  • Talkback.
  • Languages with large words or with letters/accents not frequently used in English.
  • Right-to-left languages. (Even if translation isn’t complete, formatting should still respect the right-to-left layout)
  • Large and small screen sizes. (Tablet and smaller phones)
  • Multi-tasking: Split screen and Pop-up view. (Android 10 or higher)

@wpmobilebot
Copy link
Contributor

wpmobilebot commented Jun 27, 2023

WordPress📲 You can test the changes from this Pull Request in WordPress by scanning the QR code below to install the corresponding build.
App NameWordPress WordPress
FlavorJalapeno
Build TypeDebug
Versionpr18705-4375c4f
Commit4375c4f
Direct Downloadwordpress-prototype-build-pr18705-4375c4f.apk
Note: Google Login is not supported on these builds.

@wpmobilebot
Copy link
Contributor

wpmobilebot commented Jun 27, 2023

Jetpack📲 You can test the changes from this Pull Request in Jetpack by scanning the QR code below to install the corresponding build.
App NameJetpack Jetpack
FlavorJalapeno
Build TypeDebug
Versionpr18705-4375c4f
Commit4375c4f
Direct Downloadjetpack-prototype-build-pr18705-4375c4f.apk
Note: Google Login is not supported on these builds.

@geriux geriux added this to the 22.8 milestone Jun 29, 2023
@geriux geriux force-pushed the gutenberg/move-undo-redo-buttons branch from a774d94 to ace80c9 Compare June 29, 2023 16:38
@geriux geriux marked this pull request as ready for review July 3, 2023 15:04
@geriux geriux requested a review from a team as a code owner July 3, 2023 15:04
Copy link
Contributor

@tiagomar tiagomar left a comment

Choose a reason for hiding this comment

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

Hey @geriux, let me start by saying that I only reviewed the UI Tests related changes, so a review from other engineer is still needed.

I've left a couple of comments but the one about avoiding duplication is the only thing I think we should address before merging to trunk.

Thanks for adding the tests! 🙇

Copy link
Contributor

@thomashorta thomashorta left a comment

Choose a reason for hiding this comment

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

Hey @geriux, thanks for the changes! 🙇

I found some improvement opportunities in the code to make it achieve better readability, and performance, and be more in line with some guidelines and expectations. Those points were mostly related to resource usage, menu options setup, and toolbar customization.

As we discussed earlier today, I will go ahead and push a few commits adjusting the code instead of adding several comments, as that will probably be more productive.

Feel free to ping me to discuss the changes as well.

Thanks again!

PS: I didn't touch @tiagomar requests so that will probably still be pending.

@geriux geriux modified the milestones: 22.8, 22.9 Jul 6, 2023
@geriux geriux requested a review from tiagomar July 6, 2023 10:18
@geriux
Copy link
Contributor Author

geriux commented Jul 6, 2023

As we discussed earlier today, I will go ahead and push a few commits adjusting the code instead of adding several comments, as that will probably be more productive.

Hey @thomashorta ! Thank you so much for that! It is working well! One thing I noticed and I was wondering if you would have any ideas, when switching the device to landscape or for example changing to dark/light mode with the editor opened, the undo/redo buttons go back to their initial state (disabled) I double checked and it happened with the initial changes as well. Do you by any chance know why this is happening? 🤔 I'll keep investigating to see if I find a solution.

@thomashorta
Copy link
Contributor

One thing I noticed and I was wondering if you would have any ideas, when switching the device to landscape or for example changing to dark/light mode with the editor opened, the undo/redo buttons go back to their initial state (disabled) I double checked and it happened with the initial changes as well. Do you by any chance know why this is happening? 🤔 I'll keep investigating to see if I find a solution.

I noticed that as well and thought it was a limitation from the editor itself since the undo/redo state is controlled by the editor (onToggleUndo/Redo). I tried a very naive fix by simply restoring the boolean state (using the stateKeyRedo you had previously created inside onRestoreInstanceState) but that didn't seem to work as it seemed like onToggleUndo and onToggleRedo were called with isDisabled = true.

Do you know if the underlying editor is saving the edit stack state in those configuration change scenarios? For instance using onSaveInstanceState and onRestoreInstanceState bundles to save and reload the stack or other non-lifecycle bound storing mechanism.

@geriux
Copy link
Contributor Author

geriux commented Jul 6, 2023

It looks like this works, @thomashorta what do you think about adding this?

index 4bd98d58cc..95a6d44a06 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
@@ -308,6 +308,8 @@ public class EditPostActivity extends LocaleAwareActivity implements
     private static final String STATE_KEY_EDITOR_SESSION_DATA = "stateKeyEditorSessionData";
     private static final String STATE_KEY_GUTENBERG_IS_SHOWN = "stateKeyGutenbergIsShown";
     private static final String STATE_KEY_MEDIA_CAPTURE_PATH = "stateKeyMediaCapturePath";
+    private static final String STATE_KEY_UNDO = "stateKeyUndo";
+    private static final String STATE_KEY_REDO = "stateKeyRedo";
 
     private static final int PAGE_CONTENT = 0;
     private static final int PAGE_SETTINGS = 1;
@@ -1100,6 +1102,8 @@ public class EditPostActivity extends LocaleAwareActivity implements
         outState.putBoolean(STATE_KEY_IS_NEW_POST, mIsNewPost);
         outState.putBoolean(STATE_KEY_IS_PHOTO_PICKER_VISIBLE, mEditorPhotoPicker.isPhotoPickerShowing());
         outState.putBoolean(STATE_KEY_HTML_MODE_ON, mHtmlModeMenuStateOn);
+        outState.putBoolean(STATE_KEY_UNDO, mMenuHasUndo);
+        outState.putBoolean(STATE_KEY_REDO, mMenuHasRedo);
         outState.putSerializable(WordPress.SITE, mSite);
         outState.putParcelable(STATE_KEY_REVISION, mRevision);
 
@@ -1124,6 +1128,8 @@ public class EditPostActivity extends LocaleAwareActivity implements
         super.onRestoreInstanceState(savedInstanceState);
 
         mHtmlModeMenuStateOn = savedInstanceState.getBoolean(STATE_KEY_HTML_MODE_ON);
+        mMenuHasUndo = savedInstanceState.getBoolean(STATE_KEY_UNDO);
+        mMenuHasRedo = savedInstanceState.getBoolean(STATE_KEY_REDO);
         if (savedInstanceState.getBoolean(STATE_KEY_IS_PHOTO_PICKER_VISIBLE, false)) {
             mEditorPhotoPicker.showPhotoPicker(mSite);
         }

Copy link
Contributor

@tiagomar tiagomar left a comment

Choose a reason for hiding this comment

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

Thanks for considering the suggestions! 🙇
The changes look good from a UI Test perspective.

@thomashorta
Copy link
Contributor

It looks like this works, @thomashorta what do you think about adding this?

This looks great. I added that before but I just realized I tested a more extreme scenario (system-initiated process death) and not the more common configuration changes 🤦‍♂️ . It makes total sense to me to add what you suggested. Thanks for looking into it! 🙇

About the system-initiate process death, it is a tougher scenario and I think it's not that problematic to lose undo/redo state in that case since it's not very likely that someone will keep the app open in the editor screen in the background for long enough that system kills it (which is usually when that occurs).

@geriux
Copy link
Contributor Author

geriux commented Jul 6, 2023

This looks great. I added that before but I just realized I tested a more extreme scenario (system-initiated process death) and not the more common configuration changes 🤦‍♂️ . It makes total sense to me to add what you suggested. Thanks for looking into it! 🙇

No worries, I'll add that patch then 🚀 thank you!

About the system-initiate process death, it is a tougher scenario and I think it's not that problematic to lose undo/redo state in that case since it's not very likely that someone will keep the app open in the editor screen in the background for long enough that system kills it (which is usually when that occurs).

Good to know! And I agree 👍

@geriux geriux self-assigned this Jul 6, 2023
Copy link
Contributor

@thomashorta thomashorta left a comment

Choose a reason for hiding this comment

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

The code here looks good to me and things are working as expected.

Thanks @geriux for the PR and changes!

I am approving it, but I added a comment regarding the dependency version, please make sure this PR points to Gutenberg Mobile's trunk before merging.

build.gradle Outdated Show resolved Hide resolved
@wpmobilebot
Copy link
Contributor

Found 1 violations:

The PR caused the following dependency changes:

 \--- project :libs:editor
-     \--- org.wordpress-mobile.gutenberg-mobile:react-native-gutenberg-bridge:v1.99.0
-          +--- com.facebook.fresco:animated-gif:2.0.0
-          |    +--- com.parse.bolts:bolts-tasks:1.4.0
-          |    +--- com.facebook.soloader:soloader:0.6.0 -> 0.10.4 (*)
-          |    +--- com.facebook.fresco:fbcore:2.0.0 -> 2.5.0
-          |    \--- com.facebook.fresco:animated-base:2.0.0
-          |         +--- com.facebook.fresco:fbcore:2.0.0 -> 2.5.0
-          |         +--- com.facebook.fresco:imagepipeline-base:2.0.0 -> 2.5.0 (*)
-          |         +--- com.facebook.fresco:imagepipeline:2.0.0 -> 2.5.0 (*)
-          |         +--- com.facebook.fresco:animated-drawable:2.0.0
-          |         |    +--- com.facebook.fresco:imagepipeline:2.0.0 -> 2.5.0 (*)
-          |         |    +--- com.facebook.fresco:drawee:2.0.0 -> 2.5.0 (*)
-          |         |    \--- com.facebook.fresco:fbcore:2.0.0 -> 2.5.0
-          |         \--- com.parse.bolts:bolts-tasks:1.4.0
-          +--- com.google.android.material:material:1.2.1 -> 1.9.0 (*)
-          +--- com.github.wordpress-mobile:react-native-video:5.2.0-wp-6
-          |    +--- com.google.android.exoplayer:exoplayer:2.13.3
-          |    |    +--- com.google.android.exoplayer:exoplayer-core:2.13.3
-          |    |    |    +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*)
-          |    |    |    +--- com.google.android.exoplayer:exoplayer-common:2.13.3
-          |    |    |    |    +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*)
-          |    |    |    |    \--- com.google.guava:guava:27.1-android
-          |    |    |    |         +--- com.google.guava:failureaccess:1.0.1
-          |    |    |    |         \--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
-          |    |    |    \--- com.google.android.exoplayer:exoplayer-extractor:2.13.3
-          |    |    |         +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*)
-          |    |    |         \--- com.google.android.exoplayer:exoplayer-common:2.13.3 (*)
-          |    |    +--- com.google.android.exoplayer:exoplayer-dash:2.13.3
-          |    |    |    +--- com.google.android.exoplayer:exoplayer-core:2.13.3 (*)
-          |    |    |    \--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*)
-          |    |    +--- com.google.android.exoplayer:exoplayer-hls:2.13.3
-          |    |    |    +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*)
-          |    |    |    \--- com.google.android.exoplayer:exoplayer-core:2.13.3 (*)
-          |    |    +--- com.google.android.exoplayer:exoplayer-smoothstreaming:2.13.3
-          |    |    |    +--- com.google.android.exoplayer:exoplayer-core:2.13.3 (*)
-          |    |    |    \--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*)
-          |    |    +--- com.google.android.exoplayer:exoplayer-transformer:2.13.3
-          |    |    |    +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*)
-          |    |    |    \--- com.google.android.exoplayer:exoplayer-core:2.13.3 (*)
-          |    |    \--- com.google.android.exoplayer:exoplayer-ui:2.13.3
-          |    |         +--- com.google.android.exoplayer:exoplayer-core:2.13.3 (*)
-          |    |         +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*)
-          |    |         +--- androidx.recyclerview:recyclerview:1.1.0 -> 1.3.0 (*)
-          |    |         \--- androidx.media:media:1.2.1 (*)
-          |    +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*)
-          |    +--- androidx.core:core:1.1.0 -> 1.10.0 (*)
-          |    +--- androidx.media:media:1.1.0 -> 1.2.1 (*)
-          |    +--- com.google.android.exoplayer:extension-okhttp:2.13.3
-          |    |    +--- com.google.android.exoplayer:exoplayer-common:2.13.3 (*)
-          |    |    +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*)
-          |    |    \--- com.squareup.okhttp3:okhttp:3.12.11 -> 4.10.0 (*)
-          |    \--- com.squareup.okhttp3:okhttp:${OKHTTP_VERSION} -> 4.10.0 (*)
-          +--- com.github.wordpress-mobile:react-native-linear-gradient:2.5.6-wp-4
-          +--- com.github.wordpress-mobile:react-native-slider:3.0.2-wp-4
-          +--- com.github.wordpress-mobile:react-native-reanimated:2.9.1-wp-4
-          +--- com.github.wordpress-mobile:react-native-prompt-android:1.0.0-wp-4
-          |    \--- androidx.appcompat:appcompat:1.0.0 -> 1.6.1 (*)
-          +--- com.github.wordpress-mobile:react-native-gesture-handler:2.3.2-wp-3
-          |    +--- com.github.wordpress-mobile:react-native-reanimated:2.4.1-wp-1 -> 2.9.1-wp-4
-          |    +--- androidx.appcompat:appcompat:1.2.0 -> 1.6.1 (*)
-          |    +--- androidx.core:core-ktx:1.6.0 -> 1.10.0 (*)
-          |    \--- org.jetbrains.kotlin:kotlin-stdlib:1.5.20 -> 1.8.21 (*)
-          +--- org.wordpress-mobile.react-native-libraries.v2:react-native-get-random-values:1.4.0
-          +--- org.wordpress-mobile.react-native-libraries.v2:react-native-safe-area-context:3.2.0
-          +--- org.wordpress-mobile.react-native-libraries.v2:react-native-screens:2.9.0
-          |    +--- androidx.appcompat:appcompat:1.1.0 -> 1.6.1 (*)
-          |    +--- androidx.fragment:fragment:1.2.1 -> 1.5.7 (*)
-          |    +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0 (*)
-          |    +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 -> 1.1.0 (*)
-          |    \--- com.google.android.material:material:1.1.0 -> 1.9.0 (*)
-          +--- org.wordpress-mobile.react-native-libraries.v2:react-native-svg:9.13.6
-          +--- org.wordpress-mobile.react-native-libraries.v2:react-native-webview:11.26.1
-          |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.0 -> 1.8.21 (*)
-          |    \--- androidx.webkit:webkit:1.4.0
-          |         +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*)
-          |         \--- androidx.core:core:1.1.0 -> 1.10.0 (*)
-          +--- org.wordpress-mobile.react-native-libraries.v2:react-native-masked-view:0.2.6
-          +--- org.wordpress-mobile.react-native-libraries.v2:react-native-clipboard:1.9.0
-          +--- org.wordpress-mobile.react-native-libraries.v2:react-native-fast-image:8.5.11
-          |    +--- com.github.bumptech.glide:glide:4.12.0 -> 4.15.1
-          |    |    +--- com.github.bumptech.glide:gifdecoder:4.15.1
-          |    |    |    \--- androidx.annotation:annotation:1.3.0 -> 1.6.0 (*)
-          |    |    +--- com.github.bumptech.glide:disklrucache:4.15.1
-          |    |    +--- com.github.bumptech.glide:annotations:4.15.1
-          |    |    +--- androidx.fragment:fragment:1.3.6 -> 1.5.7 (*)
-          |    |    +--- androidx.vectordrawable:vectordrawable-animated:1.1.0 (*)
-          |    |    +--- androidx.exifinterface:exifinterface:1.3.3 -> 1.3.6 (*)
-          |    |    \--- androidx.tracing:tracing:1.0.0 (*)
-          |    \--- com.github.bumptech.glide:okhttp3-integration:4.12.0
-          |         +--- com.github.bumptech.glide:glide:4.12.0 -> 4.15.1 (*)
-          |         +--- com.squareup.okhttp3:okhttp:3.9.1 -> 4.10.0 (*)
-          |         \--- androidx.annotation:annotation:1.0.0 -> 1.6.0 (*)
-          +--- org.wordpress-mobile.gutenberg-mobile:react-native-aztec:v1.99.0
-          |    +--- androidx.legacy:legacy-support-v4:1.0.0 (*)
-          |    +--- androidx.gridlayout:gridlayout:1.0.0
-          |    |    +--- androidx.core:core:1.0.0 -> 1.10.0 (*)
-          |    |    \--- androidx.legacy:legacy-support-core-ui:1.0.0 (*)
-          |    +--- androidx.cardview:cardview:1.0.0 (*)
-          |    +--- androidx.appcompat:appcompat:1.2.0 -> 1.6.1 (*)
-          |    +--- androidx.recyclerview:recyclerview:1.1.0 -> 1.3.0 (*)
-          |    +--- org.wordpress:aztec:v1.6.4 (*)
-          |    +--- org.wordpress.aztec:wordpress-shortcodes:v1.6.4 (*)
-          |    +--- org.wordpress.aztec:wordpress-comments:v1.6.4 (*)
-          |    +--- org.wordpress.aztec:glide-loader:v1.6.4
-          |    |    +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.10 -> 1.8.21 (*)
-          |    |    +--- org.wordpress:aztec:v1.6.4 (*)
-          |    |    \--- com.github.bumptech.glide:glide:4.10.0 -> 4.15.1 (*)
-          |    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.10 -> 1.8.21 (*)
-          \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.10 -> 1.8.21 (*)
+     \--- org.wordpress-mobile.gutenberg-mobile:react-native-gutenberg-bridge:v1.100.0-alpha1
+          +--- com.facebook.fresco:animated-gif:2.0.0
+          |    +--- com.parse.bolts:bolts-tasks:1.4.0
+          |    +--- com.facebook.soloader:soloader:0.6.0 -> 0.10.4 (*)
+          |    +--- com.facebook.fresco:fbcore:2.0.0 -> 2.5.0
+          |    \--- com.facebook.fresco:animated-base:2.0.0
+          |         +--- com.facebook.fresco:fbcore:2.0.0 -> 2.5.0
+          |         +--- com.facebook.fresco:imagepipeline-base:2.0.0 -> 2.5.0 (*)
+          |         +--- com.facebook.fresco:imagepipeline:2.0.0 -> 2.5.0 (*)
+          |         +--- com.facebook.fresco:animated-drawable:2.0.0
+          |         |    +--- com.facebook.fresco:imagepipeline:2.0.0 -> 2.5.0 (*)
+          |         |    +--- com.facebook.fresco:drawee:2.0.0 -> 2.5.0 (*)
+          |         |    \--- com.facebook.fresco:fbcore:2.0.0 -> 2.5.0
+          |         \--- com.parse.bolts:bolts-tasks:1.4.0
+          +--- com.google.android.material:material:1.2.1 -> 1.9.0 (*)
+          +--- com.github.wordpress-mobile:react-native-video:5.2.0-wp-6
+          |    +--- com.google.android.exoplayer:exoplayer:2.13.3
+          |    |    +--- com.google.android.exoplayer:exoplayer-core:2.13.3
+          |    |    |    +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*)
+          |    |    |    +--- com.google.android.exoplayer:exoplayer-common:2.13.3
+          |    |    |    |    +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*)
+          |    |    |    |    \--- com.google.guava:guava:27.1-android
+          |    |    |    |         +--- com.google.guava:failureaccess:1.0.1
+          |    |    |    |         \--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
+          |    |    |    \--- com.google.android.exoplayer:exoplayer-extractor:2.13.3
+          |    |    |         +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*)
+          |    |    |         \--- com.google.android.exoplayer:exoplayer-common:2.13.3 (*)
+          |    |    +--- com.google.android.exoplayer:exoplayer-dash:2.13.3
+          |    |    |    +--- com.google.android.exoplayer:exoplayer-core:2.13.3 (*)
+          |    |    |    \--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*)
+          |    |    +--- com.google.android.exoplayer:exoplayer-hls:2.13.3
+          |    |    |    +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*)
+          |    |    |    \--- com.google.android.exoplayer:exoplayer-core:2.13.3 (*)
+          |    |    +--- com.google.android.exoplayer:exoplayer-smoothstreaming:2.13.3
+          |    |    |    +--- com.google.android.exoplayer:exoplayer-core:2.13.3 (*)
+          |    |    |    \--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*)
+          |    |    +--- com.google.android.exoplayer:exoplayer-transformer:2.13.3
+          |    |    |    +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*)
+          |    |    |    \--- com.google.android.exoplayer:exoplayer-core:2.13.3 (*)
+          |    |    \--- com.google.android.exoplayer:exoplayer-ui:2.13.3
+          |    |         +--- com.google.android.exoplayer:exoplayer-core:2.13.3 (*)
+          |    |         +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*)
+          |    |         +--- androidx.recyclerview:recyclerview:1.1.0 -> 1.3.0 (*)
+          |    |         \--- androidx.media:media:1.2.1 (*)
+          |    +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*)
+          |    +--- androidx.core:core:1.1.0 -> 1.10.0 (*)
+          |    +--- androidx.media:media:1.1.0 -> 1.2.1 (*)
+          |    +--- com.google.android.exoplayer:extension-okhttp:2.13.3
+          |    |    +--- com.google.android.exoplayer:exoplayer-common:2.13.3 (*)
+          |    |    +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*)
+          |    |    \--- com.squareup.okhttp3:okhttp:3.12.11 -> 4.10.0 (*)
+          |    \--- com.squareup.okhttp3:okhttp:${OKHTTP_VERSION} -> 4.10.0 (*)
+          +--- com.github.wordpress-mobile:react-native-linear-gradient:2.5.6-wp-4
+          +--- com.github.wordpress-mobile:react-native-slider:3.0.2-wp-4
+          +--- com.github.wordpress-mobile:react-native-reanimated:2.9.1-wp-4
+          +--- com.github.wordpress-mobile:react-native-prompt-android:1.0.0-wp-4
+          |    \--- androidx.appcompat:appcompat:1.0.0 -> 1.6.1 (*)
+          +--- com.github.wordpress-mobile:react-native-gesture-handler:2.3.2-wp-3
+          |    +--- com.github.wordpress-mobile:react-native-reanimated:2.4.1-wp-1 -> 2.9.1-wp-4
+          |    +--- androidx.appcompat:appcompat:1.2.0 -> 1.6.1 (*)
+          |    +--- androidx.core:core-ktx:1.6.0 -> 1.10.0 (*)
+          |    \--- org.jetbrains.kotlin:kotlin-stdlib:1.5.20 -> 1.8.21 (*)
+          +--- org.wordpress-mobile.react-native-libraries.v2:react-native-get-random-values:1.4.0
+          +--- org.wordpress-mobile.react-native-libraries.v2:react-native-safe-area-context:3.2.0
+          +--- org.wordpress-mobile.react-native-libraries.v2:react-native-screens:2.9.0
+          |    +--- androidx.appcompat:appcompat:1.1.0 -> 1.6.1 (*)
+          |    +--- androidx.fragment:fragment:1.2.1 -> 1.5.7 (*)
+          |    +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0 (*)
+          |    +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 -> 1.1.0 (*)
+          |    \--- com.google.android.material:material:1.1.0 -> 1.9.0 (*)
+          +--- org.wordpress-mobile.react-native-libraries.v2:react-native-svg:9.13.6
+          +--- org.wordpress-mobile.react-native-libraries.v2:react-native-webview:11.26.1
+          |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.0 -> 1.8.21 (*)
+          |    \--- androidx.webkit:webkit:1.4.0
+          |         +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*)
+          |         \--- androidx.core:core:1.1.0 -> 1.10.0 (*)
+          +--- org.wordpress-mobile.react-native-libraries.v2:react-native-masked-view:0.2.6
+          +--- org.wordpress-mobile.react-native-libraries.v2:react-native-clipboard:1.9.0
+          +--- org.wordpress-mobile.react-native-libraries.v2:react-native-fast-image:8.5.11
+          |    +--- com.github.bumptech.glide:glide:4.12.0 -> 4.15.1
+          |    |    +--- com.github.bumptech.glide:gifdecoder:4.15.1
+          |    |    |    \--- androidx.annotation:annotation:1.3.0 -> 1.6.0 (*)
+          |    |    +--- com.github.bumptech.glide:disklrucache:4.15.1
+          |    |    +--- com.github.bumptech.glide:annotations:4.15.1
+          |    |    +--- androidx.fragment:fragment:1.3.6 -> 1.5.7 (*)
+          |    |    +--- androidx.vectordrawable:vectordrawable-animated:1.1.0 (*)
+          |    |    +--- androidx.exifinterface:exifinterface:1.3.3 -> 1.3.6 (*)
+          |    |    \--- androidx.tracing:tracing:1.0.0 (*)
+          |    \--- com.github.bumptech.glide:okhttp3-integration:4.12.0
+          |         +--- com.github.bumptech.glide:glide:4.12.0 -> 4.15.1 (*)
+          |         +--- com.squareup.okhttp3:okhttp:3.9.1 -> 4.10.0 (*)
+          |         \--- androidx.annotation:annotation:1.0.0 -> 1.6.0 (*)
+          +--- org.wordpress-mobile.gutenberg-mobile:react-native-aztec:v1.100.0-alpha1
+          |    +--- androidx.legacy:legacy-support-v4:1.0.0 (*)
+          |    +--- androidx.gridlayout:gridlayout:1.0.0
+          |    |    +--- androidx.core:core:1.0.0 -> 1.10.0 (*)
+          |    |    \--- androidx.legacy:legacy-support-core-ui:1.0.0 (*)
+          |    +--- androidx.cardview:cardview:1.0.0 (*)
+          |    +--- androidx.appcompat:appcompat:1.2.0 -> 1.6.1 (*)
+          |    +--- androidx.recyclerview:recyclerview:1.1.0 -> 1.3.0 (*)
+          |    +--- org.wordpress:aztec:v1.6.4 (*)
+          |    +--- org.wordpress.aztec:wordpress-shortcodes:v1.6.4 (*)
+          |    +--- org.wordpress.aztec:wordpress-comments:v1.6.4 (*)
+          |    +--- org.wordpress.aztec:glide-loader:v1.6.4
+          |    |    +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.10 -> 1.8.21 (*)
+          |    |    +--- org.wordpress:aztec:v1.6.4 (*)
+          |    |    \--- com.github.bumptech.glide:glide:4.10.0 -> 4.15.1 (*)
+          |    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.10 -> 1.8.21 (*)
+          \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.10 -> 1.8.21 (*)

Please review and act accordingly

@geriux geriux merged commit 94c0c5e into trunk Jul 11, 2023
@geriux geriux deleted the gutenberg/move-undo-redo-buttons branch July 11, 2023 16:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Gutenberg Editing and display of Gutenberg blocks.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants