diff --git a/WordPress/src/main/java/org/wordpress/android/ui/pages/PageItem.kt b/WordPress/src/main/java/org/wordpress/android/ui/pages/PageItem.kt index 754ca39319b1..052577a1e205 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/pages/PageItem.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/pages/PageItem.kt @@ -183,10 +183,10 @@ sealed class PageItem(open val type: Type) { data class Divider(val title: String = "") : PageItem(DIVIDER) data class Empty( - @StringRes val textResource: Int = R.string.empty_list_default, + @StringRes val titleResource: Int = R.string.empty_list_default, + @StringRes val subtitleResource: Int? = null, val isSearching: Boolean = false, - val isButtonVisible: Boolean = true, - val isImageVisible: Boolean = true + val isButtonVisible: Boolean = true ) : PageItem(EMPTY) object VirtualHomepage : PageItem(VIRTUAL_HOMEPAGE) { diff --git a/WordPress/src/main/java/org/wordpress/android/ui/pages/PageItemViewHolder.kt b/WordPress/src/main/java/org/wordpress/android/ui/pages/PageItemViewHolder.kt index 1722ab42aa21..d645df22ede0 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/pages/PageItemViewHolder.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/pages/PageItemViewHolder.kt @@ -342,7 +342,14 @@ sealed class PageItemViewHolder(internal val parent: ViewGroup, @LayoutRes layou @Suppress("DEPRECATION") override fun onBind(pageItem: PageItem) { (pageItem as Empty).apply { - emptyView.title.text = emptyView.resources.getString(pageItem.textResource) + emptyView.title.text = emptyView.resources.getString(pageItem.titleResource) + + pageItem.subtitleResource?.let { subtitleResource -> + emptyView.subtitle.text = emptyView.resources.getString(subtitleResource) + emptyView.subtitle.visibility = View.VISIBLE + } ?: run { + emptyView.subtitle.visibility = View.GONE + } if (pageItem.isButtonVisible) { emptyView.button.setOnClickListener { @@ -353,8 +360,6 @@ sealed class PageItemViewHolder(internal val parent: ViewGroup, @LayoutRes layou emptyView.button.visibility = View.GONE } - emptyView.image.visibility = if (pageItem.isImageVisible) View.VISIBLE else View.GONE - emptyView.updateLayoutForSearch(pageItem.isSearching, 0) } } diff --git a/WordPress/src/main/java/org/wordpress/android/viewmodel/pages/PageListViewModel.kt b/WordPress/src/main/java/org/wordpress/android/viewmodel/pages/PageListViewModel.kt index 7dc1f6a3e97f..97b9650d4f6b 100644 --- a/WordPress/src/main/java/org/wordpress/android/viewmodel/pages/PageListViewModel.kt +++ b/WordPress/src/main/java/org/wordpress/android/viewmodel/pages/PageListViewModel.kt @@ -261,15 +261,19 @@ class PageListViewModel @Inject constructor( _pages.postValue( listOf( Empty( - R.string.pages_fetching, + titleResource = R.string.pages_fetching, isButtonVisible = false, - isImageVisible = false ) ) ) } else { when (listType) { - PUBLISHED -> _pages.postValue(listOf(Empty(R.string.pages_empty_published))) + PUBLISHED -> _pages.postValue(listOf( + Empty( + titleResource = R.string.pages_empty_published, + subtitleResource = R.string.pages_empty_published_subtitle + ) + )) SCHEDULED -> _pages.postValue(listOf(Empty(R.string.pages_empty_scheduled))) DRAFTS -> _pages.postValue(listOf(Empty(R.string.pages_empty_drafts))) TRASHED -> _pages.postValue(listOf(Empty(R.string.pages_empty_trashed))) diff --git a/WordPress/src/main/java/org/wordpress/android/viewmodel/pages/PageParentSearchViewModel.kt b/WordPress/src/main/java/org/wordpress/android/viewmodel/pages/PageParentSearchViewModel.kt index fc68326edf4e..3830ede2710b 100644 --- a/WordPress/src/main/java/org/wordpress/android/viewmodel/pages/PageParentSearchViewModel.kt +++ b/WordPress/src/main/java/org/wordpress/android/viewmodel/pages/PageParentSearchViewModel.kt @@ -41,7 +41,9 @@ class PageParentSearchViewModel if (pageItems != null) { loadFoundPages(pageItems) } else { - _searchResult.value = listOf(Empty(R.string.pages_search_suggestion, true)) + _searchResult.value = listOf( + Empty(titleResource = R.string.pages_search_suggestion, isSearching = true) + ) } } @@ -53,7 +55,9 @@ class PageParentSearchViewModel if (pageItems.isNotEmpty()) { _searchResult.value = pageItems } else { - _searchResult.value = listOf(Empty(R.string.pages_empty_search_result, true)) + _searchResult.value = listOf( + Empty(titleResource = R.string.pages_empty_search_result, isSearching = true) + ) } } } diff --git a/WordPress/src/main/java/org/wordpress/android/viewmodel/pages/SearchListViewModel.kt b/WordPress/src/main/java/org/wordpress/android/viewmodel/pages/SearchListViewModel.kt index 9ef977756169..7c41df2ec997 100644 --- a/WordPress/src/main/java/org/wordpress/android/viewmodel/pages/SearchListViewModel.kt +++ b/WordPress/src/main/java/org/wordpress/android/viewmodel/pages/SearchListViewModel.kt @@ -64,7 +64,9 @@ class SearchListViewModel pagesViewModel.checkIfNewPageButtonShouldBeVisible() } else { - _searchResult.value = listOf(Empty(R.string.pages_search_suggestion, true)) + _searchResult.value = listOf( + Empty(titleResource = R.string.pages_search_suggestion, isSearching = true) + ) } } @@ -89,7 +91,9 @@ class SearchListViewModel } _searchResult.value = pageItems } else { - _searchResult.value = listOf(Empty(R.string.pages_empty_search_result, true)) + _searchResult.value = listOf( + Empty(titleResource = R.string.pages_empty_search_result, isSearching = true) + ) } } diff --git a/WordPress/src/main/res/drawable/img_illustration_pages_104dp.xml b/WordPress/src/main/res/drawable/img_illustration_pages_104dp.xml deleted file mode 100644 index 31df305ff9db..000000000000 --- a/WordPress/src/main/res/drawable/img_illustration_pages_104dp.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/WordPress/src/main/res/layout/page_empty_item.xml b/WordPress/src/main/res/layout/page_empty_item.xml index 0564a27ffc8d..29b691956e0c 100644 --- a/WordPress/src/main/res/layout/page_empty_item.xml +++ b/WordPress/src/main/res/layout/page_empty_item.xml @@ -9,7 +9,6 @@ android:layout_width="match_parent" android:layout_height="match_parent" app:aevButton="@string/pages_empty_list_button" - app:aevImage="@drawable/img_illustration_pages_104dp" app:aevTitle="@string/empty_list_default" /> diff --git a/WordPress/src/main/res/values/strings.xml b/WordPress/src/main/res/values/strings.xml index 7f873cbe5f1d..0a1987dd1c23 100644 --- a/WordPress/src/main/res/values/strings.xml +++ b/WordPress/src/main/res/values/strings.xml @@ -3597,7 +3597,8 @@ Delete Permanently No pages matching your search Search pages - You haven\'t published any pages yet + You haven\'t published any pages - yet! + Why not create one? You don\'t have any draft pages You don\'t have any scheduled pages You don\'t have any trashed pages diff --git a/WordPress/src/test/java/org/wordpress/android/viewmodel/pages/PageParentSearchViewModelTest.kt b/WordPress/src/test/java/org/wordpress/android/viewmodel/pages/PageParentSearchViewModelTest.kt index ad7e9537b9b5..c42a553b9fc1 100644 --- a/WordPress/src/test/java/org/wordpress/android/viewmodel/pages/PageParentSearchViewModelTest.kt +++ b/WordPress/src/test/java/org/wordpress/android/viewmodel/pages/PageParentSearchViewModelTest.kt @@ -38,14 +38,20 @@ class PageParentSearchViewModelTest : BaseUnitTest() { fun `show empty item on start`() { searchPages.value = null - assertThat(viewModel.searchResult.value).containsOnly(Empty(R.string.pages_search_suggestion, true)) + assertThat(viewModel.searchResult.value).containsOnly( + Empty(titleResource = R.string.pages_search_suggestion, isSearching = true) + ) } @Test fun `show no matches on empty search results`() { - searchPages.value = mutableListOf(Empty(R.string.pages_empty_search_result, false)) + searchPages.value = mutableListOf( + Empty(titleResource = R.string.pages_empty_search_result, isSearching = false) + ) - assertThat(viewModel.searchResult.value).containsOnly(Empty(R.string.pages_empty_search_result, false)) + assertThat(viewModel.searchResult.value).containsOnly( + Empty(titleResource = R.string.pages_empty_search_result, isSearching = false) + ) } @Test diff --git a/WordPress/src/test/java/org/wordpress/android/viewmodel/pages/SearchListViewModelTest.kt b/WordPress/src/test/java/org/wordpress/android/viewmodel/pages/SearchListViewModelTest.kt index 2955cfe2fe9f..c4919736bf1c 100644 --- a/WordPress/src/test/java/org/wordpress/android/viewmodel/pages/SearchListViewModelTest.kt +++ b/WordPress/src/test/java/org/wordpress/android/viewmodel/pages/SearchListViewModelTest.kt @@ -98,7 +98,9 @@ class SearchListViewModelTest : BaseUnitTest() { fun `show empty item on start`() { searchPages.value = null - assertThat(viewModel.searchResult.value).containsOnly(Empty(R.string.pages_search_suggestion, true)) + assertThat(viewModel.searchResult.value).containsOnly( + Empty(titleResource = R.string.pages_search_suggestion, isSearching = true) + ) } @Test