From 04d03e7b18508ce59f3cabe271aee8bdbb90bf48 Mon Sep 17 00:00:00 2001 From: Nick Bradbury Date: Mon, 7 Oct 2024 15:25:28 -0400 Subject: [PATCH 1/9] Changed redundant network messaging --- .../android/ui/mediapicker/loader/GifMediaDataSource.kt | 2 +- .../android/ui/mediapicker/loader/MediaLibraryDataSource.kt | 2 +- .../android/ui/mediapicker/loader/StockMediaDataSource.kt | 2 +- .../android/ui/selfhostedusers/SelfHostedUserComposables.kt | 2 +- WordPress/src/main/res/values/strings.xml | 1 + 5 files changed, 5 insertions(+), 4 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/mediapicker/loader/GifMediaDataSource.kt b/WordPress/src/main/java/org/wordpress/android/ui/mediapicker/loader/GifMediaDataSource.kt index f0b31b4027dd..6c1fe11be87e 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/mediapicker/loader/GifMediaDataSource.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/mediapicker/loader/GifMediaDataSource.kt @@ -40,7 +40,7 @@ class GifMediaDataSource if (!networkUtilsWrapper.isNetworkAvailable()) { return Failure( UiStringRes(R.string.no_network_title), - htmlSubtitle = UiStringRes(R.string.no_network_message), + htmlSubtitle = UiStringRes(R.string.no_network_subtitle), image = R.drawable.img_illustration_cloud_off_152dp, data = items ) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/mediapicker/loader/MediaLibraryDataSource.kt b/WordPress/src/main/java/org/wordpress/android/ui/mediapicker/loader/MediaLibraryDataSource.kt index 7009bda1d726..82fdad425a4a 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/mediapicker/loader/MediaLibraryDataSource.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/mediapicker/loader/MediaLibraryDataSource.kt @@ -60,7 +60,7 @@ class MediaLibraryDataSource( if (!networkUtilsWrapper.isNetworkAvailable()) { return Failure( UiStringRes(R.string.no_network_title), - htmlSubtitle = UiStringRes(R.string.no_network_message), + htmlSubtitle = UiStringRes(R.string.no_network_subtitle), image = R.drawable.img_illustration_cloud_off_152dp, data = if (loadMore) get(mediaTypes, filter) else listOf() ) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/mediapicker/loader/StockMediaDataSource.kt b/WordPress/src/main/java/org/wordpress/android/ui/mediapicker/loader/StockMediaDataSource.kt index fae06141a107..1336ea8a6905 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/mediapicker/loader/StockMediaDataSource.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/mediapicker/loader/StockMediaDataSource.kt @@ -33,7 +33,7 @@ class StockMediaDataSource if (!networkUtilsWrapper.isNetworkAvailable()) { return Failure( UiStringRes(R.string.no_network_title), - htmlSubtitle = UiStringRes(R.string.no_network_message), + htmlSubtitle = UiStringRes(R.string.no_network_subtitle), image = R.drawable.img_illustration_cloud_off_152dp, data = if (loadMore) get() else listOf() ) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/selfhostedusers/SelfHostedUserComposables.kt b/WordPress/src/main/java/org/wordpress/android/ui/selfhostedusers/SelfHostedUserComposables.kt index 7867ac4059c0..a7fe7031d98e 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/selfhostedusers/SelfHostedUserComposables.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/selfhostedusers/SelfHostedUserComposables.kt @@ -118,7 +118,7 @@ fun OfflineView() { MessageView( R.drawable.ic_wifi_off_24px, R.string.no_network_title, - R.string.no_network_message, + R.string.no_network_subtitle, ) } diff --git a/WordPress/src/main/res/values/strings.xml b/WordPress/src/main/res/values/strings.xml index 77acaf3371ea..76beef587ebf 100644 --- a/WordPress/src/main/res/values/strings.xml +++ b/WordPress/src/main/res/values/strings.xml @@ -11,6 +11,7 @@ site XMLRPC endpoint. The app needs that in order to communicate with your site. Contact your host to solve this problem. No network available + Try again after reconnecting There is no network available There was a problem handling the request. Please try again later. You have changes to posts that haven’t been uploaded to your site. Logging out now will delete those changes from your device. Log out anyway? From 0f42025a465dc5dd4142d818313e071b90221983 Mon Sep 17 00:00:00 2001 From: Nick Bradbury Date: Mon, 7 Oct 2024 15:53:46 -0400 Subject: [PATCH 2/9] Dropped secondary connection message --- .../android/ui/mediapicker/loader/GifMediaDataSource.kt | 3 +-- .../android/ui/mediapicker/loader/MediaLibraryDataSource.kt | 3 +-- .../android/ui/mediapicker/loader/StockMediaDataSource.kt | 3 +-- .../android/ui/selfhostedusers/SelfHostedUserComposables.kt | 5 ++--- WordPress/src/main/res/values/strings.xml | 1 - 5 files changed, 5 insertions(+), 10 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/mediapicker/loader/GifMediaDataSource.kt b/WordPress/src/main/java/org/wordpress/android/ui/mediapicker/loader/GifMediaDataSource.kt index 6c1fe11be87e..70f76a041e38 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/mediapicker/loader/GifMediaDataSource.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/mediapicker/loader/GifMediaDataSource.kt @@ -39,8 +39,7 @@ class GifMediaDataSource if (!networkUtilsWrapper.isNetworkAvailable()) { return Failure( - UiStringRes(R.string.no_network_title), - htmlSubtitle = UiStringRes(R.string.no_network_subtitle), + UiStringRes(R.string.no_network_message), image = R.drawable.img_illustration_cloud_off_152dp, data = items ) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/mediapicker/loader/MediaLibraryDataSource.kt b/WordPress/src/main/java/org/wordpress/android/ui/mediapicker/loader/MediaLibraryDataSource.kt index 82fdad425a4a..3ce8aa89a617 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/mediapicker/loader/MediaLibraryDataSource.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/mediapicker/loader/MediaLibraryDataSource.kt @@ -59,8 +59,7 @@ class MediaLibraryDataSource( ): MediaLoadingResult { if (!networkUtilsWrapper.isNetworkAvailable()) { return Failure( - UiStringRes(R.string.no_network_title), - htmlSubtitle = UiStringRes(R.string.no_network_subtitle), + UiStringRes(R.string.no_network_message), image = R.drawable.img_illustration_cloud_off_152dp, data = if (loadMore) get(mediaTypes, filter) else listOf() ) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/mediapicker/loader/StockMediaDataSource.kt b/WordPress/src/main/java/org/wordpress/android/ui/mediapicker/loader/StockMediaDataSource.kt index 1336ea8a6905..da12b4f70c22 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/mediapicker/loader/StockMediaDataSource.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/mediapicker/loader/StockMediaDataSource.kt @@ -32,8 +32,7 @@ class StockMediaDataSource ): MediaLoadingResult { if (!networkUtilsWrapper.isNetworkAvailable()) { return Failure( - UiStringRes(R.string.no_network_title), - htmlSubtitle = UiStringRes(R.string.no_network_subtitle), + UiStringRes(R.string.no_network_message), image = R.drawable.img_illustration_cloud_off_152dp, data = if (loadMore) get() else listOf() ) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/selfhostedusers/SelfHostedUserComposables.kt b/WordPress/src/main/java/org/wordpress/android/ui/selfhostedusers/SelfHostedUserComposables.kt index a7fe7031d98e..26432571e043 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/selfhostedusers/SelfHostedUserComposables.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/selfhostedusers/SelfHostedUserComposables.kt @@ -116,9 +116,8 @@ fun LargeAvatar(avatarUrl: String) { @Composable fun OfflineView() { MessageView( - R.drawable.ic_wifi_off_24px, - R.string.no_network_title, - R.string.no_network_subtitle, + R.drawable.img_illustration_cloud_off_152dp, + R.string.no_network_message, ) } diff --git a/WordPress/src/main/res/values/strings.xml b/WordPress/src/main/res/values/strings.xml index 76beef587ebf..77acaf3371ea 100644 --- a/WordPress/src/main/res/values/strings.xml +++ b/WordPress/src/main/res/values/strings.xml @@ -11,7 +11,6 @@ site XMLRPC endpoint. The app needs that in order to communicate with your site. Contact your host to solve this problem. No network available - Try again after reconnecting There is no network available There was a problem handling the request. Please try again later. You have changes to posts that haven’t been uploaded to your site. Logging out now will delete those changes from your device. Log out anyway? From 7bf86149b7139c094f507a219b9c27e819ed174e Mon Sep 17 00:00:00 2001 From: Nick Bradbury Date: Tue, 8 Oct 2024 05:47:21 -0400 Subject: [PATCH 3/9] First pass at Retry button for self-hosted users --- .../SelfHostedUserComposables.kt | 40 +++++++++++++++++-- .../SelfHostedUsersActivity.kt | 3 ++ .../selfhostedusers/SelfHostedUsersScreen.kt | 5 ++- .../SelfHostedUsersViewModel.kt | 8 ++++ 4 files changed, 51 insertions(+), 5 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/selfhostedusers/SelfHostedUserComposables.kt b/WordPress/src/main/java/org/wordpress/android/ui/selfhostedusers/SelfHostedUserComposables.kt index 26432571e043..35119427fd1c 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/selfhostedusers/SelfHostedUserComposables.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/selfhostedusers/SelfHostedUserComposables.kt @@ -6,6 +6,7 @@ import androidx.annotation.StringRes import androidx.compose.foundation.background import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.imePadding @@ -16,6 +17,8 @@ import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Close +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon import androidx.compose.material3.IconButton @@ -114,21 +117,28 @@ fun LargeAvatar(avatarUrl: String) { * A composable that displays a message when there is no network connection */ @Composable -fun OfflineView() { +fun OfflineView( + onRetryClick: (() -> Unit)? = null, +) { MessageView( R.drawable.img_illustration_cloud_off_152dp, R.string.no_network_message, + R.string.retry, + onButtonClick = onRetryClick ) } /** - * A composable that displays a title with an icon above it and an optional subtitle below it + * A composable that displays a title with an icon above it and an optional subtitle below it and an + * optional button below that */ @Composable fun MessageView( @DrawableRes iconRes: Int, @StringRes titleRes: Int, @StringRes subtitleRes: Int? = null, + @StringRes buttonRes: Int? = null, + onButtonClick: (() -> Unit)? = null, ) { Column( modifier = Modifier.fillMaxSize(), @@ -154,6 +164,26 @@ fun MessageView( color = MaterialTheme.colorScheme.onSurface, ) } + if (buttonRes != null && onButtonClick != null) { + Box( + contentAlignment = Alignment.Center, + ) { + Button( + modifier = Modifier.padding( + top = 48.dp + ), + onClick = onButtonClick, + colors = ButtonDefaults.buttonColors( + containerColor = MaterialTheme.colorScheme.primary, + contentColor = MaterialTheme.colorScheme.secondary, + ), + ) { + Text( + text = stringResource(R.string.retry).uppercase(), + ) + } + } + } } } @@ -213,12 +243,14 @@ fun ScreenWithTopBar( ) private fun OfflineScreenPreview() { val content: @Composable () -> Unit = @Composable { - OfflineView() + OfflineView( + onRetryClick = {} + ) } ScreenWithTopBar( title = "Title", content = content, onCloseClick = {}, - isScrollable = false + isScrollable = false, ) } diff --git a/WordPress/src/main/java/org/wordpress/android/ui/selfhostedusers/SelfHostedUsersActivity.kt b/WordPress/src/main/java/org/wordpress/android/ui/selfhostedusers/SelfHostedUsersActivity.kt index 29425a069574..4a625cad5837 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/selfhostedusers/SelfHostedUsersActivity.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/selfhostedusers/SelfHostedUsersActivity.kt @@ -50,6 +50,9 @@ class SelfHostedUsersActivity : LocaleAwareActivity() { }, onUserAvatarClick = { avatarUrl -> viewModel.onUserAvatarClick(avatarUrl) + }, + onRetryClick = { + viewModel.onRetryClick() } ) } diff --git a/WordPress/src/main/java/org/wordpress/android/ui/selfhostedusers/SelfHostedUsersScreen.kt b/WordPress/src/main/java/org/wordpress/android/ui/selfhostedusers/SelfHostedUsersScreen.kt index 9b252e56865a..228959805cd9 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/selfhostedusers/SelfHostedUsersScreen.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/selfhostedusers/SelfHostedUsersScreen.kt @@ -39,6 +39,7 @@ fun SelfHostedUsersScreen( onCloseClick: () -> Unit = {}, onUserClick: (UserWithEditContext) -> Unit = {}, onUserAvatarClick: (avatarUrl: String?) -> Unit = {}, + onRetryClick: () -> Unit = {}, ) { val state = uiState.collectAsState().value @@ -106,7 +107,9 @@ fun SelfHostedUsersScreen( } is SelfHostedUserState.Offline -> { - OfflineView() + OfflineView( + onRetryClick = onRetryClick + ) } } } diff --git a/WordPress/src/main/java/org/wordpress/android/ui/selfhostedusers/SelfHostedUsersViewModel.kt b/WordPress/src/main/java/org/wordpress/android/ui/selfhostedusers/SelfHostedUsersViewModel.kt index b2417f2bd1b6..5036d7241eb8 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/selfhostedusers/SelfHostedUsersViewModel.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/selfhostedusers/SelfHostedUsersViewModel.kt @@ -87,6 +87,14 @@ class SelfHostedUsersViewModel @Inject constructor( } } + /** + * Called when the retry button is clicked + */ + fun onRetryClick() { + _uiState.value = SelfHostedUserState.Loading + fetchUsers() + } + sealed class SelfHostedUserState { data object Loading : SelfHostedUserState() data object Offline : SelfHostedUserState() From b85ac653ed18105c8ee0263526fa10b86c4dcd0a Mon Sep 17 00:00:00 2001 From: Nick Bradbury Date: Tue, 8 Oct 2024 05:55:47 -0400 Subject: [PATCH 4/9] Second pass at Retry button for self-hosted users --- .../SelfHostedUserComposables.kt | 34 +++++-------------- .../selfhostedusers/SelfHostedUsersScreen.kt | 4 +-- 2 files changed, 11 insertions(+), 27 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/selfhostedusers/SelfHostedUserComposables.kt b/WordPress/src/main/java/org/wordpress/android/ui/selfhostedusers/SelfHostedUserComposables.kt index 35119427fd1c..2732b5e6936f 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/selfhostedusers/SelfHostedUserComposables.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/selfhostedusers/SelfHostedUserComposables.kt @@ -18,7 +18,6 @@ import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Close import androidx.compose.material3.Button -import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon import androidx.compose.material3.IconButton @@ -121,22 +120,20 @@ fun OfflineView( onRetryClick: (() -> Unit)? = null, ) { MessageView( - R.drawable.img_illustration_cloud_off_152dp, - R.string.no_network_message, - R.string.retry, + imageRes = R.drawable.img_illustration_cloud_off_152dp, + messageRes = R.string.no_network_message, + buttonRes = R.string.retry, onButtonClick = onRetryClick ) } /** - * A composable that displays a title with an icon above it and an optional subtitle below it and an - * optional button below that + * A composable that displays a message with an image above it and an optional button below it */ @Composable fun MessageView( - @DrawableRes iconRes: Int, - @StringRes titleRes: Int, - @StringRes subtitleRes: Int? = null, + @DrawableRes imageRes: Int, + @StringRes messageRes: Int, @StringRes buttonRes: Int? = null, onButtonClick: (() -> Unit)? = null, ) { @@ -146,37 +143,24 @@ fun MessageView( horizontalAlignment = Alignment.CenterHorizontally, ) { Icon( - imageVector = ImageVector.vectorResource(iconRes), + imageVector = ImageVector.vectorResource(imageRes), contentDescription = null, tint = MaterialTheme.colorScheme.onSurface, modifier = Modifier .size(85.dp) ) Text( - text = stringResource(titleRes), + text = stringResource(messageRes), style = MaterialTheme.typography.titleLarge, color = MaterialTheme.colorScheme.onSurface, ) - if (subtitleRes != null) { - Text( - text = stringResource(subtitleRes), - style = MaterialTheme.typography.titleSmall, - color = MaterialTheme.colorScheme.onSurface, - ) - } if (buttonRes != null && onButtonClick != null) { Box( contentAlignment = Alignment.Center, + modifier = Modifier.padding(top = 16.dp) ) { Button( - modifier = Modifier.padding( - top = 48.dp - ), onClick = onButtonClick, - colors = ButtonDefaults.buttonColors( - containerColor = MaterialTheme.colorScheme.primary, - contentColor = MaterialTheme.colorScheme.secondary, - ), ) { Text( text = stringResource(R.string.retry).uppercase(), diff --git a/WordPress/src/main/java/org/wordpress/android/ui/selfhostedusers/SelfHostedUsersScreen.kt b/WordPress/src/main/java/org/wordpress/android/ui/selfhostedusers/SelfHostedUsersScreen.kt index 228959805cd9..14899d75dbc1 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/selfhostedusers/SelfHostedUsersScreen.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/selfhostedusers/SelfHostedUsersScreen.kt @@ -90,8 +90,8 @@ fun SelfHostedUsersScreen( is SelfHostedUserState.EmptyUserList -> { MessageView( - R.drawable.ic_people_white_24dp, - R.string.no_users, + imageRes = R.drawable.ic_people_white_24dp, + messageRes = R.string.no_users, ) } From 6d1d12510e7f7dcd7c0e1a3d601d4b27f92fc4f0 Mon Sep 17 00:00:00 2001 From: Nick Bradbury Date: Tue, 8 Oct 2024 06:21:26 -0400 Subject: [PATCH 5/9] Removed unnecessary box --- .../SelfHostedUserComposables.kt | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/selfhostedusers/SelfHostedUserComposables.kt b/WordPress/src/main/java/org/wordpress/android/ui/selfhostedusers/SelfHostedUserComposables.kt index 2732b5e6936f..2510cf1ca8ba 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/selfhostedusers/SelfHostedUserComposables.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/selfhostedusers/SelfHostedUserComposables.kt @@ -6,7 +6,6 @@ import androidx.annotation.StringRes import androidx.compose.foundation.background import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.imePadding @@ -120,7 +119,7 @@ fun OfflineView( onRetryClick: (() -> Unit)? = null, ) { MessageView( - imageRes = R.drawable.img_illustration_cloud_off_152dp, + imageRes = R.drawable.img_illustration_cloud_off_152dp, messageRes = R.string.no_network_message, buttonRes = R.string.retry, onButtonClick = onRetryClick @@ -155,17 +154,13 @@ fun MessageView( color = MaterialTheme.colorScheme.onSurface, ) if (buttonRes != null && onButtonClick != null) { - Box( - contentAlignment = Alignment.Center, - modifier = Modifier.padding(top = 16.dp) + Button( + modifier = Modifier.padding(top = 16.dp), + onClick = onButtonClick, ) { - Button( - onClick = onButtonClick, - ) { - Text( - text = stringResource(R.string.retry).uppercase(), - ) - } + Text( + text = stringResource(R.string.retry).uppercase(), + ) } } } From 88ecbfa1d81b6f92345975eb6d87012f9193b967 Mon Sep 17 00:00:00 2001 From: Nick Bradbury Date: Tue, 8 Oct 2024 07:33:53 -0400 Subject: [PATCH 6/9] Fixed tests --- .../android/ui/mediapicker/loader/GifMediaDataSourceTest.kt | 3 +-- .../ui/mediapicker/loader/MediaLibraryDataSourceTest.kt | 6 ++---- .../ui/mediapicker/loader/StockMediaDataSourceTest.kt | 3 +-- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/WordPress/src/test/java/org/wordpress/android/ui/mediapicker/loader/GifMediaDataSourceTest.kt b/WordPress/src/test/java/org/wordpress/android/ui/mediapicker/loader/GifMediaDataSourceTest.kt index 4d9b167bd84b..0b8d629f2a25 100644 --- a/WordPress/src/test/java/org/wordpress/android/ui/mediapicker/loader/GifMediaDataSourceTest.kt +++ b/WordPress/src/test/java/org/wordpress/android/ui/mediapicker/loader/GifMediaDataSourceTest.kt @@ -110,8 +110,7 @@ class GifMediaDataSourceTest : BaseUnitTest() { val result = gifMediaDataSource.load(forced = false, loadMore = false, filter = filter) (result as MediaLoadingResult.Failure).apply { - Assertions.assertThat((this.title as UiStringRes).stringRes).isEqualTo(R.string.no_network_title) - Assertions.assertThat(this.htmlSubtitle).isEqualTo(UiStringRes(R.string.no_network_message)) + Assertions.assertThat((this.title as UiStringRes).stringRes).isEqualTo(R.string.no_network_message) Assertions.assertThat(this.image).isEqualTo(R.drawable.img_illustration_cloud_off_152dp) } } diff --git a/WordPress/src/test/java/org/wordpress/android/ui/mediapicker/loader/MediaLibraryDataSourceTest.kt b/WordPress/src/test/java/org/wordpress/android/ui/mediapicker/loader/MediaLibraryDataSourceTest.kt index 28f977afb915..25af633243c7 100644 --- a/WordPress/src/test/java/org/wordpress/android/ui/mediapicker/loader/MediaLibraryDataSourceTest.kt +++ b/WordPress/src/test/java/org/wordpress/android/ui/mediapicker/loader/MediaLibraryDataSourceTest.kt @@ -80,8 +80,7 @@ class MediaLibraryDataSourceTest : BaseUnitTest() { val result = dataSource.load(forced = false, loadMore = false, filter = null) as Failure - assertThat(result.title).isEqualTo(UiStringRes(R.string.no_network_title)) - assertThat(result.htmlSubtitle).isEqualTo(UiStringRes(R.string.no_network_message)) + assertThat(result.title).isEqualTo(UiStringRes(R.string.no_network_message)) assertThat(result.image).isEqualTo(R.drawable.img_illustration_cloud_off_152dp) assertThat(result.data).isEmpty() } @@ -96,8 +95,7 @@ class MediaLibraryDataSourceTest : BaseUnitTest() { val result = dataSource.load(forced = false, loadMore = true, filter = null) as Failure - assertThat(result.title).isEqualTo(UiStringRes(R.string.no_network_title)) - assertThat(result.htmlSubtitle).isEqualTo(UiStringRes(R.string.no_network_message)) + assertThat(result.title).isEqualTo(UiStringRes(R.string.no_network_message)) assertThat(result.image).isEqualTo(R.drawable.img_illustration_cloud_off_152dp) assertThat(result.data).hasSize(1) result.data.assertContains(mediaModel, 0) diff --git a/WordPress/src/test/java/org/wordpress/android/ui/mediapicker/loader/StockMediaDataSourceTest.kt b/WordPress/src/test/java/org/wordpress/android/ui/mediapicker/loader/StockMediaDataSourceTest.kt index 9f8634580cfd..925216be1dc2 100644 --- a/WordPress/src/test/java/org/wordpress/android/ui/mediapicker/loader/StockMediaDataSourceTest.kt +++ b/WordPress/src/test/java/org/wordpress/android/ui/mediapicker/loader/StockMediaDataSourceTest.kt @@ -138,8 +138,7 @@ class StockMediaDataSourceTest : BaseUnitTest() { val result = stockMediaDataSource.load(forced = false, loadMore = false, filter = filter) (result as MediaLoadingResult.Failure).apply { - assertThat((this.title as UiStringRes).stringRes).isEqualTo(R.string.no_network_title) - assertThat(this.htmlSubtitle).isEqualTo(UiStringRes(R.string.no_network_message)) + assertThat((this.title as UiStringRes).stringRes).isEqualTo(R.string.no_network_message) assertThat(this.image).isEqualTo(R.drawable.img_illustration_cloud_off_152dp) } verifyNoInteractions(stockMediaStore) From 4e2ce9e0c2c619e66836d70583e94685d93d84d3 Mon Sep 17 00:00:00 2001 From: Nick Bradbury Date: Tue, 8 Oct 2024 12:11:59 -0400 Subject: [PATCH 7/9] Remove content description from ActionableEmptyView --- .../android/ui/selfhostedusers/SelfHostedUserComposables.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/selfhostedusers/SelfHostedUserComposables.kt b/WordPress/src/main/java/org/wordpress/android/ui/selfhostedusers/SelfHostedUserComposables.kt index 2510cf1ca8ba..ce854a5a7388 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/selfhostedusers/SelfHostedUserComposables.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/selfhostedusers/SelfHostedUserComposables.kt @@ -31,6 +31,7 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.colorResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.vectorResource import androidx.compose.ui.tooling.preview.Preview @@ -143,15 +144,14 @@ fun MessageView( ) { Icon( imageVector = ImageVector.vectorResource(imageRes), + tint = colorResource(R.color.neutral_30), contentDescription = null, - tint = MaterialTheme.colorScheme.onSurface, - modifier = Modifier - .size(85.dp) ) Text( text = stringResource(messageRes), style = MaterialTheme.typography.titleLarge, color = MaterialTheme.colorScheme.onSurface, + modifier = Modifier.padding(top = 16.dp), ) if (buttonRes != null && onButtonClick != null) { Button( From 8cda5580dd048e30f98281319907f6eb528f472b Mon Sep 17 00:00:00 2001 From: Nick Bradbury Date: Tue, 8 Oct 2024 12:19:44 -0400 Subject: [PATCH 8/9] Remove content description from ActionableEmptyView --- WordPress/src/main/res/layout/actionable_empty_view.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPress/src/main/res/layout/actionable_empty_view.xml b/WordPress/src/main/res/layout/actionable_empty_view.xml index df91852324b8..87742ae76478 100644 --- a/WordPress/src/main/res/layout/actionable_empty_view.xml +++ b/WordPress/src/main/res/layout/actionable_empty_view.xml @@ -62,7 +62,7 @@ android:layout_height="wrap_content" android:layout_marginTop="@dimen/margin_extra_large" android:adjustViewBounds="true" - android:contentDescription="@string/content_description_person_reading_device_notification" + android:contentDescription="@null" android:visibility="gone" /> Date: Tue, 8 Oct 2024 12:26:55 -0400 Subject: [PATCH 9/9] Use RoundedCornerShape for retry button --- .../android/ui/selfhostedusers/SelfHostedUserComposables.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/selfhostedusers/SelfHostedUserComposables.kt b/WordPress/src/main/java/org/wordpress/android/ui/selfhostedusers/SelfHostedUserComposables.kt index ce854a5a7388..d27ca555ea04 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/selfhostedusers/SelfHostedUserComposables.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/selfhostedusers/SelfHostedUserComposables.kt @@ -13,6 +13,7 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Close @@ -156,6 +157,7 @@ fun MessageView( if (buttonRes != null && onButtonClick != null) { Button( modifier = Modifier.padding(top = 16.dp), + shape = RoundedCornerShape(2.dp), onClick = onButtonClick, ) { Text(