diff --git a/WordPress/build.gradle b/WordPress/build.gradle index fe8a2304e74d..9b74606de5bd 100644 --- a/WordPress/build.gradle +++ b/WordPress/build.gradle @@ -62,12 +62,10 @@ android { } // Gutenberg's dependency - react-native-video is using - // Java API 1.8 so we need this when building from source - if (rootProject.ext.buildGutenbergFromSource) { - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - } + // Java API 1.8 + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 } flavorDimensions "buildType" diff --git a/WordPress/src/main/java/org/wordpress/android/ui/sitecreation/domains/SiteCreationDomainsViewModel.kt b/WordPress/src/main/java/org/wordpress/android/ui/sitecreation/domains/SiteCreationDomainsViewModel.kt index 826891d82798..4696404527cf 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/sitecreation/domains/SiteCreationDomainsViewModel.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/sitecreation/domains/SiteCreationDomainsViewModel.kt @@ -57,6 +57,7 @@ class SiteCreationDomainsViewModel @Inject constructor( get() = bgDispatcher + job private var isStarted = false private var segmentId by Delegates.notNull() + private var siteTitle: String? = null private val _uiState: MutableLiveData = MutableLiveData() val uiState: LiveData = _uiState @@ -92,6 +93,7 @@ class SiteCreationDomainsViewModel @Inject constructor( return } this.segmentId = segmentId + this.siteTitle = siteTitle isStarted = true tracker.trackDomainsAccessed() // isNullOrBlank not smart-casting for some reason.. @@ -119,7 +121,12 @@ class SiteCreationDomainsViewModel @Inject constructor( } fun updateQuery(query: String) { - updateQueryInternal(UserQuery(query)) + val siteTitle: String? = this.siteTitle + if (query.isBlank() && !siteTitle.isNullOrBlank()) { + updateQueryInternal(TitleQuery(siteTitle)) + } else { + updateQueryInternal(UserQuery(query)) + } } private fun updateQueryInternal(query: DomainSuggestionsQuery?) { diff --git a/WordPress/src/test/java/org/wordpress/android/ui/sitecreation/domains/SiteCreationDomainsViewModelTest.kt b/WordPress/src/test/java/org/wordpress/android/ui/sitecreation/domains/SiteCreationDomainsViewModelTest.kt index fc9635e4a603..cb564e184ca7 100644 --- a/WordPress/src/test/java/org/wordpress/android/ui/sitecreation/domains/SiteCreationDomainsViewModelTest.kt +++ b/WordPress/src/test/java/org/wordpress/android/ui/sitecreation/domains/SiteCreationDomainsViewModelTest.kt @@ -3,6 +3,7 @@ package org.wordpress.android.ui.sitecreation.domains import androidx.arch.core.executor.testing.InstantTaskExecutorRule import androidx.lifecycle.Observer import com.nhaarman.mockitokotlin2.firstValue +import com.nhaarman.mockitokotlin2.lastValue import com.nhaarman.mockitokotlin2.secondValue import com.nhaarman.mockitokotlin2.thirdValue import com.nhaarman.mockitokotlin2.times @@ -193,6 +194,34 @@ class SiteCreationDomainsViewModelTest { ) } + /** + * Verifies the UI state after the user enters an empty query (presses clear button) with a non-empty site title + * which results in multiple domain suggestions. + */ + @Test + fun verifyClearQueryWithNonEmptyTitleUiStateAfterResponseWithMultipleResults() = testWithSuccessResponse { + viewModel.start(MULTI_RESULT_DOMAIN_FETCH_QUERY.first, SEGMENT_ID) + viewModel.updateQuery(MULTI_RESULT_DOMAIN_FETCH_QUERY.first) + viewModel.updateQuery("") + val captor = ArgumentCaptor.forClass(DomainsUiState::class.java) + verify(uiStateObserver, times(6)).onChanged(captor.capture()) + verifyVisibleItemsContentUiState(captor.lastValue, false, 20) + } + + /** + * Verifies the UI state after the user enters an empty query (presses clear button) with an empty site title + * which results in initial UI state + */ + @Test + fun verifyClearQueryWithEmptyTitleInitialState() = testWithSuccessResponse { + viewModel.start(null, SEGMENT_ID) + viewModel.updateQuery(MULTI_RESULT_DOMAIN_FETCH_QUERY.first) + viewModel.updateQuery("") + val captor = ArgumentCaptor.forClass(DomainsUiState::class.java) + verify(uiStateObserver, times(4)).onChanged(captor.capture()) + verifyInitialContentUiState(captor.lastValue) + } + /** * Verifies that help button is properly propagated. */ diff --git a/build.gradle b/build.gradle index 2f09710062ed..098fe7b6f6a0 100644 --- a/build.gradle +++ b/build.gradle @@ -48,7 +48,7 @@ allprojects { configurations.all { resolutionStrategy { - force 'org.webkit:android-jsc:r224109' + force 'org.webkit:android-jsc:r241213' } } diff --git a/libs/editor/WordPressEditor/build.gradle b/libs/editor/WordPressEditor/build.gradle index 617765bdb60c..2a6d01ff81f7 100644 --- a/libs/editor/WordPressEditor/build.gradle +++ b/libs/editor/WordPressEditor/build.gradle @@ -1,7 +1,7 @@ buildscript { ext { - aztecVersion = 'v1.3.27' + aztecVersion = 'v1.3.28' } repositories { diff --git a/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/GutenbergEditorFragment.java b/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/GutenbergEditorFragment.java index afab3d1f8ce1..d40ad3633989 100644 --- a/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/GutenbergEditorFragment.java +++ b/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/GutenbergEditorFragment.java @@ -32,7 +32,6 @@ import androidx.lifecycle.LiveData; import com.android.volley.toolbox.ImageLoader; -import com.facebook.react.bridge.ReadableArray; import org.wordpress.android.util.AppLog; import org.wordpress.android.util.AppLog.T; @@ -271,7 +270,7 @@ public void onQueryCurrentProgressForUploadingMedia() { }, new OnEditorMountListener() { @Override - public void onEditorDidMount(ReadableArray unsupportedBlocks) { + public void onEditorDidMount(ArrayList unsupportedBlocks) { mEditorDidMount = true; mEditorFragmentListener.onEditorFragmentContentReady(unsupportedBlocks.size() > 0); diff --git a/libs/gutenberg-mobile b/libs/gutenberg-mobile index 5ec7042deef5..ec73e52948d4 160000 --- a/libs/gutenberg-mobile +++ b/libs/gutenberg-mobile @@ -1 +1 @@ -Subproject commit 5ec7042deef5a31618ff47c0ca5d8c5c4ae4bab7 +Subproject commit ec73e52948d46b8abe5707a295590be64920f395