diff --git a/README.md b/README.md
index b3285c6c7a..1ddeaa7182 100644
--- a/README.md
+++ b/README.md
@@ -124,9 +124,20 @@ This project is set up to use [jest](https://facebook.github.io/jest/) for tests
This repository uses Appium to run UI tests. The tests live in `__device-tests__` and are written using Appium to run tests against simulators and real devices. To run these you'll need to check off a few things:
+### Set up
+
* When running the tests, you'll need to ensure the Metro bundler (`npm run start`) is not running.
* [Appium CLI](https://appium.io/docs/en/about-appium/getting-started/) installed and available globally. We also recommend using [appium-doctor](https://github.com/appium/appium-doctor) to ensure all of Appium's dependencies are good to go. You don't have to worry about starting the server yourself, the tests handle starting the server on port 4723, just be sure that the port is free or feel free to change the port number in the test file.
-* For iOS a simulator should automatically launch but for Android you'll need to have an emulator *with at least platform version 8.0* fired up and running.
+* For iOS a simulator should automatically launch but for Android you'll need to have an emulator fired up and running. The emulators must match the devices in Gutenberg's [caps.js](https://github.com/WordPress/gutenberg/blob/trunk/packages/react-native-editor/__device-tests__/helpers/caps.js) file.
+ * iOS: __iPhone 13, iOS 15.4__
+ * Android: __Google Pixel 3 XL GoogleAPI Emulator, Android 11__ _(Note: when creating the Pixel 3 XL emulator, ensure that "Enable Device Frame" is unchecked on the Verify Configuration screen.)_
+
+
+
+
+
+
+### Running the tests
Then, to run the UI tests on iOS:
diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index 8f1a744054..ca072816c3 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -1,5 +1,20 @@
Unreleased
---
+* [*] Rename "Reusable blocks" to "Synced patterns", aligning with the web editor. [https://github.com/wordpress-mobile/gutenberg-mobile/pull/5885]
+
+1.98.1
+---
+* [*] fix: Display heading level dropdown icons and labels [https://github.com/wordpress-mobile/gutenberg-mobile/pull/5911]
+
+1.98.0
+---
+* [*] Image block - Fix issue where in some cases the image doesn't display the right aspect ratio [https://github.com/wordpress-mobile/gutenberg-mobile/pull/5869]
+* [*] Fix cursor positioning when dictating text on iOS [https://github.com/WordPress/gutenberg/issues/51227]
+
+1.97.1
+---
+* [**] Fix crash when using the delete key to remove a single button [https://github.com/WordPress/gutenberg/pull/51435]
+* [*] Ensure text input field is not editable when Bottom sheet cell is disabled [https://github.com/WordPress/gutenberg/pull/51567]
1.97.0
---
diff --git a/bin/generate-podspecs.sh b/bin/generate-podspecs.sh
index 46e2d5c2cb..84cfc9833a 100755
--- a/bin/generate-podspecs.sh
+++ b/bin/generate-podspecs.sh
@@ -17,8 +17,8 @@ function warn_missing_tag_commit() {
}
# Change to the expected directory.
-cd "$( dirname "$0" )"
-cd ..
+pushd "$( dirname "$0" )" > /dev/null
+popd > /dev/null
WD=$(pwd)
echo "Working directory: $WD"
@@ -45,7 +45,7 @@ if [[ $PROMPT_RESPONSE_2 != "y" ]]; then
exit 1
fi
-mkdir $DEST
+mkdir "$DEST"
NODE_MODULES_DIR="gutenberg/node_modules"
@@ -74,7 +74,7 @@ do
echo "Generating podspec for $pod"
pod ipc spec "$podspec" > "$DEST/$pod.podspec.json"
-
+
# react-native-blur doesn't have a tag field in it's podspec
if [[ "$pod" == "react-native-blur" ]]; then
echo " ==> Patching $pod podspec"
@@ -84,7 +84,7 @@ do
jq '.source.tag = "v3.6.1" | .version = "3.6.1"' "$DEST/$pod.podspec.json" > "$TMP_RNBlurPodspec"
mv "$TMP_RNBlurPodspec" "$DEST/$pod.podspec.json"
fi
-
+
# Add warning to bottom
TMP_SPEC=$(mktemp)
jq '. + {"__WARNING!__": "This file is autogenerated by generate-podspecs.sh script. Do not modify manually. Re-run the script if necessary."}' "$DEST/$pod.podspec.json" > "$TMP_SPEC"
@@ -96,7 +96,7 @@ done
# Generate the React Native podspecs
# Change to the React Native directory to get relative paths for the RN podspecs
-cd "$NODE_MODULES_DIR/react-native"
+pushd "$NODE_MODULES_DIR/react-native" > /dev/null
RN_DIR="./"
SCRIPTS_PATH="./scripts/"
@@ -203,4 +203,14 @@ do
jq --arg COMMIT_HASH "$COMMIT_HASH" 'del(.script_phases) | del(.prepare_command) | del(.source.tag) | .source.git = "https://github.com/wordpress-mobile/gutenberg-mobile.git" | .source.commit = $COMMIT_HASH | .source.submodules = "true" | .source_files = "third-party-podspecs/FBReactNativeSpec/**/*.{c,h,m,mm,cpp}"' "$DEST/FBReactNativeSpec/FBReactNativeSpec.podspec.json" > "$TMP_FBReactNativeSpec"
mv "$TMP_FBReactNativeSpec" "$DEST/FBReactNativeSpec/FBReactNativeSpec.podspec.json"
fi
-done
\ No newline at end of file
+done
+popd > /dev/null
+
+# We are required to run this script twice to capture the correct target.
+# 0 is the value set during the first script run to generate the podspecs.
+if [[ "$COMMIT_HASH" != "0" ]]; then
+ echo 'Updating XCFramework Podfile.lock with these changes'
+ pushd ios-xcframework > /dev/null
+ bundle exec pod update
+ popd > /dev/null
+fi
diff --git a/bundle/android/strings.xml b/bundle/android/strings.xml
index 8b6af35a43..c4e8d67ab0 100644
--- a/bundle/android/strings.xml
+++ b/bundle/android/strings.xml
@@ -297,6 +297,7 @@ translators: %s: Select control button label e.g. "Button width" -->
Replace image or video
Replace video
Retry
+ Reusable
Rich text editing
diff --git a/bundle/ios/GutenbergNativeTranslations.swift b/bundle/ios/GutenbergNativeTranslations.swift
index 84da977be0..88bd59e731 100644
--- a/bundle/ios/GutenbergNativeTranslations.swift
+++ b/bundle/ios/GutenbergNativeTranslations.swift
@@ -272,6 +272,7 @@ private func dummy() {
_ = NSLocalizedString("Replace image or video", comment: "")
_ = NSLocalizedString("Replace video", comment: "")
_ = NSLocalizedString("Retry", comment: "")
+ _ = NSLocalizedString("Reusable", comment: "")
_ = NSLocalizedString("Rich text editing", comment: "")
_ = NSLocalizedString("Scrollable block menu closed.", comment: "")
_ = NSLocalizedString("Scrollable block menu opened. Select a block.", comment: "")
diff --git a/ios-xcframework/Podfile.lock b/ios-xcframework/Podfile.lock
index e5405707d0..085386f781 100644
--- a/ios-xcframework/Podfile.lock
+++ b/ios-xcframework/Podfile.lock
@@ -449,7 +449,7 @@ PODS:
- React-Core
- RNSVG (9.13.6):
- React-Core
- - RNTAztecView (1.97.0):
+ - RNTAztecView (1.98.0):
- React-Core
- WordPress-Aztec-iOS (~> 1.19.8)
- SDWebImage (5.11.1):
@@ -672,7 +672,7 @@ SPEC CHECKSUMS:
RNReanimated: afbb0e290008b5c3e3c673cf26e48bd48b8d5e1e
RNScreens: bd1f43d7dfcd435bc11d4ee5c60086717c45a113
RNSVG: 259ef12cbec2591a45fc7c5f09d7aa09e6692533
- RNTAztecView: 3b2782b67822bf3e2fb308f6a90ec888601508ce
+ RNTAztecView: 6362ed78bcf0c68a2a0e25b779a84ad7096c9ecf
SDWebImage: a7f831e1a65eb5e285e3fb046a23fcfbf08e696d
SDWebImageWebPCoder: 908b83b6adda48effe7667cd2b7f78c897e5111d
WordPress-Aztec-iOS: 7d11d598f14c82c727c08b56bd35fbeb7dafb504
diff --git a/package-lock.json b/package-lock.json
index 0f32142c35..bc0a0450d5 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "gutenberg-mobile",
- "version": "1.97.0",
+ "version": "1.98.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
diff --git a/package.json b/package.json
index 388b323b5c..765a9f4086 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "gutenberg-mobile",
- "version": "1.97.0",
+ "version": "1.98.0",
"private": true,
"config": {
"jsfiles": "./*.js src/*.js src/**/*.js src/**/**/*.js",
diff --git a/src/test/videopress/local-helpers/utils.js b/src/test/videopress/local-helpers/utils.js
index 15db83e3f2..8562dbef72 100644
--- a/src/test/videopress/local-helpers/utils.js
+++ b/src/test/videopress/local-helpers/utils.js
@@ -46,6 +46,8 @@ export const pressSettingInPanel = async ( screen, panel, setting ) => {
fireEvent.press( getByText( panel ) );
// Toggle the specified setting
+ // TODO: Determine the cause of state updates and explicitly wait for them,
+ // instead of wrapping firEvent in act.
await act( () => fireEvent.press( getByText( setting ) ) );
};