From c75ebfb1e748e14f95df833724ae1a656733a912 Mon Sep 17 00:00:00 2001 From: Jorge Martin Espinosa Date: Tue, 28 Mar 2023 22:56:59 +0200 Subject: [PATCH] Improve `ButtonWithProgress` component, replace login and change server buttons (#235) * Improve `ButtonWithProgress` component. * Replace `CircularProgresIndicator` with `ButtonWithProgress` in login and server selection screens. --- changelog.d/235.misc | 1 + .../impl/changeserver/ChangeServerState.kt | 2 +- .../impl/changeserver/ChangeServerView.kt | 38 +++++--------- .../login/impl/root/LoginRootState.kt | 4 +- .../features/login/impl/root/LoginRootView.kt | 37 ++++++-------- .../changeserver/ChangeServerPresenterTest.kt | 7 ++- .../impl/VerifySelfSessionView.kt | 22 +++------ .../components/button/ButtonWithProgress.kt | 49 +++++++++++++------ .../src/main/res/values/localazy.xml | 8 ++- ...ewDarkPreview_0_null_2,NEXUS_5,1.0,en].png | 4 +- ...wLightPreview_0_null_2,NEXUS_5,1.0,en].png | 4 +- ...enDarkPreview_0_null_3,NEXUS_5,1.0,en].png | 4 +- ...enDarkPreview_0_null_4,NEXUS_5,1.0,en].png | 4 +- ...nLightPreview_0_null_3,NEXUS_5,1.0,en].png | 4 +- ...nLightPreview_0_null_4,NEXUS_5,1.0,en].png | 4 +- ...ressDarkPreview_0_null,NEXUS_5,1.0,en].png | 4 +- ...essLightPreview_0_null,NEXUS_5,1.0,en].png | 4 +- 17 files changed, 96 insertions(+), 104 deletions(-) create mode 100644 changelog.d/235.misc diff --git a/changelog.d/235.misc b/changelog.d/235.misc new file mode 100644 index 0000000000..e7e947aee6 --- /dev/null +++ b/changelog.d/235.misc @@ -0,0 +1 @@ +Improve ButtonWithProgress component, replace login and change server buttons diff --git a/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/changeserver/ChangeServerState.kt b/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/changeserver/ChangeServerState.kt index a69e58aaf7..5a3ea3b856 100644 --- a/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/changeserver/ChangeServerState.kt +++ b/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/changeserver/ChangeServerState.kt @@ -23,5 +23,5 @@ data class ChangeServerState( val changeServerAction: Async, val eventSink: (ChangeServerEvents) -> Unit, ) { - val submitEnabled = homeserver.isNotEmpty() && changeServerAction is Async.Uninitialized + val submitEnabled: Boolean get() = homeserver.isNotEmpty() && (changeServerAction is Async.Uninitialized || changeServerAction is Async.Loading) } diff --git a/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/changeserver/ChangeServerView.kt b/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/changeserver/ChangeServerView.kt index ef8d7f29a9..2137760085 100644 --- a/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/changeserver/ChangeServerView.kt +++ b/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/changeserver/ChangeServerView.kt @@ -64,14 +64,12 @@ import io.element.android.libraries.designsystem.ElementTextStyles import io.element.android.libraries.designsystem.LinkColor import io.element.android.libraries.designsystem.components.ClickableLinkText import io.element.android.libraries.designsystem.components.button.BackButton +import io.element.android.libraries.designsystem.components.button.ButtonWithProgress import io.element.android.libraries.designsystem.components.dialogs.ConfirmationDialog -import io.element.android.libraries.designsystem.components.dialogs.ErrorDialog import io.element.android.libraries.designsystem.components.form.textFieldState import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.theme.LocalColors -import io.element.android.libraries.designsystem.theme.components.Button -import io.element.android.libraries.designsystem.theme.components.CircularProgressIndicator import io.element.android.libraries.designsystem.theme.components.Icon import io.element.android.libraries.designsystem.theme.components.IconButton import io.element.android.libraries.designsystem.theme.components.Scaffold @@ -94,9 +92,9 @@ fun ChangeServerView( ) { val eventSink = state.eventSink val scrollState = rememberScrollState() - val interactionEnabled by remember(state.changeServerAction) { + val isLoading by remember(state.changeServerAction) { derivedStateOf { - state.changeServerAction !is Async.Loading + state.changeServerAction is Async.Loading } } val invalidHomeserverError = (state.changeServerAction as? Async.Failure)?.error as? ChangeServerError.InlineErrorMessage @@ -114,7 +112,7 @@ fun ChangeServerView( topBar = { TopAppBar( title = {}, - navigationIcon = { BackButton(onClick = onBackPressed, enabled = interactionEnabled) } + navigationIcon = { BackButton(onClick = onBackPressed) } ) } ) { padding -> @@ -179,7 +177,7 @@ fun ChangeServerView( var homeserverFieldState by textFieldState(stateValue = state.homeserver) TextField( value = homeserverFieldState, - readOnly = !interactionEnabled, + readOnly = isLoading, modifier = Modifier .fillMaxWidth() .testTag(TestTags.changeServerServer) @@ -201,7 +199,7 @@ fun ChangeServerView( { IconButton(onClick = { eventSink(ChangeServerEvents.SetServer("")) - }, enabled = interactionEnabled) { + }, enabled = !isLoading) { Icon(imageVector = Icons.Filled.Close, contentDescription = stringResource(StringR.string.action_clear)) } } @@ -244,37 +242,23 @@ fun ChangeServerView( }) } Spacer(Modifier.height(32.dp)) - Button( + ButtonWithProgress( + text = stringResource(id = R.string.screen_change_server_submit), + showProgress = isLoading, onClick = ::submit, - enabled = interactionEnabled && state.submitEnabled, + enabled = state.submitEnabled, modifier = Modifier .fillMaxWidth() .testTag(TestTags.changeServerContinue) - ) { - Text(text = stringResource(id = R.string.screen_change_server_submit), style = ElementTextStyles.Button) - } + ) if (state.changeServerAction is Async.Success) { onChangeServerSuccess() } } - if (state.changeServerAction is Async.Loading) { - CircularProgressIndicator( - modifier = Modifier.align(Alignment.Center) - ) - } } } } -@Composable -internal fun ChangeServerErrorDialog(title: String, message: String, onDismiss: () -> Unit) { - ErrorDialog( - title = title, - content = message, - onDismiss = onDismiss - ) -} - @Composable internal fun SlidingSyncNotSupportedDialog(onLearnMoreClicked: () -> Unit, onDismiss: () -> Unit) { ConfirmationDialog( diff --git a/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/root/LoginRootState.kt b/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/root/LoginRootState.kt index 61e92d13d8..34e903dd0e 100644 --- a/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/root/LoginRootState.kt +++ b/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/root/LoginRootState.kt @@ -27,8 +27,8 @@ data class LoginRootState( val formState: LoginFormState, val eventSink: (LoginRootEvents) -> Unit ) { - val submitEnabled = - formState.login.isNotEmpty() && formState.password.isNotEmpty() && loggedInState != LoggedInState.LoggingIn + val submitEnabled: Boolean get() = + formState.login.isNotEmpty() && formState.password.isNotEmpty() && loggedInState !is LoggedInState.ErrorLoggingIn } sealed interface LoggedInState { diff --git a/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/root/LoginRootView.kt b/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/root/LoginRootView.kt index a8983fa13c..290aace3d5 100644 --- a/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/root/LoginRootView.kt +++ b/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/root/LoginRootView.kt @@ -65,13 +65,12 @@ import androidx.compose.ui.unit.dp import io.element.android.features.login.impl.R import io.element.android.features.login.impl.error.loginError import io.element.android.libraries.designsystem.ElementTextStyles +import io.element.android.libraries.designsystem.components.button.BackButton +import io.element.android.libraries.designsystem.components.button.ButtonWithProgress import io.element.android.libraries.designsystem.components.dialogs.ErrorDialog import io.element.android.libraries.designsystem.components.form.textFieldState import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight -import io.element.android.libraries.designsystem.components.button.BackButton -import io.element.android.libraries.designsystem.theme.components.Button -import io.element.android.libraries.designsystem.theme.components.CircularProgressIndicator import io.element.android.libraries.designsystem.theme.components.Icon import io.element.android.libraries.designsystem.theme.components.IconButton import io.element.android.libraries.designsystem.theme.components.Scaffold @@ -93,16 +92,16 @@ fun LoginRootView( onLoginWithSuccess: (SessionId) -> Unit = {}, onBackPressed: () -> Unit, ) { - val interactionEnabled by remember(state.loggedInState) { + val isLoading by remember(state.loggedInState) { derivedStateOf { - state.loggedInState != LoggedInState.LoggingIn + state.loggedInState == LoggedInState.LoggingIn } } Scaffold( topBar = { TopAppBar( title = {}, - navigationIcon = { BackButton(onClick = onBackPressed, enabled = interactionEnabled) }, + navigationIcon = { BackButton(onClick = onBackPressed) }, ) } ) { padding -> @@ -131,14 +130,14 @@ fun LoginRootView( Spacer(Modifier.height(32.dp)) ChangeServerSection( - interactionEnabled = interactionEnabled, + interactionEnabled = !isLoading, homeserver = state.homeserverDetails.url, onChangeServer = onChangeServer ) Spacer(Modifier.height(32.dp)) - LoginForm(state = state, interactionEnabled = interactionEnabled) + LoginForm(state = state, isLoading = isLoading) Spacer(modifier = Modifier.height(32.dp)) @@ -147,12 +146,6 @@ fun LoginRootView( is LoggedInState.LoggedIn -> onLoginWithSuccess(loggedInState.sessionId) else -> Unit } - - if (state.loggedInState is LoggedInState.LoggingIn) { - CircularProgressIndicator( - modifier = Modifier.align(Alignment.Center) - ) - } } } @@ -216,7 +209,7 @@ internal fun ChangeServerSection( @Composable internal fun LoginForm( state: LoginRootState, - interactionEnabled: Boolean, + isLoading: Boolean, modifier: Modifier = Modifier ) { var loginFieldState by textFieldState(stateValue = state.formState.login) @@ -242,7 +235,7 @@ internal fun LoginForm( Spacer(modifier = Modifier.height(8.dp)) TextField( value = loginFieldState, - readOnly = !interactionEnabled, + readOnly = isLoading, modifier = Modifier .fillMaxWidth() .onTabOrEnterKeyFocusNext(focusManager) @@ -282,7 +275,7 @@ internal fun LoginForm( Spacer(Modifier.height(20.dp)) TextField( value = passwordFieldState, - readOnly = !interactionEnabled, + readOnly = isLoading, modifier = Modifier .fillMaxWidth() .onTabOrEnterKeyFocusNext(focusManager) @@ -318,15 +311,15 @@ internal fun LoginForm( Spacer(Modifier.height(28.dp)) // Submit - Button( + ButtonWithProgress( + text = stringResource(R.string.screen_login_submit), + showProgress = isLoading, onClick = ::submit, - enabled = interactionEnabled && state.submitEnabled, + enabled = state.submitEnabled, modifier = Modifier .fillMaxWidth() .testTag(TestTags.loginContinue) - ) { - Text(text = stringResource(R.string.screen_login_submit), style = ElementTextStyles.Button) - } + ) } } diff --git a/features/login/impl/src/test/kotlin/io/element/android/features/login/impl/changeserver/ChangeServerPresenterTest.kt b/features/login/impl/src/test/kotlin/io/element/android/features/login/impl/changeserver/ChangeServerPresenterTest.kt index 70ecae44b8..c961b7fce7 100644 --- a/features/login/impl/src/test/kotlin/io/element/android/features/login/impl/changeserver/ChangeServerPresenterTest.kt +++ b/features/login/impl/src/test/kotlin/io/element/android/features/login/impl/changeserver/ChangeServerPresenterTest.kt @@ -22,8 +22,6 @@ import app.cash.molecule.RecompositionClock import app.cash.molecule.moleculeFlow import app.cash.turbine.test import com.google.common.truth.Truth.assertThat -import io.element.android.features.login.impl.changeserver.ChangeServerEvents -import io.element.android.features.login.impl.changeserver.ChangeServerPresenter import io.element.android.libraries.architecture.Async import io.element.android.libraries.matrix.test.A_HOMESERVER import io.element.android.libraries.matrix.test.A_HOMESERVER_URL @@ -34,6 +32,7 @@ import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.test.runTest import org.junit.Test +@OptIn(ExperimentalCoroutinesApi::class) class ChangeServerPresenterTest { @Test fun `present - should start with default homeserver`() = runTest { @@ -92,7 +91,7 @@ class ChangeServerPresenterTest { val initialState = awaitItem() initialState.eventSink.invoke(ChangeServerEvents.Submit) val loadingState = awaitItem() - assertThat(loadingState.submitEnabled).isFalse() + assertThat(loadingState.submitEnabled).isTrue() assertThat(loadingState.changeServerAction).isInstanceOf(Async.Loading::class.java) val successState = awaitItem() assertThat(successState.submitEnabled).isFalse() @@ -114,7 +113,7 @@ class ChangeServerPresenterTest { awaitItem() initialState.eventSink.invoke(ChangeServerEvents.Submit) val loadingState = awaitItem() - assertThat(loadingState.submitEnabled).isFalse() + assertThat(loadingState.submitEnabled).isTrue() assertThat(loadingState.changeServerAction).isInstanceOf(Async.Loading::class.java) awaitItem() // Skip changing the url to the parsed domain val successState = awaitItem() diff --git a/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/VerifySelfSessionView.kt b/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/VerifySelfSessionView.kt index a730ab7eb0..5a4324581a 100644 --- a/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/VerifySelfSessionView.kt +++ b/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/VerifySelfSessionView.kt @@ -56,7 +56,6 @@ import io.element.android.libraries.designsystem.components.button.ButtonWithPro import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.theme.LocalColors -import io.element.android.libraries.designsystem.theme.components.Button import io.element.android.libraries.designsystem.theme.components.CircularProgressIndicator import io.element.android.libraries.designsystem.theme.components.Icon import io.element.android.libraries.designsystem.theme.components.Surface @@ -257,21 +256,12 @@ internal fun BottomMenu(screenState: VerifySelfSessionState, goBack: () -> Unit) .padding(horizontal = 20.dp), horizontalAlignment = Alignment.CenterHorizontally ) { - if (isVerifying) { - ButtonWithProgress( - modifier = Modifier.fillMaxWidth(), - onClick = { positiveButtonEvent?.let { eventSink(it) } } - ) { - positiveButtonTitle?.let { Text(stringResource(it), style = ElementTextStyles.Button) } - } - } else { - Button( - modifier = Modifier.fillMaxWidth(), - onClick = { positiveButtonEvent?.let { eventSink(it) } } - ) { - positiveButtonTitle?.let { Text(stringResource(it), style = ElementTextStyles.Button) } - } - } + ButtonWithProgress( + text = positiveButtonTitle?.let { stringResource(it) }, + showProgress = isVerifying, + modifier = Modifier.fillMaxWidth(), + onClick = { positiveButtonEvent?.let { eventSink(it) } } + ) if (negativeButtonTitle != null) { Spacer(modifier = Modifier.height(16.dp)) TextButton( diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/button/ButtonWithProgress.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/button/ButtonWithProgress.kt index 061be835ee..bca033ba7f 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/button/ButtonWithProgress.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/button/ButtonWithProgress.kt @@ -19,7 +19,6 @@ package io.element.android.libraries.designsystem.components.button import androidx.compose.foundation.BorderStroke import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.layout.PaddingValues -import androidx.compose.foundation.layout.RowScope import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width @@ -33,6 +32,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Shape import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp +import io.element.android.libraries.designsystem.ElementTextStyles import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.theme.components.Button @@ -40,10 +40,20 @@ import io.element.android.libraries.designsystem.theme.components.CircularProgre import io.element.android.libraries.designsystem.theme.components.ElementButtonDefaults import io.element.android.libraries.designsystem.theme.components.Text +/** + * A component that will display a button with an indeterminate circular progressbar. + * When [showProgress] is true: + * - A circular progressbar is displayed. + * - [text] is replaced by [progressText], if defined. + * - [onClick] gets disabled. + */ @Composable fun ButtonWithProgress( + text: String?, onClick: () -> Unit, modifier: Modifier = Modifier, + showProgress: Boolean = false, + progressText: String? = text, enabled: Boolean = true, shape: Shape = ElementButtonDefaults.shape, colors: ButtonColors = ElementButtonDefaults.buttonColors(), @@ -51,10 +61,11 @@ fun ButtonWithProgress( border: BorderStroke? = null, contentPadding: PaddingValues = ElementButtonDefaults.ContentPadding, interactionSource: MutableInteractionSource = remember { MutableInteractionSource() }, - content: @Composable RowScope.() -> Unit ) { Button( - onClick = onClick, + onClick = { + if (!showProgress) { onClick() } + }, modifier = modifier, enabled = enabled, shape = shape, @@ -64,15 +75,21 @@ fun ButtonWithProgress( contentPadding = contentPadding, interactionSource = interactionSource, ) { - CircularProgressIndicator( - modifier = Modifier - .progressSemantics() - .size(18.dp), - color = MaterialTheme.colorScheme.onPrimary, - strokeWidth = 2.dp, - ) - Spacer(Modifier.width(10.dp)) - content() + if (showProgress) { + CircularProgressIndicator( + modifier = Modifier + .progressSemantics() + .size(18.dp), + color = MaterialTheme.colorScheme.onPrimary, + strokeWidth = 2.dp, + ) + if (progressText != null) { + Spacer(Modifier.width(10.dp)) + Text(progressText, style = ElementTextStyles.Button) + } + } else if (text != null) { + Text(text, style = ElementTextStyles.Button) + } } } @@ -86,7 +103,9 @@ internal fun ButtonWithProgressDarkPreview() = ElementPreviewDark { ContentToPre @Composable private fun ContentToPreview() { - ButtonWithProgress(onClick = {}) { - Text(text = "Button with progress") - } + ButtonWithProgress( + text = "Button with progress", + onClick = {}, + showProgress = true, + ) } diff --git a/libraries/ui-strings/src/main/res/values/localazy.xml b/libraries/ui-strings/src/main/res/values/localazy.xml index 504300c116..e79dafbdf6 100644 --- a/libraries/ui-strings/src/main/res/values/localazy.xml +++ b/libraries/ui-strings/src/main/res/values/localazy.xml @@ -122,10 +122,16 @@ "You seem to be shaking the phone in frustration. Would you like to open the bug report screen?" "Reporting this message will send it’s unique ‘event ID’ to the administrator of your homeserver. If messages in this room are encrypted, your homeserver administrator will not be able to read the message text or view any files or images." "Reason for reporting this content" - "Messages in this room are end-to-end encrypted. Learn more & verify users in their profile." "This is the beginning of %1$s." "This is the beginning of this conversation." "New" + "Messages are secured with locks. Only you and the recipients have the unique keys to unlock them." + "Message encryption enabled" + "Invite people" + "Leave room" + "People" + "Security" + "Topic" "Rageshake" "Detection threshold" "General" diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.login.impl.changeserver_null_DefaultGroup_ChangeServerViewDarkPreview_0_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.login.impl.changeserver_null_DefaultGroup_ChangeServerViewDarkPreview_0_null_2,NEXUS_5,1.0,en].png index 79436794bb..ba0061da9b 100644 --- a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.login.impl.changeserver_null_DefaultGroup_ChangeServerViewDarkPreview_0_null_2,NEXUS_5,1.0,en].png +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.login.impl.changeserver_null_DefaultGroup_ChangeServerViewDarkPreview_0_null_2,NEXUS_5,1.0,en].png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cb351458d7b5d70f2201f94e4466d5c7dbebb60bca164a986967d2d8006405da -size 43814 +oid sha256:5450116320f6d75befbc784a31a8ad51c868936794e75e65bf24e6e1b69f1e23 +size 44421 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.login.impl.changeserver_null_DefaultGroup_ChangeServerViewLightPreview_0_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.login.impl.changeserver_null_DefaultGroup_ChangeServerViewLightPreview_0_null_2,NEXUS_5,1.0,en].png index 087add28f7..c48eee4f48 100644 --- a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.login.impl.changeserver_null_DefaultGroup_ChangeServerViewLightPreview_0_null_2,NEXUS_5,1.0,en].png +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.login.impl.changeserver_null_DefaultGroup_ChangeServerViewLightPreview_0_null_2,NEXUS_5,1.0,en].png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f51052d3ece86fe7e07cc686a539b81d23f795c64bf66bd093b9d0e8e9fc7192 -size 40335 +oid sha256:af77d0276f38c78524201c49484548e29d1c99168e68e11874c49f0db0803df2 +size 41392 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.login.impl.root_null_DefaultGroup_LoginRootScreenDarkPreview_0_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.login.impl.root_null_DefaultGroup_LoginRootScreenDarkPreview_0_null_3,NEXUS_5,1.0,en].png index fbc10a5b14..8341e4aa97 100644 --- a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.login.impl.root_null_DefaultGroup_LoginRootScreenDarkPreview_0_null_3,NEXUS_5,1.0,en].png +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.login.impl.root_null_DefaultGroup_LoginRootScreenDarkPreview_0_null_3,NEXUS_5,1.0,en].png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:00fbd0fb3779ed0d1a0c9bf32b6628e4c03f8cf686111d6ca438b5f513152f6f -size 32704 +oid sha256:762a1d43dc3bc9edfa47f081b8385614f7075b5cecdd3eb3cb6b4959baf6811c +size 33445 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.login.impl.root_null_DefaultGroup_LoginRootScreenDarkPreview_0_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.login.impl.root_null_DefaultGroup_LoginRootScreenDarkPreview_0_null_4,NEXUS_5,1.0,en].png index 8a5ea06c17..a0dbfd3863 100644 --- a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.login.impl.root_null_DefaultGroup_LoginRootScreenDarkPreview_0_null_4,NEXUS_5,1.0,en].png +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.login.impl.root_null_DefaultGroup_LoginRootScreenDarkPreview_0_null_4,NEXUS_5,1.0,en].png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2a2ef5bf60554a079c2a71d5f3e30e42b8e19203ca3784c77fe3aff49d4b9650 -size 30254 +oid sha256:7559f64cb74c33ef441dd15d557607061b72ffcdd3dce7ec7f8a663d928fd681 +size 29585 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.login.impl.root_null_DefaultGroup_LoginRootScreenLightPreview_0_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.login.impl.root_null_DefaultGroup_LoginRootScreenLightPreview_0_null_3,NEXUS_5,1.0,en].png index 15c701f04d..7140bc573f 100644 --- a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.login.impl.root_null_DefaultGroup_LoginRootScreenLightPreview_0_null_3,NEXUS_5,1.0,en].png +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.login.impl.root_null_DefaultGroup_LoginRootScreenLightPreview_0_null_3,NEXUS_5,1.0,en].png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4afa56c98494f6d6366c8e7e0032481c813a2798fbada236aa2f5f431be04de0 -size 31485 +oid sha256:2fafe08ac635bf3f0e62753c832ead92de297f0826ec735efe1a1f90481cb421 +size 32417 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.login.impl.root_null_DefaultGroup_LoginRootScreenLightPreview_0_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.login.impl.root_null_DefaultGroup_LoginRootScreenLightPreview_0_null_4,NEXUS_5,1.0,en].png index 289e0064ec..a7010b4602 100644 --- a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.login.impl.root_null_DefaultGroup_LoginRootScreenLightPreview_0_null_4,NEXUS_5,1.0,en].png +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.login.impl.root_null_DefaultGroup_LoginRootScreenLightPreview_0_null_4,NEXUS_5,1.0,en].png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6a257ed45da52a2ef3f90376353ed2fa08b02c6e5919ebfae36f7b37a4166ea7 -size 30073 +oid sha256:7954d3f7064666b287ce6ab05fb6814f0e4570db2db6a44437291f0f90d8e87f +size 29062 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.button_null_DefaultGroup_ButtonWithProgressDarkPreview_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.button_null_DefaultGroup_ButtonWithProgressDarkPreview_0_null,NEXUS_5,1.0,en].png index c423d547ee..991387934a 100644 --- a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.button_null_DefaultGroup_ButtonWithProgressDarkPreview_0_null,NEXUS_5,1.0,en].png +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.button_null_DefaultGroup_ButtonWithProgressDarkPreview_0_null,NEXUS_5,1.0,en].png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:01f7d29ebcba189d7b662c4427faeed01edcc60818e73437274520c2993e225b -size 9827 +oid sha256:6aa8d1bbb81616f3561e23b5fae5a37d7d826f67c562ff7fb978681296fae8ec +size 10275 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.button_null_DefaultGroup_ButtonWithProgressLightPreview_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.button_null_DefaultGroup_ButtonWithProgressLightPreview_0_null,NEXUS_5,1.0,en].png index 9df07ee60c..80707726a1 100644 --- a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.button_null_DefaultGroup_ButtonWithProgressLightPreview_0_null,NEXUS_5,1.0,en].png +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.button_null_DefaultGroup_ButtonWithProgressLightPreview_0_null,NEXUS_5,1.0,en].png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6371d2ea1465a5410e9b54f7bba662e3b8b334aacddcdf7b78d304f0ed580ddb -size 10315 +oid sha256:c456be740c9f8480c4eb06f5f67eef868b6d27e206a7515b4d3356d1d0e2cde4 +size 10672