diff --git a/.circleci/config.yml b/.circleci/config.yml
index f1bce12e8af9..6e4101d54ba2 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -19,38 +19,33 @@ commands:
- run:
name: Setup gradle.properties
command: cp gradle.properties-example gradle.properties
- yarn-install:
+ npm-install:
steps:
- restore_cache:
- name: Restore Yarn Cache
+ name: Restore NPM Cache
keys:
- - yarn-i18n-v4-cache-v{{ .Environment.CACHE_TRIGGER_VERSION }}-job-{{ .Environment.CIRCLE_JOB }}-{{ checksum "libs/gutenberg-mobile/yarn.lock" }}
+ - npm-i18n-v1-cache-v{{ .Environment.CACHE_TRIGGER_VERSION }}-job-{{ .Environment.CIRCLE_JOB }}-{{ checksum "libs/gutenberg-mobile/package-lock.json" }}
- run:
- name: Yarn Install
+ name: NPM Install
working_directory: libs/gutenberg-mobile
- command: yarn install --frozen-lockfile --prefer-offline --network-concurrency 1
+ command: npm ci --prefer-offline
- save_cache:
- name: Save Yarn Cache
- key: yarn-i18n-v4-cache-v{{ .Environment.CACHE_TRIGGER_VERSION }}-job-{{ .Environment.CIRCLE_JOB }}-{{ checksum "libs/gutenberg-mobile/yarn.lock" }}
+ name: Save NPM Cache
+ key: npm-i18n-v1-cache-v{{ .Environment.CACHE_TRIGGER_VERSION }}-job-{{ .Environment.CIRCLE_JOB }}-{{ checksum "libs/gutenberg-mobile/package-lock.json" }}
paths:
- - libs/gutenberg-mobile/node_modules
+ - ~/.npm
- libs/gutenberg-mobile/i18n-cache/data
checkout-submodules:
steps:
- run:
name: Checkout submodules
- command: git submodule update --init --recursive
- checkout-gutenberg-mobile-submodule-only:
+ command: git submodule update --init --recursive --depth 1
+ npm-bundle-android:
steps:
- run:
- name: Checkout gutenberg-mobile submodule (no recursive)
- command: git submodule update --init
- yarn-bundle-android:
- steps:
- - run:
- name: Yarn bundle Android
+ name: Npm bundle Android
working_directory: libs/gutenberg-mobile
- command: yarn bundle:android
+ command: npm run bundle:android
save-gutenberg-bundle-cache:
steps:
- run:
@@ -62,7 +57,7 @@ commands:
name: Cache JS Bundle
key: android-js-bundle-{{ checksum "gutenberg_submodule_hash" }}
paths:
- - libs/gutenberg-mobile/react-native-gutenberg-bridge/android/build/assets/index.android.bundle
+ - libs/gutenberg-mobile/gutenberg/packages/react-native-bridge/android/build/assets/index.android.bundle
restore-gutenberg-bundle-cache:
steps:
- run:
@@ -85,21 +80,21 @@ jobs:
- run:
name: Abort If JS Bundle Exists
command: |
- if [ -f "libs/gutenberg-mobile/react-native-gutenberg-bridge/android/build/assets/index.android.bundle" ]; then
+ if [ -f "libs/gutenberg-mobile/gutenberg/packages/react-native-bridge/android/build/assets/index.android.bundle" ]; then
echo "Gutenberg-Mobile bundle already in cache, no need to create a new one."
circleci-agent step halt
else
echo "Gutenberg-Mobile bundle not found in cache. Proceeding to generate new bundle"
fi
- checkout-submodules
- - yarn-install
- - yarn-bundle-android
+ - npm-install
+ - npm-bundle-android
- run:
name: Ensure assets folder exists
- command: mkdir -p libs/gutenberg-mobile/react-native-gutenberg-bridge/android/build/assets
+ command: mkdir -p libs/gutenberg-mobile/gutenberg/packages/react-native-bridge/android/build/assets
- run:
name: Move bundle to assets folder
- command: mv libs/gutenberg-mobile/bundle/android/App.js libs/gutenberg-mobile/react-native-gutenberg-bridge/android/build/assets/index.android.bundle
+ command: mv libs/gutenberg-mobile/bundle/android/App.js libs/gutenberg-mobile/gutenberg/packages/react-native-bridge/android/build/assets/index.android.bundle
- save-gutenberg-bundle-cache
test:
executor:
@@ -107,15 +102,15 @@ jobs:
api-version: "28"
steps:
- git/shallow-checkout
- - checkout-gutenberg-mobile-submodule-only
+ - checkout-submodules
- android/restore-gradle-cache
- copy-gradle-properties
- restore-gutenberg-bundle-cache
- run:
name: Ensure assets folder exists
- command: mkdir -p libs/gutenberg-mobile/react-native-gutenberg-bridge/android/src/main/assets
+ command: mkdir -p libs/gutenberg-mobile/gutenberg/packages/react-native-bridge/android/src/main/assets
- attach_workspace:
- at: libs/gutenberg-mobile/react-native-gutenberg-bridge/android/src/main/assets
+ at: libs/gutenberg-mobile/gutenberg/packages/react-native-bridge/android/src/main/assets
- run:
name: Test WordPress
environment:
@@ -134,15 +129,15 @@ jobs:
api-version: "28"
steps:
- git/shallow-checkout
- - checkout-gutenberg-mobile-submodule-only
+ - checkout-submodules
- android/restore-gradle-cache
- copy-gradle-properties
- restore-gutenberg-bundle-cache
- run:
name: Ensure assets folder exists
- command: mkdir -p libs/gutenberg-mobile/react-native-gutenberg-bridge/android/src/main/assets
+ command: mkdir -p libs/gutenberg-mobile/gutenberg/packages/react-native-bridge/android/src/main/assets
- attach_workspace:
- at: libs/gutenberg-mobile/react-native-gutenberg-bridge/android/src/main/assets
+ at: libs/gutenberg-mobile/gutenberg/packages/react-native-bridge/android/src/main/assets
- run:
name: Checkstyle
environment:
@@ -177,7 +172,7 @@ jobs:
api-version: "28"
steps:
- git/shallow-checkout
- - checkout-gutenberg-mobile-submodule-only
+ - checkout-submodules
- bundle-install/bundle-install:
cache_key_prefix: installable-build
- run:
@@ -187,9 +182,9 @@ jobs:
- restore-gutenberg-bundle-cache
- run:
name: Ensure assets folder exists
- command: mkdir -p libs/gutenberg-mobile/react-native-gutenberg-bridge/android/src/main/assets
+ command: mkdir -p libs/gutenberg-mobile/gutenberg/packages/react-native-bridge/android/src/main/assets
- attach_workspace:
- at: libs/gutenberg-mobile/react-native-gutenberg-bridge/android/src/main/assets
+ at: libs/gutenberg-mobile/gutenberg/packages/react-native-bridge/android/src/main/assets
- run:
name: Build APK
environment:
@@ -226,15 +221,15 @@ jobs:
api-version: "28"
steps:
- git/shallow-checkout
- - checkout-gutenberg-mobile-submodule-only
+ - checkout-submodules
- android/restore-gradle-cache
- copy-gradle-properties
- restore-gutenberg-bundle-cache
- run:
name: Ensure assets folder exists
- command: mkdir -p libs/gutenberg-mobile/react-native-gutenberg-bridge/android/src/main/assets
+ command: mkdir -p libs/gutenberg-mobile/gutenberg/packages/react-native-bridge/android/src/main/assets
- attach_workspace:
- at: libs/gutenberg-mobile/react-native-gutenberg-bridge/android/src/main/assets
+ at: libs/gutenberg-mobile/gutenberg/packages/react-native-bridge/android/src/main/assets
- run:
name: Build
environment:
@@ -269,15 +264,15 @@ jobs:
api-version: "28"
steps:
- git/shallow-checkout
- - checkout-gutenberg-mobile-submodule-only
+ - checkout-submodules
- android/restore-gradle-cache
- copy-gradle-properties
- restore-gutenberg-bundle-cache
- run:
name: Ensure assets folder exists
- command: mkdir -p libs/gutenberg-mobile/react-native-gutenberg-bridge/android/src/main/assets
+ command: mkdir -p libs/gutenberg-mobile/gutenberg/packages/react-native-bridge/android/src/main/assets
- attach_workspace:
- at: libs/gutenberg-mobile/react-native-gutenberg-bridge/android/src/main/assets
+ at: libs/gutenberg-mobile/gutenberg/packages/react-native-bridge/android/src/main/assets
- run:
name: Build
environment:
@@ -301,7 +296,7 @@ jobs:
- image: circleci/ruby:2.6.4
steps:
- git/shallow-checkout
- - checkout-gutenberg-mobile-submodule-only
+ - checkout-submodules
- run:
name: Install bundler
command: gem install bundler --version 2.0.2
@@ -318,7 +313,7 @@ jobs:
APP_VERSION_PREFIX: << pipeline.parameters.translation_review_lang_id >>
steps:
- git/shallow-checkout
- - checkout-gutenberg-mobile-submodule-only
+ - checkout-submodules
- bundle-install/bundle-install:
cache_key_prefix: installable-build
- run:
diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index 584b610a7d82..692b4987ec24 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -1,7 +1,6 @@
15.2
-----
* [**] Fixes tons of rendering issues in Reader post detail by changing the technical solution (shared CSS file).
-
* [**] Block editor: Display content metrics information (blocks, words, characters count).
* [**] Block Editor: Adds editor support for theme defined colors and theme defined gradients on cover and button blocks.
* [**] Block Editor: Add support allowing Cover Block video uploads to complete after the editor has closed
diff --git a/WordPress/build.gradle b/WordPress/build.gradle
index 55ecd1939061..160a8563fc2c 100644
--- a/WordPress/build.gradle
+++ b/WordPress/build.gradle
@@ -150,6 +150,9 @@ android {
exclude '**/libjscexecutor.so'
exclude '**/libhermes-inspector.so'
exclude '**/libhermes-executor-debug.so'
+
+ pickFirst 'META-INF/-no-jdk.kotlin_module'
+
}
bundle {
diff --git a/WordPress/lint-baseline.xml b/WordPress/lint-baseline.xml
index 42c2fd629297..023d9ff9aabc 100644
--- a/WordPress/lint-baseline.xml
+++ b/WordPress/lint-baseline.xml
@@ -57,7 +57,7 @@
errorLine1=" view.setPadding("
errorLine2=" ^">
@@ -3927,7 +3927,7 @@
errorLine1=" Layout.BREAK_STRATEGY_SIMPLE : Layout.BREAK_STRATEGY_HIGH_QUALITY;"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -3943,7 +3943,7 @@
errorLine1=" Layout.BREAK_STRATEGY_SIMPLE : Layout.BREAK_STRATEGY_HIGH_QUALITY;"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -3959,7 +3959,7 @@
errorLine1=" view.setJustificationMode(Layout.JUSTIFICATION_MODE_INTER_WORD);"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -3975,7 +3975,7 @@
errorLine1=" view.setJustificationMode(Layout.JUSTIFICATION_MODE_NONE);"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -3991,7 +3991,7 @@
errorLine1=" classpath 'com.android.tools.build:gradle:3.4.2'"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -4007,7 +4007,7 @@
errorLine1=" implementation 'androidx.appcompat:appcompat:1.0.0'"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -4023,7 +4023,7 @@
errorLine1=" implementation 'androidx.appcompat:appcompat:1.0.0'"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -4039,7 +4039,7 @@
errorLine1=" implementation 'androidx.recyclerview:recyclerview:1.0.0'"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -4055,7 +4055,7 @@
errorLine1=" @ReactProp(name = PROP_TEXT)"
errorLine2=" ~~~~~~~~~">
@@ -4071,7 +4071,7 @@
errorLine1=" private HashMap<Integer, Media> mMediaToAddAfterMounting = new HashMap<>();"
errorLine2=" ~~~~~~~~~~~~~~~">
@@ -4087,7 +4087,7 @@
url="http://developer.android.com/design/style/iconography.html"
urls="http://developer.android.com/design/style/iconography.html">
+ file="../libs/gutenberg-mobile/gutenberg/packages/react-native-aztec/android/src/main/res/drawable-hdpi/ic_launcher.png"/>
+ file="../libs/gutenberg-mobile/gutenberg/packages/react-native-aztec/android/src/main/res/drawable-mdpi/ic_launcher.png"/>
+ file="../libs/gutenberg-mobile/gutenberg/packages/react-native-aztec/android/src/main/res/drawable-xhdpi/ic_launcher.png"/>
+ file="../libs/gutenberg-mobile/gutenberg/packages/react-native-aztec/android/src/main/res/drawable-xxhdpi/ic_launcher.png"/>
@@ -4159,7 +4159,7 @@
errorLine1=" (int) update.getPaddingLeft(),"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
@@ -4175,7 +4175,7 @@
errorLine1=" (int) update.getPaddingRight(),"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
diff --git a/WordPress/src/main/res/values/strings.xml b/WordPress/src/main/res/values/strings.xml
index 9f95ed410c4c..4c785a556a48 100644
--- a/WordPress/src/main/res/values/strings.xml
+++ b/WordPress/src/main/res/values/strings.xml
@@ -2874,6 +2874,7 @@
Current value is %s
CUSTOMIZE
+ Customize Gradient
Dismiss
Don’t cry because it’s over, smile because it happened.
@@ -2896,6 +2897,8 @@
Double tap to select a video
Double tap to select an image
Double tap to select layout
+
+ Double tap to select the option
Double tap to toggle setting
Double tap to undo last change
@@ -2916,6 +2919,8 @@ translators: sample content for "Portfolio" page template
translators: sample content for "Services" page template
translators: sample content for "Team" page template -->
Get in Touch
+ Go back
+ Gradient Type
Help icon
Here is the panel content!
Hide keyboard
@@ -2965,10 +2970,14 @@ translators: sample content for "Services" page template -->
My post status info
My pre publish panel
Navigate Up
+ Navigates to custom color picker
+ Navigates to customize the gradient
+ Navigates to the previous content sheet
No application can handle this request. Please install a Web browser.
Number of columns
Only show excerpt
Open Block Actions Menu
+ Open link in a browser
Open Settings
Page break block. %s
diff --git a/build.gradle b/build.gradle
index bdda38b5009c..6bca6f2a9292 100644
--- a/build.gradle
+++ b/build.gradle
@@ -55,7 +55,7 @@ allprojects {
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
- url "$rootDir/libs/gutenberg-mobile/node_modules/react-native/android"
+ url "$rootDir/libs/gutenberg-mobile/gutenberg/node_modules/react-native/android"
}
} else {
maven { url "https://dl.bintray.com/wordpress-mobile/react-native-mirror/" }
diff --git a/libs/editor/WordPressEditor/build.gradle b/libs/editor/WordPressEditor/build.gradle
index 82b331424e77..552088701691 100644
--- a/libs/editor/WordPressEditor/build.gradle
+++ b/libs/editor/WordPressEditor/build.gradle
@@ -75,7 +75,7 @@ dependencies {
api ("com.github.wordpress-mobile.WordPress-Aztec-Android:wordpress-shortcodes:$aztecVersion")
api ("com.github.wordpress-mobile.WordPress-Aztec-Android:wordpress-comments:$aztecVersion")
- implementation (project(':react-native-gutenberg-bridge')) {
+ implementation (project(':@wordpress_react-native-bridge')) {
exclude group: 'com.squareup.okhttp3'
exclude group: "com.android.volley"
exclude group: 'com.google.code.findbugs'
diff --git a/libs/gutenberg-mobile b/libs/gutenberg-mobile
index a6e1740addf5..e9a657960994 160000
--- a/libs/gutenberg-mobile
+++ b/libs/gutenberg-mobile
@@ -1 +1 @@
-Subproject commit a6e1740addf5db29c9c49f9314a21ad0bb2beebb
+Subproject commit e9a657960994994abcdb1923a3717da59f3b03f2
diff --git a/settings.gradle b/settings.gradle
index 72261d027571..c87add6a1d37 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -11,25 +11,25 @@ include ':libs:WordPressAnnotations'
include ':WordPressMocks'
project(':WordPressMocks').projectDir = new File(rootProject.projectDir, properties.getOrDefault('wp.wordpress_mocks_path', 'libs/mocks') + '/WordPressMocks')
-include ':react-native-aztec'
-project(':react-native-aztec').projectDir = new File(rootProject.projectDir, 'libs/gutenberg-mobile/react-native-aztec/android')
+include ':@wordpress_react-native-aztec'
+project(':@wordpress_react-native-aztec').projectDir = new File(rootProject.projectDir, 'libs/gutenberg-mobile/gutenberg/packages/react-native-aztec/android')
-include ':react-native-gutenberg-bridge'
-project(':react-native-gutenberg-bridge').projectDir = new File(rootProject.projectDir, 'libs/gutenberg-mobile/react-native-gutenberg-bridge/android')
+include ':@wordpress_react-native-bridge'
+project(':@wordpress_react-native-bridge').projectDir = new File(rootProject.projectDir, 'libs/gutenberg-mobile/gutenberg/packages/react-native-bridge/android')
if (properties.getOrDefault('wp.BUILD_GUTENBERG_FROM_SOURCE', false).toBoolean()) {
include ':react-native-linear-gradient'
- project(':react-native-linear-gradient').projectDir = new File(rootProject.projectDir, 'libs/gutenberg-mobile/node_modules/react-native-linear-gradient/android')
+ project(':react-native-linear-gradient').projectDir = new File(rootProject.projectDir, 'libs/gutenberg-mobile/gutenberg/node_modules/react-native-linear-gradient/android')
include ':react-native-svg'
- project(':react-native-svg').projectDir = new File(rootProject.projectDir, 'libs/gutenberg-mobile/node_modules/react-native-svg/android')
+ project(':react-native-svg').projectDir = new File(rootProject.projectDir, 'libs/gutenberg-mobile/gutenberg/node_modules/react-native-svg/android')
include ':react-native-aztec'
- project(':react-native-aztec').projectDir = new File(rootProject.projectDir, 'libs/gutenberg-mobile/react-native-aztec/android')
- include ':react-native-recyclerview-list'
- project(':react-native-recyclerview-list').projectDir = new File(rootProject.projectDir, 'libs/gutenberg-mobile/node_modules/react-native-recyclerview-list/android')
+ project(':react-native-aztec').projectDir = new File(rootProject.projectDir, 'libs/gutenberg-mobile/gutenberg/packages/react-native-aztec/android')
include ':react-native-gutenberg-bridge'
- project(':react-native-gutenberg-bridge').projectDir = new File(rootProject.projectDir, 'libs/gutenberg-mobile/react-native-gutenberg-bridge/android')
+ project(':react-native-gutenberg-bridge').projectDir = new File(rootProject.projectDir, 'libs/gutenberg-mobile/gutenberg/packages/react-native-bridge/android')
include ':react-native-video'
- project(':react-native-video').projectDir = new File(rootProject.projectDir, 'libs/gutenberg-mobile/node_modules/react-native-video/android-exoplayer')
+ project(':react-native-video').projectDir = new File(rootProject.projectDir, 'libs/gutenberg-mobile/gutenberg/node_modules/react-native-video/android-exoplayer')
include ':@react-native-community_slider'
- project(':@react-native-community_slider').projectDir = new File(rootProject.projectDir, 'libs/gutenberg-mobile/node_modules/@react-native-community/slider/src/android')
+ project(':@react-native-community_slider').projectDir = new File(rootProject.projectDir, 'libs/gutenberg-mobile/gutenberg/node_modules/@react-native-community/slider/src/android')
+ include ':react-native-get-random-values'
+ project(':react-native-get-random-values').projectDir = new File(rootProject.projectDir, 'libs/gutenberg-mobile/gutenberg/node_modules/react-native-get-random-values/android')
}