From 7b0ae0014afa947b0a16f610e1f54ee49d653512 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Wed, 25 Jan 2023 15:13:31 +0100 Subject: [PATCH 01/22] Cleanup --- .../messages/actionlist/model/TimelineItemAction.kt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/features/messages/src/main/kotlin/io/element/android/features/messages/actionlist/model/TimelineItemAction.kt b/features/messages/src/main/kotlin/io/element/android/features/messages/actionlist/model/TimelineItemAction.kt index 46d879b850..88e931408c 100644 --- a/features/messages/src/main/kotlin/io/element/android/features/messages/actionlist/model/TimelineItemAction.kt +++ b/features/messages/src/main/kotlin/io/element/android/features/messages/actionlist/model/TimelineItemAction.kt @@ -25,9 +25,9 @@ sealed class TimelineItemAction( @DrawableRes val icon: Int, val destructive: Boolean = false ) { - object Forward : TimelineItemAction("Forward", io.element.android.libraries.designsystem.VectorIcons.ArrowForward) - object Copy : TimelineItemAction("Copy", io.element.android.libraries.designsystem.VectorIcons.Copy) - object Redact : TimelineItemAction("Redact", io.element.android.libraries.designsystem.VectorIcons.Delete, destructive = true) - object Reply : TimelineItemAction("Reply", io.element.android.libraries.designsystem.VectorIcons.Reply) - object Edit : TimelineItemAction("Edit", io.element.android.libraries.designsystem.VectorIcons.Edit) + object Forward : TimelineItemAction("Forward", VectorIcons.ArrowForward) + object Copy : TimelineItemAction("Copy", VectorIcons.Copy) + object Redact : TimelineItemAction("Redact", VectorIcons.Delete, destructive = true) + object Reply : TimelineItemAction("Reply", VectorIcons.Reply) + object Edit : TimelineItemAction("Edit", VectorIcons.Edit) } From 3ecce4e24f26256c3cbdd70b1a078b527879010e Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Wed, 25 Jan 2023 16:09:31 +0100 Subject: [PATCH 02/22] Create ExtendedColors to define more colors. --- .../timeline/components/MessageEventBubble.kt | 26 ++----------- .../android/libraries/designsystem/Color.kt | 6 --- .../libraries/designsystem/ExtendedColors.kt | 39 +++++++++++++++++++ .../android/libraries/designsystem/Theme.kt | 17 +++++++- 4 files changed, 59 insertions(+), 29 deletions(-) create mode 100644 libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/ExtendedColors.kt diff --git a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/MessageEventBubble.kt b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/MessageEventBubble.kt index 9f6c1eb28d..b8922be78c 100644 --- a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/MessageEventBubble.kt +++ b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/MessageEventBubble.kt @@ -30,13 +30,7 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Shape import androidx.compose.ui.unit.dp import io.element.android.features.messages.timeline.model.MessagesItemGroupPosition -import io.element.android.libraries.designsystem.LocalIsDarkTheme -import io.element.android.libraries.designsystem.MessageHighlightDark -import io.element.android.libraries.designsystem.MessageHighlightLight -import io.element.android.libraries.designsystem.SystemGrey5Dark -import io.element.android.libraries.designsystem.SystemGrey5Light -import io.element.android.libraries.designsystem.SystemGrey6Dark -import io.element.android.libraries.designsystem.SystemGrey6Light +import io.element.android.libraries.designsystem.LocalExtendedColors private val BUBBLE_RADIUS = 16.dp @@ -88,24 +82,12 @@ fun MessageEventBubble( } val backgroundBubbleColor = if (isHighlighted) { - if (LocalIsDarkTheme.current) { - MessageHighlightDark - } else { - MessageHighlightLight - } + LocalExtendedColors.current.messageHighlightedBackground } else { if (isMine) { - if (LocalIsDarkTheme.current) { - SystemGrey5Dark - } else { - SystemGrey5Light - } + LocalExtendedColors.current.messageFromMeBackground } else { - if (LocalIsDarkTheme.current) { - SystemGrey6Dark - } else { - SystemGrey6Light - } + LocalExtendedColors.current.messageFromOtherBackground } } val bubbleShape = bubbleShape() diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/Color.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/Color.kt index 936f102a85..279b38fdd1 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/Color.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/Color.kt @@ -52,10 +52,4 @@ val ElementGreen = Color(0xFF0DBD8B) val ElementOrange = Color(0xFFD9B072) val Vermilion = Color(0xFFFF5B55) -// TODO Update color -val MessageHighlightLight = Azure - -// TODO Update color -val MessageHighlightDark = Azure - val LinkColor = Color(0xFF054F6E) diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/ExtendedColors.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/ExtendedColors.kt new file mode 100644 index 0000000000..9cdda9cb73 --- /dev/null +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/ExtendedColors.kt @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2023 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.designsystem + +import androidx.compose.runtime.Immutable +import androidx.compose.ui.graphics.Color + +@Immutable +data class ExtendedColors( + val messageFromMeBackground: Color, + val messageFromOtherBackground: Color, + val messageHighlightedBackground: Color, +) + +internal val extendedColorsLight = ExtendedColors( + messageFromMeBackground = SystemGrey5Light, + messageFromOtherBackground = SystemGrey6Light, + messageHighlightedBackground = Azure, +) + +internal val extendedColorsDark = ExtendedColors( + messageFromMeBackground = SystemGrey5Dark, + messageFromOtherBackground = SystemGrey6Dark, + messageHighlightedBackground = Azure, +) diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/Theme.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/Theme.kt index d2168f644e..09bb595599 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/Theme.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/Theme.kt @@ -27,6 +27,7 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.SideEffect import androidx.compose.runtime.compositionLocalOf +import androidx.compose.runtime.staticCompositionLocalOf import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext import com.google.accompanist.systemuicontroller.rememberSystemUiController @@ -64,9 +65,18 @@ private val LightColorScheme = lightColorScheme( onSurface = Color(0xFF1C1B1F), */ ) + @Suppress("CompositionLocalAllowlist") val LocalIsDarkTheme = compositionLocalOf { error("Not defined") } +val LocalExtendedColors = staticCompositionLocalOf { + ExtendedColors( + messageFromMeBackground = Color.Unspecified, + messageFromOtherBackground = Color.Unspecified, + messageHighlightedBackground = Color.Unspecified, + ) +} + @Composable fun ElementXTheme( darkTheme: Boolean = isSystemInDarkTheme(), @@ -95,7 +105,12 @@ fun ElementXTheme( ) } - CompositionLocalProvider(LocalIsDarkTheme provides darkTheme) { + val extendedColors = if (darkTheme) extendedColorsDark else extendedColorsLight + + CompositionLocalProvider( + LocalIsDarkTheme provides darkTheme, + LocalExtendedColors provides extendedColors, + ) { MaterialTheme( colorScheme = colorScheme, typography = Typography, From 6e4edc8289ed65bf73fefadb6cbb2f5b02aad4fc Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Thu, 26 Jan 2023 15:15:51 +0100 Subject: [PATCH 03/22] First draft of full custom theme. ElementTheme everywhere Create ElementButton --- .../io/element/android/x/MainActivity.kt | 10 +- .../android/x/component/ShowkaseButton.kt | 4 +- .../login/changeserver/ChangeServerView.kt | 19 ++- .../features/login/root/LoginRootScreen.kt | 17 ++- .../android/features/messages/MessagesView.kt | 8 +- .../messages/actionlist/ActionListView.kt | 6 +- .../textcomposer/MessageComposerView.kt | 4 +- .../messages/timeline/TimelineView.kt | 10 +- .../timeline/components/MessageEventBubble.kt | 12 +- .../components/TimelineItemImageView.kt | 4 +- .../components/TimelineItemInformativeView.kt | 6 +- .../components/TimelineItemReactionsView.kt | 12 +- .../timeline/components/html/HtmlDocument.kt | 42 +++--- .../features/onboarding/OnBoardingScreen.kt | 29 ++--- .../rageshake/bugreport/BugReportView.kt | 10 +- .../android/features/roomlist/RoomListView.kt | 12 +- .../roomlist/components/RoomListTopBar.kt | 28 ++-- .../roomlist/components/RoomSummaryRow.kt | 8 +- .../libraries/designsystem/ColorUtil.kt | 6 +- .../libraries/designsystem/ExtendedColors.kt | 39 ------ .../android/libraries/designsystem/Theme.kt | 120 ------------------ .../android/libraries/designsystem/Type.kt | 42 +----- .../components/LabelledCheckbox.kt | 3 +- .../designsystem/components/ProgressDialog.kt | 8 +- .../components/dialogs/ConfirmationDialog.kt | 25 +++- .../components/dialogs/ErrorDialog.kt | 21 ++- .../preferences/PreferenceCategory.kt | 6 +- .../preferences/PreferenceScreen.kt | 6 +- .../components/preferences/PreferenceSlide.kt | 9 +- .../preferences/PreferenceSwitch.kt | 7 +- .../components/preferences/PreferenceText.kt | 4 +- .../designsystem/theme/ColorsDark.kt | 53 ++++++++ .../designsystem/theme/ColorsLight.kt | 54 ++++++++ .../designsystem/theme/ContentColor.kt | 42 ++++++ .../designsystem/theme/ElementColors.kt | 118 +++++++++++++++++ .../ElementSpaces.kt} | 26 ++-- .../designsystem/theme/ElementTheme.kt | 84 ++++++++++++ .../designsystem/theme/ElementTypography.kt | 118 +++++++++++++++++ .../theme/components/ElementButton.kt | 66 ++++++++++ .../theme/components/ElementCheckbox.kt | 55 ++++++++ .../theme/components/ElementMediumAppBar.kt | 56 ++++++++ .../theme/components/ElementScaffold.kt | 57 +++++++++ .../theme/components/ElementSlider.kt | 63 +++++++++ .../theme/components/ElementSurface.kt | 52 ++++++++ .../theme/components/ElementTopAppBar.kt | 56 ++++++++ .../matrix/ui/components/MatrixUserHeader.kt | 4 +- .../matrix/ui/components/MatrixUserRow.kt | 4 +- .../android/tests/uitests/ShowkaseButton.kt | 3 +- .../android/tests/uitests/ScreenshotTest.kt | 7 +- .../tests/uitests/TypographyTestPreview.kt | 4 +- 50 files changed, 1082 insertions(+), 377 deletions(-) delete mode 100644 libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/ExtendedColors.kt delete mode 100644 libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/Theme.kt create mode 100644 libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ColorsDark.kt create mode 100644 libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ColorsLight.kt create mode 100644 libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ContentColor.kt create mode 100644 libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ElementColors.kt rename libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/{components/VectorButton.kt => theme/ElementSpaces.kt} (52%) create mode 100644 libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ElementTheme.kt create mode 100644 libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ElementTypography.kt create mode 100644 libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementButton.kt create mode 100644 libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementCheckbox.kt create mode 100644 libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementMediumAppBar.kt create mode 100644 libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementScaffold.kt create mode 100644 libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementSlider.kt create mode 100644 libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementSurface.kt create mode 100644 libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementTopAppBar.kt diff --git a/app/src/main/kotlin/io/element/android/x/MainActivity.kt b/app/src/main/kotlin/io/element/android/x/MainActivity.kt index ebd9494017..eb249d5b75 100644 --- a/app/src/main/kotlin/io/element/android/x/MainActivity.kt +++ b/app/src/main/kotlin/io/element/android/x/MainActivity.kt @@ -19,15 +19,14 @@ package io.element.android.x import android.os.Bundle import androidx.activity.compose.setContent import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.Surface import androidx.compose.ui.Modifier import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen import androidx.core.view.WindowCompat import com.bumble.appyx.core.integration.NodeHost import com.bumble.appyx.core.integrationpoint.NodeComponentActivity import io.element.android.libraries.architecture.bindings -import io.element.android.libraries.designsystem.ElementXTheme +import io.element.android.libraries.designsystem.theme.components.ElementSurface +import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.di.DaggerComponentOwner import io.element.android.x.di.AppBindings import io.element.android.x.node.RootFlowNode @@ -41,10 +40,9 @@ class MainActivity : NodeComponentActivity() { appBindings.matrixClientsHolder().restore(savedInstanceState) WindowCompat.setDecorFitsSystemWindows(window, false) setContent { - ElementXTheme { - Surface( + ElementTheme { + ElementSurface( modifier = Modifier.fillMaxSize(), - color = MaterialTheme.colorScheme.background ) { NodeHost(integrationPoint = appyxIntegrationPoint) { RootFlowNode( diff --git a/app/src/main/kotlin/io/element/android/x/component/ShowkaseButton.kt b/app/src/main/kotlin/io/element/android/x/component/ShowkaseButton.kt index 689b46dcdc..7a9ffe9791 100644 --- a/app/src/main/kotlin/io/element/android/x/component/ShowkaseButton.kt +++ b/app/src/main/kotlin/io/element/android/x/component/ShowkaseButton.kt @@ -20,13 +20,13 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Close -import androidx.compose.material3.Button import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp +import io.element.android.libraries.designsystem.theme.components.ElementButton @Composable internal fun ShowkaseButton( @@ -36,7 +36,7 @@ internal fun ShowkaseButton( modifier: Modifier = Modifier, ) { if (isVisible) { - Button( + ElementButton( modifier = modifier .padding(top = 32.dp, start = 16.dp), onClick = onClick diff --git a/features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerView.kt b/features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerView.kt index 2695163ac4..a8ea2de0fb 100644 --- a/features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerView.kt +++ b/features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerView.kt @@ -33,12 +33,9 @@ import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.text.KeyboardActions import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.foundation.verticalScroll -import androidx.compose.material3.Button import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.ExperimentalMaterial3Api -import androidx.compose.material3.MaterialTheme import androidx.compose.material3.OutlinedTextField -import androidx.compose.material3.Surface import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue @@ -57,6 +54,9 @@ import io.element.android.features.login.error.changeServerError import io.element.android.libraries.architecture.Async import io.element.android.libraries.designsystem.components.VectorIcon import io.element.android.libraries.designsystem.components.form.textFieldState +import io.element.android.libraries.designsystem.theme.ElementTheme +import io.element.android.libraries.designsystem.theme.components.ElementButton +import io.element.android.libraries.designsystem.theme.components.ElementSurface import io.element.android.libraries.testtags.TestTags import io.element.android.libraries.testtags.testTag @@ -66,9 +66,8 @@ fun ChangeServerView( modifier: Modifier = Modifier, onChangeServerSuccess: () -> Unit = {}, ) { - Surface( + ElementSurface( modifier = modifier, - color = MaterialTheme.colorScheme.background, ) { val eventSink = state.eventSink val scrollState = rememberScrollState() @@ -92,7 +91,7 @@ fun ChangeServerView( .size(width = 81.dp, height = 73.dp) .align(Alignment.CenterHorizontally) .background( - color = MaterialTheme.colorScheme.surfaceVariant, + color = ElementTheme.colors.surfaceVariant, shape = RoundedCornerShape(32.dp) ) ) { @@ -124,7 +123,7 @@ fun ChangeServerView( .padding(top = 16.dp), textAlign = TextAlign.Center, fontSize = 16.sp, - color = MaterialTheme.colorScheme.secondary + color = ElementTheme.colors.secondary ) var homeserverFieldState by textFieldState(stateValue = state.homeserver) OutlinedTextField( @@ -155,12 +154,12 @@ fun ChangeServerView( state.homeserver, state.changeServerAction.error ), - color = MaterialTheme.colorScheme.error, - style = MaterialTheme.typography.bodySmall, + color = ElementTheme.colors.error, + style = ElementTheme.typography.bodySmall, modifier = Modifier.padding(start = 16.dp) ) } - Button( + ElementButton( onClick = { eventSink(ChangeServerEvents.Submit) }, enabled = state.submitEnabled, modifier = Modifier diff --git a/features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootScreen.kt b/features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootScreen.kt index b927ae4555..1511648c74 100644 --- a/features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootScreen.kt +++ b/features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootScreen.kt @@ -32,14 +32,11 @@ import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Visibility import androidx.compose.material.icons.filled.VisibilityOff -import androidx.compose.material3.Button import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon import androidx.compose.material3.IconButton -import androidx.compose.material3.MaterialTheme import androidx.compose.material3.OutlinedTextField -import androidx.compose.material3.Surface import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue @@ -60,6 +57,9 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import io.element.android.features.login.error.loginError import io.element.android.libraries.designsystem.components.form.textFieldState +import io.element.android.libraries.designsystem.theme.ElementTheme +import io.element.android.libraries.designsystem.theme.components.ElementButton +import io.element.android.libraries.designsystem.theme.components.ElementSurface import io.element.android.libraries.matrix.core.SessionId import io.element.android.libraries.testtags.TestTags import io.element.android.libraries.testtags.testTag @@ -74,9 +74,8 @@ fun LoginRootScreen( onLoginWithSuccess: (SessionId) -> Unit = {}, ) { val eventSink = state.eventSink - Surface( + ElementSurface( modifier = modifier, - color = MaterialTheme.colorScheme.background, ) { Box( modifier = Modifier @@ -125,7 +124,7 @@ fun LoginRootScreen( keyboardType = KeyboardType.Uri, ), ) - Button( + ElementButton( onClick = onChangeServer, modifier = Modifier .align(Alignment.CenterEnd) @@ -195,14 +194,14 @@ fun LoginRootScreen( if (state.loggedInState is LoggedInState.ErrorLoggingIn) { Text( text = loginError(state.formState, state.loggedInState.failure), - color = MaterialTheme.colorScheme.error, - style = MaterialTheme.typography.bodySmall, + color = ElementTheme.colors.error, + style = ElementTheme.typography.bodySmall, modifier = Modifier.padding(start = 16.dp) ) } } // Submit - Button( + ElementButton( onClick = { eventSink(LoginRootEvents.Submit) }, enabled = state.submitEnabled, modifier = Modifier diff --git a/features/messages/src/main/kotlin/io/element/android/features/messages/MessagesView.kt b/features/messages/src/main/kotlin/io/element/android/features/messages/MessagesView.kt index 706dc48c43..5baad6bc9d 100644 --- a/features/messages/src/main/kotlin/io/element/android/features/messages/MessagesView.kt +++ b/features/messages/src/main/kotlin/io/element/android/features/messages/MessagesView.kt @@ -21,6 +21,7 @@ package io.element.android.features.messages +import androidx.compose.foundation.background import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer @@ -64,6 +65,9 @@ import io.element.android.features.messages.timeline.TimelineView import io.element.android.features.messages.timeline.model.TimelineItem import io.element.android.libraries.designsystem.components.avatar.Avatar import io.element.android.libraries.designsystem.components.avatar.AvatarData +import io.element.android.libraries.designsystem.theme.ElementTheme +import io.element.android.libraries.designsystem.theme.components.ElementScaffold +import io.element.android.libraries.designsystem.theme.components.ElementTopAppBar import io.element.android.libraries.designsystem.utils.LogCompositions import kotlinx.coroutines.launch import timber.log.Timber @@ -101,7 +105,7 @@ fun MessagesView( state.eventSink(MessagesEvents.HandleAction(action, messageEvent)) } - Scaffold( + ElementScaffold( modifier = modifier, contentWindowInsets = WindowInsets.statusBars, topBar = { @@ -172,7 +176,7 @@ fun MessagesViewTopBar( modifier: Modifier = Modifier, onBackPressed: () -> Unit = {}, ) { - TopAppBar( + ElementTopAppBar( modifier = modifier, navigationIcon = { IconButton(onClick = onBackPressed) { diff --git a/features/messages/src/main/kotlin/io/element/android/features/messages/actionlist/ActionListView.kt b/features/messages/src/main/kotlin/io/element/android/features/messages/actionlist/ActionListView.kt index 53df8d4b40..43414e732c 100644 --- a/features/messages/src/main/kotlin/io/element/android/features/messages/actionlist/ActionListView.kt +++ b/features/messages/src/main/kotlin/io/element/android/features/messages/actionlist/ActionListView.kt @@ -29,7 +29,6 @@ import androidx.compose.foundation.lazy.items import androidx.compose.material.ExperimentalMaterialApi import androidx.compose.material.ListItem import androidx.compose.material.LocalContentColor -import androidx.compose.material.MaterialTheme import androidx.compose.material.ModalBottomSheetLayout import androidx.compose.material.ModalBottomSheetState import androidx.compose.material.ModalBottomSheetValue @@ -44,6 +43,7 @@ import androidx.compose.ui.unit.dp import io.element.android.features.messages.actionlist.model.TimelineItemAction import io.element.android.features.messages.timeline.model.TimelineItem import io.element.android.libraries.designsystem.components.VectorIcon +import io.element.android.libraries.designsystem.theme.ElementTheme import kotlinx.coroutines.flow.filter import kotlinx.coroutines.launch @@ -115,13 +115,13 @@ private fun SheetContent( text = { Text( text = action.title, - color = if (action.destructive) MaterialTheme.colors.error else Color.Unspecified, + color = if (action.destructive) ElementTheme.colors.error else Color.Unspecified, ) }, icon = { VectorIcon( resourceId = action.icon, - tint = if (action.destructive) MaterialTheme.colors.error else LocalContentColor.current, + tint = if (action.destructive) ElementTheme.colors.error else LocalContentColor.current, ) } ) diff --git a/features/messages/src/main/kotlin/io/element/android/features/messages/textcomposer/MessageComposerView.kt b/features/messages/src/main/kotlin/io/element/android/features/messages/textcomposer/MessageComposerView.kt index e3b674d32a..0d2401d667 100644 --- a/features/messages/src/main/kotlin/io/element/android/features/messages/textcomposer/MessageComposerView.kt +++ b/features/messages/src/main/kotlin/io/element/android/features/messages/textcomposer/MessageComposerView.kt @@ -18,7 +18,7 @@ package io.element.android.features.messages.textcomposer import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier -import io.element.android.libraries.designsystem.LocalIsDarkTheme +import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.textcomposer.TextComposer @Composable @@ -51,7 +51,7 @@ fun MessageComposerView( onComposerTextChange = ::onComposerTextChange, composerCanSendMessage = state.isSendButtonVisible, composerText = state.text?.charSequence?.toString(), - isInDarkMode = LocalIsDarkTheme.current, + isInDarkMode = !ElementTheme.colors.isLight, modifier = modifier ) } diff --git a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/TimelineView.kt b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/TimelineView.kt index a73c724448..fdcf3037b6 100644 --- a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/TimelineView.kt +++ b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/TimelineView.kt @@ -42,7 +42,6 @@ import androidx.compose.material.icons.filled.ArrowDownward import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.FloatingActionButton import androidx.compose.material3.Icon -import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect @@ -79,6 +78,7 @@ import io.element.android.features.messages.timeline.model.content.TimelineItemT import io.element.android.features.messages.timeline.model.content.TimelineItemUnknownContent import io.element.android.libraries.designsystem.components.avatar.Avatar import io.element.android.libraries.designsystem.components.avatar.AvatarData +import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.designsystem.utils.PairCombinedPreviewParameter import io.element.android.libraries.matrix.core.EventId import kotlinx.collections.immutable.ImmutableList @@ -267,7 +267,7 @@ private fun MessageSenderInformation( } Text( text = sender, - style = MaterialTheme.typography.titleMedium, + style = ElementTheme.typography.titleMedium, modifier = Modifier .alignBy(LastBaseline) ) @@ -326,8 +326,8 @@ internal fun BoxScope.TimelineScrollHelper( modifier = Modifier .align(Alignment.BottomCenter) .size(40.dp), - containerColor = MaterialTheme.colorScheme.surfaceVariant, - contentColor = MaterialTheme.colorScheme.onSurfaceVariant + containerColor = ElementTheme.colors.surfaceVariant, + contentColor = ElementTheme.colors.onSurfaceVariant ) { Icon(Icons.Default.ArrowDownward, "") } @@ -345,7 +345,7 @@ internal fun TimelineLoadingMoreIndicator() { ) { CircularProgressIndicator( strokeWidth = 2.dp, - color = MaterialTheme.colorScheme.primary + color = ElementTheme.colors.primary ) } } diff --git a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/MessageEventBubble.kt b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/MessageEventBubble.kt index b8922be78c..ddf2a66105 100644 --- a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/MessageEventBubble.kt +++ b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/MessageEventBubble.kt @@ -23,14 +23,14 @@ import androidx.compose.foundation.layout.offset import androidx.compose.foundation.layout.widthIn import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.ripple.rememberRipple -import androidx.compose.material3.Surface import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Shape import androidx.compose.ui.unit.dp import io.element.android.features.messages.timeline.model.MessagesItemGroupPosition -import io.element.android.libraries.designsystem.LocalExtendedColors +import io.element.android.libraries.designsystem.theme.components.ElementSurface +import io.element.android.libraries.designsystem.theme.ElementTheme private val BUBBLE_RADIUS = 16.dp @@ -82,16 +82,16 @@ fun MessageEventBubble( } val backgroundBubbleColor = if (isHighlighted) { - LocalExtendedColors.current.messageHighlightedBackground + ElementTheme.colors.messageHighlightedBackground } else { if (isMine) { - LocalExtendedColors.current.messageFromMeBackground + ElementTheme.colors.messageFromMeBackground } else { - LocalExtendedColors.current.messageFromOtherBackground + ElementTheme.colors.messageFromOtherBackground } } val bubbleShape = bubbleShape() - Surface( + ElementSurface( modifier = modifier .widthIn(min = 80.dp) .offsetForItem() diff --git a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/TimelineItemImageView.kt b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/TimelineItemImageView.kt index e6548a71e8..cce7e21896 100644 --- a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/TimelineItemImageView.kt +++ b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/TimelineItemImageView.kt @@ -22,7 +22,6 @@ import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.aspectRatio import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.saveable.rememberSaveable @@ -34,6 +33,7 @@ import androidx.compose.ui.platform.LocalContext import coil.compose.AsyncImage import coil.request.ImageRequest import io.element.android.features.messages.timeline.model.content.TimelineItemImageContent +import io.element.android.libraries.designsystem.theme.ElementTheme @Composable fun TimelineItemImageView( @@ -60,7 +60,7 @@ fun TimelineItemImageView( AsyncImage( model = model, contentDescription = null, - placeholder = ColorPainter(MaterialTheme.colorScheme.surfaceVariant), + placeholder = ColorPainter(ElementTheme.colors.surfaceVariant), contentScale = ContentScale.Crop, onSuccess = { isLoading.value = false }, ) diff --git a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/TimelineItemInformativeView.kt b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/TimelineItemInformativeView.kt index 9806bc05c8..40499798ee 100644 --- a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/TimelineItemInformativeView.kt +++ b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/TimelineItemInformativeView.kt @@ -21,7 +21,6 @@ import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width import androidx.compose.material3.Icon -import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment @@ -30,6 +29,7 @@ import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.text.font.FontStyle import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp +import io.element.android.libraries.designsystem.theme.ElementTheme @Composable fun TimelineItemInformativeView( @@ -44,14 +44,14 @@ fun TimelineItemInformativeView( ) { Icon( imageVector = icon, - tint = MaterialTheme.colorScheme.secondary, + tint = ElementTheme.colors.secondary, contentDescription = iconDescription, modifier = Modifier.size(16.dp) ) Spacer(modifier = Modifier.width(4.dp)) Text( fontStyle = FontStyle.Italic, - color = MaterialTheme.colorScheme.secondary, + color = ElementTheme.colors.secondary, fontSize = 14.sp, text = text ) diff --git a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/TimelineItemReactionsView.kt b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/TimelineItemReactionsView.kt index b061f02f3d..4a8ac852b0 100644 --- a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/TimelineItemReactionsView.kt +++ b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/TimelineItemReactionsView.kt @@ -23,8 +23,6 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width import androidx.compose.foundation.shape.CornerSize import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.Surface import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment @@ -34,6 +32,8 @@ import androidx.compose.ui.unit.sp import com.google.accompanist.flowlayout.FlowRow import io.element.android.features.messages.timeline.model.AggregatedReaction import io.element.android.features.messages.timeline.model.TimelineItemReactions +import io.element.android.libraries.designsystem.theme.components.ElementSurface +import io.element.android.libraries.designsystem.theme.ElementTheme @Composable fun TimelineItemReactionsView( @@ -54,10 +54,10 @@ fun TimelineItemReactionsView( @Composable fun MessagesReactionButton(reaction: AggregatedReaction, modifier: Modifier = Modifier) { - Surface( + ElementSurface( modifier = modifier, - color = MaterialTheme.colorScheme.surfaceVariant, - border = BorderStroke(2.dp, MaterialTheme.colorScheme.background), + color = ElementTheme.colors.surfaceVariant, + border = BorderStroke(2.dp, ElementTheme.colors.background), shape = RoundedCornerShape(corner = CornerSize(12.dp)), ) { Row( @@ -66,7 +66,7 @@ fun MessagesReactionButton(reaction: AggregatedReaction, modifier: Modifier = Mo ) { Text(text = reaction.key, fontSize = 12.sp) Spacer(modifier = Modifier.width(4.dp)) - Text(text = reaction.count, color = MaterialTheme.colorScheme.secondary, fontSize = 12.sp) + Text(text = reaction.count, color = ElementTheme.colors.secondary, fontSize = 12.sp) } } } diff --git a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/html/HtmlDocument.kt b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/html/HtmlDocument.kt index 21a7cac714..092f503b67 100644 --- a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/html/HtmlDocument.kt +++ b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/html/HtmlDocument.kt @@ -25,10 +25,7 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.text.InlineTextContent import androidx.compose.foundation.text.appendInlineContent -import androidx.compose.material3.ColorScheme import androidx.compose.material3.LocalTextStyle -import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.Surface import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier @@ -49,6 +46,9 @@ import androidx.compose.ui.unit.sp import com.google.accompanist.flowlayout.FlowRow import io.element.android.libraries.designsystem.LinkColor import io.element.android.libraries.designsystem.components.ClickableLinkText +import io.element.android.libraries.designsystem.theme.components.ElementSurface +import io.element.android.libraries.designsystem.theme.ElementColors +import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.matrix.permalink.PermalinkData import io.element.android.libraries.matrix.permalink.PermalinkParser import kotlinx.collections.immutable.persistentMapOf @@ -214,7 +214,7 @@ private fun HtmlInline( ) { Box(modifier) { val styledText = buildAnnotatedString { - appendInlineElement(element, MaterialTheme.colorScheme) + appendInlineElement(element, ElementTheme.colors) } HtmlText( text = styledText, @@ -232,7 +232,7 @@ private fun HtmlPreformatted( ) { val isCode = pre.firstElementChild()?.normalName() == "code" val backgroundColor = - if (isCode) MaterialTheme.colorScheme.codeBackground() else Color.Unspecified + if (isCode) ElementTheme.colors.codeBackground() else Color.Unspecified Box( modifier .background(color = backgroundColor) @@ -255,7 +255,7 @@ private fun HtmlParagraph( ) { Box(modifier) { val styledText = buildAnnotatedString { - appendInlineChildrenElements(paragraph.childNodes(), MaterialTheme.colorScheme) + appendInlineChildrenElements(paragraph.childNodes(), ElementTheme.colors) } HtmlText( text = styledText, onClick = onTextClicked, @@ -272,7 +272,7 @@ private fun HtmlBlockquote( onTextClicked: () -> Unit = {}, onTextLongClicked: () -> Unit = {}, ) { - val color = MaterialTheme.colorScheme.onBackground + val color = ElementTheme.colors.onBackground Box( modifier = modifier .drawBehind { @@ -287,7 +287,7 @@ private fun HtmlBlockquote( ) { val text = buildAnnotatedString { withStyle(style = SpanStyle(fontStyle = FontStyle.Italic)) { - appendInlineChildrenElements(blockquote.childNodes(), MaterialTheme.colorScheme) + appendInlineChildrenElements(blockquote.childNodes(), ElementTheme.colors) } } HtmlText( @@ -306,19 +306,19 @@ private fun HtmlHeading( onTextLongClicked: () -> Unit = {}, ) { val style = when (heading.normalName()) { - "h1" -> MaterialTheme.typography.headlineLarge.copy(fontSize = 30.sp) - "h2" -> MaterialTheme.typography.headlineLarge.copy(fontSize = 26.sp) - "h3" -> MaterialTheme.typography.headlineMedium.copy(fontSize = 22.sp) - "h4" -> MaterialTheme.typography.headlineMedium.copy(fontSize = 18.sp) - "h5" -> MaterialTheme.typography.headlineSmall.copy(fontSize = 14.sp) - "h6" -> MaterialTheme.typography.headlineSmall.copy(fontSize = 12.sp) + "h1" -> ElementTheme.typography.headlineLarge.copy(fontSize = 30.sp) + "h2" -> ElementTheme.typography.headlineLarge.copy(fontSize = 26.sp) + "h3" -> ElementTheme.typography.headlineMedium.copy(fontSize = 22.sp) + "h4" -> ElementTheme.typography.headlineMedium.copy(fontSize = 18.sp) + "h5" -> ElementTheme.typography.headlineSmall.copy(fontSize = 14.sp) + "h6" -> ElementTheme.typography.headlineSmall.copy(fontSize = 12.sp) else -> { return } } Box(modifier) { val text = buildAnnotatedString { - appendInlineChildrenElements(heading.childNodes(), MaterialTheme.colorScheme) + appendInlineChildrenElements(heading.childNodes(), ElementTheme.colors) } HtmlText( text = text, @@ -340,11 +340,11 @@ private fun HtmlMxReply( ) { val blockquote = mxReply.childNodes().firstOrNull() ?: return val shape = RoundedCornerShape(12.dp) - Surface( + ElementSurface( modifier = modifier .padding(bottom = 4.dp) .offset(x = -(8.dp)), - color = MaterialTheme.colorScheme.background, + color = ElementTheme.colors.background, shape = shape, ) { val text = buildAnnotatedString { @@ -354,7 +354,7 @@ private fun HtmlMxReply( withStyle( style = SpanStyle( fontSize = 12.sp, - color = MaterialTheme.colorScheme.secondary + color = ElementTheme.colors.secondary ) ) { append(blockquoteNode.text()) @@ -462,13 +462,13 @@ private fun HtmlListItems( } } -private fun ColorScheme.codeBackground(): Color { +private fun ElementColors.codeBackground(): Color { return background.copy(alpha = 0.3f) } private fun AnnotatedString.Builder.appendInlineChildrenElements( childNodes: List, - colors: ColorScheme + colors: ElementColors ) { for (node in childNodes) { when (node) { @@ -482,7 +482,7 @@ private fun AnnotatedString.Builder.appendInlineChildrenElements( } } -private fun AnnotatedString.Builder.appendInlineElement(element: Element, colors: ColorScheme) { +private fun AnnotatedString.Builder.appendInlineElement(element: Element, colors: ElementColors) { when (element.normalName()) { "br" -> { append('\n') diff --git a/features/onboarding/src/main/kotlin/io/element/android/features/onboarding/OnBoardingScreen.kt b/features/onboarding/src/main/kotlin/io/element/android/features/onboarding/OnBoardingScreen.kt index f0f524cddf..684d7a02ce 100644 --- a/features/onboarding/src/main/kotlin/io/element/android/features/onboarding/OnBoardingScreen.kt +++ b/features/onboarding/src/main/kotlin/io/element/android/features/onboarding/OnBoardingScreen.kt @@ -27,8 +27,6 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.systemBarsPadding import androidx.compose.material3.ExperimentalMaterial3Api -import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.Surface import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect @@ -49,7 +47,9 @@ import com.google.accompanist.pager.ExperimentalPagerApi import com.google.accompanist.pager.HorizontalPager import com.google.accompanist.pager.HorizontalPagerIndicator import com.google.accompanist.pager.rememberPagerState -import io.element.android.libraries.designsystem.components.VectorButton +import io.element.android.libraries.designsystem.theme.ElementTheme +import io.element.android.libraries.designsystem.theme.components.ElementButton +import io.element.android.libraries.designsystem.theme.components.ElementSurface import io.element.android.libraries.testtags.TestTags import io.element.android.libraries.testtags.testTag import kotlinx.coroutines.delay @@ -67,9 +67,9 @@ fun OnBoardingScreen( val carrouselState = remember { SplashCarouselStateFactory().create() } val nbOfPages = carrouselState.items.size var key by remember { mutableStateOf(false) } - Surface( + ElementSurface( modifier = modifier, - color = MaterialTheme.colorScheme.background, + color = ElementTheme.colors.background, ) { Box( modifier = Modifier @@ -109,20 +109,7 @@ fun OnBoardingScreen( .align(CenterHorizontally) .padding(16.dp), ) - /* - VectorButton( - text = "CREATE ACCOUNT", - onClick = { - onSignUp() - }, - enabled = true, - modifier = Modifier - .align(CenterHorizontally) - .padding(top = 16.dp) - ) - */ - VectorButton( - text = stringResource(id = StringR.string.login_splash_submit), + ElementButton( onClick = { onSignIn() }, @@ -131,7 +118,9 @@ fun OnBoardingScreen( .align(CenterHorizontally) .testTag(TestTags.onBoardingSignIn) .padding(top = 16.dp) - ) + ) { + Text(text = stringResource(id = StringR.string.login_splash_submit)) + } } } } diff --git a/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/bugreport/BugReportView.kt b/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/bugreport/BugReportView.kt index 8a32f1ac7a..3fd7810b73 100644 --- a/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/bugreport/BugReportView.kt +++ b/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/bugreport/BugReportView.kt @@ -26,12 +26,9 @@ import androidx.compose.foundation.layout.systemBarsPadding import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.foundation.verticalScroll -import androidx.compose.material3.Button import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.ExperimentalMaterial3Api -import androidx.compose.material3.MaterialTheme import androidx.compose.material3.OutlinedTextField -import androidx.compose.material3.Surface import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect @@ -54,6 +51,8 @@ import io.element.android.libraries.architecture.Async import io.element.android.libraries.designsystem.components.LabelledCheckbox import io.element.android.libraries.designsystem.components.dialogs.ErrorDialog import io.element.android.libraries.designsystem.components.form.textFieldState +import io.element.android.libraries.designsystem.theme.components.ElementButton +import io.element.android.libraries.designsystem.theme.components.ElementSurface import io.element.android.libraries.designsystem.utils.LogCompositions import io.element.android.libraries.ui.strings.R as StringR @@ -73,9 +72,8 @@ fun BugReportView( } return } - Surface( + ElementSurface( modifier = modifier, - color = MaterialTheme.colorScheme.background, ) { Box( modifier = Modifier @@ -185,7 +183,7 @@ fun BugReportView( } } // Submit - Button( + ElementButton( onClick = { eventSink(BugReportEvents.SendBugReport) }, enabled = state.submitEnabled, modifier = Modifier diff --git a/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/RoomListView.kt b/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/RoomListView.kt index 8a67b649e3..8aff881f24 100644 --- a/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/RoomListView.kt +++ b/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/RoomListView.kt @@ -24,7 +24,6 @@ import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.material3.ExperimentalMaterial3Api -import androidx.compose.material3.Scaffold import androidx.compose.material3.TopAppBarDefaults import androidx.compose.material3.rememberTopAppBarState import androidx.compose.runtime.Composable @@ -43,6 +42,7 @@ import io.element.android.features.roomlist.model.RoomListRoomSummary import io.element.android.features.roomlist.model.RoomListState import io.element.android.features.roomlist.model.stubbedRoomSummaries import io.element.android.libraries.designsystem.components.avatar.AvatarData +import io.element.android.libraries.designsystem.theme.components.ElementScaffold import io.element.android.libraries.designsystem.utils.LogCompositions import io.element.android.libraries.matrix.core.RoomId import io.element.android.libraries.matrix.core.UserId @@ -117,7 +117,7 @@ fun RoomListView( } } - Scaffold( + ElementScaffold( modifier = modifier.nestedScroll(scrollBehavior.nestedScrollConnection), topBar = { RoomListTopBar( @@ -125,11 +125,15 @@ fun RoomListView( filter = filter, onFilterChanged = onFilterChanged, onOpenSettings = onOpenSettings, - scrollBehavior = scrollBehavior + scrollBehavior = scrollBehavior, + modifier = Modifier, ) }, content = { padding -> - Column(modifier = Modifier.padding(padding)) { + Column( + modifier = Modifier + .padding(padding) + ) { LazyColumn( modifier = Modifier .weight(1f) diff --git a/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/components/RoomListTopBar.kt b/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/components/RoomListTopBar.kt index c7f077374f..a2549a8f9f 100644 --- a/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/components/RoomListTopBar.kt +++ b/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/components/RoomListTopBar.kt @@ -29,7 +29,6 @@ import androidx.compose.material.icons.filled.Settings import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon import androidx.compose.material3.IconButton -import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MediumTopAppBar import androidx.compose.material3.Text import androidx.compose.material3.TextField @@ -54,6 +53,9 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.sp import io.element.android.libraries.designsystem.components.avatar.Avatar import io.element.android.libraries.designsystem.components.form.textFieldState +import io.element.android.libraries.designsystem.theme.ElementTheme +import io.element.android.libraries.designsystem.theme.components.ElementMediumAppBar +import io.element.android.libraries.designsystem.theme.components.ElementTopAppBar import io.element.android.libraries.designsystem.utils.LogCompositions import io.element.android.libraries.matrix.ui.model.MatrixUser import io.element.android.libraries.ui.strings.R as StringR @@ -64,7 +66,8 @@ fun RoomListTopBar( filter: String, onFilterChanged: (String) -> Unit, onOpenSettings: () -> Unit, - scrollBehavior: TopAppBarScrollBehavior + scrollBehavior: TopAppBarScrollBehavior, + modifier: Modifier = Modifier, ) { LogCompositions( tag = "RoomListScreen", @@ -87,6 +90,7 @@ fun RoomListTopBar( onFilterChanged = onFilterChanged, onCloseClicked = ::closeFilter, scrollBehavior = scrollBehavior, + modifier = modifier, ) } else { DefaultRoomListTopBar( @@ -96,6 +100,7 @@ fun RoomListTopBar( searchWidgetStateIsOpened = true }, scrollBehavior = scrollBehavior, + modifier = modifier, ) } } @@ -110,7 +115,7 @@ fun SearchRoomListTopBar( ) { var filterState by textFieldState(stateValue = text) val focusRequester = remember { FocusRequester() } - TopAppBar( + ElementTopAppBar( modifier = modifier .nestedScroll(scrollBehavior.nestedScrollConnection), title = { @@ -129,7 +134,7 @@ fun SearchRoomListTopBar( placeholder = { Text( text = "Search", - color = MaterialTheme.colorScheme.onBackground.copy(alpha = ContentAlpha.medium) + color = ElementTheme.colors.onBackground.copy(alpha = ContentAlpha.medium) ) }, singleLine = true, @@ -143,15 +148,15 @@ fun SearchRoomListTopBar( Icon( imageVector = Icons.Default.Close, contentDescription = "clear", - tint = MaterialTheme.colorScheme.onBackground + tint = ElementTheme.colors.onBackground ) } } }, colors = TextFieldDefaults.textFieldColors( - textColor = MaterialTheme.colorScheme.onBackground, + textColor = ElementTheme.colors.onBackground, containerColor = Color.Transparent, - cursorColor = MaterialTheme.colorScheme.onBackground.copy(alpha = ContentAlpha.medium), + cursorColor = ElementTheme.colors.onBackground.copy(alpha = ContentAlpha.medium), focusedIndicatorColor = Color.Transparent, unfocusedIndicatorColor = Color.Transparent, disabledIndicatorColor = Color.Transparent @@ -167,7 +172,7 @@ fun SearchRoomListTopBar( Icon( imageVector = Icons.Default.ArrowBack, contentDescription = "close", - tint = MaterialTheme.colorScheme.onBackground + tint = ElementTheme.colors.onBackground ) } }, @@ -182,10 +187,11 @@ private fun DefaultRoomListTopBar( matrixUser: MatrixUser?, onOpenSettings: () -> Unit, onSearchClicked: () -> Unit, - scrollBehavior: TopAppBarScrollBehavior + scrollBehavior: TopAppBarScrollBehavior, + modifier: Modifier = Modifier, ) { - MediumTopAppBar( - modifier = Modifier + ElementMediumAppBar( + modifier = modifier .nestedScroll(scrollBehavior.nestedScrollConnection), title = { Text( diff --git a/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/components/RoomSummaryRow.kt b/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/components/RoomSummaryRow.kt index 7b561d9054..05494f95c3 100644 --- a/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/components/RoomSummaryRow.kt +++ b/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/components/RoomSummaryRow.kt @@ -31,7 +31,6 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.shape.CircleShape import androidx.compose.material.ripple.rememberRipple -import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.remember @@ -54,6 +53,7 @@ import androidx.compose.ui.unit.sp import com.google.accompanist.placeholder.material.placeholder import io.element.android.features.roomlist.model.RoomListRoomSummary import io.element.android.libraries.designsystem.components.avatar.Avatar +import io.element.android.libraries.designsystem.theme.ElementTheme private val minHeight = 72.dp @@ -117,7 +117,7 @@ internal fun DefaultRoomSummaryRow( Text( modifier = Modifier.placeholder(room.isPlaceholder, shape = TextPlaceholderShape), text = room.lastMessage?.toString().orEmpty(), - color = MaterialTheme.colorScheme.secondary, + color = ElementTheme.colors.secondary, fontSize = 14.sp, maxLines = 1, overflow = TextOverflow.Ellipsis @@ -132,11 +132,11 @@ internal fun DefaultRoomSummaryRow( modifier = Modifier.placeholder(room.isPlaceholder, shape = TextPlaceholderShape), fontSize = 12.sp, text = room.timestamp ?: "", - color = MaterialTheme.colorScheme.secondary, + color = ElementTheme.colors.secondary, ) Spacer(Modifier.size(4.dp)) val unreadIndicatorColor = - if (room.hasUnread) MaterialTheme.colorScheme.primary else Color.Transparent + if (room.hasUnread) ElementTheme.colors.primary else Color.Transparent Box( modifier = Modifier .size(12.dp) diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/ColorUtil.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/ColorUtil.kt index b15bfc49db..def4c49e89 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/ColorUtil.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/ColorUtil.kt @@ -16,15 +16,15 @@ package io.element.android.libraries.designsystem -import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.graphics.Color +import io.element.android.libraries.designsystem.theme.ElementTheme @Composable fun Boolean.toEnabledColor(): Color { return if (this) { - MaterialTheme.colorScheme.primary + ElementTheme.colors.primary } else { - MaterialTheme.colorScheme.secondary + ElementTheme.colors.secondary } } diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/ExtendedColors.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/ExtendedColors.kt deleted file mode 100644 index 9cdda9cb73..0000000000 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/ExtendedColors.kt +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (c) 2023 New Vector Ltd - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package io.element.android.libraries.designsystem - -import androidx.compose.runtime.Immutable -import androidx.compose.ui.graphics.Color - -@Immutable -data class ExtendedColors( - val messageFromMeBackground: Color, - val messageFromOtherBackground: Color, - val messageHighlightedBackground: Color, -) - -internal val extendedColorsLight = ExtendedColors( - messageFromMeBackground = SystemGrey5Light, - messageFromOtherBackground = SystemGrey6Light, - messageHighlightedBackground = Azure, -) - -internal val extendedColorsDark = ExtendedColors( - messageFromMeBackground = SystemGrey5Dark, - messageFromOtherBackground = SystemGrey6Dark, - messageHighlightedBackground = Azure, -) diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/Theme.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/Theme.kt deleted file mode 100644 index 09bb595599..0000000000 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/Theme.kt +++ /dev/null @@ -1,120 +0,0 @@ -/* - * Copyright (c) 2023 New Vector Ltd - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package io.element.android.libraries.designsystem - -import android.os.Build -import androidx.compose.foundation.isSystemInDarkTheme -import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.darkColorScheme -import androidx.compose.material3.dynamicDarkColorScheme -import androidx.compose.material3.dynamicLightColorScheme -import androidx.compose.material3.lightColorScheme -import androidx.compose.runtime.Composable -import androidx.compose.runtime.CompositionLocalProvider -import androidx.compose.runtime.SideEffect -import androidx.compose.runtime.compositionLocalOf -import androidx.compose.runtime.staticCompositionLocalOf -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.platform.LocalContext -import com.google.accompanist.systemuicontroller.rememberSystemUiController - -private val DarkColorScheme = darkColorScheme( - primary = Color.White, - secondary = DarkGrey, - tertiary = Color.White, - background = Color.Black, - onBackground = Color.White, - surface = Color.Black, - surfaceVariant = SystemGrey5Dark, - onSurface = Color.White, - onSurfaceVariant = Color.White, -) - -private val LightColorScheme = lightColorScheme( - primary = Color.Black, - secondary = LightGrey, - tertiary = Color.Black, - background = Color.White, - onBackground = Color.Black, - surface = Color.White, - surfaceVariant = SystemGrey5Light, - onSurface = Color.Black, - onSurfaceVariant = Color.Black, - - /* Other default colors to override - background = Color(0xFFFFFBFE), - surface = Color(0xFFFFFBFE), - onPrimary = Color.White, - onSecondary = Color.White, - onTertiary = Color.White, - onBackground = Color(0xFF1C1B1F), - onSurface = Color(0xFF1C1B1F), - */ -) - -@Suppress("CompositionLocalAllowlist") -val LocalIsDarkTheme = compositionLocalOf { error("Not defined") } - -val LocalExtendedColors = staticCompositionLocalOf { - ExtendedColors( - messageFromMeBackground = Color.Unspecified, - messageFromOtherBackground = Color.Unspecified, - messageHighlightedBackground = Color.Unspecified, - ) -} - -@Composable -fun ElementXTheme( - darkTheme: Boolean = isSystemInDarkTheme(), - // Dynamic color is available on Android 12+ - dynamicColor: Boolean = false, - content: @Composable () -> Unit -) { - val colorScheme = when { - dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> { - val context = LocalContext.current - if (darkTheme) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context) - } - darkTheme -> DarkColorScheme - else -> LightColorScheme - } - val systemUiController = rememberSystemUiController() - val useDarkIcons = !darkTheme - - SideEffect { - systemUiController.setStatusBarColor( - color = colorScheme.background - ) - systemUiController.setSystemBarsColor( - color = Color.Transparent, - darkIcons = useDarkIcons - ) - } - - val extendedColors = if (darkTheme) extendedColorsDark else extendedColorsLight - - CompositionLocalProvider( - LocalIsDarkTheme provides darkTheme, - LocalExtendedColors provides extendedColors, - ) { - MaterialTheme( - colorScheme = colorScheme, - typography = Typography, - content = content - ) - } -} diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/Type.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/Type.kt index 6e97bfa4fb..50d5b7d1fd 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/Type.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/Type.kt @@ -23,48 +23,8 @@ import androidx.compose.ui.text.font.FontStyle import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.sp -import com.airbnb.android.showkase.annotation.ShowkaseTypography - -@ShowkaseTypography(name = "Body Large", group = "Element") -val bodyLarge = TextStyle( - fontFamily = FontFamily.Default, - fontWeight = FontWeight.Normal, - fontSize = 16.sp, - lineHeight = 24.sp, - letterSpacing = 0.5.sp -) - -@ShowkaseTypography(name = "Headline Small", group = "Element") -val headlineSmall = TextStyle( - fontFamily = FontFamily.Default, - fontWeight = FontWeight.Bold, - fontSize = 32.sp, - lineHeight = 24.sp, - letterSpacing = 0.5.sp -) - -// Set of Material typography styles to start with -val Typography = Typography( - bodyLarge = bodyLarge, - headlineSmall = headlineSmall, - /* Other default text styles to override - titleLarge = TextStyle( - fontFamily = FontFamily.Default, - fontWeight = FontWeight.Normal, - fontSize = 22.sp, - lineHeight = 28.sp, - letterSpacing = 0.sp - ), - labelSmall = TextStyle( - fontFamily = FontFamily.Default, - fontWeight = FontWeight.Medium, - fontSize = 11.sp, - lineHeight = 16.sp, - letterSpacing = 0.5.sp - ) - */ -) +// TODO Remove object ElementTextStyles { object Bold { diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/LabelledCheckbox.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/LabelledCheckbox.kt index f1ad5738ac..90646930ec 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/LabelledCheckbox.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/LabelledCheckbox.kt @@ -24,6 +24,7 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.tooling.preview.Preview +import io.element.android.libraries.designsystem.theme.components.ElementCheckbox @Composable fun LabelledCheckbox( @@ -37,7 +38,7 @@ fun LabelledCheckbox( modifier = modifier.fillMaxWidth(), verticalAlignment = Alignment.CenterVertically ) { - Checkbox( + ElementCheckbox( checked = checked, onCheckedChange = onCheckedChange, enabled = enabled, diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ProgressDialog.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ProgressDialog.kt index 8bcc77226b..5b7229cd87 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ProgressDialog.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ProgressDialog.kt @@ -23,7 +23,6 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material3.CircularProgressIndicator -import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment @@ -32,6 +31,7 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.window.Dialog import androidx.compose.ui.window.DialogProperties +import io.element.android.libraries.designsystem.theme.ElementTheme @Composable fun ProgressDialog( @@ -48,19 +48,19 @@ fun ProgressDialog( modifier = modifier .fillMaxWidth() .background( - color = MaterialTheme.colorScheme.onBackground, + color = ElementTheme.colors.onBackground, shape = RoundedCornerShape(8.dp) ) ) { Column(horizontalAlignment = Alignment.CenterHorizontally) { CircularProgressIndicator( modifier = Modifier.padding(16.dp), - color = MaterialTheme.colorScheme.background + color = ElementTheme.colors.background ) if (!text.isNullOrBlank()) { Text( text = text, - color = MaterialTheme.colorScheme.background, + color = ElementTheme.colors.background, modifier = Modifier.padding(16.dp) ) } diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/dialogs/ConfirmationDialog.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/dialogs/ConfirmationDialog.kt index 6059b6b998..4d36007f1f 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/dialogs/ConfirmationDialog.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/dialogs/ConfirmationDialog.kt @@ -22,13 +22,18 @@ import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.material3.AlertDialog -import androidx.compose.material3.Button +import androidx.compose.material3.AlertDialogDefaults import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.Shape import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp +import io.element.android.libraries.designsystem.theme.components.ElementButton +import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.ui.strings.R as StringR @Composable @@ -43,6 +48,12 @@ fun ConfirmationDialog( onCancelClicked: () -> Unit = {}, onThirdButtonClicked: () -> Unit = {}, onDismiss: () -> Unit = {}, + shape: Shape = AlertDialogDefaults.shape, + containerColor: Color = ElementTheme.colors.surfaceVariant, + iconContentColor: Color = ElementTheme.colors.onSurfaceVariant, + titleContentColor: Color = ElementTheme.colors.onSurfaceVariant, + textContentColor: Color = ElementTheme.colors.onSurfaceVariant, + tonalElevation: Dp = AlertDialogDefaults.TonalElevation, ) { AlertDialog( modifier = modifier, @@ -59,7 +70,7 @@ fun ConfirmationDialog( horizontalArrangement = Arrangement.Center ) { Column { - Button( + ElementButton( modifier = Modifier.fillMaxWidth(), onClick = { onCancelClicked() @@ -67,7 +78,7 @@ fun ConfirmationDialog( Text(cancelText) } if (thirdButtonText != null) { - Button( + ElementButton( modifier = Modifier.fillMaxWidth(), onClick = { onThirdButtonClicked() @@ -83,7 +94,7 @@ fun ConfirmationDialog( modifier = Modifier.padding(all = 8.dp), horizontalArrangement = Arrangement.Center ) { - Button( + ElementButton( modifier = Modifier.fillMaxWidth(), onClick = { onSubmitClicked() @@ -93,6 +104,12 @@ fun ConfirmationDialog( } } }, + shape = shape, + containerColor = containerColor, + iconContentColor = iconContentColor, + titleContentColor = titleContentColor, + textContentColor = textContentColor, + tonalElevation = tonalElevation, ) } diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/dialogs/ErrorDialog.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/dialogs/ErrorDialog.kt index 99e473fdbd..c1ca38b11c 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/dialogs/ErrorDialog.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/dialogs/ErrorDialog.kt @@ -21,13 +21,18 @@ import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.material3.AlertDialog -import androidx.compose.material3.Button +import androidx.compose.material3.AlertDialogDefaults import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.Shape import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp +import io.element.android.libraries.designsystem.theme.components.ElementButton +import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.ui.strings.R as StringR @Composable @@ -37,6 +42,12 @@ fun ErrorDialog( title: String = stringResource(id = StringR.string.dialog_title_error), submitText: String = stringResource(id = StringR.string.ok), onDismiss: () -> Unit = {}, + shape: Shape = AlertDialogDefaults.shape, + containerColor: Color = ElementTheme.colors.surfaceVariant, + iconContentColor: Color = ElementTheme.colors.onSurfaceVariant, + titleContentColor: Color = ElementTheme.colors.onSurfaceVariant, + textContentColor: Color = ElementTheme.colors.onSurfaceVariant, + tonalElevation: Dp = AlertDialogDefaults.TonalElevation, ) { AlertDialog( modifier = modifier, @@ -52,7 +63,7 @@ fun ErrorDialog( modifier = Modifier.padding(all = 8.dp), horizontalArrangement = Arrangement.Center ) { - Button( + ElementButton( modifier = Modifier.fillMaxWidth(), onClick = { onDismiss() @@ -62,6 +73,12 @@ fun ErrorDialog( } } }, + shape = shape, + containerColor = containerColor, + iconContentColor = iconContentColor, + titleContentColor = titleContentColor, + textContentColor = textContentColor, + tonalElevation = tonalElevation, ) } diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceCategory.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceCategory.kt index c9e6ac6740..65560e57f7 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceCategory.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceCategory.kt @@ -21,12 +21,12 @@ import androidx.compose.foundation.layout.ColumnScope import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.material3.Divider -import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp +import io.element.android.libraries.designsystem.theme.ElementTheme @Composable fun PreferenceCategory( @@ -40,12 +40,12 @@ fun PreferenceCategory( ) { Divider( modifier = Modifier.padding(horizontal = 16.dp), - color = MaterialTheme.colorScheme.secondary, + color = ElementTheme.colors.secondary, thickness = 1.dp ) Text( modifier = Modifier.padding(top = 8.dp, start = 56.dp), - style = MaterialTheme.typography.titleSmall, + style = ElementTheme.typography.titleSmall, text = title ) content() diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceScreen.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceScreen.kt index 4b5f007506..948daace12 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceScreen.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceScreen.kt @@ -42,6 +42,8 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.sp +import io.element.android.libraries.designsystem.theme.components.ElementScaffold +import io.element.android.libraries.designsystem.theme.components.ElementTopAppBar @OptIn(ExperimentalMaterial3Api::class) @Composable @@ -51,7 +53,7 @@ fun PreferenceView( onBackPressed: () -> Unit = {}, content: @Composable ColumnScope.() -> Unit, ) { - Scaffold( + ElementScaffold( modifier = modifier .fillMaxSize() .systemBarsPadding() @@ -85,7 +87,7 @@ fun PreferenceTopAppBar( modifier: Modifier = Modifier, onBackPressed: () -> Unit = {}, ) { - TopAppBar( + ElementTopAppBar( modifier = modifier, navigationIcon = { IconButton(onClick = onBackPressed) { diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSlide.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSlide.kt index aadb0ab236..244f257944 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSlide.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSlide.kt @@ -23,7 +23,6 @@ import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.defaultMinSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding -import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Slider import androidx.compose.material3.Text import androidx.compose.runtime.Composable @@ -32,6 +31,8 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.tooling.preview.Preview import io.element.android.libraries.designsystem.components.preferences.components.PreferenceIcon +import io.element.android.libraries.designsystem.theme.ElementTheme +import io.element.android.libraries.designsystem.theme.components.ElementSlider import io.element.android.libraries.designsystem.toEnabledColor @Composable @@ -61,19 +62,19 @@ fun PreferenceSlide( ) { Text( modifier = Modifier.fillMaxWidth(), - style = MaterialTheme.typography.bodyLarge, + style = ElementTheme.typography.bodyLarge, color = enabled.toEnabledColor(), text = title ) summary?.let { Text( modifier = Modifier.fillMaxWidth(), - style = MaterialTheme.typography.bodyMedium, + style = ElementTheme.typography.bodyMedium, color = enabled.toEnabledColor(), text = summary ) } - Slider( + ElementSlider( value = value, steps = steps, onValueChange = onValueChange, diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSwitch.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSwitch.kt index 68a402296c..47e32f409d 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSwitch.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSwitch.kt @@ -25,7 +25,6 @@ import androidx.compose.foundation.layout.padding import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Announcement import androidx.compose.material3.Checkbox -import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment @@ -33,6 +32,8 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.tooling.preview.Preview import io.element.android.libraries.designsystem.components.preferences.components.PreferenceIcon +import io.element.android.libraries.designsystem.theme.ElementTheme +import io.element.android.libraries.designsystem.theme.components.ElementCheckbox import io.element.android.libraries.designsystem.toEnabledColor @Composable @@ -61,11 +62,11 @@ fun PreferenceSwitch( ) Text( modifier = Modifier.weight(1f), - style = MaterialTheme.typography.bodyLarge, + style = ElementTheme.typography.bodyLarge, color = enabled.toEnabledColor(), text = title ) - Checkbox( + ElementCheckbox( modifier = Modifier.padding(end = preferencePaddingEnd), checked = isChecked, enabled = enabled, diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceText.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceText.kt index bef45830e2..6f4c1598b7 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceText.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceText.kt @@ -24,7 +24,6 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.BugReport -import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment @@ -32,6 +31,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.tooling.preview.Preview import io.element.android.libraries.designsystem.components.preferences.components.PreferenceIcon +import io.element.android.libraries.designsystem.theme.ElementTheme @Composable fun PreferenceText( @@ -56,7 +56,7 @@ fun PreferenceText( modifier = Modifier .weight(1f) .padding(end = preferencePaddingEnd), - style = MaterialTheme.typography.bodyLarge, + style = ElementTheme.typography.bodyLarge, text = title ) } diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ColorsDark.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ColorsDark.kt new file mode 100644 index 0000000000..19c7c2f49a --- /dev/null +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ColorsDark.kt @@ -0,0 +1,53 @@ +/* + * Copyright (c) 2023 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.designsystem.theme + +import androidx.compose.ui.graphics.Color +import io.element.android.libraries.designsystem.Azure +import io.element.android.libraries.designsystem.DarkGrey +import io.element.android.libraries.designsystem.SystemGrey5Dark +import io.element.android.libraries.designsystem.SystemGrey6Dark + +fun elementColorsDark() = ElementColors( + primary = Color.White, + onPrimary = Color.Black, + secondary = DarkGrey, + text = Color.White, + background = Color.Black, + onBackground = Color.White, + surfaceVariant = SystemGrey5Dark, + onSurfaceVariant = Color.White, + messageFromMeBackground = SystemGrey5Dark, + messageFromOtherBackground = SystemGrey6Dark, + messageHighlightedBackground = Azure, + success = Color.Green, + error = Color.Red, + isLight = false, +) + +/* +private val DarkColorScheme = darkColorScheme( + primary = Color.White, + secondary = DarkGrey, + tertiary = Color.White, + background = Color.Black, + onBackground = Color.White, + surface = Color.Black, + surfaceVariant = SystemGrey5Dark, + onSurface = Color.White, +) + */ diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ColorsLight.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ColorsLight.kt new file mode 100644 index 0000000000..6d7c7f62ea --- /dev/null +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ColorsLight.kt @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2023 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.designsystem.theme + +import androidx.compose.ui.graphics.Color +import io.element.android.libraries.designsystem.Azure +import io.element.android.libraries.designsystem.LightGrey +import io.element.android.libraries.designsystem.SystemGrey5Light +import io.element.android.libraries.designsystem.SystemGrey6Light + +fun elementColorsLight() = ElementColors( + primary = Color.Black, + onPrimary = Color.White, + secondary = LightGrey, + text = Color.Black, + background = Color.White, + onBackground = Color.Black, + surfaceVariant = SystemGrey5Light, + onSurfaceVariant = Color.Black, + messageFromMeBackground = SystemGrey5Light, + messageFromOtherBackground = SystemGrey6Light, + messageHighlightedBackground = Azure, + success = Color.Green, + error = Color.Red, + isLight = true, +) + +/* +private val LightColorScheme = lightColorScheme( + primary = Color.Black, + secondary = LightGrey, + tertiary = Color.Black, + background = Color.White, + onBackground = Color.Black, + surface = Color.White, + surfaceVariant = SystemGrey5Light, + onSurface = Color.Black, + onSurfaceVariant = Color.Black, + + */ diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ContentColor.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ContentColor.kt new file mode 100644 index 0000000000..56df033d27 --- /dev/null +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ContentColor.kt @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2023 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.designsystem.components.color + +import androidx.compose.material3.LocalContentColor +import androidx.compose.runtime.Composable +import androidx.compose.runtime.ReadOnlyComposable +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.takeOrElse +import io.element.android.libraries.designsystem.theme.ElementColors +import io.element.android.libraries.designsystem.theme.ElementTheme + +@Composable +@ReadOnlyComposable +fun elementContentColorFor(backgroundColor: Color): Color { + return ElementTheme.colors.elementContentColorFor(backgroundColor).takeOrElse { + LocalContentColor.current + } +} + +fun ElementColors.elementContentColorFor(backgroundColor: Color): Color { + return when (backgroundColor) { + primary -> onPrimary + surfaceVariant -> onSurfaceVariant + background -> onBackground + else -> Color.Unspecified + } +} diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ElementColors.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ElementColors.kt new file mode 100644 index 0000000000..38da8e7816 --- /dev/null +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ElementColors.kt @@ -0,0 +1,118 @@ +/* + * Copyright (c) 2023 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.designsystem.theme + +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.setValue +import androidx.compose.ui.graphics.Color + +class ElementColors( + primary: Color, + onPrimary: Color, + secondary: Color, + text: Color, + background: Color, + onBackground: Color, + surfaceVariant: Color, + onSurfaceVariant: Color, + messageFromMeBackground: Color, + messageFromOtherBackground: Color, + messageHighlightedBackground: Color, + success: Color, + error: Color, + isLight: Boolean, +) { + var primary by mutableStateOf(primary) + private set + var onPrimary by mutableStateOf(onPrimary) + private set + var secondary by mutableStateOf(secondary) + private set + var text by mutableStateOf(text) + private set + var success by mutableStateOf(success) + private set + var error by mutableStateOf(error) + private set + var background by mutableStateOf(background) + private set + var onBackground by mutableStateOf(onBackground) + private set + var surfaceVariant by mutableStateOf(surfaceVariant) + private set + var onSurfaceVariant by mutableStateOf(onSurfaceVariant) + private set + var messageFromMeBackground by mutableStateOf(messageFromMeBackground) + private set + var messageFromOtherBackground by mutableStateOf(messageFromOtherBackground) + private set + var messageHighlightedBackground by mutableStateOf(messageHighlightedBackground) + private set + + var isLight by mutableStateOf(isLight) + private set + + fun copy( + primary: Color = this.primary, + onPrimary: Color = this.onPrimary, + secondary: Color = this.secondary, + text: Color = this.text, + background: Color = this.background, + onBackground: Color = this.onBackground, + surfaceVariant: Color = this.surfaceVariant, + onSurfaceVariant: Color = this.onSurfaceVariant, + messageFromMeBackground: Color = this.messageFromMeBackground, + messageFromOtherBackground: Color = this.messageFromOtherBackground, + messageHighlightedBackground: Color = this.messageHighlightedBackground, + success: Color = this.success, + error: Color = this.error, + isLight: Boolean = this.isLight, + ) = ElementColors( + primary = primary, + onPrimary = onPrimary, + secondary = secondary, + text = text, + background = background, + onBackground = onBackground, + surfaceVariant = surfaceVariant, + onSurfaceVariant = onSurfaceVariant, + messageFromMeBackground = messageFromMeBackground, + messageFromOtherBackground = messageFromOtherBackground, + messageHighlightedBackground = messageHighlightedBackground, + success = success, + error = error, + isLight = isLight, + ) + + fun updateColorsFrom(other: ElementColors) { + primary = other.primary + onPrimary = other.onPrimary + secondary = other.secondary + text = other.text + success = other.success + background = other.background + onBackground = other.onBackground + surfaceVariant = other.surfaceVariant + onSurfaceVariant = other.onSurfaceVariant + messageFromMeBackground = other.messageFromMeBackground + messageFromOtherBackground = other.messageFromOtherBackground + messageHighlightedBackground = other.messageHighlightedBackground + error = other.error + isLight = other.isLight + } +} diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/VectorButton.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ElementSpaces.kt similarity index 52% rename from libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/VectorButton.kt rename to libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ElementSpaces.kt index 928e83cfa4..e5f2236cf0 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/VectorButton.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ElementSpaces.kt @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 New Vector Ltd + * Copyright (c) 2023 New Vector Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,20 +14,14 @@ * limitations under the License. */ -package io.element.android.libraries.designsystem.components +package io.element.android.libraries.designsystem.theme -import androidx.compose.material3.Button -import androidx.compose.material3.Text -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.Dp +import androidx.compose.ui.unit.dp -@Composable -fun VectorButton(text: String, enabled: Boolean, onClick: () -> Unit, modifier: Modifier = Modifier) { - Button( - onClick = onClick, - enabled = enabled, - modifier = modifier - ) { - Text(text = text) - } -} +data class ElementSpaces( + val small: Dp = 4.dp, + val medium: Dp = 8.dp, + val large: Dp = 16.dp, + val extraLarge: Dp = 40.dp, +) diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ElementTheme.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ElementTheme.kt new file mode 100644 index 0000000000..5281888b17 --- /dev/null +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ElementTheme.kt @@ -0,0 +1,84 @@ +/* + * Copyright (c) 2023 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.designsystem.theme + +import androidx.compose.foundation.isSystemInDarkTheme +import androidx.compose.material.ProvideTextStyle +import androidx.compose.runtime.Composable +import androidx.compose.runtime.CompositionLocalProvider +import androidx.compose.runtime.ReadOnlyComposable +import androidx.compose.runtime.SideEffect +import androidx.compose.runtime.remember +import androidx.compose.runtime.staticCompositionLocalOf +import androidx.compose.ui.graphics.Color +import com.google.accompanist.systemuicontroller.rememberSystemUiController + +/** + * Inspired from https://medium.com/@lucasyujideveloper/54cbcbde1ace + */ +object ElementTheme { + val colors: ElementColors + @Composable + @ReadOnlyComposable + get() = LocalColors.current + + val typography: ElementTypography + @Composable + @ReadOnlyComposable + get() = LocalTypography.current + + val spaces: ElementSpaces + @Composable + @ReadOnlyComposable + get() = LocalSpaces.current +} + +/* Global variables (application level) */ +val LocalSpaces = staticCompositionLocalOf { ElementSpaces() } +val LocalColors = staticCompositionLocalOf { elementColorsLight() } +val LocalTypography = staticCompositionLocalOf { ElementTypography() } + +@Composable +fun ElementTheme( + darkTheme: Boolean = isSystemInDarkTheme(), + lightColors: ElementColors = elementColorsLight(), + darkColors: ElementColors = elementColorsDark(), + typography: ElementTypography = ElementTheme.typography, + spaces: ElementSpaces = ElementTheme.spaces, + content: @Composable () -> Unit, +) { + val systemUiController = rememberSystemUiController() + val useDarkIcons = !darkTheme + val currentColor = remember { if (darkTheme) darkColors else lightColors } + SideEffect { + systemUiController.setStatusBarColor( + color = currentColor.background + ) + systemUiController.setSystemBarsColor( + color = Color.Transparent, + darkIcons = useDarkIcons + ) + } + val rememberedColors = remember { currentColor.copy() }.apply { updateColorsFrom(currentColor) } + CompositionLocalProvider( + LocalColors provides rememberedColors, + LocalSpaces provides spaces, + LocalTypography provides typography, + ) { + ProvideTextStyle(typography.body1, content = content) + } +} diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ElementTypography.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ElementTypography.kt new file mode 100644 index 0000000000..57d0beaa36 --- /dev/null +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ElementTypography.kt @@ -0,0 +1,118 @@ +/* + * Copyright (c) 2023 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.designsystem.theme + +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.font.FontFamily +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.sp +import com.airbnb.android.showkase.annotation.ShowkaseTypography + +@ShowkaseTypography(name = "H1", group = "Element") +val h1Default: TextStyle = TextStyle( + fontFamily = FontFamily.SansSerif, + fontWeight = FontWeight.Bold, + fontSize = 24.sp +) + +@ShowkaseTypography(name = "Body1", group = "Element") +val body1Default: TextStyle = TextStyle( + fontFamily = FontFamily.SansSerif, + fontWeight = FontWeight.Normal, + fontSize = 16.sp +) + +@ShowkaseTypography(name = "BodySmall", group = "Element") +val bodySmallDefault: TextStyle = TextStyle( + fontFamily = FontFamily.SansSerif, + fontWeight = FontWeight.Normal, + fontSize = 14.sp +) + +@ShowkaseTypography(name = "bodyMedium", group = "Element") +val bodyMediumDefault: TextStyle = TextStyle( + fontFamily = FontFamily.SansSerif, + fontWeight = FontWeight.Normal, + fontSize = 18.sp +) + +@ShowkaseTypography(name = "Body Large", group = "Element") +val bodyLargeDefault: TextStyle = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Normal, + fontSize = 16.sp, + lineHeight = 24.sp, + letterSpacing = 0.5.sp +) + +@ShowkaseTypography(name = "Headline Small", group = "Element") +val headlineSmallDefault: TextStyle = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Bold, + fontSize = 24.sp, + lineHeight = 30.sp, + letterSpacing = 1.sp +) + +@ShowkaseTypography(name = "Headline Medium", group = "Element") +val headlineMediumDefault: TextStyle = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Bold, + fontSize = 28.sp, + lineHeight = 34.sp, + letterSpacing = 1.sp +) + +@ShowkaseTypography(name = "Headline Large", group = "Element") +val headlineLargeDefault: TextStyle = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Bold, + fontSize = 32.sp, + lineHeight = 38.sp, + letterSpacing = 1.sp +) + +@ShowkaseTypography(name = "titleSmall", group = "Element") +val titleSmallDefault: TextStyle = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Normal, + fontSize = 14.sp, + lineHeight = 20.sp, + letterSpacing = 0.5.sp +) + +@ShowkaseTypography(name = "titleMedium", group = "Element") +val titleMediumDefault: TextStyle = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Normal, + fontSize = 18.sp, + lineHeight = 24.sp, + letterSpacing = 0.5.sp +) + +data class ElementTypography( + val h1: TextStyle = h1Default, + val body1: TextStyle = body1Default, + val bodySmall: TextStyle = bodySmallDefault, + val bodyMedium: TextStyle = bodyMediumDefault, + val bodyLarge: TextStyle = bodyLargeDefault, + val headlineSmall: TextStyle = headlineSmallDefault, + val headlineMedium: TextStyle = headlineMediumDefault, + val headlineLarge: TextStyle = headlineLargeDefault, + val titleSmall: TextStyle = titleSmallDefault, + val titleMedium: TextStyle = titleMediumDefault, +) diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementButton.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementButton.kt new file mode 100644 index 0000000000..d9a536b4db --- /dev/null +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementButton.kt @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2023 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.designsystem.theme.components + +import androidx.compose.foundation.layout.RowScope +import androidx.compose.material.ContentAlpha +import androidx.compose.material.ProvideTextStyle +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.compositeOver +import io.element.android.libraries.designsystem.components.color.elementContentColorFor +import io.element.android.libraries.designsystem.theme.ElementTheme + +@Composable +fun ElementButton( + onClick: () -> Unit, + modifier: Modifier = Modifier, + enabled: Boolean = true, + containerColor: Color = ElementTheme.colors.primary, + content: @Composable RowScope.() -> Unit +) { + Button( + colors = ButtonDefaults.buttonColors( + containerColor = containerColor, + contentColor = elementContentColorFor(backgroundColor = containerColor), + disabledContainerColor = containerColor + .copy(alpha = 0.12f) + .compositeOver(containerColor), + disabledContentColor = elementContentColorFor(backgroundColor = containerColor) + .copy(alpha = ContentAlpha.disabled) + ), + // TODO shape = ButtonShape, + // TODO elevation = ButtonDefaults.elevation( + // defaultElevation = ElementTheme.elevation.default, + // pressedElevation = ElementTheme.elevation.pressed + // /* disabledElevation = 0.dp */ + // ), + onClick = onClick, + modifier = modifier, + enabled = enabled, + content = { + ProvideTextStyle( + value = ElementTheme.typography.body1 + ) { + content() + } + } + ) +} diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementCheckbox.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementCheckbox.kt new file mode 100644 index 0000000000..058313d40d --- /dev/null +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementCheckbox.kt @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2023 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.designsystem.theme.components + +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.material3.Checkbox +import androidx.compose.material3.CheckboxColors +import androidx.compose.material3.CheckboxDefaults +import androidx.compose.runtime.Composable +import androidx.compose.runtime.remember +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import io.element.android.libraries.designsystem.theme.ElementTheme + +@Composable +fun ElementCheckbox( + checked: Boolean, + onCheckedChange: ((Boolean) -> Unit)?, + modifier: Modifier = Modifier, + enabled: Boolean = true, + colors: CheckboxColors = CheckboxDefaults.colors( + checkedColor = ElementTheme.colors.primary, + uncheckedColor = Color.Gray, // TODO ElementTheme.colors. + checkmarkColor = Color.Gray, // TODO ElementTheme.colors. + disabledCheckedColor = Color.Gray // TODO ElementTheme.colors. + .copy(alpha = 0.2F), + disabledUncheckedColor = Color.Gray // TODO ElementTheme.colors. + .copy(alpha = 0.2F), + disabledIndeterminateColor = Color.Gray // TODO ElementTheme.colors. + ), + interactionSource: MutableInteractionSource = remember { MutableInteractionSource() } +) { + Checkbox( + checked = checked, + onCheckedChange = onCheckedChange, + modifier = modifier, + enabled = enabled, + colors = colors, + interactionSource = interactionSource, + ) +} diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementMediumAppBar.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementMediumAppBar.kt new file mode 100644 index 0000000000..0d3a0a134d --- /dev/null +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementMediumAppBar.kt @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2023 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.designsystem.theme.components + +import androidx.compose.foundation.layout.RowScope +import androidx.compose.foundation.layout.WindowInsets +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.MediumTopAppBar +import androidx.compose.material3.TopAppBarColors +import androidx.compose.material3.TopAppBarDefaults +import androidx.compose.material3.TopAppBarScrollBehavior +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import io.element.android.libraries.designsystem.theme.ElementTheme + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +fun ElementMediumAppBar( + title: @Composable () -> Unit, + modifier: Modifier = Modifier, + navigationIcon: @Composable () -> Unit = {}, + actions: @Composable RowScope.() -> Unit = {}, + windowInsets: WindowInsets = TopAppBarDefaults.windowInsets, + colors: TopAppBarColors = TopAppBarDefaults.mediumTopAppBarColors( + containerColor = ElementTheme.colors.background, + scrolledContainerColor = ElementTheme.colors.background, + navigationIconContentColor = ElementTheme.colors.onBackground, + titleContentColor = ElementTheme.colors.onBackground, + actionIconContentColor = ElementTheme.colors.onBackground, + ), + scrollBehavior: TopAppBarScrollBehavior? = null +) { + MediumTopAppBar( + title = title, + modifier = modifier, + navigationIcon = navigationIcon, + actions = actions, + windowInsets = windowInsets, + colors = colors, + scrollBehavior = scrollBehavior, + ) +} diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementScaffold.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementScaffold.kt new file mode 100644 index 0000000000..a244bb3fa7 --- /dev/null +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementScaffold.kt @@ -0,0 +1,57 @@ +/* + * Copyright (c) 2023 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.designsystem.theme.components + +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.WindowInsets +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.FabPosition +import androidx.compose.material3.Scaffold +import androidx.compose.material3.ScaffoldDefaults +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import io.element.android.libraries.designsystem.components.color.elementContentColorFor +import io.element.android.libraries.designsystem.theme.ElementTheme + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +fun ElementScaffold( + modifier: Modifier = Modifier, + topBar: @Composable () -> Unit = {}, + bottomBar: @Composable () -> Unit = {}, + snackbarHost: @Composable () -> Unit = {}, + floatingActionButton: @Composable () -> Unit = {}, + floatingActionButtonPosition: FabPosition = FabPosition.End, + containerColor: Color = ElementTheme.colors.background, + contentColor: Color = elementContentColorFor(containerColor), + contentWindowInsets: WindowInsets = ScaffoldDefaults.contentWindowInsets, + content: @Composable (PaddingValues) -> Unit +) { + Scaffold( + modifier = modifier, + topBar = topBar, + bottomBar = bottomBar, + snackbarHost = snackbarHost, + floatingActionButton = floatingActionButton, + floatingActionButtonPosition = floatingActionButtonPosition, + containerColor = containerColor, + contentColor = contentColor, + contentWindowInsets = contentWindowInsets, + content = content, + ) +} diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementSlider.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementSlider.kt new file mode 100644 index 0000000000..318aeb2b41 --- /dev/null +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementSlider.kt @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2023 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.designsystem.theme.components + +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.material3.Slider +import androidx.compose.material3.SliderColors +import androidx.compose.material3.SliderDefaults +import androidx.compose.runtime.Composable +import androidx.compose.runtime.remember +import androidx.compose.ui.Modifier +import io.element.android.libraries.designsystem.theme.ElementTheme + +@Composable +fun ElementSlider( + value: Float, + onValueChange: (Float) -> Unit, + modifier: Modifier = Modifier, + enabled: Boolean = true, + valueRange: ClosedFloatingPointRange = 0f..1f, + /*@IntRange(from = 0)*/ + steps: Int = 0, + onValueChangeFinished: (() -> Unit)? = null, + colors: SliderColors = SliderDefaults.colors( + thumbColor = ElementTheme.colors.primary, + activeTrackColor = ElementTheme.colors.primary, + activeTickColor = ElementTheme.colors.primary, + inactiveTrackColor = ElementTheme.colors.primary, + inactiveTickColor = ElementTheme.colors.primary, + disabledThumbColor = ElementTheme.colors.primary, + disabledActiveTrackColor = ElementTheme.colors.primary, + disabledActiveTickColor = ElementTheme.colors.primary, + disabledInactiveTrackColor = ElementTheme.colors.primary, + disabledInactiveTickColor = ElementTheme.colors.primary, + ), + interactionSource: MutableInteractionSource = remember { MutableInteractionSource() } +) { + Slider( + value = value, + onValueChange = onValueChange, + modifier = modifier, + enabled = enabled, + valueRange = valueRange, + steps = steps, + onValueChangeFinished = onValueChangeFinished, + colors = colors, + interactionSource = interactionSource, + ) +} diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementSurface.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementSurface.kt new file mode 100644 index 0000000000..0039eb0ee3 --- /dev/null +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementSurface.kt @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2023 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.designsystem.theme.components + +import androidx.compose.foundation.BorderStroke +import androidx.compose.material3.Surface +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.RectangleShape +import androidx.compose.ui.graphics.Shape +import androidx.compose.ui.unit.Dp +import androidx.compose.ui.unit.dp +import io.element.android.libraries.designsystem.components.color.elementContentColorFor +import io.element.android.libraries.designsystem.theme.ElementTheme + +@Composable +fun ElementSurface( + modifier: Modifier = Modifier, + shape: Shape = RectangleShape, + color: Color = ElementTheme.colors.surfaceVariant, + contentColor: Color = elementContentColorFor(color), + tonalElevation: Dp = 0.dp, + shadowElevation: Dp = 0.dp, + border: BorderStroke? = null, + content: @Composable () -> Unit +) { + Surface( + modifier = modifier, + shape = shape, + color = color, + contentColor = contentColor, + tonalElevation = tonalElevation, + shadowElevation = shadowElevation, + border = border, + content = content, + ) +} diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementTopAppBar.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementTopAppBar.kt new file mode 100644 index 0000000000..7b7be7dfd1 --- /dev/null +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementTopAppBar.kt @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2023 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.designsystem.theme.components + +import androidx.compose.foundation.layout.RowScope +import androidx.compose.foundation.layout.WindowInsets +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.TopAppBar +import androidx.compose.material3.TopAppBarColors +import androidx.compose.material3.TopAppBarDefaults +import androidx.compose.material3.TopAppBarScrollBehavior +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import io.element.android.libraries.designsystem.theme.ElementTheme + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +fun ElementTopAppBar( + title: @Composable () -> Unit, + modifier: Modifier = Modifier, + navigationIcon: @Composable () -> Unit = {}, + actions: @Composable RowScope.() -> Unit = {}, + windowInsets: WindowInsets = TopAppBarDefaults.windowInsets, + colors: TopAppBarColors = TopAppBarDefaults.smallTopAppBarColors( + containerColor = ElementTheme.colors.background, + scrolledContainerColor = ElementTheme.colors.background, + navigationIconContentColor = ElementTheme.colors.onBackground, + titleContentColor = ElementTheme.colors.onBackground, + actionIconContentColor = ElementTheme.colors.onBackground, + ), + scrollBehavior: TopAppBarScrollBehavior? = null +) { + TopAppBar( + title = title, + modifier = modifier, + navigationIcon = navigationIcon, + actions = actions, + windowInsets = windowInsets, + colors = colors, + scrollBehavior = scrollBehavior, + ) +} diff --git a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/MatrixUserHeader.kt b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/MatrixUserHeader.kt index 3fe339180e..94cc41c0f4 100644 --- a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/MatrixUserHeader.kt +++ b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/MatrixUserHeader.kt @@ -23,7 +23,6 @@ import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding -import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment @@ -36,6 +35,7 @@ import androidx.compose.ui.unit.sp import io.element.android.libraries.designsystem.components.avatar.Avatar import io.element.android.libraries.designsystem.components.avatar.AvatarData import io.element.android.libraries.designsystem.components.avatar.AvatarSize +import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.matrix.core.UserId import io.element.android.libraries.matrix.ui.model.MatrixUser import io.element.android.libraries.matrix.ui.model.getBestName @@ -71,7 +71,7 @@ fun MatrixUserHeader( Spacer(modifier = Modifier.height(4.dp)) Text( text = matrixUser.id.value, - color = MaterialTheme.colorScheme.secondary, + color = ElementTheme.colors.secondary, fontSize = 14.sp, maxLines = 1, overflow = TextOverflow.Ellipsis diff --git a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/MatrixUserRow.kt b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/MatrixUserRow.kt index 498a8d17a9..e813fc8b50 100644 --- a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/MatrixUserRow.kt +++ b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/MatrixUserRow.kt @@ -23,7 +23,6 @@ import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding -import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment @@ -35,6 +34,7 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import io.element.android.libraries.designsystem.components.avatar.Avatar import io.element.android.libraries.designsystem.components.avatar.AvatarData +import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.matrix.core.UserId import io.element.android.libraries.matrix.ui.model.MatrixUser import io.element.android.libraries.matrix.ui.model.getBestName @@ -74,7 +74,7 @@ fun MatrixUserRow( if (matrixUser.username.isNullOrEmpty().not()) { Text( text = matrixUser.id.value, - color = MaterialTheme.colorScheme.secondary, + color = ElementTheme.colors.secondary, fontSize = 14.sp, maxLines = 1, overflow = TextOverflow.Ellipsis diff --git a/tests/uitests/src/main/kotlin/io/element/android/tests/uitests/ShowkaseButton.kt b/tests/uitests/src/main/kotlin/io/element/android/tests/uitests/ShowkaseButton.kt index 9ae1b78577..7a89559b42 100644 --- a/tests/uitests/src/main/kotlin/io/element/android/tests/uitests/ShowkaseButton.kt +++ b/tests/uitests/src/main/kotlin/io/element/android/tests/uitests/ShowkaseButton.kt @@ -32,6 +32,7 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp +import io.element.android.libraries.designsystem.theme.components.ElementButton @Composable fun ShowkaseButton( @@ -41,7 +42,7 @@ fun ShowkaseButton( var isShowkaseButtonVisible by remember { mutableStateOf(BuildConfig.DEBUG) } if (isShowkaseButtonVisible) { - Button( + ElementButton( modifier = modifier .padding(top = 32.dp), onClick = onClick diff --git a/tests/uitests/src/test/kotlin/io/element/android/tests/uitests/ScreenshotTest.kt b/tests/uitests/src/test/kotlin/io/element/android/tests/uitests/ScreenshotTest.kt index 1c26565acf..bcd78869cf 100644 --- a/tests/uitests/src/test/kotlin/io/element/android/tests/uitests/ScreenshotTest.kt +++ b/tests/uitests/src/test/kotlin/io/element/android/tests/uitests/ScreenshotTest.kt @@ -24,7 +24,6 @@ import androidx.activity.OnBackPressedDispatcherOwner import androidx.activity.compose.LocalOnBackPressedDispatcherOwner import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box -import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalConfiguration @@ -36,7 +35,7 @@ import app.cash.paparazzi.Paparazzi import com.airbnb.android.showkase.models.Showkase import com.google.testing.junit.testparameterinjector.TestParameter import com.google.testing.junit.testparameterinjector.TestParameterInjector -import io.element.android.libraries.designsystem.ElementXTheme +import io.element.android.libraries.designsystem.theme.ElementTheme import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith @@ -101,8 +100,8 @@ class ScreenshotTest { override fun getOnBackPressedDispatcher() = OnBackPressedDispatcher() } ) { - ElementXTheme(darkTheme = (theme == "dark")) { - Box(modifier = Modifier.background(MaterialTheme.colorScheme.background)) { + ElementTheme(darkTheme = (theme == "dark")) { + Box(modifier = Modifier.background(ElementTheme.colors.background)) { componentTestPreview.Content() } } diff --git a/tests/uitests/src/test/kotlin/io/element/android/tests/uitests/TypographyTestPreview.kt b/tests/uitests/src/test/kotlin/io/element/android/tests/uitests/TypographyTestPreview.kt index 80f27c25a0..6f3b4f4bbf 100644 --- a/tests/uitests/src/test/kotlin/io/element/android/tests/uitests/TypographyTestPreview.kt +++ b/tests/uitests/src/test/kotlin/io/element/android/tests/uitests/TypographyTestPreview.kt @@ -19,11 +19,11 @@ package io.element.android.tests.uitests import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.text.BasicText -import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import com.airbnb.android.showkase.models.ShowkaseBrowserTypography import com.airbnb.android.showkase.ui.padding4x +import io.element.android.libraries.designsystem.theme.ElementTheme import java.util.Locale class TypographyTestPreview( @@ -39,7 +39,7 @@ class TypographyTestPreview( .fillMaxWidth() .padding(padding4x), style = showkaseBrowserTypography.textStyle.copy( - color = MaterialTheme.colorScheme.onBackground + color = ElementTheme.colors.onBackground ) ) } From 0af99b88a1dbd3942339a50c7ef214d7b4f3daaf Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Thu, 26 Jan 2023 16:32:10 +0100 Subject: [PATCH 04/22] Add some aliases and fixes placeholder color. --- .../roomlist/components/RoomSummaryRow.kt | 31 ++++++++++++++----- .../designsystem/theme/ColorAliases.kt | 29 +++++++++++++++++ 2 files changed, 53 insertions(+), 7 deletions(-) create mode 100644 libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ColorAliases.kt diff --git a/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/components/RoomSummaryRow.kt b/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/components/RoomSummaryRow.kt index 05494f95c3..9693d17a26 100644 --- a/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/components/RoomSummaryRow.kt +++ b/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/components/RoomSummaryRow.kt @@ -54,6 +54,11 @@ import com.google.accompanist.placeholder.material.placeholder import io.element.android.features.roomlist.model.RoomListRoomSummary import io.element.android.libraries.designsystem.components.avatar.Avatar import io.element.android.libraries.designsystem.theme.ElementTheme +import io.element.android.libraries.designsystem.theme.roomListPlaceHolder +import io.element.android.libraries.designsystem.theme.roomListRoomMessage +import io.element.android.libraries.designsystem.theme.roomListRoomMessageDate +import io.element.android.libraries.designsystem.theme.roomListRoomName +import io.element.android.libraries.designsystem.theme.roomListUnreadIndicator private val minHeight = 72.dp @@ -95,7 +100,11 @@ internal fun DefaultRoomSummaryRow( ) { Avatar( room.avatarData, - modifier = Modifier.placeholder(room.isPlaceholder, shape = CircleShape) + modifier = Modifier.placeholder( + visible = room.isPlaceholder, + shape = CircleShape, + color = ElementTheme.colors.roomListPlaceHolder, + ) ) Column( modifier = Modifier @@ -105,19 +114,27 @@ internal fun DefaultRoomSummaryRow( ) { // Name Text( - modifier = Modifier - .placeholder(room.isPlaceholder, shape = TextPlaceholderShape), + modifier = Modifier.placeholder( + visible = room.isPlaceholder, + shape = TextPlaceholderShape, + color = ElementTheme.colors.roomListPlaceHolder, + ), fontSize = 16.sp, fontWeight = FontWeight.SemiBold, text = room.name, + color = ElementTheme.colors.roomListRoomName, maxLines = 1, overflow = TextOverflow.Ellipsis ) // Last Message Text( - modifier = Modifier.placeholder(room.isPlaceholder, shape = TextPlaceholderShape), + modifier = Modifier.placeholder( + visible = room.isPlaceholder, + shape = TextPlaceholderShape, + color = ElementTheme.colors.roomListPlaceHolder, + ), text = room.lastMessage?.toString().orEmpty(), - color = ElementTheme.colors.secondary, + color = ElementTheme.colors.roomListRoomMessage, fontSize = 14.sp, maxLines = 1, overflow = TextOverflow.Ellipsis @@ -132,11 +149,11 @@ internal fun DefaultRoomSummaryRow( modifier = Modifier.placeholder(room.isPlaceholder, shape = TextPlaceholderShape), fontSize = 12.sp, text = room.timestamp ?: "", - color = ElementTheme.colors.secondary, + color = ElementTheme.colors.roomListRoomMessageDate, ) Spacer(Modifier.size(4.dp)) val unreadIndicatorColor = - if (room.hasUnread) ElementTheme.colors.primary else Color.Transparent + if (room.hasUnread) ElementTheme.colors.roomListUnreadIndicator else Color.Transparent Box( modifier = Modifier .size(12.dp) diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ColorAliases.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ColorAliases.kt new file mode 100644 index 0000000000..1325211232 --- /dev/null +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ColorAliases.kt @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2023 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.designsystem.theme + +import io.element.android.libraries.designsystem.SystemGrey4Dark +import io.element.android.libraries.designsystem.SystemGrey6Light + +/** + * Room list + */ +val ElementColors.roomListRoomName get() = primary +val ElementColors.roomListRoomMessage get() = secondary +val ElementColors.roomListRoomMessageDate get() = secondary +val ElementColors.roomListUnreadIndicator get() = primary +val ElementColors.roomListPlaceHolder get() = if (isLight) SystemGrey6Light else SystemGrey4Dark From 3273685cc4c860d814d52655b7c65c69b25af960 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Thu, 26 Jan 2023 16:39:17 +0100 Subject: [PATCH 05/22] Theme: Add ElementModalBottomSheetLayout. --- .../messages/actionlist/ActionListView.kt | 5 +- .../ElementModalBottomSheetLayout.kt | 59 +++++++++++++++++++ 2 files changed, 62 insertions(+), 2 deletions(-) create mode 100644 libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementModalBottomSheetLayout.kt diff --git a/features/messages/src/main/kotlin/io/element/android/features/messages/actionlist/ActionListView.kt b/features/messages/src/main/kotlin/io/element/android/features/messages/actionlist/ActionListView.kt index 43414e732c..683dd28dc8 100644 --- a/features/messages/src/main/kotlin/io/element/android/features/messages/actionlist/ActionListView.kt +++ b/features/messages/src/main/kotlin/io/element/android/features/messages/actionlist/ActionListView.kt @@ -44,6 +44,7 @@ import io.element.android.features.messages.actionlist.model.TimelineItemAction import io.element.android.features.messages.timeline.model.TimelineItem import io.element.android.libraries.designsystem.components.VectorIcon import io.element.android.libraries.designsystem.theme.ElementTheme +import io.element.android.libraries.designsystem.theme.components.ElementModalBottomSheetLayout import kotlinx.coroutines.flow.filter import kotlinx.coroutines.launch @@ -73,7 +74,7 @@ fun ActionListView( } } - ModalBottomSheetLayout( + ElementModalBottomSheetLayout( modifier = modifier, sheetState = modalBottomSheetState, sheetContent = { @@ -85,7 +86,7 @@ fun ActionListView( .imePadding() ) } - ) {} + ) } @Composable diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementModalBottomSheetLayout.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementModalBottomSheetLayout.kt new file mode 100644 index 0000000000..7fbd2caf49 --- /dev/null +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementModalBottomSheetLayout.kt @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2023 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.designsystem.theme.components + +import androidx.compose.foundation.layout.ColumnScope +import androidx.compose.material.ExperimentalMaterialApi +import androidx.compose.material.MaterialTheme +import androidx.compose.material.ModalBottomSheetDefaults +import androidx.compose.material.ModalBottomSheetLayout +import androidx.compose.material.ModalBottomSheetState +import androidx.compose.material.ModalBottomSheetValue +import androidx.compose.material.rememberModalBottomSheetState +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.Shape +import androidx.compose.ui.unit.Dp +import io.element.android.libraries.designsystem.components.color.elementContentColorFor +import io.element.android.libraries.designsystem.theme.ElementTheme + +@OptIn(ExperimentalMaterialApi::class) +@Composable +fun ElementModalBottomSheetLayout( + sheetContent: @Composable ColumnScope.() -> Unit, + modifier: Modifier = Modifier, + sheetState: ModalBottomSheetState = rememberModalBottomSheetState(ModalBottomSheetValue.Hidden), + sheetShape: Shape = MaterialTheme.shapes.large, + sheetElevation: Dp = ModalBottomSheetDefaults.Elevation, + sheetBackgroundColor: Color = ElementTheme.colors.surfaceVariant, + sheetContentColor: Color = elementContentColorFor(sheetBackgroundColor), + scrimColor: Color = ElementTheme.colors.onSurfaceVariant.copy(alpha = 0.32f), + content: @Composable () -> Unit = {} +) { + ModalBottomSheetLayout( + sheetContent = sheetContent, + modifier = modifier, + sheetState = sheetState, + sheetShape = sheetShape, + sheetElevation = sheetElevation, + sheetBackgroundColor = sheetBackgroundColor, + sheetContentColor = sheetContentColor, + scrimColor = scrimColor, + content = content, + ) +} From 171e35c89a756bf698d3fb6626b79605d5254041 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Thu, 26 Jan 2023 16:50:16 +0100 Subject: [PATCH 06/22] Fix color error. --- .../libraries/designsystem/components/ProgressDialog.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ProgressDialog.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ProgressDialog.kt index 5b7229cd87..cda8530772 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ProgressDialog.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ProgressDialog.kt @@ -48,19 +48,19 @@ fun ProgressDialog( modifier = modifier .fillMaxWidth() .background( - color = ElementTheme.colors.onBackground, + color = ElementTheme.colors.surfaceVariant, shape = RoundedCornerShape(8.dp) ) ) { Column(horizontalAlignment = Alignment.CenterHorizontally) { CircularProgressIndicator( modifier = Modifier.padding(16.dp), - color = ElementTheme.colors.background + color = ElementTheme.colors.onSurfaceVariant ) if (!text.isNullOrBlank()) { Text( text = text, - color = ElementTheme.colors.background, + color = ElementTheme.colors.onSurfaceVariant, modifier = Modifier.padding(16.dp) ) } From 8d87320531873f57e3663da90728d929999d72c3 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Thu, 26 Jan 2023 17:51:39 +0100 Subject: [PATCH 07/22] Add ElementCircularProgressIndicator and ElementOutlinedTextField. --- .../io/element/android/x/node/RootFlowNode.kt | 3 +- .../login/changeserver/ChangeServerView.kt | 6 +- .../features/login/root/LoginRootScreen.kt | 13 +- .../messages/timeline/TimelineView.kt | 3 +- .../rageshake/bugreport/BugReportView.kt | 10 +- .../designsystem/components/ProgressDialog.kt | 3 +- .../ElementCircularProgressIndicator.kt | 53 ++++++++ .../components/ElementOutlinedTextField.kt | 117 ++++++++++++++++++ 8 files changed, 190 insertions(+), 18 deletions(-) create mode 100644 libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementCircularProgressIndicator.kt create mode 100644 libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementOutlinedTextField.kt diff --git a/app/src/main/kotlin/io/element/android/x/node/RootFlowNode.kt b/app/src/main/kotlin/io/element/android/x/node/RootFlowNode.kt index ae3c31008d..24ae5ea389 100644 --- a/app/src/main/kotlin/io/element/android/x/node/RootFlowNode.kt +++ b/app/src/main/kotlin/io/element/android/x/node/RootFlowNode.kt @@ -36,6 +36,7 @@ import com.bumble.appyx.navmodel.backstack.operation.push import io.element.android.features.rageshake.bugreport.BugReportNode import io.element.android.libraries.architecture.animation.rememberDefaultTransitionHandler import io.element.android.libraries.architecture.createNode +import io.element.android.libraries.designsystem.theme.components.ElementCircularProgressIndicator import io.element.android.libraries.di.DaggerComponentOwner import io.element.android.libraries.matrix.auth.MatrixAuthenticationService import io.element.android.libraries.matrix.core.SessionId @@ -182,7 +183,7 @@ class RootFlowNode( private fun splashNode(buildContext: BuildContext) = node(buildContext) { Box(modifier = it.fillMaxSize(), contentAlignment = Alignment.Center) { - CircularProgressIndicator() + ElementCircularProgressIndicator() } } } diff --git a/features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerView.kt b/features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerView.kt index a8ea2de0fb..e81e6d7d14 100644 --- a/features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerView.kt +++ b/features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerView.kt @@ -56,6 +56,8 @@ import io.element.android.libraries.designsystem.components.VectorIcon import io.element.android.libraries.designsystem.components.form.textFieldState import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.designsystem.theme.components.ElementButton +import io.element.android.libraries.designsystem.theme.components.ElementCircularProgressIndicator +import io.element.android.libraries.designsystem.theme.components.ElementOutlinedTextField import io.element.android.libraries.designsystem.theme.components.ElementSurface import io.element.android.libraries.testtags.TestTags import io.element.android.libraries.testtags.testTag @@ -126,7 +128,7 @@ fun ChangeServerView( color = ElementTheme.colors.secondary ) var homeserverFieldState by textFieldState(stateValue = state.homeserver) - OutlinedTextField( + ElementOutlinedTextField( value = homeserverFieldState, modifier = Modifier .fillMaxWidth() @@ -174,7 +176,7 @@ fun ChangeServerView( } } if (state.changeServerAction is Async.Loading) { - CircularProgressIndicator( + ElementCircularProgressIndicator( modifier = Modifier.align(Alignment.Center) ) } diff --git a/features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootScreen.kt b/features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootScreen.kt index 1511648c74..5dd53a1254 100644 --- a/features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootScreen.kt +++ b/features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootScreen.kt @@ -32,11 +32,9 @@ import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Visibility import androidx.compose.material.icons.filled.VisibilityOff -import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon import androidx.compose.material3.IconButton -import androidx.compose.material3.OutlinedTextField import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue @@ -59,13 +57,14 @@ import io.element.android.features.login.error.loginError import io.element.android.libraries.designsystem.components.form.textFieldState import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.designsystem.theme.components.ElementButton +import io.element.android.libraries.designsystem.theme.components.ElementCircularProgressIndicator +import io.element.android.libraries.designsystem.theme.components.ElementOutlinedTextField import io.element.android.libraries.designsystem.theme.components.ElementSurface import io.element.android.libraries.matrix.core.SessionId import io.element.android.libraries.testtags.TestTags import io.element.android.libraries.testtags.testTag import io.element.android.libraries.ui.strings.R as StringR -@OptIn(ExperimentalMaterial3Api::class) @Composable fun LoginRootScreen( state: LoginRootState, @@ -112,7 +111,7 @@ fun LoginRootScreen( Box( modifier = Modifier.fillMaxWidth() ) { - OutlinedTextField( + ElementOutlinedTextField( value = state.homeserver, modifier = Modifier.fillMaxWidth(), onValueChange = { /* no op */ }, @@ -135,7 +134,7 @@ fun LoginRootScreen( } ) } - OutlinedTextField( + ElementOutlinedTextField( value = loginFieldState, modifier = Modifier .fillMaxWidth() @@ -158,7 +157,7 @@ fun LoginRootScreen( // Ensure password is hidden when user submits the form passwordVisible = false } - OutlinedTextField( + ElementOutlinedTextField( value = passwordFieldState, modifier = Modifier .fillMaxWidth() @@ -217,7 +216,7 @@ fun LoginRootScreen( } } if (state.loggedInState is LoggedInState.LoggingIn) { - CircularProgressIndicator( + ElementCircularProgressIndicator( modifier = Modifier.align(Alignment.Center) ) } diff --git a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/TimelineView.kt b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/TimelineView.kt index fdcf3037b6..d08642993e 100644 --- a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/TimelineView.kt +++ b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/TimelineView.kt @@ -79,6 +79,7 @@ import io.element.android.features.messages.timeline.model.content.TimelineItemU import io.element.android.libraries.designsystem.components.avatar.Avatar import io.element.android.libraries.designsystem.components.avatar.AvatarData import io.element.android.libraries.designsystem.theme.ElementTheme +import io.element.android.libraries.designsystem.theme.components.ElementCircularProgressIndicator import io.element.android.libraries.designsystem.utils.PairCombinedPreviewParameter import io.element.android.libraries.matrix.core.EventId import kotlinx.collections.immutable.ImmutableList @@ -343,7 +344,7 @@ internal fun TimelineLoadingMoreIndicator() { .padding(8.dp), contentAlignment = Alignment.Center, ) { - CircularProgressIndicator( + ElementCircularProgressIndicator( strokeWidth = 2.dp, color = ElementTheme.colors.primary ) diff --git a/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/bugreport/BugReportView.kt b/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/bugreport/BugReportView.kt index 3fd7810b73..75b0a5228e 100644 --- a/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/bugreport/BugReportView.kt +++ b/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/bugreport/BugReportView.kt @@ -26,9 +26,6 @@ import androidx.compose.foundation.layout.systemBarsPadding import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.foundation.verticalScroll -import androidx.compose.material3.CircularProgressIndicator -import androidx.compose.material3.ExperimentalMaterial3Api -import androidx.compose.material3.OutlinedTextField import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect @@ -52,11 +49,12 @@ import io.element.android.libraries.designsystem.components.LabelledCheckbox import io.element.android.libraries.designsystem.components.dialogs.ErrorDialog import io.element.android.libraries.designsystem.components.form.textFieldState import io.element.android.libraries.designsystem.theme.components.ElementButton +import io.element.android.libraries.designsystem.theme.components.ElementCircularProgressIndicator +import io.element.android.libraries.designsystem.theme.components.ElementOutlinedTextField import io.element.android.libraries.designsystem.theme.components.ElementSurface import io.element.android.libraries.designsystem.utils.LogCompositions import io.element.android.libraries.ui.strings.R as StringR -@OptIn(ExperimentalMaterial3Api::class) @Composable fun BugReportView( state: BugReportState, @@ -115,7 +113,7 @@ fun BugReportView( Column( // modifier = Modifier.weight(1f), ) { - OutlinedTextField( + ElementOutlinedTextField( value = descriptionFieldState, modifier = Modifier .fillMaxWidth() @@ -195,7 +193,7 @@ fun BugReportView( } when (state.sending) { is Async.Loading -> { - CircularProgressIndicator( + ElementCircularProgressIndicator( progress = state.sendingProgress, modifier = Modifier.align(Alignment.Center) ) diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ProgressDialog.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ProgressDialog.kt index cda8530772..ced336c0e0 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ProgressDialog.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ProgressDialog.kt @@ -32,6 +32,7 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.window.Dialog import androidx.compose.ui.window.DialogProperties import io.element.android.libraries.designsystem.theme.ElementTheme +import io.element.android.libraries.designsystem.theme.components.ElementCircularProgressIndicator @Composable fun ProgressDialog( @@ -53,7 +54,7 @@ fun ProgressDialog( ) ) { Column(horizontalAlignment = Alignment.CenterHorizontally) { - CircularProgressIndicator( + ElementCircularProgressIndicator( modifier = Modifier.padding(16.dp), color = ElementTheme.colors.onSurfaceVariant ) diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementCircularProgressIndicator.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementCircularProgressIndicator.kt new file mode 100644 index 0000000000..a5188bab51 --- /dev/null +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementCircularProgressIndicator.kt @@ -0,0 +1,53 @@ +/* + * Copyright (c) 2023 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.designsystem.theme.components + +import androidx.compose.material3.CircularProgressIndicator +import androidx.compose.material3.ProgressIndicatorDefaults +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.unit.Dp +import io.element.android.libraries.designsystem.theme.ElementTheme + +@Composable +fun ElementCircularProgressIndicator( + progress: Float, + modifier: Modifier = Modifier, + color: Color = ProgressIndicatorDefaults.circularColor, + strokeWidth: Dp = ProgressIndicatorDefaults.CircularStrokeWidth +) { + CircularProgressIndicator( + modifier = modifier, + progress = progress, + color = color, + strokeWidth = strokeWidth, + ) +} + +@Composable +fun ElementCircularProgressIndicator( + modifier: Modifier = Modifier, + color: Color = ElementTheme.colors.primary, + strokeWidth: Dp = ProgressIndicatorDefaults.CircularStrokeWidth, +) { + CircularProgressIndicator( + modifier = modifier, + color = color, + strokeWidth = strokeWidth, + ) +} diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementOutlinedTextField.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementOutlinedTextField.kt new file mode 100644 index 0000000000..04b0eb402f --- /dev/null +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementOutlinedTextField.kt @@ -0,0 +1,117 @@ +/* + * Copyright (c) 2023 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.designsystem.theme.components + +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.text.KeyboardActions +import androidx.compose.foundation.text.KeyboardOptions +import androidx.compose.foundation.text.selection.TextSelectionColors +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.LocalTextStyle +import androidx.compose.material3.OutlinedTextField +import androidx.compose.material3.TextFieldColors +import androidx.compose.material3.TextFieldDefaults +import androidx.compose.runtime.Composable +import androidx.compose.runtime.remember +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.Shape +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.input.VisualTransformation +import io.element.android.libraries.designsystem.ElementGreen +import io.element.android.libraries.designsystem.theme.ElementTheme + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +fun ElementOutlinedTextField( + value: String, + onValueChange: (String) -> Unit, + modifier: Modifier = Modifier, + enabled: Boolean = true, + readOnly: Boolean = false, + textStyle: TextStyle = LocalTextStyle.current, + label: @Composable (() -> Unit)? = null, + placeholder: @Composable (() -> Unit)? = null, + leadingIcon: @Composable (() -> Unit)? = null, + trailingIcon: @Composable (() -> Unit)? = null, + supportingText: @Composable (() -> Unit)? = null, + isError: Boolean = false, + visualTransformation: VisualTransformation = VisualTransformation.None, + keyboardOptions: KeyboardOptions = KeyboardOptions.Default, + keyboardActions: KeyboardActions = KeyboardActions.Default, + singleLine: Boolean = false, + maxLines: Int = Int.MAX_VALUE, + interactionSource: MutableInteractionSource = remember { MutableInteractionSource() }, + shape: Shape = TextFieldDefaults.outlinedShape, + colors: TextFieldColors = TextFieldDefaults.outlinedTextFieldColors( + textColor = ElementTheme.colors.primary, + disabledTextColor = ElementTheme.colors.primary.copy(alpha = 0.38f), + containerColor = Color.Transparent, + cursorColor = ElementTheme.colors.primary, + errorCursorColor = ElementTheme.colors.error, + selectionColors = TextSelectionColors( + handleColor = ElementGreen, + backgroundColor = ElementGreen.copy(alpha = 0.4f) + ), + focusedBorderColor = ElementTheme.colors.primary, + unfocusedBorderColor = ElementTheme.colors.secondary, + disabledBorderColor = ElementTheme.colors.secondary.copy(alpha = 0.12f), + errorBorderColor = ElementTheme.colors.error, + focusedLeadingIconColor = ElementTheme.colors.primary, + unfocusedLeadingIconColor = ElementTheme.colors.secondary, + disabledLeadingIconColor = ElementTheme.colors.secondary.copy(0.12f), + errorLeadingIconColor = ElementTheme.colors.error, + focusedTrailingIconColor = ElementTheme.colors.primary, + unfocusedTrailingIconColor = ElementTheme.colors.secondary, + disabledTrailingIconColor = ElementTheme.colors.secondary.copy(alpha = 0.12f), + errorTrailingIconColor = ElementTheme.colors.error, + focusedLabelColor = ElementTheme.colors.primary, + unfocusedLabelColor = ElementTheme.colors.secondary, + disabledLabelColor = ElementTheme.colors.secondary.copy(alpha = 0.12f), + errorLabelColor = ElementTheme.colors.error, + placeholderColor = ElementTheme.colors.secondary, + disabledPlaceholderColor = ElementTheme.colors.secondary.copy(alpha = 0.12f), + focusedSupportingTextColor = ElementTheme.colors.primary, + unfocusedSupportingTextColor = ElementTheme.colors.secondary, + disabledSupportingTextColor = ElementTheme.colors.primary.copy(alpha = 0.12f), + errorSupportingTextColor = ElementTheme.colors.error, + ) +) { + OutlinedTextField( + value = value, + onValueChange = onValueChange, + modifier = modifier, + enabled = enabled, + readOnly = readOnly, + textStyle = textStyle, + label = label, + placeholder = placeholder, + leadingIcon = leadingIcon, + trailingIcon = trailingIcon, + supportingText = supportingText, + isError = isError, + visualTransformation = visualTransformation, + keyboardOptions = keyboardOptions, + keyboardActions = keyboardActions, + singleLine = singleLine, + maxLines = maxLines, + interactionSource = interactionSource, + shape = shape, + colors = colors, + ) +} + From 10763dcecc2e911842db96d630d129f4b0eb116f Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Thu, 26 Jan 2023 18:01:27 +0100 Subject: [PATCH 08/22] Remove bad usage of ElementSurface --- .../io/element/android/x/MainActivity.kt | 4 +- .../login/changeserver/ChangeServerView.kt | 199 +++++++------- .../features/login/root/LoginRootScreen.kt | 260 +++++++++--------- .../features/onboarding/OnBoardingScreen.kt | 99 ++++--- .../rageshake/bugreport/BugReportView.kt | 229 ++++++++------- 5 files changed, 384 insertions(+), 407 deletions(-) diff --git a/app/src/main/kotlin/io/element/android/x/MainActivity.kt b/app/src/main/kotlin/io/element/android/x/MainActivity.kt index eb249d5b75..c37a35476d 100644 --- a/app/src/main/kotlin/io/element/android/x/MainActivity.kt +++ b/app/src/main/kotlin/io/element/android/x/MainActivity.kt @@ -18,6 +18,7 @@ package io.element.android.x import android.os.Bundle import androidx.activity.compose.setContent +import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.ui.Modifier import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen @@ -25,7 +26,6 @@ import androidx.core.view.WindowCompat import com.bumble.appyx.core.integration.NodeHost import com.bumble.appyx.core.integrationpoint.NodeComponentActivity import io.element.android.libraries.architecture.bindings -import io.element.android.libraries.designsystem.theme.components.ElementSurface import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.di.DaggerComponentOwner import io.element.android.x.di.AppBindings @@ -41,7 +41,7 @@ class MainActivity : NodeComponentActivity() { WindowCompat.setDecorFitsSystemWindows(window, false) setContent { ElementTheme { - ElementSurface( + Box( modifier = Modifier.fillMaxSize(), ) { NodeHost(integrationPoint = appyxIntegrationPoint) { diff --git a/features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerView.kt b/features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerView.kt index e81e6d7d14..4ffeb42def 100644 --- a/features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerView.kt +++ b/features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerView.kt @@ -33,9 +33,7 @@ import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.text.KeyboardActions import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.foundation.verticalScroll -import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.ExperimentalMaterial3Api -import androidx.compose.material3.OutlinedTextField import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue @@ -58,7 +56,6 @@ import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.designsystem.theme.components.ElementButton import io.element.android.libraries.designsystem.theme.components.ElementCircularProgressIndicator import io.element.android.libraries.designsystem.theme.components.ElementOutlinedTextField -import io.element.android.libraries.designsystem.theme.components.ElementSurface import io.element.android.libraries.testtags.TestTags import io.element.android.libraries.testtags.testTag @@ -68,118 +65,114 @@ fun ChangeServerView( modifier: Modifier = Modifier, onChangeServerSuccess: () -> Unit = {}, ) { - ElementSurface( - modifier = modifier, + val eventSink = state.eventSink + val scrollState = rememberScrollState() + Box( + modifier = modifier + .fillMaxSize() + .systemBarsPadding() + .imePadding() ) { - val eventSink = state.eventSink - val scrollState = rememberScrollState() - Box( + Column( modifier = Modifier - .fillMaxSize() - .systemBarsPadding() - .imePadding() + .verticalScroll( + state = scrollState, + ) + .padding(horizontal = 16.dp) ) { - Column( + val isError = state.changeServerAction is Async.Failure + Box( modifier = Modifier - .verticalScroll( - state = scrollState, + .padding(top = 99.dp) + .size(width = 81.dp, height = 73.dp) + .align(Alignment.CenterHorizontally) + .background( + color = ElementTheme.colors.surfaceVariant, + shape = RoundedCornerShape(32.dp) ) - .padding(horizontal = 16.dp) ) { - val isError = state.changeServerAction is Async.Failure - Box( + VectorIcon( modifier = Modifier - .padding(top = 99.dp) - .size(width = 81.dp, height = 73.dp) - .align(Alignment.CenterHorizontally) - .background( - color = ElementTheme.colors.surfaceVariant, - shape = RoundedCornerShape(32.dp) - ) - ) { - VectorIcon( - modifier = Modifier - .align(Alignment.Center) - .size(width = 48.dp, height = 48.dp), - // TODO Update with design input - resourceId = R.drawable.ic_baseline_dataset_24, - ) - } - Text( - text = "Your server", - modifier = Modifier - .fillMaxWidth() - .defaultMinSize(minHeight = 56.dp) - .align(Alignment.CenterHorizontally) - .padding(top = 38.dp), - textAlign = TextAlign.Center, - fontWeight = FontWeight.Bold, - fontSize = 24.sp, + .align(Alignment.Center) + .size(width = 48.dp, height = 48.dp), + // TODO Update with design input + resourceId = R.drawable.ic_baseline_dataset_24, ) - Text( - text = "A server is a home for all your data.\n" + - "You choose your server and it’s easy to make one.", // TODO "Learn more.", - modifier = Modifier - .fillMaxWidth() - .align(Alignment.CenterHorizontally) - .padding(top = 16.dp), - textAlign = TextAlign.Center, - fontSize = 16.sp, - color = ElementTheme.colors.secondary + } + Text( + text = "Your server", + modifier = Modifier + .fillMaxWidth() + .defaultMinSize(minHeight = 56.dp) + .align(Alignment.CenterHorizontally) + .padding(top = 38.dp), + textAlign = TextAlign.Center, + fontWeight = FontWeight.Bold, + fontSize = 24.sp, + ) + Text( + text = "A server is a home for all your data.\n" + + "You choose your server and it’s easy to make one.", // TODO "Learn more.", + modifier = Modifier + .fillMaxWidth() + .align(Alignment.CenterHorizontally) + .padding(top = 16.dp), + textAlign = TextAlign.Center, + fontSize = 16.sp, + color = ElementTheme.colors.secondary + ) + var homeserverFieldState by textFieldState(stateValue = state.homeserver) + ElementOutlinedTextField( + value = homeserverFieldState, + modifier = Modifier + .fillMaxWidth() + .testTag(TestTags.changeServerServer) + .padding(top = 200.dp), + onValueChange = { + homeserverFieldState = it + eventSink(ChangeServerEvents.SetServer(it)) + }, + label = { + Text(text = "Server") + }, + isError = isError, + keyboardOptions = KeyboardOptions( + keyboardType = KeyboardType.Password, + imeAction = ImeAction.Done, + ), + keyboardActions = KeyboardActions( + onDone = { eventSink(ChangeServerEvents.Submit) } ) - var homeserverFieldState by textFieldState(stateValue = state.homeserver) - ElementOutlinedTextField( - value = homeserverFieldState, - modifier = Modifier - .fillMaxWidth() - .testTag(TestTags.changeServerServer) - .padding(top = 200.dp), - onValueChange = { - homeserverFieldState = it - eventSink(ChangeServerEvents.SetServer(it)) - }, - label = { - Text(text = "Server") - }, - isError = isError, - keyboardOptions = KeyboardOptions( - keyboardType = KeyboardType.Password, - imeAction = ImeAction.Done, + ) + if (state.changeServerAction is Async.Failure) { + Text( + text = changeServerError( + state.homeserver, + state.changeServerAction.error ), - keyboardActions = KeyboardActions( - onDone = { eventSink(ChangeServerEvents.Submit) } - ) - ) - if (state.changeServerAction is Async.Failure) { - Text( - text = changeServerError( - state.homeserver, - state.changeServerAction.error - ), - color = ElementTheme.colors.error, - style = ElementTheme.typography.bodySmall, - modifier = Modifier.padding(start = 16.dp) - ) - } - ElementButton( - onClick = { eventSink(ChangeServerEvents.Submit) }, - enabled = state.submitEnabled, - modifier = Modifier - .fillMaxWidth() - .testTag(TestTags.changeServerContinue) - .padding(top = 44.dp) - ) { - Text(text = "Continue") - } - if (state.changeServerAction is Async.Success) { - onChangeServerSuccess() - } - } - if (state.changeServerAction is Async.Loading) { - ElementCircularProgressIndicator( - modifier = Modifier.align(Alignment.Center) + color = ElementTheme.colors.error, + style = ElementTheme.typography.bodySmall, + modifier = Modifier.padding(start = 16.dp) ) } + ElementButton( + onClick = { eventSink(ChangeServerEvents.Submit) }, + enabled = state.submitEnabled, + modifier = Modifier + .fillMaxWidth() + .testTag(TestTags.changeServerContinue) + .padding(top = 44.dp) + ) { + Text(text = "Continue") + } + if (state.changeServerAction is Async.Success) { + onChangeServerSuccess() + } + } + if (state.changeServerAction is Async.Loading) { + ElementCircularProgressIndicator( + modifier = Modifier.align(Alignment.Center) + ) } } } diff --git a/features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootScreen.kt b/features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootScreen.kt index 5dd53a1254..71ca4ebe15 100644 --- a/features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootScreen.kt +++ b/features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootScreen.kt @@ -18,6 +18,7 @@ package io.element.android.features.login.root +import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize @@ -59,7 +60,6 @@ import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.designsystem.theme.components.ElementButton import io.element.android.libraries.designsystem.theme.components.ElementCircularProgressIndicator import io.element.android.libraries.designsystem.theme.components.ElementOutlinedTextField -import io.element.android.libraries.designsystem.theme.components.ElementSurface import io.element.android.libraries.matrix.core.SessionId import io.element.android.libraries.testtags.TestTags import io.element.android.libraries.testtags.testTag @@ -73,153 +73,149 @@ fun LoginRootScreen( onLoginWithSuccess: (SessionId) -> Unit = {}, ) { val eventSink = state.eventSink - ElementSurface( - modifier = modifier, + Box( + modifier = modifier + .fillMaxSize() + .systemBarsPadding() + .imePadding() ) { - Box( + val scrollState = rememberScrollState() + var loginFieldState by textFieldState(stateValue = state.formState.login) + var passwordFieldState by textFieldState(stateValue = state.formState.password) + + Column( modifier = Modifier - .fillMaxSize() - .systemBarsPadding() - .imePadding() + .verticalScroll( + state = scrollState, + ) + .padding(horizontal = 16.dp), ) { - val scrollState = rememberScrollState() - var loginFieldState by textFieldState(stateValue = state.formState.login) - var passwordFieldState by textFieldState(stateValue = state.formState.password) - - Column( + val isError = state.loggedInState is LoggedInState.ErrorLoggingIn + // Title + Text( + text = stringResource(id = StringR.string.ftue_auth_welcome_back_title), modifier = Modifier - .verticalScroll( - state = scrollState, - ) - .padding(horizontal = 16.dp), + .fillMaxWidth() + .padding(horizontal = 16.dp, vertical = 48.dp), + textAlign = TextAlign.Center, + fontWeight = FontWeight.Bold, + fontSize = 24.sp, + ) + // Form + Column( + // modifier = Modifier.weight(1f), ) { - val isError = state.loggedInState is LoggedInState.ErrorLoggingIn - // Title - Text( - text = stringResource(id = StringR.string.ftue_auth_welcome_back_title), - modifier = Modifier - .fillMaxWidth() - .padding(horizontal = 16.dp, vertical = 48.dp), - textAlign = TextAlign.Center, - fontWeight = FontWeight.Bold, - fontSize = 24.sp, - ) - // Form - Column( - // modifier = Modifier.weight(1f), + Box( + modifier = Modifier.fillMaxWidth() ) { - Box( - modifier = Modifier.fillMaxWidth() - ) { - ElementOutlinedTextField( - value = state.homeserver, - modifier = Modifier.fillMaxWidth(), - onValueChange = { /* no op */ }, - enabled = false, - label = { - Text(text = "Server") - }, - keyboardOptions = KeyboardOptions( - keyboardType = KeyboardType.Uri, - ), - ) - ElementButton( - onClick = onChangeServer, - modifier = Modifier - .align(Alignment.CenterEnd) - .testTag(TestTags.loginChangeServer) - .padding(top = 8.dp, end = 8.dp), - content = { - Text(text = "Change") - } - ) - } ElementOutlinedTextField( - value = loginFieldState, - modifier = Modifier - .fillMaxWidth() - .testTag(TestTags.loginEmailUsername) - .padding(top = 60.dp), + value = state.homeserver, + modifier = Modifier.fillMaxWidth(), + onValueChange = { /* no op */ }, + enabled = false, label = { - Text(text = stringResource(id = StringR.string.login_signin_username_hint)) - }, - onValueChange = { - loginFieldState = it - eventSink(LoginRootEvents.SetLogin(it)) + Text(text = "Server") }, keyboardOptions = KeyboardOptions( - keyboardType = KeyboardType.Email, - imeAction = ImeAction.Next + keyboardType = KeyboardType.Uri, ), ) - var passwordVisible by remember { mutableStateOf(false) } - if (state.loggedInState is LoggedInState.LoggingIn) { - // Ensure password is hidden when user submits the form - passwordVisible = false - } - ElementOutlinedTextField( - value = passwordFieldState, + ElementButton( + onClick = onChangeServer, modifier = Modifier - .fillMaxWidth() - .testTag(TestTags.loginPassword) - .padding(top = 24.dp), - onValueChange = { - passwordFieldState = it - eventSink(LoginRootEvents.SetPassword(it)) - }, - label = { - Text(text = "Password") - }, - isError = isError, - visualTransformation = if (passwordVisible) VisualTransformation.None else PasswordVisualTransformation(), - trailingIcon = { - val image = - if (passwordVisible) Icons.Filled.Visibility else Icons.Filled.VisibilityOff - val description = - if (passwordVisible) "Hide password" else "Show password" + .align(Alignment.CenterEnd) + .testTag(TestTags.loginChangeServer) + .padding(top = 8.dp, end = 8.dp), + content = { + Text(text = "Change") + } + ) + } + ElementOutlinedTextField( + value = loginFieldState, + modifier = Modifier + .fillMaxWidth() + .testTag(TestTags.loginEmailUsername) + .padding(top = 60.dp), + label = { + Text(text = stringResource(id = StringR.string.login_signin_username_hint)) + }, + onValueChange = { + loginFieldState = it + eventSink(LoginRootEvents.SetLogin(it)) + }, + keyboardOptions = KeyboardOptions( + keyboardType = KeyboardType.Email, + imeAction = ImeAction.Next + ), + ) + var passwordVisible by remember { mutableStateOf(false) } + if (state.loggedInState is LoggedInState.LoggingIn) { + // Ensure password is hidden when user submits the form + passwordVisible = false + } + ElementOutlinedTextField( + value = passwordFieldState, + modifier = Modifier + .fillMaxWidth() + .testTag(TestTags.loginPassword) + .padding(top = 24.dp), + onValueChange = { + passwordFieldState = it + eventSink(LoginRootEvents.SetPassword(it)) + }, + label = { + Text(text = "Password") + }, + isError = isError, + visualTransformation = if (passwordVisible) VisualTransformation.None else PasswordVisualTransformation(), + trailingIcon = { + val image = + if (passwordVisible) Icons.Filled.Visibility else Icons.Filled.VisibilityOff + val description = + if (passwordVisible) "Hide password" else "Show password" - IconButton(onClick = { passwordVisible = !passwordVisible }) { - Icon(imageVector = image, description) - } - }, - keyboardOptions = KeyboardOptions( - keyboardType = KeyboardType.Password, - imeAction = ImeAction.Done, - ), - keyboardActions = KeyboardActions( - onDone = { eventSink(LoginRootEvents.Submit) } - ), - ) - if (state.loggedInState is LoggedInState.ErrorLoggingIn) { - Text( - text = loginError(state.formState, state.loggedInState.failure), - color = ElementTheme.colors.error, - style = ElementTheme.typography.bodySmall, - modifier = Modifier.padding(start = 16.dp) - ) - } - } - // Submit - ElementButton( - onClick = { eventSink(LoginRootEvents.Submit) }, - enabled = state.submitEnabled, - modifier = Modifier - .fillMaxWidth() - .testTag(TestTags.loginContinue) - .padding(vertical = 32.dp) - ) { - Text(text = "Continue") - } - when (val loggedInState = state.loggedInState) { - is LoggedInState.LoggedIn -> onLoginWithSuccess(loggedInState.sessionId) - else -> Unit - } - } - if (state.loggedInState is LoggedInState.LoggingIn) { - ElementCircularProgressIndicator( - modifier = Modifier.align(Alignment.Center) + IconButton(onClick = { passwordVisible = !passwordVisible }) { + Icon(imageVector = image, description) + } + }, + keyboardOptions = KeyboardOptions( + keyboardType = KeyboardType.Password, + imeAction = ImeAction.Done, + ), + keyboardActions = KeyboardActions( + onDone = { eventSink(LoginRootEvents.Submit) } + ), ) + if (state.loggedInState is LoggedInState.ErrorLoggingIn) { + Text( + text = loginError(state.formState, state.loggedInState.failure), + color = ElementTheme.colors.error, + style = ElementTheme.typography.bodySmall, + modifier = Modifier.padding(start = 16.dp) + ) + } } + // Submit + ElementButton( + onClick = { eventSink(LoginRootEvents.Submit) }, + enabled = state.submitEnabled, + modifier = Modifier + .fillMaxWidth() + .testTag(TestTags.loginContinue) + .padding(vertical = 32.dp) + ) { + Text(text = "Continue") + } + when (val loggedInState = state.loggedInState) { + is LoggedInState.LoggedIn -> onLoginWithSuccess(loggedInState.sessionId) + else -> Unit + } + } + if (state.loggedInState is LoggedInState.LoggingIn) { + ElementCircularProgressIndicator( + modifier = Modifier.align(Alignment.Center) + ) } } } diff --git a/features/onboarding/src/main/kotlin/io/element/android/features/onboarding/OnBoardingScreen.kt b/features/onboarding/src/main/kotlin/io/element/android/features/onboarding/OnBoardingScreen.kt index 684d7a02ce..6cab7dd091 100644 --- a/features/onboarding/src/main/kotlin/io/element/android/features/onboarding/OnBoardingScreen.kt +++ b/features/onboarding/src/main/kotlin/io/element/android/features/onboarding/OnBoardingScreen.kt @@ -47,9 +47,7 @@ import com.google.accompanist.pager.ExperimentalPagerApi import com.google.accompanist.pager.HorizontalPager import com.google.accompanist.pager.HorizontalPagerIndicator import com.google.accompanist.pager.rememberPagerState -import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.designsystem.theme.components.ElementButton -import io.element.android.libraries.designsystem.theme.components.ElementSurface import io.element.android.libraries.testtags.TestTags import io.element.android.libraries.testtags.testTag import kotlinx.coroutines.delay @@ -67,60 +65,55 @@ fun OnBoardingScreen( val carrouselState = remember { SplashCarouselStateFactory().create() } val nbOfPages = carrouselState.items.size var key by remember { mutableStateOf(false) } - ElementSurface( - modifier = modifier, - color = ElementTheme.colors.background, + Box( + modifier = modifier + .fillMaxSize() + .systemBarsPadding() + .padding(vertical = 16.dp) ) { - Box( - modifier = Modifier - .fillMaxSize() - .systemBarsPadding() - .padding(vertical = 16.dp) + Column( + modifier = Modifier.fillMaxSize(), ) { - Column( - modifier = Modifier.fillMaxSize(), + val pagerState = rememberPagerState() + LaunchedEffect(key) { + launch { + delay(3_000) + pagerState.animateScrollToPage((pagerState.currentPage + 1) % nbOfPages) + // https://stackoverflow.com/questions/73714228/accompanist-pager-animatescrolltopage-doesnt-scroll-to-next-page-correctly + key = !key + } + } + LaunchedEffect(pagerState) { + // Collect from the pager state a snapshotFlow reading the currentPage + snapshotFlow { pagerState.currentPage }.collect { page -> + onPageChanged(page) + } + } + HorizontalPager( + modifier = Modifier.weight(1f), + count = nbOfPages, + state = pagerState, + ) { page -> + // Our page content + OnBoardingPage(carrouselState.items[page]) + } + HorizontalPagerIndicator( + pagerState = pagerState, + modifier = Modifier + .align(CenterHorizontally) + .padding(16.dp), + ) + ElementButton( + onClick = { + onSignIn() + }, + enabled = true, + modifier = Modifier + .align(CenterHorizontally) + .testTag(TestTags.onBoardingSignIn) + .padding(top = 16.dp) ) { - val pagerState = rememberPagerState() - LaunchedEffect(key) { - launch { - delay(3_000) - pagerState.animateScrollToPage((pagerState.currentPage + 1) % nbOfPages) - // https://stackoverflow.com/questions/73714228/accompanist-pager-animatescrolltopage-doesnt-scroll-to-next-page-correctly - key = !key - } - } - LaunchedEffect(pagerState) { - // Collect from the pager state a snapshotFlow reading the currentPage - snapshotFlow { pagerState.currentPage }.collect { page -> - onPageChanged(page) - } - } - HorizontalPager( - modifier = Modifier.weight(1f), - count = nbOfPages, - state = pagerState, - ) { page -> - // Our page content - OnBoardingPage(carrouselState.items[page]) - } - HorizontalPagerIndicator( - pagerState = pagerState, - modifier = Modifier - .align(CenterHorizontally) - .padding(16.dp), - ) - ElementButton( - onClick = { - onSignIn() - }, - enabled = true, - modifier = Modifier - .align(CenterHorizontally) - .testTag(TestTags.onBoardingSignIn) - .padding(top = 16.dp) - ) { - Text(text = stringResource(id = StringR.string.login_splash_submit)) - } + Text(text = stringResource(id = StringR.string.login_splash_submit)) } } } diff --git a/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/bugreport/BugReportView.kt b/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/bugreport/BugReportView.kt index 75b0a5228e..a81f961ac3 100644 --- a/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/bugreport/BugReportView.kt +++ b/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/bugreport/BugReportView.kt @@ -51,7 +51,6 @@ import io.element.android.libraries.designsystem.components.form.textFieldState import io.element.android.libraries.designsystem.theme.components.ElementButton import io.element.android.libraries.designsystem.theme.components.ElementCircularProgressIndicator import io.element.android.libraries.designsystem.theme.components.ElementOutlinedTextField -import io.element.android.libraries.designsystem.theme.components.ElementSurface import io.element.android.libraries.designsystem.utils.LogCompositions import io.element.android.libraries.ui.strings.R as StringR @@ -70,139 +69,135 @@ fun BugReportView( } return } - ElementSurface( - modifier = modifier, + Box( + modifier = modifier + .fillMaxSize() + .systemBarsPadding() + .imePadding() ) { - Box( + val scrollState = rememberScrollState() + Column( modifier = Modifier - .fillMaxSize() - .systemBarsPadding() - .imePadding() + .verticalScroll( + state = scrollState, + ) + .padding(horizontal = 16.dp), ) { - val scrollState = rememberScrollState() - Column( + val isError = state.sending is Async.Failure + val isFormEnabled = state.sending !is Async.Loading + // Title + Text( + text = stringResource(id = StringR.string.send_bug_report), modifier = Modifier - .verticalScroll( - state = scrollState, - ) - .padding(horizontal = 16.dp), + .fillMaxWidth() + .padding(horizontal = 16.dp, vertical = 16.dp), + textAlign = TextAlign.Center, + fontWeight = FontWeight.Bold, + fontSize = 24.sp, + ) + // Form + Text( + text = stringResource(id = StringR.string.send_bug_report_description), + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 16.dp, vertical = 16.dp), + fontSize = 16.sp, + ) + var descriptionFieldState by textFieldState( + stateValue = state.formState.description + ) + Column( + // modifier = Modifier.weight(1f), ) { - val isError = state.sending is Async.Failure - val isFormEnabled = state.sending !is Async.Loading - // Title - Text( - text = stringResource(id = StringR.string.send_bug_report), + ElementOutlinedTextField( + value = descriptionFieldState, modifier = Modifier .fillMaxWidth() - .padding(horizontal = 16.dp, vertical = 16.dp), - textAlign = TextAlign.Center, - fontWeight = FontWeight.Bold, - fontSize = 24.sp, - ) - // Form - Text( - text = stringResource(id = StringR.string.send_bug_report_description), - modifier = Modifier - .fillMaxWidth() - .padding(horizontal = 16.dp, vertical = 16.dp), - fontSize = 16.sp, - ) - var descriptionFieldState by textFieldState( - stateValue = state.formState.description - ) - Column( - // modifier = Modifier.weight(1f), - ) { - ElementOutlinedTextField( - value = descriptionFieldState, - modifier = Modifier - .fillMaxWidth() - .padding(top = 16.dp), - enabled = isFormEnabled, - label = { - Text(text = stringResource(id = StringR.string.send_bug_report_placeholder)) - }, - supportingText = { - Text(text = stringResource(id = StringR.string.send_bug_report_description_in_english)) - }, - onValueChange = { - descriptionFieldState = it - eventSink(BugReportEvents.SetDescription(it)) - }, - keyboardOptions = KeyboardOptions( - keyboardType = KeyboardType.Text, - imeAction = ImeAction.Next - ), - // TODO Error text too short - ) - } - LabelledCheckbox( - checked = state.formState.sendLogs, - onCheckedChange = { eventSink(BugReportEvents.SetSendLog(it)) }, + .padding(top = 16.dp), enabled = isFormEnabled, - text = stringResource(id = StringR.string.send_bug_report_include_logs) + label = { + Text(text = stringResource(id = StringR.string.send_bug_report_placeholder)) + }, + supportingText = { + Text(text = stringResource(id = StringR.string.send_bug_report_description_in_english)) + }, + onValueChange = { + descriptionFieldState = it + eventSink(BugReportEvents.SetDescription(it)) + }, + keyboardOptions = KeyboardOptions( + keyboardType = KeyboardType.Text, + imeAction = ImeAction.Next + ), + // TODO Error text too short ) - if (state.hasCrashLogs) { - LabelledCheckbox( - checked = state.formState.sendCrashLogs, - onCheckedChange = { eventSink(BugReportEvents.SetSendCrashLog(it)) }, - enabled = isFormEnabled, - text = stringResource(id = StringR.string.send_bug_report_include_crash_logs) - ) - } + } + LabelledCheckbox( + checked = state.formState.sendLogs, + onCheckedChange = { eventSink(BugReportEvents.SetSendLog(it)) }, + enabled = isFormEnabled, + text = stringResource(id = StringR.string.send_bug_report_include_logs) + ) + if (state.hasCrashLogs) { LabelledCheckbox( - checked = state.formState.canContact, - onCheckedChange = { eventSink(BugReportEvents.SetCanContact(it)) }, + checked = state.formState.sendCrashLogs, + onCheckedChange = { eventSink(BugReportEvents.SetSendCrashLog(it)) }, enabled = isFormEnabled, - text = stringResource(id = StringR.string.you_may_contact_me) + text = stringResource(id = StringR.string.send_bug_report_include_crash_logs) ) - if (state.screenshotUri != null) { - LabelledCheckbox( - checked = state.formState.sendScreenshot, - onCheckedChange = { eventSink(BugReportEvents.SetSendScreenshot(it)) }, - enabled = isFormEnabled, - text = stringResource(id = StringR.string.send_bug_report_include_screenshot) - ) - if (state.formState.sendScreenshot) { - Box( - modifier = Modifier.fillMaxWidth(), - contentAlignment = Alignment.Center - ) { - val context = LocalContext.current - val model = ImageRequest.Builder(context) - .data(state.screenshotUri) - .build() - AsyncImage( - modifier = Modifier.fillMaxWidth(fraction = 0.5f), - model = model, - contentDescription = null - ) - } + } + LabelledCheckbox( + checked = state.formState.canContact, + onCheckedChange = { eventSink(BugReportEvents.SetCanContact(it)) }, + enabled = isFormEnabled, + text = stringResource(id = StringR.string.you_may_contact_me) + ) + if (state.screenshotUri != null) { + LabelledCheckbox( + checked = state.formState.sendScreenshot, + onCheckedChange = { eventSink(BugReportEvents.SetSendScreenshot(it)) }, + enabled = isFormEnabled, + text = stringResource(id = StringR.string.send_bug_report_include_screenshot) + ) + if (state.formState.sendScreenshot) { + Box( + modifier = Modifier.fillMaxWidth(), + contentAlignment = Alignment.Center + ) { + val context = LocalContext.current + val model = ImageRequest.Builder(context) + .data(state.screenshotUri) + .build() + AsyncImage( + modifier = Modifier.fillMaxWidth(fraction = 0.5f), + model = model, + contentDescription = null + ) } } - // Submit - ElementButton( - onClick = { eventSink(BugReportEvents.SendBugReport) }, - enabled = state.submitEnabled, - modifier = Modifier - .fillMaxWidth() - .padding(vertical = 32.dp) - ) { - Text(text = stringResource(id = StringR.string.action_send)) - } } - when (state.sending) { - is Async.Loading -> { - ElementCircularProgressIndicator( - progress = state.sendingProgress, - modifier = Modifier.align(Alignment.Center) - ) - } - is Async.Failure -> ErrorDialog( - content = state.sending.error.toString(), + // Submit + ElementButton( + onClick = { eventSink(BugReportEvents.SendBugReport) }, + enabled = state.submitEnabled, + modifier = Modifier + .fillMaxWidth() + .padding(vertical = 32.dp) + ) { + Text(text = stringResource(id = StringR.string.action_send)) + } + } + when (state.sending) { + is Async.Loading -> { + ElementCircularProgressIndicator( + progress = state.sendingProgress, + modifier = Modifier.align(Alignment.Center) ) - else -> Unit } + is Async.Failure -> ErrorDialog( + content = state.sending.error.toString(), + ) + else -> Unit } } } From 8f551fbe03beea2cb50d6315022751201b60892a Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Fri, 27 Jan 2023 09:24:16 +0100 Subject: [PATCH 09/22] Optimize import --- app/src/main/kotlin/io/element/android/x/node/RootFlowNode.kt | 1 - .../io/element/android/features/login/root/LoginRootScreen.kt | 1 - .../io/element/android/features/messages/MessagesView.kt | 4 ---- .../android/features/messages/actionlist/ActionListView.kt | 1 - .../android/features/messages/timeline/TimelineView.kt | 1 - .../messages/timeline/components/MessageEventBubble.kt | 2 +- .../messages/timeline/components/TimelineItemReactionsView.kt | 2 +- .../messages/timeline/components/html/HtmlDocument.kt | 2 +- .../android/features/roomlist/components/RoomListTopBar.kt | 2 -- .../kotlin/io/element/android/libraries/designsystem/Type.kt | 2 -- .../libraries/designsystem/components/LabelledCheckbox.kt | 1 - .../libraries/designsystem/components/ProgressDialog.kt | 1 - .../designsystem/components/dialogs/ConfirmationDialog.kt | 2 +- .../libraries/designsystem/components/dialogs/ErrorDialog.kt | 2 +- .../designsystem/components/preferences/PreferenceScreen.kt | 2 -- .../designsystem/components/preferences/PreferenceSlide.kt | 1 - .../designsystem/components/preferences/PreferenceSwitch.kt | 1 - .../kotlin/io/element/android/tests/uitests/ShowkaseButton.kt | 1 - 18 files changed, 5 insertions(+), 24 deletions(-) diff --git a/app/src/main/kotlin/io/element/android/x/node/RootFlowNode.kt b/app/src/main/kotlin/io/element/android/x/node/RootFlowNode.kt index 24ae5ea389..22450a1382 100644 --- a/app/src/main/kotlin/io/element/android/x/node/RootFlowNode.kt +++ b/app/src/main/kotlin/io/element/android/x/node/RootFlowNode.kt @@ -19,7 +19,6 @@ package io.element.android.x.node import android.os.Parcelable import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.material3.CircularProgressIndicator import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier diff --git a/features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootScreen.kt b/features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootScreen.kt index 71ca4ebe15..a0de5b51d8 100644 --- a/features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootScreen.kt +++ b/features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootScreen.kt @@ -18,7 +18,6 @@ package io.element.android.features.login.root -import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize diff --git a/features/messages/src/main/kotlin/io/element/android/features/messages/MessagesView.kt b/features/messages/src/main/kotlin/io/element/android/features/messages/MessagesView.kt index 5baad6bc9d..67bba09e15 100644 --- a/features/messages/src/main/kotlin/io/element/android/features/messages/MessagesView.kt +++ b/features/messages/src/main/kotlin/io/element/android/features/messages/MessagesView.kt @@ -21,7 +21,6 @@ package io.element.android.features.messages -import androidx.compose.foundation.background import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer @@ -42,11 +41,9 @@ import androidx.compose.material.rememberModalBottomSheetState import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon import androidx.compose.material3.IconButton -import androidx.compose.material3.Scaffold import androidx.compose.material3.SnackbarHost import androidx.compose.material3.SnackbarHostState import androidx.compose.material3.Text -import androidx.compose.material3.TopAppBar import androidx.compose.runtime.Composable import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope @@ -65,7 +62,6 @@ import io.element.android.features.messages.timeline.TimelineView import io.element.android.features.messages.timeline.model.TimelineItem import io.element.android.libraries.designsystem.components.avatar.Avatar import io.element.android.libraries.designsystem.components.avatar.AvatarData -import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.designsystem.theme.components.ElementScaffold import io.element.android.libraries.designsystem.theme.components.ElementTopAppBar import io.element.android.libraries.designsystem.utils.LogCompositions diff --git a/features/messages/src/main/kotlin/io/element/android/features/messages/actionlist/ActionListView.kt b/features/messages/src/main/kotlin/io/element/android/features/messages/actionlist/ActionListView.kt index 683dd28dc8..4adafbea3c 100644 --- a/features/messages/src/main/kotlin/io/element/android/features/messages/actionlist/ActionListView.kt +++ b/features/messages/src/main/kotlin/io/element/android/features/messages/actionlist/ActionListView.kt @@ -29,7 +29,6 @@ import androidx.compose.foundation.lazy.items import androidx.compose.material.ExperimentalMaterialApi import androidx.compose.material.ListItem import androidx.compose.material.LocalContentColor -import androidx.compose.material.ModalBottomSheetLayout import androidx.compose.material.ModalBottomSheetState import androidx.compose.material.ModalBottomSheetValue import androidx.compose.material.Text diff --git a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/TimelineView.kt b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/TimelineView.kt index d08642993e..8969ea94b1 100644 --- a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/TimelineView.kt +++ b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/TimelineView.kt @@ -39,7 +39,6 @@ import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.foundation.shape.CircleShape import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.ArrowDownward -import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.FloatingActionButton import androidx.compose.material3.Icon import androidx.compose.material3.Text diff --git a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/MessageEventBubble.kt b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/MessageEventBubble.kt index ddf2a66105..dc12908f5f 100644 --- a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/MessageEventBubble.kt +++ b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/MessageEventBubble.kt @@ -29,8 +29,8 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Shape import androidx.compose.ui.unit.dp import io.element.android.features.messages.timeline.model.MessagesItemGroupPosition -import io.element.android.libraries.designsystem.theme.components.ElementSurface import io.element.android.libraries.designsystem.theme.ElementTheme +import io.element.android.libraries.designsystem.theme.components.ElementSurface private val BUBBLE_RADIUS = 16.dp diff --git a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/TimelineItemReactionsView.kt b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/TimelineItemReactionsView.kt index 4a8ac852b0..41f4851454 100644 --- a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/TimelineItemReactionsView.kt +++ b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/TimelineItemReactionsView.kt @@ -32,8 +32,8 @@ import androidx.compose.ui.unit.sp import com.google.accompanist.flowlayout.FlowRow import io.element.android.features.messages.timeline.model.AggregatedReaction import io.element.android.features.messages.timeline.model.TimelineItemReactions -import io.element.android.libraries.designsystem.theme.components.ElementSurface import io.element.android.libraries.designsystem.theme.ElementTheme +import io.element.android.libraries.designsystem.theme.components.ElementSurface @Composable fun TimelineItemReactionsView( diff --git a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/html/HtmlDocument.kt b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/html/HtmlDocument.kt index 092f503b67..6f673345e4 100644 --- a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/html/HtmlDocument.kt +++ b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/html/HtmlDocument.kt @@ -46,9 +46,9 @@ import androidx.compose.ui.unit.sp import com.google.accompanist.flowlayout.FlowRow import io.element.android.libraries.designsystem.LinkColor import io.element.android.libraries.designsystem.components.ClickableLinkText -import io.element.android.libraries.designsystem.theme.components.ElementSurface import io.element.android.libraries.designsystem.theme.ElementColors import io.element.android.libraries.designsystem.theme.ElementTheme +import io.element.android.libraries.designsystem.theme.components.ElementSurface import io.element.android.libraries.matrix.permalink.PermalinkData import io.element.android.libraries.matrix.permalink.PermalinkParser import kotlinx.collections.immutable.persistentMapOf diff --git a/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/components/RoomListTopBar.kt b/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/components/RoomListTopBar.kt index a2549a8f9f..1437c0d59a 100644 --- a/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/components/RoomListTopBar.kt +++ b/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/components/RoomListTopBar.kt @@ -29,11 +29,9 @@ import androidx.compose.material.icons.filled.Settings import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon import androidx.compose.material3.IconButton -import androidx.compose.material3.MediumTopAppBar import androidx.compose.material3.Text import androidx.compose.material3.TextField import androidx.compose.material3.TextFieldDefaults -import androidx.compose.material3.TopAppBar import androidx.compose.material3.TopAppBarScrollBehavior import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/Type.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/Type.kt index 50d5b7d1fd..4e0e3bd854 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/Type.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/Type.kt @@ -16,9 +16,7 @@ package io.element.android.libraries.designsystem -import androidx.compose.material3.Typography import androidx.compose.ui.text.TextStyle -import androidx.compose.ui.text.font.FontFamily import androidx.compose.ui.text.font.FontStyle import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/LabelledCheckbox.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/LabelledCheckbox.kt index 90646930ec..cfe2e4b5c7 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/LabelledCheckbox.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/LabelledCheckbox.kt @@ -18,7 +18,6 @@ package io.element.android.libraries.designsystem.components import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.material3.Checkbox import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ProgressDialog.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ProgressDialog.kt index ced336c0e0..baaa7836fa 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ProgressDialog.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ProgressDialog.kt @@ -22,7 +22,6 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/dialogs/ConfirmationDialog.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/dialogs/ConfirmationDialog.kt index 4d36007f1f..909bae4d54 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/dialogs/ConfirmationDialog.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/dialogs/ConfirmationDialog.kt @@ -32,8 +32,8 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp -import io.element.android.libraries.designsystem.theme.components.ElementButton import io.element.android.libraries.designsystem.theme.ElementTheme +import io.element.android.libraries.designsystem.theme.components.ElementButton import io.element.android.libraries.ui.strings.R as StringR @Composable diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/dialogs/ErrorDialog.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/dialogs/ErrorDialog.kt index c1ca38b11c..a817d333cf 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/dialogs/ErrorDialog.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/dialogs/ErrorDialog.kt @@ -31,8 +31,8 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp -import io.element.android.libraries.designsystem.theme.components.ElementButton import io.element.android.libraries.designsystem.theme.ElementTheme +import io.element.android.libraries.designsystem.theme.components.ElementButton import io.element.android.libraries.ui.strings.R as StringR @Composable diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceScreen.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceScreen.kt index 948daace12..86e4f7b22a 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceScreen.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceScreen.kt @@ -32,9 +32,7 @@ import androidx.compose.material.icons.filled.ArrowBack import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon import androidx.compose.material3.IconButton -import androidx.compose.material3.Scaffold import androidx.compose.material3.Text -import androidx.compose.material3.TopAppBar import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSlide.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSlide.kt index 244f257944..0887093db8 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSlide.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSlide.kt @@ -23,7 +23,6 @@ import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.defaultMinSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding -import androidx.compose.material3.Slider import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSwitch.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSwitch.kt index 47e32f409d..d3ac0b89c5 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSwitch.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSwitch.kt @@ -24,7 +24,6 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Announcement -import androidx.compose.material3.Checkbox import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment diff --git a/tests/uitests/src/main/kotlin/io/element/android/tests/uitests/ShowkaseButton.kt b/tests/uitests/src/main/kotlin/io/element/android/tests/uitests/ShowkaseButton.kt index 7a89559b42..4d3f073724 100644 --- a/tests/uitests/src/main/kotlin/io/element/android/tests/uitests/ShowkaseButton.kt +++ b/tests/uitests/src/main/kotlin/io/element/android/tests/uitests/ShowkaseButton.kt @@ -20,7 +20,6 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Close -import androidx.compose.material3.Button import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.Text From 2cfa921a7074c04f48c97b658aea25af742c4279 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Fri, 27 Jan 2023 10:19:17 +0100 Subject: [PATCH 10/22] Rework Preview for a better rendering in the IDE. --- .../login/changeserver/ChangeServerView.kt | 18 +++-- .../features/login/root/LoginRootScreen.kt | 16 +++-- .../features/logout/LogoutPreferenceScreen.kt | 13 +++- .../messages/timeline/TimelineView.kt | 19 ++++-- .../components/TimelineItemInformativeView.kt | 22 +++++++ .../features/onboarding/OnBoardingScreen.kt | 2 - .../preferences/root/PreferencesRootView.kt | 11 +++- .../rageshake/bugreport/BugReportView.kt | 18 ++++- .../crash/ui/CrashDetectionScreen.kt | 11 +++- .../detection/RageshakeDetectionView.kt | 11 +++- .../preferences/RageshakePreferencesView.kt | 24 +++++-- .../android/features/roomlist/RoomListView.kt | 11 +++- .../roomlist/components/RoomSummaryRow.kt | 14 ++-- .../android/features/template/TemplateView.kt | 19 +++++- .../libraries/designsystem/ColorUtil.kt | 2 +- .../components/ClickableLinkText.kt | 4 +- .../components/LabelledCheckbox.kt | 17 ++++- .../designsystem/components/ProgressDialog.kt | 13 +++- .../designsystem/components/avatar/Avatar.kt | 11 +++- .../components/dialogs/ConfirmationDialog.kt | 13 +++- .../components/dialogs/ErrorDialog.kt | 13 +++- .../preferences/PreferenceCategory.kt | 33 ++++++++-- .../preferences/PreferenceScreen.kt | 34 +++++++++- .../components/preferences/PreferenceSlide.kt | 13 +++- .../preferences/PreferenceSwitch.kt | 14 +++- .../components/preferences/PreferenceText.kt | 16 ++++- .../designsystem/preview/ElementPreview.kt | 65 +++++++++++++++++++ .../matrix/ui/components/MatrixUserHeader.kt | 25 +++++-- .../matrix/ui/components/MatrixUserRow.kt | 14 +++- libraries/textcomposer/build.gradle.kts | 1 + .../libraries/textcomposer/TextComposer.kt | 15 ++++- .../android/tests/uitests/ShowkaseButton.kt | 13 +++- 32 files changed, 452 insertions(+), 73 deletions(-) create mode 100644 libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/preview/ElementPreview.kt diff --git a/features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerView.kt b/features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerView.kt index 4ffeb42def..1820448df8 100644 --- a/features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerView.kt +++ b/features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerView.kt @@ -14,8 +14,6 @@ * limitations under the License. */ -@file:OptIn(ExperimentalMaterial3Api::class) - package io.element.android.features.login.changeserver import androidx.compose.foundation.background @@ -52,6 +50,8 @@ import io.element.android.features.login.error.changeServerError import io.element.android.libraries.architecture.Async import io.element.android.libraries.designsystem.components.VectorIcon 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.ElementTheme import io.element.android.libraries.designsystem.theme.components.ElementButton import io.element.android.libraries.designsystem.theme.components.ElementCircularProgressIndicator @@ -109,6 +109,7 @@ fun ChangeServerView( textAlign = TextAlign.Center, fontWeight = FontWeight.Bold, fontSize = 24.sp, + color = ElementTheme.colors.primary, ) Text( text = "A server is a home for all your data.\n" + @@ -119,7 +120,7 @@ fun ChangeServerView( .padding(top = 16.dp), textAlign = TextAlign.Center, fontSize = 16.sp, - color = ElementTheme.colors.secondary + color = ElementTheme.colors.secondary, ) var homeserverFieldState by textFieldState(stateValue = state.homeserver) ElementOutlinedTextField( @@ -177,9 +178,16 @@ fun ChangeServerView( } } -@Composable @Preview -fun ChangeServerContentPreview() { +@Composable +fun ChangeServerViewLightPreview() = ElementPreviewLight { ContentToPreview() } + +@Preview +@Composable +fun ChangeServerViewDarkPreview() = ElementPreviewDark { ContentToPreview() } + +@Composable +private fun ContentToPreview() { ChangeServerView( state = ChangeServerState(homeserver = "matrix.org"), ) diff --git a/features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootScreen.kt b/features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootScreen.kt index a0de5b51d8..ada2a9d470 100644 --- a/features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootScreen.kt +++ b/features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootScreen.kt @@ -14,8 +14,6 @@ * limitations under the License. */ -@file:OptIn(ExperimentalMaterial3Api::class) - package io.element.android.features.login.root import androidx.compose.foundation.layout.Box @@ -55,6 +53,8 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import io.element.android.features.login.error.loginError 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.ElementTheme import io.element.android.libraries.designsystem.theme.components.ElementButton import io.element.android.libraries.designsystem.theme.components.ElementCircularProgressIndicator @@ -99,6 +99,7 @@ fun LoginRootScreen( textAlign = TextAlign.Center, fontWeight = FontWeight.Bold, fontSize = 24.sp, + color = ElementTheme.colors.primary, ) // Form Column( @@ -219,9 +220,16 @@ fun LoginRootScreen( } } -@Composable @Preview -fun LoginContentPreview() { +@Composable +fun LoginRootScreenLightPreview() = ElementPreviewLight { ContentToPreview() } + +@Preview +@Composable +fun LoginRootScreenDarkPreview() = ElementPreviewDark { ContentToPreview() } + +@Composable +private fun ContentToPreview() { LoginRootScreen( state = LoginRootState( homeserver = "matrix.org", diff --git a/features/logout/src/main/kotlin/io/element/android/features/logout/LogoutPreferenceScreen.kt b/features/logout/src/main/kotlin/io/element/android/features/logout/LogoutPreferenceScreen.kt index cc94f56806..2134311672 100644 --- a/features/logout/src/main/kotlin/io/element/android/features/logout/LogoutPreferenceScreen.kt +++ b/features/logout/src/main/kotlin/io/element/android/features/logout/LogoutPreferenceScreen.kt @@ -29,6 +29,8 @@ import io.element.android.libraries.designsystem.components.ProgressDialog import io.element.android.libraries.designsystem.components.dialogs.ConfirmationDialog import io.element.android.libraries.designsystem.components.preferences.PreferenceCategory import io.element.android.libraries.designsystem.components.preferences.PreferenceText +import io.element.android.libraries.designsystem.preview.ElementPreviewDark +import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.ui.strings.R as StringR @Composable @@ -88,8 +90,15 @@ fun LogoutPreferenceContent( } } -@Composable @Preview -fun LogoutContentPreview() { +@Composable +fun LogoutPreferenceViewLightPreview() = ElementPreviewLight { ContentToPreview() } + +@Preview +@Composable +fun LogoutPreferenceViewDarkPreview() = ElementPreviewDark { ContentToPreview() } + +@Composable +private fun ContentToPreview() { LogoutPreferenceView(LogoutPreferenceState()) } diff --git a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/TimelineView.kt b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/TimelineView.kt index 8969ea94b1..9f0cd5326a 100644 --- a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/TimelineView.kt +++ b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/TimelineView.kt @@ -77,6 +77,8 @@ import io.element.android.features.messages.timeline.model.content.TimelineItemT import io.element.android.features.messages.timeline.model.content.TimelineItemUnknownContent import io.element.android.libraries.designsystem.components.avatar.Avatar import io.element.android.libraries.designsystem.components.avatar.AvatarData +import io.element.android.libraries.designsystem.preview.ElementPreviewDark +import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.designsystem.theme.components.ElementCircularProgressIndicator import io.element.android.libraries.designsystem.utils.PairCombinedPreviewParameter @@ -355,13 +357,20 @@ class MessagesItemGroupPositionToMessagesTimelineItemContentProvider : TimelineItemGroupPositionProvider() to MessagesTimelineItemContentProvider() ) -@Suppress("PreviewPublic") @Preview @Composable -fun TimelineItemsPreview( - @PreviewParameter(MessagesTimelineItemContentProvider::class) - content: TimelineItemContent -) { +fun LoginRootScreenLightPreview( + @PreviewParameter(MessagesTimelineItemContentProvider::class) content: TimelineItemContent +) = ElementPreviewLight { ContentToPreview(content) } + +@Preview +@Composable +fun LoginRootScreenDarkPreview( + @PreviewParameter(MessagesTimelineItemContentProvider::class) content: TimelineItemContent +) = ElementPreviewDark { ContentToPreview(content) } + +@Composable +private fun ContentToPreview(content: TimelineItemContent) { val timelineItems = persistentListOf( // 3 items (First Middle Last) with isMine = false createMessageEvent( diff --git a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/TimelineItemInformativeView.kt b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/TimelineItemInformativeView.kt index 40499798ee..b4c54194c3 100644 --- a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/TimelineItemInformativeView.kt +++ b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/TimelineItemInformativeView.kt @@ -20,6 +20,8 @@ import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Delete import androidx.compose.material3.Icon import androidx.compose.material3.Text import androidx.compose.runtime.Composable @@ -27,8 +29,11 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.text.font.FontStyle +import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp +import io.element.android.libraries.designsystem.preview.ElementPreviewDark +import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.theme.ElementTheme @Composable @@ -57,3 +62,20 @@ fun TimelineItemInformativeView( ) } } + +@Preview +@Composable +fun MatrixUserRowLightPreview() = ElementPreviewLight { ContentToPreview() } + +@Preview +@Composable +fun MatrixUserRowDarkPreview() = ElementPreviewDark { ContentToPreview() } + +@Composable +private fun ContentToPreview() { + TimelineItemInformativeView( + text = "Info", + iconDescription = "", + icon = Icons.Default.Delete + ) +} diff --git a/features/onboarding/src/main/kotlin/io/element/android/features/onboarding/OnBoardingScreen.kt b/features/onboarding/src/main/kotlin/io/element/android/features/onboarding/OnBoardingScreen.kt index 6cab7dd091..e21083c0f6 100644 --- a/features/onboarding/src/main/kotlin/io/element/android/features/onboarding/OnBoardingScreen.kt +++ b/features/onboarding/src/main/kotlin/io/element/android/features/onboarding/OnBoardingScreen.kt @@ -14,8 +14,6 @@ * limitations under the License. */ -@file:OptIn(ExperimentalMaterial3Api::class) - package io.element.android.features.onboarding import androidx.compose.foundation.Image diff --git a/features/preferences/src/main/kotlin/io/element/android/features/preferences/root/PreferencesRootView.kt b/features/preferences/src/main/kotlin/io/element/android/features/preferences/root/PreferencesRootView.kt index bab68974fb..bd8bda3e40 100644 --- a/features/preferences/src/main/kotlin/io/element/android/features/preferences/root/PreferencesRootView.kt +++ b/features/preferences/src/main/kotlin/io/element/android/features/preferences/root/PreferencesRootView.kt @@ -27,6 +27,8 @@ import io.element.android.features.rageshake.preferences.RageshakePreferencesSta import io.element.android.features.rageshake.preferences.RageshakePreferencesView import io.element.android.libraries.architecture.Async import io.element.android.libraries.designsystem.components.preferences.PreferenceView +import io.element.android.libraries.designsystem.preview.ElementPreviewDark +import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.ui.strings.R as StringR @Composable @@ -56,7 +58,14 @@ fun PreferencesRootView( @Preview @Composable -fun PreferencesContentPreview() { +fun PreferencesRootViewLightPreview() = ElementPreviewLight { ContentToPreview() } + +@Preview +@Composable +fun PreferencesRootViewDarkPreview() = ElementPreviewDark { ContentToPreview() } + +@Composable +private fun ContentToPreview() { val state = PreferencesRootState( logoutState = LogoutPreferenceState(), rageshakeState = RageshakePreferencesState(), diff --git a/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/bugreport/BugReportView.kt b/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/bugreport/BugReportView.kt index a81f961ac3..fe9e409c00 100644 --- a/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/bugreport/BugReportView.kt +++ b/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/bugreport/BugReportView.kt @@ -48,6 +48,9 @@ import io.element.android.libraries.architecture.Async import io.element.android.libraries.designsystem.components.LabelledCheckbox 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.ElementTheme import io.element.android.libraries.designsystem.theme.components.ElementButton import io.element.android.libraries.designsystem.theme.components.ElementCircularProgressIndicator import io.element.android.libraries.designsystem.theme.components.ElementOutlinedTextField @@ -94,6 +97,7 @@ fun BugReportView( textAlign = TextAlign.Center, fontWeight = FontWeight.Bold, fontSize = 24.sp, + color = ElementTheme.colors.primary, ) // Form Text( @@ -102,7 +106,8 @@ fun BugReportView( .fillMaxWidth() .padding(horizontal = 16.dp, vertical = 16.dp), fontSize = 16.sp, - ) + color = ElementTheme.colors.primary, + ) var descriptionFieldState by textFieldState( stateValue = state.formState.description ) @@ -202,9 +207,16 @@ fun BugReportView( } } -@Composable @Preview -fun BugReportContentPreview() { +@Composable +fun BugReportViewLightPreview() = ElementPreviewLight { ContentToPreview() } + +@Preview +@Composable +fun BugReportViewDarkPreview() = ElementPreviewDark { ContentToPreview() } + +@Composable +private fun ContentToPreview() { BugReportView( state = BugReportState(), ) diff --git a/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/crash/ui/CrashDetectionScreen.kt b/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/crash/ui/CrashDetectionScreen.kt index e3c58ab515..fb1a6b2d50 100644 --- a/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/crash/ui/CrashDetectionScreen.kt +++ b/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/crash/ui/CrashDetectionScreen.kt @@ -20,6 +20,8 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import io.element.android.libraries.designsystem.components.dialogs.ConfirmationDialog +import io.element.android.libraries.designsystem.preview.ElementPreviewDark +import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.utils.LogCompositions import io.element.android.libraries.ui.strings.R as StringR @@ -67,7 +69,14 @@ fun CrashDetectionContent( @Preview @Composable -fun CrashDetectionContentPreview() { +fun CrashDetectionContentLightPreview() = ElementPreviewLight { ContentToPreview() } + +@Preview +@Composable +fun CrashDetectionContentDarkPreview() = ElementPreviewDark { ContentToPreview() } + +@Composable +private fun ContentToPreview() { CrashDetectionContent( state = CrashDetectionState() ) diff --git a/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/detection/RageshakeDetectionView.kt b/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/detection/RageshakeDetectionView.kt index de99427763..bc8002b978 100644 --- a/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/detection/RageshakeDetectionView.kt +++ b/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/detection/RageshakeDetectionView.kt @@ -27,6 +27,8 @@ import io.element.android.features.rageshake.screenshot.ImageResult import io.element.android.features.rageshake.screenshot.screenshot import io.element.android.libraries.androidutils.hardware.vibrate import io.element.android.libraries.designsystem.components.dialogs.ConfirmationDialog +import io.element.android.libraries.designsystem.preview.ElementPreviewDark +import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.utils.LogCompositions import io.element.android.libraries.designsystem.utils.OnLifecycleEvent import io.element.android.libraries.ui.strings.R as StringR @@ -99,6 +101,13 @@ fun RageshakeDialogContent( @Preview @Composable -fun RageshakeDialogContentPreview() { +fun RageshakeDialogContentLightPreview() = ElementPreviewLight { ContentToPreview() } + +@Preview +@Composable +fun RageshakeDialogContentDarkPreview() = ElementPreviewDark { ContentToPreview() } + +@Composable +private fun ContentToPreview() { RageshakeDialogContent() } diff --git a/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/preferences/RageshakePreferencesView.kt b/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/preferences/RageshakePreferencesView.kt index ce5d9bcab8..815340b8b2 100644 --- a/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/preferences/RageshakePreferencesView.kt +++ b/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/preferences/RageshakePreferencesView.kt @@ -27,6 +27,8 @@ import io.element.android.libraries.designsystem.components.preferences.Preferen import io.element.android.libraries.designsystem.components.preferences.PreferenceSlide import io.element.android.libraries.designsystem.components.preferences.PreferenceSwitch import io.element.android.libraries.designsystem.components.preferences.PreferenceText +import io.element.android.libraries.designsystem.preview.ElementPreviewDark +import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.ui.strings.R as StringR @Composable @@ -73,14 +75,28 @@ fun RageshakePreferencesView( } } -@Composable @Preview -fun RageshakePreferencesViewPreview() { +@Composable +fun RageshakePreferencesViewLightPreview() = ElementPreviewLight { ContentToPreview() } + +@Preview +@Composable +fun RageshakePreferencesViewDarkPreview() = ElementPreviewDark { ContentToPreview() } + +@Composable +private fun ContentToPreview() { RageshakePreferencesView(RageshakePreferencesState(isEnabled = true, isSupported = true, sensitivity = 0.5f)) } -@Composable @Preview -fun RageshakePreferenceNotSupportedPreview() { +@Composable +fun RageshakePreferencesViewNotSupportedLightPreview() = ElementPreviewLight { ContentNotSupportedToPreview() } + +@Preview +@Composable +fun RageshakePreferencesViewNotSupportedDarkPreview() = ElementPreviewDark { ContentNotSupportedToPreview() } + +@Composable +private fun ContentNotSupportedToPreview() { RageshakePreferencesView(RageshakePreferencesState(isEnabled = true, isSupported = false, sensitivity = 0.5f)) } diff --git a/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/RoomListView.kt b/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/RoomListView.kt index 8aff881f24..ca75896b38 100644 --- a/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/RoomListView.kt +++ b/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/RoomListView.kt @@ -42,6 +42,8 @@ import io.element.android.features.roomlist.model.RoomListRoomSummary import io.element.android.features.roomlist.model.RoomListState import io.element.android.features.roomlist.model.stubbedRoomSummaries import io.element.android.libraries.designsystem.components.avatar.AvatarData +import io.element.android.libraries.designsystem.preview.ElementPreviewDark +import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.theme.components.ElementScaffold import io.element.android.libraries.designsystem.utils.LogCompositions import io.element.android.libraries.matrix.core.RoomId @@ -156,7 +158,14 @@ private fun RoomListRoomSummary.contentType() = isPlaceholder @Preview @Composable -fun RoomListViewPreview() { +fun RoomListViewLightPreview() = ElementPreviewLight { ContentToPreview() } + +@Preview +@Composable +fun RoomListViewDarkPreview() = ElementPreviewDark { ContentToPreview() } + +@Composable +private fun ContentToPreview() { RoomListView( roomSummaries = stubbedRoomSummaries(), matrixUser = MatrixUser(id = UserId("@id"), username = "User#1", avatarData = AvatarData("U")), diff --git a/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/components/RoomSummaryRow.kt b/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/components/RoomSummaryRow.kt index 9693d17a26..037b3afa49 100644 --- a/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/components/RoomSummaryRow.kt +++ b/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/components/RoomSummaryRow.kt @@ -115,10 +115,10 @@ internal fun DefaultRoomSummaryRow( // Name Text( modifier = Modifier.placeholder( - visible = room.isPlaceholder, - shape = TextPlaceholderShape, - color = ElementTheme.colors.roomListPlaceHolder, - ), + visible = room.isPlaceholder, + shape = TextPlaceholderShape, + color = ElementTheme.colors.roomListPlaceHolder, + ), fontSize = 16.sp, fontWeight = FontWeight.SemiBold, text = room.name, @@ -146,7 +146,11 @@ internal fun DefaultRoomSummaryRow( .alignByBaseline(), ) { Text( - modifier = Modifier.placeholder(room.isPlaceholder, shape = TextPlaceholderShape), + modifier = Modifier.placeholder( + visible = room.isPlaceholder, + shape = TextPlaceholderShape, + color = ElementTheme.colors.roomListPlaceHolder, + ), fontSize = 12.sp, text = room.timestamp ?: "", color = ElementTheme.colors.roomListRoomMessageDate, diff --git a/features/template/src/main/kotlin/io/element/android/features/template/TemplateView.kt b/features/template/src/main/kotlin/io/element/android/features/template/TemplateView.kt index 0de5a4df96..b954b4d9d7 100644 --- a/features/template/src/main/kotlin/io/element/android/features/template/TemplateView.kt +++ b/features/template/src/main/kotlin/io/element/android/features/template/TemplateView.kt @@ -22,6 +22,9 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.tooling.preview.Preview +import io.element.android.libraries.designsystem.preview.ElementPreviewDark +import io.element.android.libraries.designsystem.preview.ElementPreviewLight +import io.element.android.libraries.designsystem.theme.ElementTheme @Composable fun TemplateView( @@ -29,13 +32,23 @@ fun TemplateView( modifier: Modifier = Modifier, ) { Box(modifier, contentAlignment = Alignment.Center) { - Text("Template feature view") + Text( + "Template feature view", + color = ElementTheme.colors.primary, + ) } } -@Composable @Preview -fun TemplateViewPreview() { +@Composable +fun TemplateViewLightPreview() = ElementPreviewLight { ContentToPreview() } + +@Preview +@Composable +fun TemplateViewDarkPreview() = ElementPreviewDark { ContentToPreview() } + +@Composable +private fun ContentToPreview() { TemplateView( state = TemplateState(), ) diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/ColorUtil.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/ColorUtil.kt index def4c49e89..f6a0122a80 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/ColorUtil.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/ColorUtil.kt @@ -25,6 +25,6 @@ fun Boolean.toEnabledColor(): Color { return if (this) { ElementTheme.colors.primary } else { - ElementTheme.colors.secondary + ElementTheme.colors.primary.copy(alpha = 0.40f) } } diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ClickableLinkText.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ClickableLinkText.kt index 591baf1152..b5b196ce51 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ClickableLinkText.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ClickableLinkText.kt @@ -32,6 +32,7 @@ import androidx.compose.ui.platform.LocalUriHandler import androidx.compose.ui.text.AnnotatedString import androidx.compose.ui.text.TextLayoutResult import androidx.compose.ui.text.TextStyle +import io.element.android.libraries.designsystem.theme.ElementTheme import kotlinx.collections.immutable.ImmutableMap import kotlinx.collections.immutable.persistentMapOf @@ -83,6 +84,7 @@ fun ClickableLinkText( onTextLayout = { layoutResult.value = it }, - inlineContent = inlineContent + inlineContent = inlineContent, + color = ElementTheme.colors.primary, ) } diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/LabelledCheckbox.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/LabelledCheckbox.kt index cfe2e4b5c7..66a43c5a81 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/LabelledCheckbox.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/LabelledCheckbox.kt @@ -23,6 +23,9 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.tooling.preview.Preview +import io.element.android.libraries.designsystem.preview.ElementPreviewDark +import io.element.android.libraries.designsystem.preview.ElementPreviewLight +import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.designsystem.theme.components.ElementCheckbox @Composable @@ -42,13 +45,23 @@ fun LabelledCheckbox( onCheckedChange = onCheckedChange, enabled = enabled, ) - Text(text = text) + Text( + text = text, + color = ElementTheme.colors.primary, + ) } } @Preview @Composable -fun LabelledCheckboxPreview() { +fun LabelledCheckboxLightPreview() = ElementPreviewLight { ContentToPreview() } + +@Preview +@Composable +fun LabelledCheckboxDarkPreview() = ElementPreviewDark { ContentToPreview() } + +@Composable +private fun ContentToPreview() { LabelledCheckbox( checked = true, text = "Some text", diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ProgressDialog.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ProgressDialog.kt index baaa7836fa..2947b04ffb 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ProgressDialog.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ProgressDialog.kt @@ -30,6 +30,8 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.window.Dialog import androidx.compose.ui.window.DialogProperties +import io.element.android.libraries.designsystem.preview.ElementPreviewDark +import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.designsystem.theme.components.ElementCircularProgressIndicator @@ -69,8 +71,15 @@ fun ProgressDialog( } } -@Composable @Preview -fun ProgressDialogPreview() { +@Composable +fun ProgressDialogLightPreview() = ElementPreviewLight { ContentToPreview() } + +@Preview +@Composable +fun ProgressDialogDarkPreview() = ElementPreviewDark { ContentToPreview() } + +@Composable +private fun ContentToPreview() { ProgressDialog(text = "test dialog content") } diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/Avatar.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/Avatar.kt index 1df00a7c50..0fa2c9fe1a 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/Avatar.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/Avatar.kt @@ -34,6 +34,8 @@ import androidx.compose.ui.unit.sp import coil.compose.AsyncImage import io.element.android.libraries.designsystem.AvatarGradientEnd import io.element.android.libraries.designsystem.AvatarGradientStart +import io.element.android.libraries.designsystem.preview.ElementPreviewDark +import io.element.android.libraries.designsystem.preview.ElementPreviewLight import timber.log.Timber @Composable @@ -97,6 +99,13 @@ private fun InitialsAvatar( @Preview @Composable -fun InitialsAvatarPreview() { +fun AvatarLightPreview() = ElementPreviewLight { ContentToPreview() } + +@Preview +@Composable +fun AvatarDarkPreview() = ElementPreviewDark { ContentToPreview() } + +@Composable +private fun ContentToPreview() { Avatar(AvatarData(name = "A")) } diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/dialogs/ConfirmationDialog.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/dialogs/ConfirmationDialog.kt index 909bae4d54..bc99927e9e 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/dialogs/ConfirmationDialog.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/dialogs/ConfirmationDialog.kt @@ -32,6 +32,8 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp +import io.element.android.libraries.designsystem.preview.ElementPreviewDark +import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.designsystem.theme.components.ElementButton import io.element.android.libraries.ui.strings.R as StringR @@ -113,9 +115,16 @@ fun ConfirmationDialog( ) } -@Composable @Preview -fun ConfirmationDialogPreview() { +@Composable +fun ConfirmationDialogLightPreview() = ElementPreviewLight { ContentToPreview() } + +@Preview +@Composable +fun ConfirmationDialogDarkPreview() = ElementPreviewDark { ContentToPreview() } + +@Composable +private fun ContentToPreview() { ConfirmationDialog( title = "Title", content = "Content", diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/dialogs/ErrorDialog.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/dialogs/ErrorDialog.kt index a817d333cf..9d72a1f1a0 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/dialogs/ErrorDialog.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/dialogs/ErrorDialog.kt @@ -31,6 +31,8 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp +import io.element.android.libraries.designsystem.preview.ElementPreviewDark +import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.designsystem.theme.components.ElementButton import io.element.android.libraries.ui.strings.R as StringR @@ -82,9 +84,16 @@ fun ErrorDialog( ) } -@Composable @Preview -fun ErrorDialogPreview() { +@Composable +fun ErrorDialogLightPreview() = ElementPreviewLight { ContentToPreview() } + +@Preview +@Composable +fun ErrorDialogDarkPreview() = ElementPreviewDark { ContentToPreview() } + +@Composable +private fun ContentToPreview() { ErrorDialog( content = "Content", ) diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceCategory.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceCategory.kt index 65560e57f7..dfd75410d2 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceCategory.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceCategory.kt @@ -20,12 +20,17 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.ColumnScope import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Announcement +import androidx.compose.material.icons.filled.BugReport import androidx.compose.material3.Divider import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp +import io.element.android.libraries.designsystem.preview.ElementPreviewDark +import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.theme.ElementTheme @Composable @@ -52,14 +57,32 @@ fun PreferenceCategory( } } -@Composable @Preview -fun PreferenceCategoryPreview() { +@Composable +fun PreferenceCategoryLightPreview() = ElementPreviewLight { ContentToPreview() } + +@Preview +@Composable +fun PreferenceCategoryDarkPreview() = ElementPreviewDark { ContentToPreview() } + +@Composable +private fun ContentToPreview() { PreferenceCategory( title = "Category title", ) { - PreferenceTextPreview() - PreferenceSwitchPreview() - PreferenceSlidePreview() + PreferenceText( + title = "Title", + icon = Icons.Default.BugReport, + ) + PreferenceSwitch( + title = "Switch", + icon = Icons.Default.Announcement, + isChecked = true + ) + PreferenceSlide( + title = "Slide", + summary = "Summary", + value = 0.75F + ) } } diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceScreen.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceScreen.kt index 86e4f7b22a..fbc5281cf2 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceScreen.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceScreen.kt @@ -28,7 +28,9 @@ import androidx.compose.foundation.layout.systemBarsPadding import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Announcement import androidx.compose.material.icons.filled.ArrowBack +import androidx.compose.material.icons.filled.BugReport import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon import androidx.compose.material3.IconButton @@ -40,6 +42,8 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.sp +import io.element.android.libraries.designsystem.preview.ElementPreviewDark +import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.theme.components.ElementScaffold import io.element.android.libraries.designsystem.theme.components.ElementTopAppBar @@ -110,12 +114,36 @@ fun PreferenceTopAppBar( ) } -@Composable @Preview -fun PreferenceScreenPreview() { +@Composable +fun PreferenceViewLightPreview() = ElementPreviewLight { ContentToPreview() } + +@Preview +@Composable +fun PreferenceViewDarkPreview() = ElementPreviewDark { ContentToPreview() } + +@Composable +private fun ContentToPreview() { PreferenceView( title = "Preference screen" ) { - PreferenceCategoryPreview() + PreferenceCategory( + title = "Category title", + ) { + PreferenceText( + title = "Title", + icon = Icons.Default.BugReport, + ) + PreferenceSwitch( + title = "Switch", + icon = Icons.Default.Announcement, + isChecked = true + ) + PreferenceSlide( + title = "Slide", + summary = "Summary", + value = 0.75F + ) + } } } diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSlide.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSlide.kt index 0887093db8..2caf1efaa3 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSlide.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSlide.kt @@ -30,6 +30,8 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.tooling.preview.Preview import io.element.android.libraries.designsystem.components.preferences.components.PreferenceIcon +import io.element.android.libraries.designsystem.preview.ElementPreviewDark +import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.designsystem.theme.components.ElementSlider import io.element.android.libraries.designsystem.toEnabledColor @@ -84,9 +86,16 @@ fun PreferenceSlide( } } -@Composable @Preview -fun PreferenceSlidePreview() { +@Composable +fun PreferenceSlideLightPreview() = ElementPreviewLight { ContentToPreview() } + +@Preview +@Composable +fun PreferenceSlideDarkPreview() = ElementPreviewDark { ContentToPreview() } + +@Composable +private fun ContentToPreview() { PreferenceSlide( title = "Slide", summary = "Summary", diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSwitch.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSwitch.kt index d3ac0b89c5..f89e945caf 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSwitch.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSwitch.kt @@ -31,6 +31,8 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.tooling.preview.Preview import io.element.android.libraries.designsystem.components.preferences.components.PreferenceIcon +import io.element.android.libraries.designsystem.preview.ElementPreviewDark +import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.designsystem.theme.components.ElementCheckbox import io.element.android.libraries.designsystem.toEnabledColor @@ -75,12 +77,20 @@ fun PreferenceSwitch( } } -@Composable @Preview -fun PreferenceSwitchPreview() { +@Composable +fun PreferenceSwitchLightPreview() = ElementPreviewLight { ContentToPreview() } + +@Preview +@Composable +fun PreferenceSwitchDarkPreview() = ElementPreviewDark { ContentToPreview() } + +@Composable +private fun ContentToPreview() { PreferenceSwitch( title = "Switch", icon = Icons.Default.Announcement, + enabled = true, isChecked = true ) } diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceText.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceText.kt index 6f4c1598b7..824d264807 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceText.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceText.kt @@ -31,6 +31,8 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.tooling.preview.Preview import io.element.android.libraries.designsystem.components.preferences.components.PreferenceIcon +import io.element.android.libraries.designsystem.preview.ElementPreviewDark +import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.theme.ElementTheme @Composable @@ -57,15 +59,23 @@ fun PreferenceText( .weight(1f) .padding(end = preferencePaddingEnd), style = ElementTheme.typography.bodyLarge, - text = title + text = title, + color = ElementTheme.colors.primary, ) } } } -@Composable @Preview -fun PreferenceTextPreview() { +@Composable +fun PreferenceTextLightPreview() = ElementPreviewLight { ContentToPreview() } + +@Preview +@Composable +fun PreferenceTextDarkPreview() = ElementPreviewDark { ContentToPreview() } + +@Composable +private fun ContentToPreview() { PreferenceText( title = "Title", icon = Icons.Default.BugReport, diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/preview/ElementPreview.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/preview/ElementPreview.kt new file mode 100644 index 0000000000..7a286f5314 --- /dev/null +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/preview/ElementPreview.kt @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2023 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.designsystem.preview + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Box +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import io.element.android.libraries.designsystem.theme.ElementTheme + +@Composable +fun ElementPreviewLight( + showBackground: Boolean = true, + content: @Composable () -> Unit +) { + ElementPreview( + darkTheme = false, + showBackground = showBackground, + content = content + ) +} + +@Composable +fun ElementPreviewDark( + showBackground: Boolean = true, + content: @Composable () -> Unit +) { + ElementPreview( + darkTheme = true, + showBackground = showBackground, + content = content + ) +} + +@Composable +private fun ElementPreview( + darkTheme: Boolean, + showBackground: Boolean, + content: @Composable () -> Unit +) { + ElementTheme(darkTheme = darkTheme) { + if (showBackground) { + Box(modifier = Modifier.background(ElementTheme.colors.background)) { + content() + } + } else { + content() + } + } +} + diff --git a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/MatrixUserHeader.kt b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/MatrixUserHeader.kt index 94cc41c0f4..64aace9cdf 100644 --- a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/MatrixUserHeader.kt +++ b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/MatrixUserHeader.kt @@ -35,6 +35,8 @@ import androidx.compose.ui.unit.sp import io.element.android.libraries.designsystem.components.avatar.Avatar import io.element.android.libraries.designsystem.components.avatar.AvatarData import io.element.android.libraries.designsystem.components.avatar.AvatarSize +import io.element.android.libraries.designsystem.preview.ElementPreviewDark +import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.matrix.core.UserId import io.element.android.libraries.matrix.ui.model.MatrixUser @@ -64,8 +66,9 @@ fun MatrixUserHeader( fontWeight = FontWeight.SemiBold, text = matrixUser.getBestName(), maxLines = 1, - overflow = TextOverflow.Ellipsis - ) + overflow = TextOverflow.Ellipsis, + color = ElementTheme.colors.primary, + ) // Id if (matrixUser.username.isNullOrEmpty().not()) { Spacer(modifier = Modifier.height(4.dp)) @@ -82,7 +85,14 @@ fun MatrixUserHeader( @Preview @Composable -fun MatrixUserHeaderPreview() { +fun MatrixUserHeaderLightPreview() = ElementPreviewLight { ContentToPreview1() } + +@Preview +@Composable +fun MatrixUserHeaderDarkPreview() = ElementPreviewDark { ContentToPreview1() } + +@Composable +private fun ContentToPreview1() { MatrixUserHeader( MatrixUser( id = UserId("@alice:server.org"), @@ -94,7 +104,14 @@ fun MatrixUserHeaderPreview() { @Preview @Composable -fun MatrixUserHeaderNoUsernamePreview() { +fun MatrixUserHeaderNoUserNameLightPreview() = ElementPreviewLight { ContentToPreview2() } + +@Preview +@Composable +fun MatrixUserHeaderNoUserNameDarkPreview() = ElementPreviewDark { ContentToPreview2() } + +@Composable +private fun ContentToPreview2() { MatrixUserHeader( MatrixUser( id = UserId("@alice:server.org"), diff --git a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/MatrixUserRow.kt b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/MatrixUserRow.kt index e813fc8b50..c416821152 100644 --- a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/MatrixUserRow.kt +++ b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/MatrixUserRow.kt @@ -34,6 +34,8 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import io.element.android.libraries.designsystem.components.avatar.Avatar import io.element.android.libraries.designsystem.components.avatar.AvatarData +import io.element.android.libraries.designsystem.preview.ElementPreviewDark +import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.matrix.core.UserId import io.element.android.libraries.matrix.ui.model.MatrixUser @@ -68,7 +70,8 @@ fun MatrixUserRow( fontWeight = FontWeight.SemiBold, text = matrixUser.getBestName(), maxLines = 1, - overflow = TextOverflow.Ellipsis + overflow = TextOverflow.Ellipsis, + color = ElementTheme.colors.primary, ) // Id if (matrixUser.username.isNullOrEmpty().not()) { @@ -86,7 +89,14 @@ fun MatrixUserRow( @Preview @Composable -fun MatrixUserRowPreview() { +fun MatrixUserRowLightPreview() = ElementPreviewLight { ContentToPreview() } + +@Preview +@Composable +fun MatrixUserRowDarkPreview() = ElementPreviewDark { ContentToPreview() } + +@Composable +private fun ContentToPreview() { MatrixUserRow( MatrixUser( id = UserId("@alice:server.org"), diff --git a/libraries/textcomposer/build.gradle.kts b/libraries/textcomposer/build.gradle.kts index 4b5f82f747..0f98b3e593 100644 --- a/libraries/textcomposer/build.gradle.kts +++ b/libraries/textcomposer/build.gradle.kts @@ -35,6 +35,7 @@ dependencies { implementation(projects.libraries.androidutils) implementation(projects.libraries.core) implementation(projects.libraries.matrix) + implementation(projects.libraries.designsystem) implementation(libs.wysiwyg) implementation(libs.androidx.constraintlayout) implementation("com.google.android.material:material:1.7.0") diff --git a/libraries/textcomposer/src/main/kotlin/io/element/android/libraries/textcomposer/TextComposer.kt b/libraries/textcomposer/src/main/kotlin/io/element/android/libraries/textcomposer/TextComposer.kt index 930b5d6f77..4c8a4a0d9c 100644 --- a/libraries/textcomposer/src/main/kotlin/io/element/android/libraries/textcomposer/TextComposer.kt +++ b/libraries/textcomposer/src/main/kotlin/io/element/android/libraries/textcomposer/TextComposer.kt @@ -33,6 +33,9 @@ import androidx.compose.ui.unit.sp import androidx.compose.ui.viewinterop.AndroidView import androidx.core.view.isInvisible import androidx.core.view.isVisible +import io.element.android.libraries.designsystem.preview.ElementPreviewDark +import io.element.android.libraries.designsystem.preview.ElementPreviewLight +import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.ui.strings.R as StringR @Composable @@ -123,7 +126,8 @@ private fun FakeComposer( .align(Alignment.Center), textAlign = TextAlign.Center, text = "Composer Preview", - fontSize = 20.sp + fontSize = 20.sp, + color = ElementTheme.colors.secondary, ) } } @@ -145,7 +149,14 @@ private fun MessageComposerView.setup(isDarkMode: Boolean, composerMode: Message @Preview @Composable -fun TextComposerPreview() { +fun TextComposerLightPreview() = ElementPreviewLight { ContentToPreview() } + +@Preview +@Composable +fun TextComposerDarkPreview() = ElementPreviewDark { ContentToPreview() } + +@Composable +private fun ContentToPreview() { TextComposer( onSendMessage = {}, fullscreen = false, diff --git a/tests/uitests/src/main/kotlin/io/element/android/tests/uitests/ShowkaseButton.kt b/tests/uitests/src/main/kotlin/io/element/android/tests/uitests/ShowkaseButton.kt index 4d3f073724..45ef287018 100644 --- a/tests/uitests/src/main/kotlin/io/element/android/tests/uitests/ShowkaseButton.kt +++ b/tests/uitests/src/main/kotlin/io/element/android/tests/uitests/ShowkaseButton.kt @@ -31,6 +31,8 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp +import io.element.android.libraries.designsystem.preview.ElementPreviewDark +import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.theme.components.ElementButton @Composable @@ -59,8 +61,15 @@ fun ShowkaseButton( } } -@Preview(group = "Buttons", name = "Showkase button") +@Preview @Composable -fun ShowkaseButtonPreview() { +fun ShowkaseButtonLightPreview() = ElementPreviewLight { ContentToPreview() } + +@Preview +@Composable +fun ShowkaseButtonDarkPreview() = ElementPreviewDark { ContentToPreview() } + +@Composable +private fun ContentToPreview() { ShowkaseButton() } From 65e7984d5d89c40b2a2f63278a30bb210b1dec54 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Fri, 27 Jan 2023 10:38:30 +0100 Subject: [PATCH 11/22] Add some Preview --- .../theme/components/ElementButton.kt | 25 ++++++++++++++++ .../theme/components/ElementCheckbox.kt | 22 ++++++++++++++ .../components/ElementOutlinedTextField.kt | 25 ++++++++++++++++ .../theme/components/ElementSlider.kt | 30 +++++++++++++++---- 4 files changed, 97 insertions(+), 5 deletions(-) diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementButton.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementButton.kt index d9a536b4db..a9abdbb541 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementButton.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementButton.kt @@ -16,16 +16,21 @@ package io.element.android.libraries.designsystem.theme.components +import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.RowScope import androidx.compose.material.ContentAlpha import androidx.compose.material.ProvideTextStyle import androidx.compose.material3.Button import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.compositeOver +import androidx.compose.ui.tooling.preview.Preview import io.element.android.libraries.designsystem.components.color.elementContentColorFor +import io.element.android.libraries.designsystem.preview.ElementPreviewDark +import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.theme.ElementTheme @Composable @@ -64,3 +69,23 @@ fun ElementButton( } ) } + +@Preview +@Composable +fun ElementButtonsLightPreview() = ElementPreviewLight { ContentToPreview() } + +@Preview +@Composable +fun ElementButtonsDarkPreview() = ElementPreviewDark { ContentToPreview() } + +@Composable +private fun ContentToPreview() { + Column { + ElementButton(onClick = {}, enabled = true) { + Text(text = "Click me! - Enabled") + } + ElementButton(onClick = {}, enabled = false) { + Text(text = "Click me! - Disabled") + } + } +} diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementCheckbox.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementCheckbox.kt index 058313d40d..6e77b67e0a 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementCheckbox.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementCheckbox.kt @@ -17,6 +17,7 @@ package io.element.android.libraries.designsystem.theme.components import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.layout.Column import androidx.compose.material3.Checkbox import androidx.compose.material3.CheckboxColors import androidx.compose.material3.CheckboxDefaults @@ -24,6 +25,9 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.remember import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color +import androidx.compose.ui.tooling.preview.Preview +import io.element.android.libraries.designsystem.preview.ElementPreviewDark +import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.theme.ElementTheme @Composable @@ -53,3 +57,21 @@ fun ElementCheckbox( interactionSource = interactionSource, ) } + +@Preview +@Composable +fun ElementCheckboxesLightPreview() = ElementPreviewLight { ContentToPreview() } + +@Preview +@Composable +fun ElementCheckboxesDarkPreview() = ElementPreviewDark { ContentToPreview() } + +@Composable +private fun ContentToPreview() { + Column { + ElementCheckbox(onCheckedChange = {}, enabled = true, checked = true) + ElementCheckbox(onCheckedChange = {}, enabled = true, checked = false) + ElementCheckbox(onCheckedChange = {}, enabled = false, checked = true) + ElementCheckbox(onCheckedChange = {}, enabled = false, checked = false) + } +} diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementOutlinedTextField.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementOutlinedTextField.kt index 04b0eb402f..29bd7239d8 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementOutlinedTextField.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementOutlinedTextField.kt @@ -17,6 +17,7 @@ package io.element.android.libraries.designsystem.theme.components import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.layout.Column import androidx.compose.foundation.text.KeyboardActions import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.foundation.text.selection.TextSelectionColors @@ -32,7 +33,10 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Shape import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.input.VisualTransformation +import androidx.compose.ui.tooling.preview.Preview import io.element.android.libraries.designsystem.ElementGreen +import io.element.android.libraries.designsystem.preview.ElementPreviewDark +import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.theme.ElementTheme @OptIn(ExperimentalMaterial3Api::class) @@ -115,3 +119,24 @@ fun ElementOutlinedTextField( ) } +@Preview +@Composable +fun ElementOutlinedTextFieldsLightPreview() = ElementPreviewLight { ContentToPreview() } + +@Preview +@Composable +fun ElementOutlinedTextFieldsDarkPreview() = ElementPreviewDark { ContentToPreview() } + +@Composable +private fun ContentToPreview() { + Column { + ElementOutlinedTextField(onValueChange = {}, value = "Content", isError = false, enabled = true, readOnly = true) + ElementOutlinedTextField(onValueChange = {}, value = "Content", isError = false, enabled = true, readOnly = false) + ElementOutlinedTextField(onValueChange = {}, value = "Content", isError = false, enabled = false, readOnly = true) + ElementOutlinedTextField(onValueChange = {}, value = "Content", isError = false, enabled = false, readOnly = false) + ElementOutlinedTextField(onValueChange = {}, value = "Content", isError = true, enabled = true, readOnly = true) + ElementOutlinedTextField(onValueChange = {}, value = "Content", isError = true, enabled = true, readOnly = false) + ElementOutlinedTextField(onValueChange = {}, value = "Content", isError = true, enabled = false, readOnly = true) + ElementOutlinedTextField(onValueChange = {}, value = "Content", isError = true, enabled = false, readOnly = false) + } +} diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementSlider.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementSlider.kt index 318aeb2b41..4e2d31f5f4 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementSlider.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementSlider.kt @@ -17,12 +17,16 @@ package io.element.android.libraries.designsystem.theme.components import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.layout.Column import androidx.compose.material3.Slider import androidx.compose.material3.SliderColors import androidx.compose.material3.SliderDefaults import androidx.compose.runtime.Composable import androidx.compose.runtime.remember import androidx.compose.ui.Modifier +import androidx.compose.ui.tooling.preview.Preview +import io.element.android.libraries.designsystem.preview.ElementPreviewDark +import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.theme.ElementTheme @Composable @@ -41,11 +45,11 @@ fun ElementSlider( activeTickColor = ElementTheme.colors.primary, inactiveTrackColor = ElementTheme.colors.primary, inactiveTickColor = ElementTheme.colors.primary, - disabledThumbColor = ElementTheme.colors.primary, - disabledActiveTrackColor = ElementTheme.colors.primary, - disabledActiveTickColor = ElementTheme.colors.primary, - disabledInactiveTrackColor = ElementTheme.colors.primary, - disabledInactiveTickColor = ElementTheme.colors.primary, + disabledThumbColor = ElementTheme.colors.primary.copy(alpha = 0.40f), + disabledActiveTrackColor = ElementTheme.colors.primary.copy(alpha = 0.40f), + disabledActiveTickColor = ElementTheme.colors.primary.copy(alpha = 0.40f), + disabledInactiveTrackColor = ElementTheme.colors.primary.copy(alpha = 0.40f), + disabledInactiveTickColor = ElementTheme.colors.primary.copy(alpha = 0.40f), ), interactionSource: MutableInteractionSource = remember { MutableInteractionSource() } ) { @@ -61,3 +65,19 @@ fun ElementSlider( interactionSource = interactionSource, ) } + +@Preview +@Composable +fun ElementSlidersLightPreview() = ElementPreviewLight { ContentToPreview() } + +@Preview +@Composable +fun ElementSlidersDarkPreview() = ElementPreviewDark { ContentToPreview() } + +@Composable +private fun ContentToPreview() { + Column { + ElementSlider(onValueChange = {}, value = 0.33f, enabled = true) + ElementSlider(onValueChange = {}, value = 0.33f, enabled = false) + } +} From 4f6239b3c278fbdd8c3060e676d98c5b55f31e13 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Fri, 27 Jan 2023 10:42:18 +0100 Subject: [PATCH 12/22] Cleanup and TODO. --- .../android/features/login/changeserver/ChangeServerView.kt | 1 - .../io/element/android/features/login/root/LoginRootScreen.kt | 1 - .../element/android/features/messages/timeline/TimelineView.kt | 2 +- .../io/element/android/features/onboarding/OnBoardingScreen.kt | 1 - .../android/features/roomlist/components/RoomListTopBar.kt | 2 +- 5 files changed, 2 insertions(+), 5 deletions(-) diff --git a/features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerView.kt b/features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerView.kt index 1820448df8..6a60c52f2e 100644 --- a/features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerView.kt +++ b/features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerView.kt @@ -31,7 +31,6 @@ import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.text.KeyboardActions import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.foundation.verticalScroll -import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue diff --git a/features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootScreen.kt b/features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootScreen.kt index ada2a9d470..91cf5f00f5 100644 --- a/features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootScreen.kt +++ b/features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootScreen.kt @@ -30,7 +30,6 @@ import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Visibility import androidx.compose.material.icons.filled.VisibilityOff -import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.Text diff --git a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/TimelineView.kt b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/TimelineView.kt index 9f0cd5326a..17dc191493 100644 --- a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/TimelineView.kt +++ b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/TimelineView.kt @@ -39,7 +39,7 @@ import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.foundation.shape.CircleShape import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.ArrowDownward -import androidx.compose.material3.FloatingActionButton +import androidx.compose.material3.FloatingActionButton // TODO ElementFloatingActionButton import androidx.compose.material3.Icon import androidx.compose.material3.Text import androidx.compose.runtime.Composable diff --git a/features/onboarding/src/main/kotlin/io/element/android/features/onboarding/OnBoardingScreen.kt b/features/onboarding/src/main/kotlin/io/element/android/features/onboarding/OnBoardingScreen.kt index e21083c0f6..17922cafd2 100644 --- a/features/onboarding/src/main/kotlin/io/element/android/features/onboarding/OnBoardingScreen.kt +++ b/features/onboarding/src/main/kotlin/io/element/android/features/onboarding/OnBoardingScreen.kt @@ -24,7 +24,6 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.systemBarsPadding -import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect diff --git a/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/components/RoomListTopBar.kt b/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/components/RoomListTopBar.kt index 1437c0d59a..8615eb1e7c 100644 --- a/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/components/RoomListTopBar.kt +++ b/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/components/RoomListTopBar.kt @@ -30,7 +30,7 @@ import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.Text -import androidx.compose.material3.TextField +import androidx.compose.material3.TextField // TODO ElementTextField import androidx.compose.material3.TextFieldDefaults import androidx.compose.material3.TopAppBarScrollBehavior import androidx.compose.runtime.Composable From c4f53134d913de784229bf34ce5c4cf8f2e1b68a Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Fri, 27 Jan 2023 12:58:22 +0100 Subject: [PATCH 13/22] Material 1.8 --- gradle/libs.versions.toml | 2 +- libraries/elementresources/build.gradle.kts | 2 +- libraries/textcomposer/build.gradle.kts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index c3b00a39a9..036a9060be 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -10,7 +10,7 @@ ksp = "1.8.0-1.0.8" molecule = "0.7.0" # AndroidX -material = "1.6.1" +material = "1.8.0" corektx = "1.9.0" datastore = "1.0.0" constraintlayout = "2.1.4" diff --git a/libraries/elementresources/build.gradle.kts b/libraries/elementresources/build.gradle.kts index 3451be5c38..a33e0bc471 100644 --- a/libraries/elementresources/build.gradle.kts +++ b/libraries/elementresources/build.gradle.kts @@ -23,5 +23,5 @@ android { } dependencies { - implementation("com.google.android.material:material:1.7.0") + implementation(libs.androidx.material) } diff --git a/libraries/textcomposer/build.gradle.kts b/libraries/textcomposer/build.gradle.kts index 0f98b3e593..6f15fefa42 100644 --- a/libraries/textcomposer/build.gradle.kts +++ b/libraries/textcomposer/build.gradle.kts @@ -38,6 +38,6 @@ dependencies { implementation(projects.libraries.designsystem) implementation(libs.wysiwyg) implementation(libs.androidx.constraintlayout) - implementation("com.google.android.material:material:1.7.0") + implementation(libs.androidx.material) ksp(libs.showkase.processor) } From fb4c5138ee215179f16188d88ef4b10ee2a85365 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Mon, 30 Jan 2023 15:52:25 +0100 Subject: [PATCH 14/22] Material3 only in designsystem. --- .../android/x/component/ShowkaseButton.kt | 6 +- .../android/x/node/LoggedInFlowNode.kt | 2 +- .../login/changeserver/ChangeServerView.kt | 2 +- .../features/login/root/LoginRootScreen.kt | 6 +- features/messages/build.gradle.kts | 3 + .../android/features/messages/MessagesView.kt | 6 +- .../messages/timeline/TimelineView.kt | 6 +- .../components/TimelineItemInformativeView.kt | 4 +- .../components/TimelineItemReactionsView.kt | 2 +- .../timeline/components/html/HtmlDocument.kt | 2 +- .../features/onboarding/OnBoardingScreen.kt | 2 +- .../rageshake/bugreport/BugReportView.kt | 2 +- features/roomlist/build.gradle.kts | 3 + .../android/features/roomlist/RoomListView.kt | 3 +- .../roomlist/components/RoomListTopBar.kt | 17 +-- .../roomlist/components/RoomSummaryRow.kt | 2 +- .../android/features/template/TemplateView.kt | 1 - libraries/designsystem/build.gradle.kts | 3 + .../components/ClickableLinkText.kt | 2 +- .../components/LabelledCheckbox.kt | 2 +- .../designsystem/components/ProgressDialog.kt | 2 +- .../designsystem/components/VectorIcon.kt | 3 +- .../designsystem/components/avatar/Avatar.kt | 2 +- .../components/dialogs/ConfirmationDialog.kt | 2 +- .../components/dialogs/ErrorDialog.kt | 2 +- .../preferences/PreferenceCategory.kt | 4 +- .../preferences/PreferenceScreen.kt | 6 +- .../components/preferences/PreferenceSlide.kt | 2 +- .../preferences/PreferenceSwitch.kt | 2 +- .../components/preferences/PreferenceText.kt | 2 +- .../preferences/components/PreferenceIcon.kt | 2 +- .../designsystem/theme/ContentColor.kt | 4 +- .../designsystem/theme/components/Divider.kt | 36 ++++++ .../theme/components/ElementButton.kt | 6 +- .../theme/components/ElementCheckbox.kt | 3 +- .../ElementCircularProgressIndicator.kt | 5 +- .../ElementModalBottomSheetLayout.kt | 2 +- .../components/ElementOutlinedTextField.kt | 71 ++++++----- .../theme/components/ElementScaffold.kt | 5 +- .../theme/components/ElementSlider.kt | 3 +- .../theme/components/ElementSurface.kt | 5 +- .../theme/components/ElementTopAppBar.kt | 3 +- .../theme/components/FloatingActionButton.kt | 50 ++++++++ .../designsystem/theme/components/Icon.kt | 54 +++++++++ .../theme/components/IconButton.kt | 41 +++++++ .../designsystem/theme/components/Text.kt | 113 ++++++++++++++++++ .../theme/components/TextField.kt | 87 ++++++++++++++ .../matrix/ui/components/MatrixUserHeader.kt | 2 +- .../matrix/ui/components/MatrixUserRow.kt | 2 +- .../libraries/textcomposer/TextComposer.kt | 2 +- .../kotlin/extension/DependencyHandleScope.kt | 1 - .../android/tests/uitests/ShowkaseButton.kt | 6 +- 52 files changed, 485 insertions(+), 121 deletions(-) create mode 100644 libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Divider.kt create mode 100644 libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/FloatingActionButton.kt create mode 100644 libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Icon.kt create mode 100644 libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/IconButton.kt create mode 100644 libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Text.kt create mode 100644 libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/TextField.kt diff --git a/app/src/main/kotlin/io/element/android/x/component/ShowkaseButton.kt b/app/src/main/kotlin/io/element/android/x/component/ShowkaseButton.kt index 7a9ffe9791..d72680b710 100644 --- a/app/src/main/kotlin/io/element/android/x/component/ShowkaseButton.kt +++ b/app/src/main/kotlin/io/element/android/x/component/ShowkaseButton.kt @@ -20,13 +20,13 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Close -import androidx.compose.material3.Icon -import androidx.compose.material3.IconButton -import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import io.element.android.libraries.designsystem.theme.components.ElementButton +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.Text @Composable internal fun ShowkaseButton( diff --git a/app/src/main/kotlin/io/element/android/x/node/LoggedInFlowNode.kt b/app/src/main/kotlin/io/element/android/x/node/LoggedInFlowNode.kt index b2e2aca077..10e00d30ef 100644 --- a/app/src/main/kotlin/io/element/android/x/node/LoggedInFlowNode.kt +++ b/app/src/main/kotlin/io/element/android/x/node/LoggedInFlowNode.kt @@ -19,7 +19,6 @@ package io.element.android.x.node import android.os.Parcelable import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -37,6 +36,7 @@ import io.element.android.features.roomlist.RoomListNode import io.element.android.libraries.architecture.animation.rememberDefaultTransitionHandler import io.element.android.libraries.architecture.bindings import io.element.android.libraries.architecture.createNode +import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.di.DaggerComponentOwner import io.element.android.libraries.matrix.MatrixClient import io.element.android.libraries.matrix.core.RoomId diff --git a/features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerView.kt b/features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerView.kt index 6a60c52f2e..d924bba818 100644 --- a/features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerView.kt +++ b/features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerView.kt @@ -31,7 +31,6 @@ import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.text.KeyboardActions import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.foundation.verticalScroll -import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.setValue @@ -55,6 +54,7 @@ import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.designsystem.theme.components.ElementButton import io.element.android.libraries.designsystem.theme.components.ElementCircularProgressIndicator import io.element.android.libraries.designsystem.theme.components.ElementOutlinedTextField +import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.testtags.TestTags import io.element.android.libraries.testtags.testTag diff --git a/features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootScreen.kt b/features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootScreen.kt index 91cf5f00f5..6720826171 100644 --- a/features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootScreen.kt +++ b/features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootScreen.kt @@ -30,9 +30,6 @@ import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Visibility import androidx.compose.material.icons.filled.VisibilityOff -import androidx.compose.material3.Icon -import androidx.compose.material3.IconButton -import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf @@ -58,6 +55,9 @@ import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.designsystem.theme.components.ElementButton import io.element.android.libraries.designsystem.theme.components.ElementCircularProgressIndicator import io.element.android.libraries.designsystem.theme.components.ElementOutlinedTextField +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.Text import io.element.android.libraries.matrix.core.SessionId import io.element.android.libraries.testtags.TestTags import io.element.android.libraries.testtags.testTag diff --git a/features/messages/build.gradle.kts b/features/messages/build.gradle.kts index 975c7b5c0e..5931450294 100644 --- a/features/messages/build.gradle.kts +++ b/features/messages/build.gradle.kts @@ -47,4 +47,7 @@ dependencies { testImplementation(libs.test.junit) androidTestImplementation(libs.test.junitext) ksp(libs.showkase.processor) + + // Not for components, but other classes. + implementation("androidx.compose.material3:material3") } diff --git a/features/messages/src/main/kotlin/io/element/android/features/messages/MessagesView.kt b/features/messages/src/main/kotlin/io/element/android/features/messages/MessagesView.kt index 67bba09e15..466c24ebe5 100644 --- a/features/messages/src/main/kotlin/io/element/android/features/messages/MessagesView.kt +++ b/features/messages/src/main/kotlin/io/element/android/features/messages/MessagesView.kt @@ -39,11 +39,8 @@ import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.ArrowBack import androidx.compose.material.rememberModalBottomSheetState import androidx.compose.material3.ExperimentalMaterial3Api -import androidx.compose.material3.Icon -import androidx.compose.material3.IconButton import androidx.compose.material3.SnackbarHost import androidx.compose.material3.SnackbarHostState -import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope @@ -64,6 +61,9 @@ import io.element.android.libraries.designsystem.components.avatar.Avatar import io.element.android.libraries.designsystem.components.avatar.AvatarData import io.element.android.libraries.designsystem.theme.components.ElementScaffold import io.element.android.libraries.designsystem.theme.components.ElementTopAppBar +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.Text import io.element.android.libraries.designsystem.utils.LogCompositions import kotlinx.coroutines.launch import timber.log.Timber diff --git a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/TimelineView.kt b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/TimelineView.kt index 17dc191493..609ea8acaa 100644 --- a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/TimelineView.kt +++ b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/TimelineView.kt @@ -39,9 +39,6 @@ import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.foundation.shape.CircleShape import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.ArrowDownward -import androidx.compose.material3.FloatingActionButton // TODO ElementFloatingActionButton -import androidx.compose.material3.Icon -import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.derivedStateOf @@ -81,6 +78,9 @@ import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.designsystem.theme.components.ElementCircularProgressIndicator +import io.element.android.libraries.designsystem.theme.components.FloatingActionButton +import io.element.android.libraries.designsystem.theme.components.Icon +import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.designsystem.utils.PairCombinedPreviewParameter import io.element.android.libraries.matrix.core.EventId import kotlinx.collections.immutable.ImmutableList diff --git a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/TimelineItemInformativeView.kt b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/TimelineItemInformativeView.kt index b4c54194c3..5ad33a72ad 100644 --- a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/TimelineItemInformativeView.kt +++ b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/TimelineItemInformativeView.kt @@ -22,8 +22,6 @@ import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Delete -import androidx.compose.material3.Icon -import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -35,6 +33,8 @@ import androidx.compose.ui.unit.sp import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.theme.ElementTheme +import io.element.android.libraries.designsystem.theme.components.Icon +import io.element.android.libraries.designsystem.theme.components.Text @Composable fun TimelineItemInformativeView( diff --git a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/TimelineItemReactionsView.kt b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/TimelineItemReactionsView.kt index 41f4851454..3779968afa 100644 --- a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/TimelineItemReactionsView.kt +++ b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/TimelineItemReactionsView.kt @@ -23,7 +23,6 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width import androidx.compose.foundation.shape.CornerSize import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -34,6 +33,7 @@ import io.element.android.features.messages.timeline.model.AggregatedReaction import io.element.android.features.messages.timeline.model.TimelineItemReactions import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.designsystem.theme.components.ElementSurface +import io.element.android.libraries.designsystem.theme.components.Text @Composable fun TimelineItemReactionsView( diff --git a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/html/HtmlDocument.kt b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/html/HtmlDocument.kt index 6f673345e4..4c6b38dcbf 100644 --- a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/html/HtmlDocument.kt +++ b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/html/HtmlDocument.kt @@ -26,7 +26,6 @@ import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.text.InlineTextContent import androidx.compose.foundation.text.appendInlineContent import androidx.compose.material3.LocalTextStyle -import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.draw.drawBehind @@ -49,6 +48,7 @@ import io.element.android.libraries.designsystem.components.ClickableLinkText import io.element.android.libraries.designsystem.theme.ElementColors import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.designsystem.theme.components.ElementSurface +import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.matrix.permalink.PermalinkData import io.element.android.libraries.matrix.permalink.PermalinkParser import kotlinx.collections.immutable.persistentMapOf diff --git a/features/onboarding/src/main/kotlin/io/element/android/features/onboarding/OnBoardingScreen.kt b/features/onboarding/src/main/kotlin/io/element/android/features/onboarding/OnBoardingScreen.kt index 17922cafd2..e37bf1333e 100644 --- a/features/onboarding/src/main/kotlin/io/element/android/features/onboarding/OnBoardingScreen.kt +++ b/features/onboarding/src/main/kotlin/io/element/android/features/onboarding/OnBoardingScreen.kt @@ -24,7 +24,6 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.systemBarsPadding -import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue @@ -45,6 +44,7 @@ import com.google.accompanist.pager.HorizontalPager import com.google.accompanist.pager.HorizontalPagerIndicator import com.google.accompanist.pager.rememberPagerState import io.element.android.libraries.designsystem.theme.components.ElementButton +import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.testtags.TestTags import io.element.android.libraries.testtags.testTag import kotlinx.coroutines.delay diff --git a/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/bugreport/BugReportView.kt b/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/bugreport/BugReportView.kt index fe9e409c00..4dc3a858a1 100644 --- a/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/bugreport/BugReportView.kt +++ b/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/bugreport/BugReportView.kt @@ -26,7 +26,6 @@ import androidx.compose.foundation.layout.systemBarsPadding import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.foundation.verticalScroll -import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue @@ -54,6 +53,7 @@ import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.designsystem.theme.components.ElementButton import io.element.android.libraries.designsystem.theme.components.ElementCircularProgressIndicator import io.element.android.libraries.designsystem.theme.components.ElementOutlinedTextField +import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.designsystem.utils.LogCompositions import io.element.android.libraries.ui.strings.R as StringR diff --git a/features/roomlist/build.gradle.kts b/features/roomlist/build.gradle.kts index fc0402eafc..08b043a17f 100644 --- a/features/roomlist/build.gradle.kts +++ b/features/roomlist/build.gradle.kts @@ -54,4 +54,7 @@ dependencies { androidTestImplementation(libs.test.junitext) ksp(libs.showkase.processor) + + // Not for components, but other classes. + implementation("androidx.compose.material3:material3") } diff --git a/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/RoomListView.kt b/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/RoomListView.kt index ca75896b38..14c737a848 100644 --- a/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/RoomListView.kt +++ b/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/RoomListView.kt @@ -14,8 +14,6 @@ * limitations under the License. */ -@file:OptIn(ExperimentalMaterial3Api::class) - package io.element.android.features.roomlist import androidx.compose.foundation.layout.Column @@ -78,6 +76,7 @@ fun RoomListView( ) } +@OptIn(ExperimentalMaterial3Api::class) @Composable fun RoomListView( roomSummaries: ImmutableList, diff --git a/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/components/RoomListTopBar.kt b/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/components/RoomListTopBar.kt index 8615eb1e7c..1b6b7fd13c 100644 --- a/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/components/RoomListTopBar.kt +++ b/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/components/RoomListTopBar.kt @@ -27,11 +27,6 @@ import androidx.compose.material.icons.filled.Close import androidx.compose.material.icons.filled.Search import androidx.compose.material.icons.filled.Settings import androidx.compose.material3.ExperimentalMaterial3Api -import androidx.compose.material3.Icon -import androidx.compose.material3.IconButton -import androidx.compose.material3.Text -import androidx.compose.material3.TextField // TODO ElementTextField -import androidx.compose.material3.TextFieldDefaults import androidx.compose.material3.TopAppBarScrollBehavior import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect @@ -54,6 +49,10 @@ import io.element.android.libraries.designsystem.components.form.textFieldState import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.designsystem.theme.components.ElementMediumAppBar import io.element.android.libraries.designsystem.theme.components.ElementTopAppBar +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.Text +import io.element.android.libraries.designsystem.theme.components.TextField import io.element.android.libraries.designsystem.utils.LogCompositions import io.element.android.libraries.matrix.ui.model.MatrixUser import io.element.android.libraries.ui.strings.R as StringR @@ -151,14 +150,6 @@ fun SearchRoomListTopBar( } } }, - colors = TextFieldDefaults.textFieldColors( - textColor = ElementTheme.colors.onBackground, - containerColor = Color.Transparent, - cursorColor = ElementTheme.colors.onBackground.copy(alpha = ContentAlpha.medium), - focusedIndicatorColor = Color.Transparent, - unfocusedIndicatorColor = Color.Transparent, - disabledIndicatorColor = Color.Transparent - ) ) }, navigationIcon = { diff --git a/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/components/RoomSummaryRow.kt b/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/components/RoomSummaryRow.kt index 037b3afa49..580d0ebc4b 100644 --- a/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/components/RoomSummaryRow.kt +++ b/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/components/RoomSummaryRow.kt @@ -31,7 +31,6 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.shape.CircleShape import androidx.compose.material.ripple.rememberRipple -import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.remember import androidx.compose.ui.Alignment @@ -54,6 +53,7 @@ import com.google.accompanist.placeholder.material.placeholder import io.element.android.features.roomlist.model.RoomListRoomSummary import io.element.android.libraries.designsystem.components.avatar.Avatar import io.element.android.libraries.designsystem.theme.ElementTheme +import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.designsystem.theme.roomListPlaceHolder import io.element.android.libraries.designsystem.theme.roomListRoomMessage import io.element.android.libraries.designsystem.theme.roomListRoomMessageDate diff --git a/features/template/src/main/kotlin/io/element/android/features/template/TemplateView.kt b/features/template/src/main/kotlin/io/element/android/features/template/TemplateView.kt index b954b4d9d7..a98912d958 100644 --- a/features/template/src/main/kotlin/io/element/android/features/template/TemplateView.kt +++ b/features/template/src/main/kotlin/io/element/android/features/template/TemplateView.kt @@ -17,7 +17,6 @@ package io.element.android.features.template import androidx.compose.foundation.layout.Box -import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier diff --git a/libraries/designsystem/build.gradle.kts b/libraries/designsystem/build.gradle.kts index 45430e5d82..10e51c8aec 100644 --- a/libraries/designsystem/build.gradle.kts +++ b/libraries/designsystem/build.gradle.kts @@ -31,5 +31,8 @@ android { implementation(projects.libraries.elementresources) implementation(projects.libraries.uiStrings) ksp(libs.showkase.processor) + + // This is the only module to have a (temporary) dependence to material3. + implementation("androidx.compose.material3:material3") } } diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ClickableLinkText.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ClickableLinkText.kt index b5b196ce51..a8a5b94ff4 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ClickableLinkText.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ClickableLinkText.kt @@ -21,7 +21,6 @@ import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.interaction.PressInteraction import androidx.compose.foundation.text.InlineTextContent import androidx.compose.material3.LocalTextStyle -import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember @@ -33,6 +32,7 @@ import androidx.compose.ui.text.AnnotatedString import androidx.compose.ui.text.TextLayoutResult import androidx.compose.ui.text.TextStyle import io.element.android.libraries.designsystem.theme.ElementTheme +import io.element.android.libraries.designsystem.theme.components.Text import kotlinx.collections.immutable.ImmutableMap import kotlinx.collections.immutable.persistentMapOf diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/LabelledCheckbox.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/LabelledCheckbox.kt index 66a43c5a81..af3596127b 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/LabelledCheckbox.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/LabelledCheckbox.kt @@ -18,7 +18,6 @@ package io.element.android.libraries.designsystem.components import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -27,6 +26,7 @@ import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.designsystem.theme.components.ElementCheckbox +import io.element.android.libraries.designsystem.theme.components.Text @Composable fun LabelledCheckbox( diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ProgressDialog.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ProgressDialog.kt index 2947b04ffb..e48b41937b 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ProgressDialog.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ProgressDialog.kt @@ -22,7 +22,6 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -34,6 +33,7 @@ import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.designsystem.theme.components.ElementCircularProgressIndicator +import io.element.android.libraries.designsystem.theme.components.Text @Composable fun ProgressDialog( diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/VectorIcon.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/VectorIcon.kt index 60e7c644ad..d576b1dacc 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/VectorIcon.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/VectorIcon.kt @@ -16,7 +16,6 @@ package io.element.android.libraries.designsystem.components -import androidx.compose.material3.Icon import androidx.compose.material3.LocalContentColor import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier @@ -29,7 +28,7 @@ fun VectorIcon( modifier: Modifier = Modifier, tint: Color = LocalContentColor.current, ) { - Icon( + androidx.compose.material3.Icon( painter = painterResource(id = resourceId), contentDescription = null, modifier = modifier, diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/Avatar.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/Avatar.kt index 0fa2c9fe1a..b9a6d19bc8 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/Avatar.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/Avatar.kt @@ -20,7 +20,6 @@ import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.size import androidx.compose.foundation.shape.CircleShape -import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -36,6 +35,7 @@ import io.element.android.libraries.designsystem.AvatarGradientEnd import io.element.android.libraries.designsystem.AvatarGradientStart import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight +import io.element.android.libraries.designsystem.theme.components.Text import timber.log.Timber @Composable diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/dialogs/ConfirmationDialog.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/dialogs/ConfirmationDialog.kt index bc99927e9e..903f9a07ba 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/dialogs/ConfirmationDialog.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/dialogs/ConfirmationDialog.kt @@ -23,7 +23,6 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.material3.AlertDialog import androidx.compose.material3.AlertDialogDefaults -import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color @@ -36,6 +35,7 @@ import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.designsystem.theme.components.ElementButton +import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.ui.strings.R as StringR @Composable diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/dialogs/ErrorDialog.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/dialogs/ErrorDialog.kt index 9d72a1f1a0..feba85cc73 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/dialogs/ErrorDialog.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/dialogs/ErrorDialog.kt @@ -22,7 +22,6 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.material3.AlertDialog import androidx.compose.material3.AlertDialogDefaults -import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color @@ -35,6 +34,7 @@ import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.designsystem.theme.components.ElementButton +import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.ui.strings.R as StringR @Composable diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceCategory.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceCategory.kt index dfd75410d2..7206fb1081 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceCategory.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceCategory.kt @@ -23,8 +23,6 @@ import androidx.compose.foundation.layout.padding import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Announcement import androidx.compose.material.icons.filled.BugReport -import androidx.compose.material3.Divider -import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.tooling.preview.Preview @@ -32,6 +30,8 @@ import androidx.compose.ui.unit.dp import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.theme.ElementTheme +import io.element.android.libraries.designsystem.theme.components.Divider +import io.element.android.libraries.designsystem.theme.components.Text @Composable fun PreferenceCategory( diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceScreen.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceScreen.kt index fbc5281cf2..caac7b93c2 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceScreen.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceScreen.kt @@ -32,9 +32,6 @@ import androidx.compose.material.icons.filled.Announcement import androidx.compose.material.icons.filled.ArrowBack import androidx.compose.material.icons.filled.BugReport import androidx.compose.material3.ExperimentalMaterial3Api -import androidx.compose.material3.Icon -import androidx.compose.material3.IconButton -import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -46,6 +43,9 @@ import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.theme.components.ElementScaffold import io.element.android.libraries.designsystem.theme.components.ElementTopAppBar +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.Text @OptIn(ExperimentalMaterial3Api::class) @Composable diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSlide.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSlide.kt index 2caf1efaa3..6335929641 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSlide.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSlide.kt @@ -23,7 +23,6 @@ import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.defaultMinSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding -import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -34,6 +33,7 @@ import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.designsystem.theme.components.ElementSlider +import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.designsystem.toEnabledColor @Composable diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSwitch.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSwitch.kt index f89e945caf..173d427ff1 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSwitch.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSwitch.kt @@ -24,7 +24,6 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Announcement -import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -35,6 +34,7 @@ import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.designsystem.theme.components.ElementCheckbox +import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.designsystem.toEnabledColor @Composable diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceText.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceText.kt index 824d264807..b7b7662045 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceText.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceText.kt @@ -24,7 +24,6 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.BugReport -import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -34,6 +33,7 @@ import io.element.android.libraries.designsystem.components.preferences.componen import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.theme.ElementTheme +import io.element.android.libraries.designsystem.theme.components.Text @Composable fun PreferenceText( diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/components/PreferenceIcon.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/components/PreferenceIcon.kt index 6a821333cc..81c8146c57 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/components/PreferenceIcon.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/components/PreferenceIcon.kt @@ -19,11 +19,11 @@ package io.element.android.libraries.designsystem.components.preferences.compone import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width -import androidx.compose.material3.Icon import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.unit.dp +import io.element.android.libraries.designsystem.theme.components.Icon import io.element.android.libraries.designsystem.toEnabledColor @Composable diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ContentColor.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ContentColor.kt index 56df033d27..1af916a109 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ContentColor.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ContentColor.kt @@ -14,15 +14,13 @@ * limitations under the License. */ -package io.element.android.libraries.designsystem.components.color +package io.element.android.libraries.designsystem.theme import androidx.compose.material3.LocalContentColor import androidx.compose.runtime.Composable import androidx.compose.runtime.ReadOnlyComposable import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.takeOrElse -import io.element.android.libraries.designsystem.theme.ElementColors -import io.element.android.libraries.designsystem.theme.ElementTheme @Composable @ReadOnlyComposable diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Divider.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Divider.kt new file mode 100644 index 0000000000..4889c4c473 --- /dev/null +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Divider.kt @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2023 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.designsystem.theme.components + +import androidx.compose.material3.DividerDefaults +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.unit.Dp + +@Composable +fun Divider( + modifier: Modifier = Modifier, + thickness: Dp = DividerDefaults.Thickness, + color: Color = DividerDefaults.color, +) { + androidx.compose.material3.Divider( + modifier = modifier, + thickness = thickness, + color = color, + ) +} diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementButton.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementButton.kt index a9abdbb541..e66571b2e7 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementButton.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementButton.kt @@ -20,18 +20,16 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.RowScope import androidx.compose.material.ContentAlpha import androidx.compose.material.ProvideTextStyle -import androidx.compose.material3.Button import androidx.compose.material3.ButtonDefaults -import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.compositeOver import androidx.compose.ui.tooling.preview.Preview -import io.element.android.libraries.designsystem.components.color.elementContentColorFor import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.theme.ElementTheme +import io.element.android.libraries.designsystem.theme.elementContentColorFor @Composable fun ElementButton( @@ -41,7 +39,7 @@ fun ElementButton( containerColor: Color = ElementTheme.colors.primary, content: @Composable RowScope.() -> Unit ) { - Button( + androidx.compose.material3.Button( colors = ButtonDefaults.buttonColors( containerColor = containerColor, contentColor = elementContentColorFor(backgroundColor = containerColor), diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementCheckbox.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementCheckbox.kt index 6e77b67e0a..6db3f62c8d 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementCheckbox.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementCheckbox.kt @@ -18,7 +18,6 @@ package io.element.android.libraries.designsystem.theme.components import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.layout.Column -import androidx.compose.material3.Checkbox import androidx.compose.material3.CheckboxColors import androidx.compose.material3.CheckboxDefaults import androidx.compose.runtime.Composable @@ -48,7 +47,7 @@ fun ElementCheckbox( ), interactionSource: MutableInteractionSource = remember { MutableInteractionSource() } ) { - Checkbox( + androidx.compose.material3.Checkbox( checked = checked, onCheckedChange = onCheckedChange, modifier = modifier, diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementCircularProgressIndicator.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementCircularProgressIndicator.kt index a5188bab51..256745dbbf 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementCircularProgressIndicator.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementCircularProgressIndicator.kt @@ -16,7 +16,6 @@ package io.element.android.libraries.designsystem.theme.components -import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.ProgressIndicatorDefaults import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier @@ -31,7 +30,7 @@ fun ElementCircularProgressIndicator( color: Color = ProgressIndicatorDefaults.circularColor, strokeWidth: Dp = ProgressIndicatorDefaults.CircularStrokeWidth ) { - CircularProgressIndicator( + androidx.compose.material3.CircularProgressIndicator( modifier = modifier, progress = progress, color = color, @@ -45,7 +44,7 @@ fun ElementCircularProgressIndicator( color: Color = ElementTheme.colors.primary, strokeWidth: Dp = ProgressIndicatorDefaults.CircularStrokeWidth, ) { - CircularProgressIndicator( + androidx.compose.material3.CircularProgressIndicator( modifier = modifier, color = color, strokeWidth = strokeWidth, diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementModalBottomSheetLayout.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementModalBottomSheetLayout.kt index 7fbd2caf49..c1a5ddc2e7 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementModalBottomSheetLayout.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementModalBottomSheetLayout.kt @@ -29,7 +29,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Shape import androidx.compose.ui.unit.Dp -import io.element.android.libraries.designsystem.components.color.elementContentColorFor +import io.element.android.libraries.designsystem.theme.elementContentColorFor import io.element.android.libraries.designsystem.theme.ElementTheme @OptIn(ExperimentalMaterialApi::class) diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementOutlinedTextField.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementOutlinedTextField.kt index 29bd7239d8..5e57b85507 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementOutlinedTextField.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementOutlinedTextField.kt @@ -23,8 +23,6 @@ import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.foundation.text.selection.TextSelectionColors import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.LocalTextStyle -import androidx.compose.material3.OutlinedTextField -import androidx.compose.material3.TextFieldColors import androidx.compose.material3.TextFieldDefaults import androidx.compose.runtime.Composable import androidx.compose.runtime.remember @@ -61,41 +59,8 @@ fun ElementOutlinedTextField( maxLines: Int = Int.MAX_VALUE, interactionSource: MutableInteractionSource = remember { MutableInteractionSource() }, shape: Shape = TextFieldDefaults.outlinedShape, - colors: TextFieldColors = TextFieldDefaults.outlinedTextFieldColors( - textColor = ElementTheme.colors.primary, - disabledTextColor = ElementTheme.colors.primary.copy(alpha = 0.38f), - containerColor = Color.Transparent, - cursorColor = ElementTheme.colors.primary, - errorCursorColor = ElementTheme.colors.error, - selectionColors = TextSelectionColors( - handleColor = ElementGreen, - backgroundColor = ElementGreen.copy(alpha = 0.4f) - ), - focusedBorderColor = ElementTheme.colors.primary, - unfocusedBorderColor = ElementTheme.colors.secondary, - disabledBorderColor = ElementTheme.colors.secondary.copy(alpha = 0.12f), - errorBorderColor = ElementTheme.colors.error, - focusedLeadingIconColor = ElementTheme.colors.primary, - unfocusedLeadingIconColor = ElementTheme.colors.secondary, - disabledLeadingIconColor = ElementTheme.colors.secondary.copy(0.12f), - errorLeadingIconColor = ElementTheme.colors.error, - focusedTrailingIconColor = ElementTheme.colors.primary, - unfocusedTrailingIconColor = ElementTheme.colors.secondary, - disabledTrailingIconColor = ElementTheme.colors.secondary.copy(alpha = 0.12f), - errorTrailingIconColor = ElementTheme.colors.error, - focusedLabelColor = ElementTheme.colors.primary, - unfocusedLabelColor = ElementTheme.colors.secondary, - disabledLabelColor = ElementTheme.colors.secondary.copy(alpha = 0.12f), - errorLabelColor = ElementTheme.colors.error, - placeholderColor = ElementTheme.colors.secondary, - disabledPlaceholderColor = ElementTheme.colors.secondary.copy(alpha = 0.12f), - focusedSupportingTextColor = ElementTheme.colors.primary, - unfocusedSupportingTextColor = ElementTheme.colors.secondary, - disabledSupportingTextColor = ElementTheme.colors.primary.copy(alpha = 0.12f), - errorSupportingTextColor = ElementTheme.colors.error, - ) ) { - OutlinedTextField( + androidx.compose.material3.OutlinedTextField( value = value, onValueChange = onValueChange, modifier = modifier, @@ -115,7 +80,39 @@ fun ElementOutlinedTextField( maxLines = maxLines, interactionSource = interactionSource, shape = shape, - colors = colors, + colors = TextFieldDefaults.outlinedTextFieldColors( + textColor = ElementTheme.colors.primary, + disabledTextColor = ElementTheme.colors.primary.copy(alpha = 0.38f), + containerColor = Color.Transparent, + cursorColor = ElementTheme.colors.primary, + errorCursorColor = ElementTheme.colors.error, + selectionColors = TextSelectionColors( + handleColor = ElementGreen, + backgroundColor = ElementGreen.copy(alpha = 0.4f) + ), + focusedBorderColor = ElementTheme.colors.primary, + unfocusedBorderColor = ElementTheme.colors.secondary, + disabledBorderColor = ElementTheme.colors.secondary.copy(alpha = 0.12f), + errorBorderColor = ElementTheme.colors.error, + focusedLeadingIconColor = ElementTheme.colors.primary, + unfocusedLeadingIconColor = ElementTheme.colors.secondary, + disabledLeadingIconColor = ElementTheme.colors.secondary.copy(0.12f), + errorLeadingIconColor = ElementTheme.colors.error, + focusedTrailingIconColor = ElementTheme.colors.primary, + unfocusedTrailingIconColor = ElementTheme.colors.secondary, + disabledTrailingIconColor = ElementTheme.colors.secondary.copy(alpha = 0.12f), + errorTrailingIconColor = ElementTheme.colors.error, + focusedLabelColor = ElementTheme.colors.primary, + unfocusedLabelColor = ElementTheme.colors.secondary, + disabledLabelColor = ElementTheme.colors.secondary.copy(alpha = 0.12f), + errorLabelColor = ElementTheme.colors.error, + placeholderColor = ElementTheme.colors.secondary, + disabledPlaceholderColor = ElementTheme.colors.secondary.copy(alpha = 0.12f), + focusedSupportingTextColor = ElementTheme.colors.primary, + unfocusedSupportingTextColor = ElementTheme.colors.secondary, + disabledSupportingTextColor = ElementTheme.colors.primary.copy(alpha = 0.12f), + errorSupportingTextColor = ElementTheme.colors.error, + ), ) } diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementScaffold.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementScaffold.kt index a244bb3fa7..7e684e4104 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementScaffold.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementScaffold.kt @@ -20,12 +20,11 @@ import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.WindowInsets import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.FabPosition -import androidx.compose.material3.Scaffold import androidx.compose.material3.ScaffoldDefaults import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color -import io.element.android.libraries.designsystem.components.color.elementContentColorFor +import io.element.android.libraries.designsystem.theme.elementContentColorFor import io.element.android.libraries.designsystem.theme.ElementTheme @OptIn(ExperimentalMaterial3Api::class) @@ -42,7 +41,7 @@ fun ElementScaffold( contentWindowInsets: WindowInsets = ScaffoldDefaults.contentWindowInsets, content: @Composable (PaddingValues) -> Unit ) { - Scaffold( + androidx.compose.material3.Scaffold( modifier = modifier, topBar = topBar, bottomBar = bottomBar, diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementSlider.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementSlider.kt index 4e2d31f5f4..b0eac3e9eb 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementSlider.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementSlider.kt @@ -18,7 +18,6 @@ package io.element.android.libraries.designsystem.theme.components import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.layout.Column -import androidx.compose.material3.Slider import androidx.compose.material3.SliderColors import androidx.compose.material3.SliderDefaults import androidx.compose.runtime.Composable @@ -53,7 +52,7 @@ fun ElementSlider( ), interactionSource: MutableInteractionSource = remember { MutableInteractionSource() } ) { - Slider( + androidx.compose.material3.Slider( value = value, onValueChange = onValueChange, modifier = modifier, diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementSurface.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementSurface.kt index 0039eb0ee3..7aa61cad5e 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementSurface.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementSurface.kt @@ -17,7 +17,6 @@ package io.element.android.libraries.designsystem.theme.components import androidx.compose.foundation.BorderStroke -import androidx.compose.material3.Surface import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color @@ -25,7 +24,7 @@ import androidx.compose.ui.graphics.RectangleShape import androidx.compose.ui.graphics.Shape import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp -import io.element.android.libraries.designsystem.components.color.elementContentColorFor +import io.element.android.libraries.designsystem.theme.elementContentColorFor import io.element.android.libraries.designsystem.theme.ElementTheme @Composable @@ -39,7 +38,7 @@ fun ElementSurface( border: BorderStroke? = null, content: @Composable () -> Unit ) { - Surface( + androidx.compose.material3.Surface( modifier = modifier, shape = shape, color = color, diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementTopAppBar.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementTopAppBar.kt index 7b7be7dfd1..188739c222 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementTopAppBar.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementTopAppBar.kt @@ -19,7 +19,6 @@ package io.element.android.libraries.designsystem.theme.components import androidx.compose.foundation.layout.RowScope import androidx.compose.foundation.layout.WindowInsets import androidx.compose.material3.ExperimentalMaterial3Api -import androidx.compose.material3.TopAppBar import androidx.compose.material3.TopAppBarColors import androidx.compose.material3.TopAppBarDefaults import androidx.compose.material3.TopAppBarScrollBehavior @@ -44,7 +43,7 @@ fun ElementTopAppBar( ), scrollBehavior: TopAppBarScrollBehavior? = null ) { - TopAppBar( + androidx.compose.material3.TopAppBar( title = title, modifier = modifier, navigationIcon = navigationIcon, diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/FloatingActionButton.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/FloatingActionButton.kt new file mode 100644 index 0000000000..e27f2e7b25 --- /dev/null +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/FloatingActionButton.kt @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2023 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.designsystem.theme.components + +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.material3.FloatingActionButtonDefaults +import androidx.compose.material3.FloatingActionButtonElevation +import androidx.compose.material3.contentColorFor +import androidx.compose.runtime.Composable +import androidx.compose.runtime.remember +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.Shape + +@Composable +fun FloatingActionButton( + onClick: () -> Unit, + modifier: Modifier = Modifier, + shape: Shape = FloatingActionButtonDefaults.shape, + containerColor: Color = FloatingActionButtonDefaults.containerColor, + contentColor: Color = contentColorFor(containerColor), + elevation: FloatingActionButtonElevation = FloatingActionButtonDefaults.elevation(), + interactionSource: MutableInteractionSource = remember { MutableInteractionSource() }, + content: @Composable () -> Unit, +) { + androidx.compose.material3.FloatingActionButton( + onClick = onClick, + modifier = modifier, + shape = shape, + containerColor = containerColor, + contentColor = contentColor, + elevation = elevation, + interactionSource = interactionSource, + content = content, + ) +} diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Icon.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Icon.kt new file mode 100644 index 0000000000..6006a6c60a --- /dev/null +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Icon.kt @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2023 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.designsystem.theme.components + +import androidx.compose.material3.LocalContentColor +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.ImageBitmap +import androidx.compose.ui.graphics.vector.ImageVector + +@Composable +fun Icon( + imageVector: ImageVector, + contentDescription: String?, + modifier: Modifier = Modifier, + tint: Color = LocalContentColor.current +) { + androidx.compose.material3.Icon( + imageVector = imageVector, + contentDescription = contentDescription, + modifier = modifier, + tint = tint, + ) +} + +@Composable +fun Icon( + bitmap: ImageBitmap, + contentDescription: String?, + modifier: Modifier = Modifier, + tint: Color = LocalContentColor.current +) { + androidx.compose.material3.Icon( + bitmap = bitmap, + contentDescription = contentDescription, + modifier = modifier, + tint = tint, + ) +} diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/IconButton.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/IconButton.kt new file mode 100644 index 0000000000..5af819c1f0 --- /dev/null +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/IconButton.kt @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2023 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.designsystem.theme.components + +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.material3.IconButtonDefaults +import androidx.compose.runtime.Composable +import androidx.compose.runtime.remember +import androidx.compose.ui.Modifier + +@Composable +fun IconButton( + onClick: () -> Unit, + modifier: Modifier = Modifier, + enabled: Boolean = true, + interactionSource: MutableInteractionSource = remember { MutableInteractionSource() }, + content: @Composable () -> Unit +) { + androidx.compose.material3.IconButton( + onClick = onClick, + modifier = modifier, + enabled = enabled, + colors = IconButtonDefaults.iconButtonColors(), + interactionSource = interactionSource, + content = content, + ) +} diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Text.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Text.kt new file mode 100644 index 0000000000..6d7a255d4b --- /dev/null +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Text.kt @@ -0,0 +1,113 @@ +/* + * Copyright (c) 2023 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.designsystem.theme.components + +import androidx.compose.foundation.text.InlineTextContent +import androidx.compose.material3.LocalTextStyle +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.text.AnnotatedString +import androidx.compose.ui.text.TextLayoutResult +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.font.FontFamily +import androidx.compose.ui.text.font.FontStyle +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.text.style.TextDecoration +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.unit.TextUnit + +@Composable +fun Text( + text: String, + modifier: Modifier = Modifier, + color: Color = Color.Unspecified, + fontSize: TextUnit = TextUnit.Unspecified, + fontStyle: FontStyle? = null, + fontWeight: FontWeight? = null, + fontFamily: FontFamily? = null, + letterSpacing: TextUnit = TextUnit.Unspecified, + textDecoration: TextDecoration? = null, + textAlign: TextAlign? = null, + lineHeight: TextUnit = TextUnit.Unspecified, + overflow: TextOverflow = TextOverflow.Clip, + softWrap: Boolean = true, + maxLines: Int = Int.MAX_VALUE, + onTextLayout: (TextLayoutResult) -> Unit = {}, + style: TextStyle = LocalTextStyle.current +) { + androidx.compose.material3.Text( + text = text, + modifier = modifier, + color = color, + fontSize = fontSize, + fontStyle = fontStyle, + fontWeight = fontWeight, + fontFamily = fontFamily, + letterSpacing = letterSpacing, + textDecoration = textDecoration, + textAlign = textAlign, + lineHeight = lineHeight, + overflow = overflow, + softWrap = softWrap, + maxLines = maxLines, + onTextLayout = onTextLayout, + style = style, + ) +} + +@Composable +fun Text( + text: AnnotatedString, + modifier: Modifier = Modifier, + color: Color = Color.Unspecified, + fontSize: TextUnit = TextUnit.Unspecified, + fontStyle: FontStyle? = null, + fontWeight: FontWeight? = null, + fontFamily: FontFamily? = null, + letterSpacing: TextUnit = TextUnit.Unspecified, + textDecoration: TextDecoration? = null, + textAlign: TextAlign? = null, + lineHeight: TextUnit = TextUnit.Unspecified, + overflow: TextOverflow = TextOverflow.Clip, + softWrap: Boolean = true, + maxLines: Int = Int.MAX_VALUE, + inlineContent: Map = mapOf(), + onTextLayout: (TextLayoutResult) -> Unit = {}, + style: TextStyle = LocalTextStyle.current +) { + androidx.compose.material3.Text( + text = text, + modifier = modifier, + color = color, + fontSize = fontSize, + fontStyle = fontStyle, + fontWeight = fontWeight, + fontFamily = fontFamily, + letterSpacing = letterSpacing, + textDecoration = textDecoration, + textAlign = textAlign, + lineHeight = lineHeight, + overflow = overflow, + softWrap = softWrap, + maxLines = maxLines, + inlineContent = inlineContent, + onTextLayout = onTextLayout, + style = style, + ) +} diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/TextField.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/TextField.kt new file mode 100644 index 0000000000..3a16b8fedb --- /dev/null +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/TextField.kt @@ -0,0 +1,87 @@ +/* + * Copyright (c) 2023 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.designsystem.theme.components + +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.text.KeyboardActions +import androidx.compose.foundation.text.KeyboardOptions +import androidx.compose.material.ContentAlpha +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.LocalTextStyle +import androidx.compose.material3.TextFieldDefaults +import androidx.compose.runtime.Composable +import androidx.compose.runtime.remember +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.Shape +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.input.VisualTransformation +import io.element.android.libraries.designsystem.theme.ElementTheme + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +fun TextField( + value: String, + onValueChange: (String) -> Unit, + modifier: Modifier = Modifier, + enabled: Boolean = true, + readOnly: Boolean = false, + textStyle: TextStyle = LocalTextStyle.current, + label: @Composable (() -> Unit)? = null, + placeholder: @Composable (() -> Unit)? = null, + leadingIcon: @Composable (() -> Unit)? = null, + trailingIcon: @Composable (() -> Unit)? = null, + supportingText: @Composable (() -> Unit)? = null, + isError: Boolean = false, + visualTransformation: VisualTransformation = VisualTransformation.None, + keyboardOptions: KeyboardOptions = KeyboardOptions.Default, + keyboardActions: KeyboardActions = KeyboardActions.Default, + singleLine: Boolean = false, + maxLines: Int = Int.MAX_VALUE, + interactionSource: MutableInteractionSource = remember { MutableInteractionSource() }, + shape: Shape = TextFieldDefaults.filledShape, +) { + androidx.compose.material3.TextField( + value = value, + onValueChange = onValueChange, + modifier = modifier, + enabled = enabled, + readOnly = readOnly, + textStyle = textStyle, + label = label, + placeholder = placeholder, + leadingIcon = leadingIcon, + trailingIcon = trailingIcon, + supportingText = supportingText, + isError = isError, + visualTransformation = visualTransformation, + keyboardOptions = keyboardOptions, + keyboardActions = keyboardActions, + singleLine = singleLine, + maxLines = maxLines, + interactionSource = interactionSource, + shape = shape, + colors = TextFieldDefaults.textFieldColors( + textColor = ElementTheme.colors.onBackground, + containerColor = Color.Transparent, + cursorColor = ElementTheme.colors.onBackground.copy(alpha = ContentAlpha.medium), + focusedIndicatorColor = Color.Transparent, + unfocusedIndicatorColor = Color.Transparent, + disabledIndicatorColor = Color.Transparent + ), + ) +} diff --git a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/MatrixUserHeader.kt b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/MatrixUserHeader.kt index 64aace9cdf..a8ce4af56f 100644 --- a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/MatrixUserHeader.kt +++ b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/MatrixUserHeader.kt @@ -23,7 +23,6 @@ import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding -import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -38,6 +37,7 @@ import io.element.android.libraries.designsystem.components.avatar.AvatarSize import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.theme.ElementTheme +import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.matrix.core.UserId import io.element.android.libraries.matrix.ui.model.MatrixUser import io.element.android.libraries.matrix.ui.model.getBestName diff --git a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/MatrixUserRow.kt b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/MatrixUserRow.kt index c416821152..5b6db5b7e6 100644 --- a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/MatrixUserRow.kt +++ b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/MatrixUserRow.kt @@ -23,7 +23,6 @@ import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding -import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -37,6 +36,7 @@ import io.element.android.libraries.designsystem.components.avatar.AvatarData import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.theme.ElementTheme +import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.matrix.core.UserId import io.element.android.libraries.matrix.ui.model.MatrixUser import io.element.android.libraries.matrix.ui.model.getBestName diff --git a/libraries/textcomposer/src/main/kotlin/io/element/android/libraries/textcomposer/TextComposer.kt b/libraries/textcomposer/src/main/kotlin/io/element/android/libraries/textcomposer/TextComposer.kt index 4c8a4a0d9c..ab736f4177 100644 --- a/libraries/textcomposer/src/main/kotlin/io/element/android/libraries/textcomposer/TextComposer.kt +++ b/libraries/textcomposer/src/main/kotlin/io/element/android/libraries/textcomposer/TextComposer.kt @@ -21,7 +21,6 @@ import android.net.Uri import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height -import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -36,6 +35,7 @@ import androidx.core.view.isVisible import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.theme.ElementTheme +import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.ui.strings.R as StringR @Composable diff --git a/plugins/src/main/kotlin/extension/DependencyHandleScope.kt b/plugins/src/main/kotlin/extension/DependencyHandleScope.kt index 710f603cad..49cf6dd1cd 100644 --- a/plugins/src/main/kotlin/extension/DependencyHandleScope.kt +++ b/plugins/src/main/kotlin/extension/DependencyHandleScope.kt @@ -38,7 +38,6 @@ fun DependencyHandlerScope.composeDependencies() { androidTestImplementation(composeBom) implementation("androidx.compose.ui:ui") implementation("androidx.compose.material:material") - implementation("androidx.compose.material3:material3") implementation("androidx.compose.material:material-icons-extended") implementation("androidx.compose.ui:ui-tooling-preview") implementation("androidx.activity:activity-compose:1.6.1") diff --git a/tests/uitests/src/main/kotlin/io/element/android/tests/uitests/ShowkaseButton.kt b/tests/uitests/src/main/kotlin/io/element/android/tests/uitests/ShowkaseButton.kt index 45ef287018..844925b2f2 100644 --- a/tests/uitests/src/main/kotlin/io/element/android/tests/uitests/ShowkaseButton.kt +++ b/tests/uitests/src/main/kotlin/io/element/android/tests/uitests/ShowkaseButton.kt @@ -20,9 +20,6 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Close -import androidx.compose.material3.Icon -import androidx.compose.material3.IconButton -import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf @@ -34,6 +31,9 @@ import androidx.compose.ui.unit.dp import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.theme.components.ElementButton +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.Text @Composable fun ShowkaseButton( From 37840af3fd82727e6b6b00708ef2b28d800b6d59 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Mon, 30 Jan 2023 16:11:54 +0100 Subject: [PATCH 15/22] Rename component. No need for `Element` prefix --- .../android/x/component/ShowkaseButton.kt | 4 ++-- .../io/element/android/x/node/RootFlowNode.kt | 4 ++-- .../login/changeserver/ChangeServerView.kt | 12 +++++----- .../features/login/root/LoginRootScreen.kt | 18 +++++++-------- .../android/features/messages/MessagesView.kt | 8 +++---- .../messages/actionlist/ActionListView.kt | 4 ++-- .../messages/timeline/TimelineView.kt | 4 ++-- .../timeline/components/MessageEventBubble.kt | 4 ++-- .../components/TimelineItemReactionsView.kt | 4 ++-- .../timeline/components/html/HtmlDocument.kt | 4 ++-- .../features/onboarding/OnBoardingScreen.kt | 4 ++-- .../rageshake/bugreport/BugReportView.kt | 12 +++++----- .../android/features/roomlist/RoomListView.kt | 4 ++-- .../roomlist/components/RoomListTopBar.kt | 9 ++++---- .../components/LabelledCheckbox.kt | 4 ++-- .../designsystem/components/ProgressDialog.kt | 4 ++-- .../components/dialogs/ConfirmationDialog.kt | 8 +++---- .../components/dialogs/ErrorDialog.kt | 4 ++-- .../preferences/PreferenceScreen.kt | 8 +++---- .../components/preferences/PreferenceSlide.kt | 4 ++-- .../preferences/PreferenceSwitch.kt | 4 ++-- .../{ElementButton.kt => Button.kt} | 10 ++++----- .../{ElementCheckbox.kt => Checkbox.kt} | 14 ++++++------ ...icator.kt => CircularProgressIndicator.kt} | 4 ++-- .../designsystem/theme/components/Divider.kt | 19 +++++++++++++++- ...mentMediumAppBar.kt => MediumTopAppBar.kt} | 5 ++--- ...eetLayout.kt => ModalBottomSheetLayout.kt} | 7 +++--- ...linedTextField.kt => OutlinedTextField.kt} | 22 +++++++++---------- .../{ElementScaffold.kt => Scaffold.kt} | 4 ++-- .../{ElementSlider.kt => Slider.kt} | 10 ++++----- .../{ElementSurface.kt => Surface.kt} | 4 ++-- .../{ElementTopAppBar.kt => TopAppBar.kt} | 2 +- .../android/tests/uitests/ShowkaseButton.kt | 4 ++-- 33 files changed, 125 insertions(+), 111 deletions(-) rename libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/{ElementButton.kt => Button.kt} (91%) rename libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/{ElementCheckbox.kt => Checkbox.kt} (83%) rename libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/{ElementCircularProgressIndicator.kt => CircularProgressIndicator.kt} (95%) rename libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/{ElementMediumAppBar.kt => MediumTopAppBar.kt} (95%) rename libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/{ElementModalBottomSheetLayout.kt => ModalBottomSheetLayout.kt} (95%) rename libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/{ElementOutlinedTextField.kt => OutlinedTextField.kt} (82%) rename libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/{ElementScaffold.kt => Scaffold.kt} (99%) rename libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/{ElementSlider.kt => Slider.kt} (89%) rename libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/{ElementSurface.kt => Surface.kt} (98%) rename libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/{ElementTopAppBar.kt => TopAppBar.kt} (98%) diff --git a/app/src/main/kotlin/io/element/android/x/component/ShowkaseButton.kt b/app/src/main/kotlin/io/element/android/x/component/ShowkaseButton.kt index d72680b710..c486f9b7cc 100644 --- a/app/src/main/kotlin/io/element/android/x/component/ShowkaseButton.kt +++ b/app/src/main/kotlin/io/element/android/x/component/ShowkaseButton.kt @@ -23,7 +23,7 @@ import androidx.compose.material.icons.filled.Close import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp -import io.element.android.libraries.designsystem.theme.components.ElementButton +import io.element.android.libraries.designsystem.theme.components.Button 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.Text @@ -36,7 +36,7 @@ internal fun ShowkaseButton( modifier: Modifier = Modifier, ) { if (isVisible) { - ElementButton( + Button( modifier = modifier .padding(top = 32.dp, start = 16.dp), onClick = onClick diff --git a/app/src/main/kotlin/io/element/android/x/node/RootFlowNode.kt b/app/src/main/kotlin/io/element/android/x/node/RootFlowNode.kt index 22450a1382..37fd284b3f 100644 --- a/app/src/main/kotlin/io/element/android/x/node/RootFlowNode.kt +++ b/app/src/main/kotlin/io/element/android/x/node/RootFlowNode.kt @@ -35,7 +35,7 @@ import com.bumble.appyx.navmodel.backstack.operation.push import io.element.android.features.rageshake.bugreport.BugReportNode import io.element.android.libraries.architecture.animation.rememberDefaultTransitionHandler import io.element.android.libraries.architecture.createNode -import io.element.android.libraries.designsystem.theme.components.ElementCircularProgressIndicator +import io.element.android.libraries.designsystem.theme.components.CircularProgressIndicator import io.element.android.libraries.di.DaggerComponentOwner import io.element.android.libraries.matrix.auth.MatrixAuthenticationService import io.element.android.libraries.matrix.core.SessionId @@ -182,7 +182,7 @@ class RootFlowNode( private fun splashNode(buildContext: BuildContext) = node(buildContext) { Box(modifier = it.fillMaxSize(), contentAlignment = Alignment.Center) { - ElementCircularProgressIndicator() + CircularProgressIndicator() } } } diff --git a/features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerView.kt b/features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerView.kt index d924bba818..c64b3f0625 100644 --- a/features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerView.kt +++ b/features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerView.kt @@ -51,9 +51,9 @@ 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.ElementTheme -import io.element.android.libraries.designsystem.theme.components.ElementButton -import io.element.android.libraries.designsystem.theme.components.ElementCircularProgressIndicator -import io.element.android.libraries.designsystem.theme.components.ElementOutlinedTextField +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.OutlinedTextField import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.testtags.TestTags import io.element.android.libraries.testtags.testTag @@ -122,7 +122,7 @@ fun ChangeServerView( color = ElementTheme.colors.secondary, ) var homeserverFieldState by textFieldState(stateValue = state.homeserver) - ElementOutlinedTextField( + OutlinedTextField( value = homeserverFieldState, modifier = Modifier .fillMaxWidth() @@ -155,7 +155,7 @@ fun ChangeServerView( modifier = Modifier.padding(start = 16.dp) ) } - ElementButton( + Button( onClick = { eventSink(ChangeServerEvents.Submit) }, enabled = state.submitEnabled, modifier = Modifier @@ -170,7 +170,7 @@ fun ChangeServerView( } } if (state.changeServerAction is Async.Loading) { - ElementCircularProgressIndicator( + CircularProgressIndicator( modifier = Modifier.align(Alignment.Center) ) } diff --git a/features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootScreen.kt b/features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootScreen.kt index 6720826171..3242197ce2 100644 --- a/features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootScreen.kt +++ b/features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootScreen.kt @@ -52,11 +52,11 @@ 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.ElementTheme -import io.element.android.libraries.designsystem.theme.components.ElementButton -import io.element.android.libraries.designsystem.theme.components.ElementCircularProgressIndicator -import io.element.android.libraries.designsystem.theme.components.ElementOutlinedTextField +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.OutlinedTextField import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.matrix.core.SessionId import io.element.android.libraries.testtags.TestTags @@ -107,7 +107,7 @@ fun LoginRootScreen( Box( modifier = Modifier.fillMaxWidth() ) { - ElementOutlinedTextField( + OutlinedTextField( value = state.homeserver, modifier = Modifier.fillMaxWidth(), onValueChange = { /* no op */ }, @@ -119,7 +119,7 @@ fun LoginRootScreen( keyboardType = KeyboardType.Uri, ), ) - ElementButton( + Button( onClick = onChangeServer, modifier = Modifier .align(Alignment.CenterEnd) @@ -130,7 +130,7 @@ fun LoginRootScreen( } ) } - ElementOutlinedTextField( + OutlinedTextField( value = loginFieldState, modifier = Modifier .fillMaxWidth() @@ -153,7 +153,7 @@ fun LoginRootScreen( // Ensure password is hidden when user submits the form passwordVisible = false } - ElementOutlinedTextField( + OutlinedTextField( value = passwordFieldState, modifier = Modifier .fillMaxWidth() @@ -196,7 +196,7 @@ fun LoginRootScreen( } } // Submit - ElementButton( + Button( onClick = { eventSink(LoginRootEvents.Submit) }, enabled = state.submitEnabled, modifier = Modifier @@ -212,7 +212,7 @@ fun LoginRootScreen( } } if (state.loggedInState is LoggedInState.LoggingIn) { - ElementCircularProgressIndicator( + CircularProgressIndicator( modifier = Modifier.align(Alignment.Center) ) } diff --git a/features/messages/src/main/kotlin/io/element/android/features/messages/MessagesView.kt b/features/messages/src/main/kotlin/io/element/android/features/messages/MessagesView.kt index 466c24ebe5..e19fc869fa 100644 --- a/features/messages/src/main/kotlin/io/element/android/features/messages/MessagesView.kt +++ b/features/messages/src/main/kotlin/io/element/android/features/messages/MessagesView.kt @@ -59,11 +59,11 @@ import io.element.android.features.messages.timeline.TimelineView import io.element.android.features.messages.timeline.model.TimelineItem import io.element.android.libraries.designsystem.components.avatar.Avatar import io.element.android.libraries.designsystem.components.avatar.AvatarData -import io.element.android.libraries.designsystem.theme.components.ElementScaffold -import io.element.android.libraries.designsystem.theme.components.ElementTopAppBar 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 import io.element.android.libraries.designsystem.theme.components.Text +import io.element.android.libraries.designsystem.theme.components.TopAppBar import io.element.android.libraries.designsystem.utils.LogCompositions import kotlinx.coroutines.launch import timber.log.Timber @@ -101,7 +101,7 @@ fun MessagesView( state.eventSink(MessagesEvents.HandleAction(action, messageEvent)) } - ElementScaffold( + Scaffold( modifier = modifier, contentWindowInsets = WindowInsets.statusBars, topBar = { @@ -172,7 +172,7 @@ fun MessagesViewTopBar( modifier: Modifier = Modifier, onBackPressed: () -> Unit = {}, ) { - ElementTopAppBar( + TopAppBar( modifier = modifier, navigationIcon = { IconButton(onClick = onBackPressed) { diff --git a/features/messages/src/main/kotlin/io/element/android/features/messages/actionlist/ActionListView.kt b/features/messages/src/main/kotlin/io/element/android/features/messages/actionlist/ActionListView.kt index 4adafbea3c..e580b48001 100644 --- a/features/messages/src/main/kotlin/io/element/android/features/messages/actionlist/ActionListView.kt +++ b/features/messages/src/main/kotlin/io/element/android/features/messages/actionlist/ActionListView.kt @@ -43,7 +43,7 @@ import io.element.android.features.messages.actionlist.model.TimelineItemAction import io.element.android.features.messages.timeline.model.TimelineItem import io.element.android.libraries.designsystem.components.VectorIcon import io.element.android.libraries.designsystem.theme.ElementTheme -import io.element.android.libraries.designsystem.theme.components.ElementModalBottomSheetLayout +import io.element.android.libraries.designsystem.theme.components.ModalBottomSheetLayout import kotlinx.coroutines.flow.filter import kotlinx.coroutines.launch @@ -73,7 +73,7 @@ fun ActionListView( } } - ElementModalBottomSheetLayout( + ModalBottomSheetLayout( modifier = modifier, sheetState = modalBottomSheetState, sheetContent = { diff --git a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/TimelineView.kt b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/TimelineView.kt index 609ea8acaa..13127271c2 100644 --- a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/TimelineView.kt +++ b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/TimelineView.kt @@ -77,7 +77,7 @@ import io.element.android.libraries.designsystem.components.avatar.AvatarData import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.theme.ElementTheme -import io.element.android.libraries.designsystem.theme.components.ElementCircularProgressIndicator +import io.element.android.libraries.designsystem.theme.components.CircularProgressIndicator import io.element.android.libraries.designsystem.theme.components.FloatingActionButton import io.element.android.libraries.designsystem.theme.components.Icon import io.element.android.libraries.designsystem.theme.components.Text @@ -345,7 +345,7 @@ internal fun TimelineLoadingMoreIndicator() { .padding(8.dp), contentAlignment = Alignment.Center, ) { - ElementCircularProgressIndicator( + CircularProgressIndicator( strokeWidth = 2.dp, color = ElementTheme.colors.primary ) diff --git a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/MessageEventBubble.kt b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/MessageEventBubble.kt index dc12908f5f..02fa87ec29 100644 --- a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/MessageEventBubble.kt +++ b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/MessageEventBubble.kt @@ -30,7 +30,7 @@ import androidx.compose.ui.graphics.Shape import androidx.compose.ui.unit.dp import io.element.android.features.messages.timeline.model.MessagesItemGroupPosition import io.element.android.libraries.designsystem.theme.ElementTheme -import io.element.android.libraries.designsystem.theme.components.ElementSurface +import io.element.android.libraries.designsystem.theme.components.Surface private val BUBBLE_RADIUS = 16.dp @@ -91,7 +91,7 @@ fun MessageEventBubble( } } val bubbleShape = bubbleShape() - ElementSurface( + Surface( modifier = modifier .widthIn(min = 80.dp) .offsetForItem() diff --git a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/TimelineItemReactionsView.kt b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/TimelineItemReactionsView.kt index 3779968afa..22a9b306f1 100644 --- a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/TimelineItemReactionsView.kt +++ b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/TimelineItemReactionsView.kt @@ -32,7 +32,7 @@ import com.google.accompanist.flowlayout.FlowRow import io.element.android.features.messages.timeline.model.AggregatedReaction import io.element.android.features.messages.timeline.model.TimelineItemReactions import io.element.android.libraries.designsystem.theme.ElementTheme -import io.element.android.libraries.designsystem.theme.components.ElementSurface +import io.element.android.libraries.designsystem.theme.components.Surface import io.element.android.libraries.designsystem.theme.components.Text @Composable @@ -54,7 +54,7 @@ fun TimelineItemReactionsView( @Composable fun MessagesReactionButton(reaction: AggregatedReaction, modifier: Modifier = Modifier) { - ElementSurface( + Surface( modifier = modifier, color = ElementTheme.colors.surfaceVariant, border = BorderStroke(2.dp, ElementTheme.colors.background), diff --git a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/html/HtmlDocument.kt b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/html/HtmlDocument.kt index 4c6b38dcbf..a3be7d3bd1 100644 --- a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/html/HtmlDocument.kt +++ b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/html/HtmlDocument.kt @@ -47,7 +47,7 @@ import io.element.android.libraries.designsystem.LinkColor import io.element.android.libraries.designsystem.components.ClickableLinkText import io.element.android.libraries.designsystem.theme.ElementColors import io.element.android.libraries.designsystem.theme.ElementTheme -import io.element.android.libraries.designsystem.theme.components.ElementSurface +import io.element.android.libraries.designsystem.theme.components.Surface import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.matrix.permalink.PermalinkData import io.element.android.libraries.matrix.permalink.PermalinkParser @@ -340,7 +340,7 @@ private fun HtmlMxReply( ) { val blockquote = mxReply.childNodes().firstOrNull() ?: return val shape = RoundedCornerShape(12.dp) - ElementSurface( + Surface( modifier = modifier .padding(bottom = 4.dp) .offset(x = -(8.dp)), diff --git a/features/onboarding/src/main/kotlin/io/element/android/features/onboarding/OnBoardingScreen.kt b/features/onboarding/src/main/kotlin/io/element/android/features/onboarding/OnBoardingScreen.kt index e37bf1333e..dc8362563e 100644 --- a/features/onboarding/src/main/kotlin/io/element/android/features/onboarding/OnBoardingScreen.kt +++ b/features/onboarding/src/main/kotlin/io/element/android/features/onboarding/OnBoardingScreen.kt @@ -43,7 +43,7 @@ import com.google.accompanist.pager.ExperimentalPagerApi import com.google.accompanist.pager.HorizontalPager import com.google.accompanist.pager.HorizontalPagerIndicator import com.google.accompanist.pager.rememberPagerState -import io.element.android.libraries.designsystem.theme.components.ElementButton +import io.element.android.libraries.designsystem.theme.components.Button import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.testtags.TestTags import io.element.android.libraries.testtags.testTag @@ -100,7 +100,7 @@ fun OnBoardingScreen( .align(CenterHorizontally) .padding(16.dp), ) - ElementButton( + Button( onClick = { onSignIn() }, diff --git a/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/bugreport/BugReportView.kt b/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/bugreport/BugReportView.kt index 4dc3a858a1..0cd9ff0334 100644 --- a/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/bugreport/BugReportView.kt +++ b/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/bugreport/BugReportView.kt @@ -50,9 +50,9 @@ 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.ElementTheme -import io.element.android.libraries.designsystem.theme.components.ElementButton -import io.element.android.libraries.designsystem.theme.components.ElementCircularProgressIndicator -import io.element.android.libraries.designsystem.theme.components.ElementOutlinedTextField +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.OutlinedTextField import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.designsystem.utils.LogCompositions import io.element.android.libraries.ui.strings.R as StringR @@ -114,7 +114,7 @@ fun BugReportView( Column( // modifier = Modifier.weight(1f), ) { - ElementOutlinedTextField( + OutlinedTextField( value = descriptionFieldState, modifier = Modifier .fillMaxWidth() @@ -182,7 +182,7 @@ fun BugReportView( } } // Submit - ElementButton( + Button( onClick = { eventSink(BugReportEvents.SendBugReport) }, enabled = state.submitEnabled, modifier = Modifier @@ -194,7 +194,7 @@ fun BugReportView( } when (state.sending) { is Async.Loading -> { - ElementCircularProgressIndicator( + CircularProgressIndicator( progress = state.sendingProgress, modifier = Modifier.align(Alignment.Center) ) diff --git a/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/RoomListView.kt b/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/RoomListView.kt index 14c737a848..3ed5edcf63 100644 --- a/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/RoomListView.kt +++ b/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/RoomListView.kt @@ -42,7 +42,7 @@ import io.element.android.features.roomlist.model.stubbedRoomSummaries import io.element.android.libraries.designsystem.components.avatar.AvatarData import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight -import io.element.android.libraries.designsystem.theme.components.ElementScaffold +import io.element.android.libraries.designsystem.theme.components.Scaffold import io.element.android.libraries.designsystem.utils.LogCompositions import io.element.android.libraries.matrix.core.RoomId import io.element.android.libraries.matrix.core.UserId @@ -118,7 +118,7 @@ fun RoomListView( } } - ElementScaffold( + Scaffold( modifier = modifier.nestedScroll(scrollBehavior.nestedScrollConnection), topBar = { RoomListTopBar( diff --git a/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/components/RoomListTopBar.kt b/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/components/RoomListTopBar.kt index 1b6b7fd13c..70b4d974c7 100644 --- a/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/components/RoomListTopBar.kt +++ b/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/components/RoomListTopBar.kt @@ -38,7 +38,6 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.focus.FocusRequester import androidx.compose.ui.focus.focusRequester -import androidx.compose.ui.graphics.Color import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.TextStyle @@ -47,12 +46,12 @@ import androidx.compose.ui.unit.sp import io.element.android.libraries.designsystem.components.avatar.Avatar import io.element.android.libraries.designsystem.components.form.textFieldState import io.element.android.libraries.designsystem.theme.ElementTheme -import io.element.android.libraries.designsystem.theme.components.ElementMediumAppBar -import io.element.android.libraries.designsystem.theme.components.ElementTopAppBar 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.MediumTopAppBar import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.designsystem.theme.components.TextField +import io.element.android.libraries.designsystem.theme.components.TopAppBar import io.element.android.libraries.designsystem.utils.LogCompositions import io.element.android.libraries.matrix.ui.model.MatrixUser import io.element.android.libraries.ui.strings.R as StringR @@ -112,7 +111,7 @@ fun SearchRoomListTopBar( ) { var filterState by textFieldState(stateValue = text) val focusRequester = remember { FocusRequester() } - ElementTopAppBar( + TopAppBar( modifier = modifier .nestedScroll(scrollBehavior.nestedScrollConnection), title = { @@ -179,7 +178,7 @@ private fun DefaultRoomListTopBar( scrollBehavior: TopAppBarScrollBehavior, modifier: Modifier = Modifier, ) { - ElementMediumAppBar( + MediumTopAppBar( modifier = modifier .nestedScroll(scrollBehavior.nestedScrollConnection), title = { diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/LabelledCheckbox.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/LabelledCheckbox.kt index af3596127b..cd381af63b 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/LabelledCheckbox.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/LabelledCheckbox.kt @@ -25,7 +25,7 @@ import androidx.compose.ui.tooling.preview.Preview import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.theme.ElementTheme -import io.element.android.libraries.designsystem.theme.components.ElementCheckbox +import io.element.android.libraries.designsystem.theme.components.Checkbox import io.element.android.libraries.designsystem.theme.components.Text @Composable @@ -40,7 +40,7 @@ fun LabelledCheckbox( modifier = modifier.fillMaxWidth(), verticalAlignment = Alignment.CenterVertically ) { - ElementCheckbox( + Checkbox( checked = checked, onCheckedChange = onCheckedChange, enabled = enabled, diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ProgressDialog.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ProgressDialog.kt index e48b41937b..6f8ec96118 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ProgressDialog.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ProgressDialog.kt @@ -32,7 +32,7 @@ import androidx.compose.ui.window.DialogProperties import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.theme.ElementTheme -import io.element.android.libraries.designsystem.theme.components.ElementCircularProgressIndicator +import io.element.android.libraries.designsystem.theme.components.CircularProgressIndicator import io.element.android.libraries.designsystem.theme.components.Text @Composable @@ -55,7 +55,7 @@ fun ProgressDialog( ) ) { Column(horizontalAlignment = Alignment.CenterHorizontally) { - ElementCircularProgressIndicator( + CircularProgressIndicator( modifier = Modifier.padding(16.dp), color = ElementTheme.colors.onSurfaceVariant ) diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/dialogs/ConfirmationDialog.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/dialogs/ConfirmationDialog.kt index 903f9a07ba..b4b910ac3b 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/dialogs/ConfirmationDialog.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/dialogs/ConfirmationDialog.kt @@ -34,7 +34,7 @@ import androidx.compose.ui.unit.dp import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.theme.ElementTheme -import io.element.android.libraries.designsystem.theme.components.ElementButton +import io.element.android.libraries.designsystem.theme.components.Button import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.ui.strings.R as StringR @@ -72,7 +72,7 @@ fun ConfirmationDialog( horizontalArrangement = Arrangement.Center ) { Column { - ElementButton( + Button( modifier = Modifier.fillMaxWidth(), onClick = { onCancelClicked() @@ -80,7 +80,7 @@ fun ConfirmationDialog( Text(cancelText) } if (thirdButtonText != null) { - ElementButton( + Button( modifier = Modifier.fillMaxWidth(), onClick = { onThirdButtonClicked() @@ -96,7 +96,7 @@ fun ConfirmationDialog( modifier = Modifier.padding(all = 8.dp), horizontalArrangement = Arrangement.Center ) { - ElementButton( + Button( modifier = Modifier.fillMaxWidth(), onClick = { onSubmitClicked() diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/dialogs/ErrorDialog.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/dialogs/ErrorDialog.kt index feba85cc73..b9740c2074 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/dialogs/ErrorDialog.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/dialogs/ErrorDialog.kt @@ -33,7 +33,7 @@ import androidx.compose.ui.unit.dp import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.theme.ElementTheme -import io.element.android.libraries.designsystem.theme.components.ElementButton +import io.element.android.libraries.designsystem.theme.components.Button import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.ui.strings.R as StringR @@ -65,7 +65,7 @@ fun ErrorDialog( modifier = Modifier.padding(all = 8.dp), horizontalArrangement = Arrangement.Center ) { - ElementButton( + Button( modifier = Modifier.fillMaxWidth(), onClick = { onDismiss() diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceScreen.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceScreen.kt index caac7b93c2..08d5a377a6 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceScreen.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceScreen.kt @@ -41,11 +41,11 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.sp import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight -import io.element.android.libraries.designsystem.theme.components.ElementScaffold -import io.element.android.libraries.designsystem.theme.components.ElementTopAppBar 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 import io.element.android.libraries.designsystem.theme.components.Text +import io.element.android.libraries.designsystem.theme.components.TopAppBar @OptIn(ExperimentalMaterial3Api::class) @Composable @@ -55,7 +55,7 @@ fun PreferenceView( onBackPressed: () -> Unit = {}, content: @Composable ColumnScope.() -> Unit, ) { - ElementScaffold( + Scaffold( modifier = modifier .fillMaxSize() .systemBarsPadding() @@ -89,7 +89,7 @@ fun PreferenceTopAppBar( modifier: Modifier = Modifier, onBackPressed: () -> Unit = {}, ) { - ElementTopAppBar( + TopAppBar( modifier = modifier, navigationIcon = { IconButton(onClick = onBackPressed) { diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSlide.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSlide.kt index 6335929641..315f7caeab 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSlide.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSlide.kt @@ -32,7 +32,7 @@ import io.element.android.libraries.designsystem.components.preferences.componen import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.theme.ElementTheme -import io.element.android.libraries.designsystem.theme.components.ElementSlider +import io.element.android.libraries.designsystem.theme.components.Slider import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.designsystem.toEnabledColor @@ -75,7 +75,7 @@ fun PreferenceSlide( text = summary ) } - ElementSlider( + Slider( value = value, steps = steps, onValueChange = onValueChange, diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSwitch.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSwitch.kt index 173d427ff1..629148c071 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSwitch.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSwitch.kt @@ -33,7 +33,7 @@ import io.element.android.libraries.designsystem.components.preferences.componen import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.theme.ElementTheme -import io.element.android.libraries.designsystem.theme.components.ElementCheckbox +import io.element.android.libraries.designsystem.theme.components.Checkbox import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.designsystem.toEnabledColor @@ -67,7 +67,7 @@ fun PreferenceSwitch( color = enabled.toEnabledColor(), text = title ) - ElementCheckbox( + Checkbox( modifier = Modifier.padding(end = preferencePaddingEnd), checked = isChecked, enabled = enabled, diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementButton.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Button.kt similarity index 91% rename from libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementButton.kt rename to libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Button.kt index e66571b2e7..cb49ebdcd7 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementButton.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Button.kt @@ -32,7 +32,7 @@ import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.designsystem.theme.elementContentColorFor @Composable -fun ElementButton( +fun Button( onClick: () -> Unit, modifier: Modifier = Modifier, enabled: Boolean = true, @@ -70,19 +70,19 @@ fun ElementButton( @Preview @Composable -fun ElementButtonsLightPreview() = ElementPreviewLight { ContentToPreview() } +fun ButtonsLightPreview() = ElementPreviewLight { ContentToPreview() } @Preview @Composable -fun ElementButtonsDarkPreview() = ElementPreviewDark { ContentToPreview() } +fun ButtonsDarkPreview() = ElementPreviewDark { ContentToPreview() } @Composable private fun ContentToPreview() { Column { - ElementButton(onClick = {}, enabled = true) { + Button(onClick = {}, enabled = true) { Text(text = "Click me! - Enabled") } - ElementButton(onClick = {}, enabled = false) { + Button(onClick = {}, enabled = false) { Text(text = "Click me! - Disabled") } } diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementCheckbox.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Checkbox.kt similarity index 83% rename from libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementCheckbox.kt rename to libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Checkbox.kt index 6db3f62c8d..25b1637ac8 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementCheckbox.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Checkbox.kt @@ -30,7 +30,7 @@ import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.theme.ElementTheme @Composable -fun ElementCheckbox( +fun Checkbox( checked: Boolean, onCheckedChange: ((Boolean) -> Unit)?, modifier: Modifier = Modifier, @@ -59,18 +59,18 @@ fun ElementCheckbox( @Preview @Composable -fun ElementCheckboxesLightPreview() = ElementPreviewLight { ContentToPreview() } +fun CheckboxesLightPreview() = ElementPreviewLight { ContentToPreview() } @Preview @Composable -fun ElementCheckboxesDarkPreview() = ElementPreviewDark { ContentToPreview() } +fun CheckboxesDarkPreview() = ElementPreviewDark { ContentToPreview() } @Composable private fun ContentToPreview() { Column { - ElementCheckbox(onCheckedChange = {}, enabled = true, checked = true) - ElementCheckbox(onCheckedChange = {}, enabled = true, checked = false) - ElementCheckbox(onCheckedChange = {}, enabled = false, checked = true) - ElementCheckbox(onCheckedChange = {}, enabled = false, checked = false) + Checkbox(onCheckedChange = {}, enabled = true, checked = true) + Checkbox(onCheckedChange = {}, enabled = true, checked = false) + Checkbox(onCheckedChange = {}, enabled = false, checked = true) + Checkbox(onCheckedChange = {}, enabled = false, checked = false) } } diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementCircularProgressIndicator.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/CircularProgressIndicator.kt similarity index 95% rename from libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementCircularProgressIndicator.kt rename to libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/CircularProgressIndicator.kt index 256745dbbf..38eb970828 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementCircularProgressIndicator.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/CircularProgressIndicator.kt @@ -24,7 +24,7 @@ import androidx.compose.ui.unit.Dp import io.element.android.libraries.designsystem.theme.ElementTheme @Composable -fun ElementCircularProgressIndicator( +fun CircularProgressIndicator( progress: Float, modifier: Modifier = Modifier, color: Color = ProgressIndicatorDefaults.circularColor, @@ -39,7 +39,7 @@ fun ElementCircularProgressIndicator( } @Composable -fun ElementCircularProgressIndicator( +fun CircularProgressIndicator( modifier: Modifier = Modifier, color: Color = ElementTheme.colors.primary, strokeWidth: Dp = ProgressIndicatorDefaults.CircularStrokeWidth, diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Divider.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Divider.kt index 4889c4c473..832f3b89d4 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Divider.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Divider.kt @@ -20,13 +20,17 @@ import androidx.compose.material3.DividerDefaults import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color +import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Dp +import io.element.android.libraries.designsystem.preview.ElementPreviewDark +import io.element.android.libraries.designsystem.preview.ElementPreviewLight +import io.element.android.libraries.designsystem.theme.ElementTheme @Composable fun Divider( modifier: Modifier = Modifier, thickness: Dp = DividerDefaults.Thickness, - color: Color = DividerDefaults.color, + color: Color = ElementTheme.colors.onBackground, ) { androidx.compose.material3.Divider( modifier = modifier, @@ -34,3 +38,16 @@ fun Divider( color = color, ) } + +@Preview +@Composable +fun DividerLightPreview() = ElementPreviewLight { ContentToPreview() } + +@Preview +@Composable +fun DividerDarkPreview() = ElementPreviewDark { ContentToPreview() } + +@Composable +private fun ContentToPreview() { + Divider() +} diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementMediumAppBar.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/MediumTopAppBar.kt similarity index 95% rename from libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementMediumAppBar.kt rename to libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/MediumTopAppBar.kt index 0d3a0a134d..579583757f 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementMediumAppBar.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/MediumTopAppBar.kt @@ -19,7 +19,6 @@ package io.element.android.libraries.designsystem.theme.components import androidx.compose.foundation.layout.RowScope import androidx.compose.foundation.layout.WindowInsets import androidx.compose.material3.ExperimentalMaterial3Api -import androidx.compose.material3.MediumTopAppBar import androidx.compose.material3.TopAppBarColors import androidx.compose.material3.TopAppBarDefaults import androidx.compose.material3.TopAppBarScrollBehavior @@ -29,7 +28,7 @@ import io.element.android.libraries.designsystem.theme.ElementTheme @OptIn(ExperimentalMaterial3Api::class) @Composable -fun ElementMediumAppBar( +fun MediumTopAppBar( title: @Composable () -> Unit, modifier: Modifier = Modifier, navigationIcon: @Composable () -> Unit = {}, @@ -44,7 +43,7 @@ fun ElementMediumAppBar( ), scrollBehavior: TopAppBarScrollBehavior? = null ) { - MediumTopAppBar( + androidx.compose.material3.MediumTopAppBar( title = title, modifier = modifier, navigationIcon = navigationIcon, diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementModalBottomSheetLayout.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ModalBottomSheetLayout.kt similarity index 95% rename from libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementModalBottomSheetLayout.kt rename to libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ModalBottomSheetLayout.kt index c1a5ddc2e7..d3ca206832 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementModalBottomSheetLayout.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ModalBottomSheetLayout.kt @@ -20,7 +20,6 @@ import androidx.compose.foundation.layout.ColumnScope import androidx.compose.material.ExperimentalMaterialApi import androidx.compose.material.MaterialTheme import androidx.compose.material.ModalBottomSheetDefaults -import androidx.compose.material.ModalBottomSheetLayout import androidx.compose.material.ModalBottomSheetState import androidx.compose.material.ModalBottomSheetValue import androidx.compose.material.rememberModalBottomSheetState @@ -29,12 +28,12 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Shape import androidx.compose.ui.unit.Dp -import io.element.android.libraries.designsystem.theme.elementContentColorFor import io.element.android.libraries.designsystem.theme.ElementTheme +import io.element.android.libraries.designsystem.theme.elementContentColorFor @OptIn(ExperimentalMaterialApi::class) @Composable -fun ElementModalBottomSheetLayout( +fun ModalBottomSheetLayout( sheetContent: @Composable ColumnScope.() -> Unit, modifier: Modifier = Modifier, sheetState: ModalBottomSheetState = rememberModalBottomSheetState(ModalBottomSheetValue.Hidden), @@ -45,7 +44,7 @@ fun ElementModalBottomSheetLayout( scrimColor: Color = ElementTheme.colors.onSurfaceVariant.copy(alpha = 0.32f), content: @Composable () -> Unit = {} ) { - ModalBottomSheetLayout( + androidx.compose.material.ModalBottomSheetLayout( sheetContent = sheetContent, modifier = modifier, sheetState = sheetState, diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementOutlinedTextField.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/OutlinedTextField.kt similarity index 82% rename from libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementOutlinedTextField.kt rename to libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/OutlinedTextField.kt index 5e57b85507..fe178bb28d 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementOutlinedTextField.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/OutlinedTextField.kt @@ -39,7 +39,7 @@ import io.element.android.libraries.designsystem.theme.ElementTheme @OptIn(ExperimentalMaterial3Api::class) @Composable -fun ElementOutlinedTextField( +fun OutlinedTextField( value: String, onValueChange: (String) -> Unit, modifier: Modifier = Modifier, @@ -118,22 +118,22 @@ fun ElementOutlinedTextField( @Preview @Composable -fun ElementOutlinedTextFieldsLightPreview() = ElementPreviewLight { ContentToPreview() } +fun OutlinedTextFieldsLightPreview() = ElementPreviewLight { ContentToPreview() } @Preview @Composable -fun ElementOutlinedTextFieldsDarkPreview() = ElementPreviewDark { ContentToPreview() } +fun OutlinedTextFieldsDarkPreview() = ElementPreviewDark { ContentToPreview() } @Composable private fun ContentToPreview() { Column { - ElementOutlinedTextField(onValueChange = {}, value = "Content", isError = false, enabled = true, readOnly = true) - ElementOutlinedTextField(onValueChange = {}, value = "Content", isError = false, enabled = true, readOnly = false) - ElementOutlinedTextField(onValueChange = {}, value = "Content", isError = false, enabled = false, readOnly = true) - ElementOutlinedTextField(onValueChange = {}, value = "Content", isError = false, enabled = false, readOnly = false) - ElementOutlinedTextField(onValueChange = {}, value = "Content", isError = true, enabled = true, readOnly = true) - ElementOutlinedTextField(onValueChange = {}, value = "Content", isError = true, enabled = true, readOnly = false) - ElementOutlinedTextField(onValueChange = {}, value = "Content", isError = true, enabled = false, readOnly = true) - ElementOutlinedTextField(onValueChange = {}, value = "Content", isError = true, enabled = false, readOnly = false) + OutlinedTextField(onValueChange = {}, value = "Content", isError = false, enabled = true, readOnly = true) + OutlinedTextField(onValueChange = {}, value = "Content", isError = false, enabled = true, readOnly = false) + OutlinedTextField(onValueChange = {}, value = "Content", isError = false, enabled = false, readOnly = true) + OutlinedTextField(onValueChange = {}, value = "Content", isError = false, enabled = false, readOnly = false) + OutlinedTextField(onValueChange = {}, value = "Content", isError = true, enabled = true, readOnly = true) + OutlinedTextField(onValueChange = {}, value = "Content", isError = true, enabled = true, readOnly = false) + OutlinedTextField(onValueChange = {}, value = "Content", isError = true, enabled = false, readOnly = true) + OutlinedTextField(onValueChange = {}, value = "Content", isError = true, enabled = false, readOnly = false) } } diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementScaffold.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Scaffold.kt similarity index 99% rename from libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementScaffold.kt rename to libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Scaffold.kt index 7e684e4104..7a1ede6d70 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementScaffold.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Scaffold.kt @@ -24,12 +24,12 @@ import androidx.compose.material3.ScaffoldDefaults import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color -import io.element.android.libraries.designsystem.theme.elementContentColorFor import io.element.android.libraries.designsystem.theme.ElementTheme +import io.element.android.libraries.designsystem.theme.elementContentColorFor @OptIn(ExperimentalMaterial3Api::class) @Composable -fun ElementScaffold( +fun Scaffold( modifier: Modifier = Modifier, topBar: @Composable () -> Unit = {}, bottomBar: @Composable () -> Unit = {}, diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementSlider.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Slider.kt similarity index 89% rename from libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementSlider.kt rename to libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Slider.kt index b0eac3e9eb..87e1757dd7 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementSlider.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Slider.kt @@ -29,7 +29,7 @@ import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.theme.ElementTheme @Composable -fun ElementSlider( +fun Slider( value: Float, onValueChange: (Float) -> Unit, modifier: Modifier = Modifier, @@ -67,16 +67,16 @@ fun ElementSlider( @Preview @Composable -fun ElementSlidersLightPreview() = ElementPreviewLight { ContentToPreview() } +fun SlidersLightPreview() = ElementPreviewLight { ContentToPreview() } @Preview @Composable -fun ElementSlidersDarkPreview() = ElementPreviewDark { ContentToPreview() } +fun SlidersDarkPreview() = ElementPreviewDark { ContentToPreview() } @Composable private fun ContentToPreview() { Column { - ElementSlider(onValueChange = {}, value = 0.33f, enabled = true) - ElementSlider(onValueChange = {}, value = 0.33f, enabled = false) + Slider(onValueChange = {}, value = 0.33f, enabled = true) + Slider(onValueChange = {}, value = 0.33f, enabled = false) } } diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementSurface.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Surface.kt similarity index 98% rename from libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementSurface.kt rename to libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Surface.kt index 7aa61cad5e..0689680972 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementSurface.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Surface.kt @@ -24,11 +24,11 @@ import androidx.compose.ui.graphics.RectangleShape import androidx.compose.ui.graphics.Shape import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp -import io.element.android.libraries.designsystem.theme.elementContentColorFor import io.element.android.libraries.designsystem.theme.ElementTheme +import io.element.android.libraries.designsystem.theme.elementContentColorFor @Composable -fun ElementSurface( +fun Surface( modifier: Modifier = Modifier, shape: Shape = RectangleShape, color: Color = ElementTheme.colors.surfaceVariant, diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementTopAppBar.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/TopAppBar.kt similarity index 98% rename from libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementTopAppBar.kt rename to libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/TopAppBar.kt index 188739c222..3930e2e3c1 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ElementTopAppBar.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/TopAppBar.kt @@ -28,7 +28,7 @@ import io.element.android.libraries.designsystem.theme.ElementTheme @OptIn(ExperimentalMaterial3Api::class) @Composable -fun ElementTopAppBar( +fun TopAppBar( title: @Composable () -> Unit, modifier: Modifier = Modifier, navigationIcon: @Composable () -> Unit = {}, diff --git a/tests/uitests/src/main/kotlin/io/element/android/tests/uitests/ShowkaseButton.kt b/tests/uitests/src/main/kotlin/io/element/android/tests/uitests/ShowkaseButton.kt index 844925b2f2..441a7cbd78 100644 --- a/tests/uitests/src/main/kotlin/io/element/android/tests/uitests/ShowkaseButton.kt +++ b/tests/uitests/src/main/kotlin/io/element/android/tests/uitests/ShowkaseButton.kt @@ -30,7 +30,7 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight -import io.element.android.libraries.designsystem.theme.components.ElementButton +import io.element.android.libraries.designsystem.theme.components.Button 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.Text @@ -43,7 +43,7 @@ fun ShowkaseButton( var isShowkaseButtonVisible by remember { mutableStateOf(BuildConfig.DEBUG) } if (isShowkaseButtonVisible) { - ElementButton( + Button( modifier = modifier .padding(top = 32.dp), onClick = onClick From 1f445506249eaaab33d1b7b0bc039aeb4e89f356 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Thu, 2 Feb 2023 17:33:48 +0100 Subject: [PATCH 16/22] Fix compilation issue --- .../features/messages/actionlist/model/TimelineItemAction.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/features/messages/src/main/kotlin/io/element/android/features/messages/actionlist/model/TimelineItemAction.kt b/features/messages/src/main/kotlin/io/element/android/features/messages/actionlist/model/TimelineItemAction.kt index 88e931408c..ea48797824 100644 --- a/features/messages/src/main/kotlin/io/element/android/features/messages/actionlist/model/TimelineItemAction.kt +++ b/features/messages/src/main/kotlin/io/element/android/features/messages/actionlist/model/TimelineItemAction.kt @@ -18,6 +18,7 @@ package io.element.android.features.messages.actionlist.model import androidx.annotation.DrawableRes import androidx.compose.runtime.Immutable +import io.element.android.libraries.designsystem.VectorIcons @Immutable sealed class TimelineItemAction( From decd3a95852854ccb8de4f67ef6bd1a5aab57a76 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Fri, 3 Feb 2023 10:15:30 +0100 Subject: [PATCH 17/22] ElementTheme + MaterialTheme3 --- .../login/changeserver/ChangeServerView.kt | 12 ++-- .../features/login/root/LoginRootScreen.kt | 7 ++- features/messages/build.gradle.kts | 3 - .../messages/actionlist/ActionListView.kt | 6 +- .../messages/timeline/TimelineView.kt | 9 +-- .../components/TimelineItemImageView.kt | 7 +-- .../components/TimelineItemInformativeView.kt | 6 +- .../components/TimelineItemReactionsView.kt | 8 +-- .../timeline/components/html/HtmlDocument.kt | 38 ++++++------ .../rageshake/bugreport/BugReportView.kt | 6 +- features/roomlist/build.gradle.kts | 3 - .../roomlist/components/RoomListTopBar.kt | 8 +-- .../roomlist/components/RoomSummaryRow.kt | 17 +++--- .../android/features/template/TemplateView.kt | 5 +- libraries/designsystem/build.gradle.kts | 3 - .../libraries/designsystem/ColorUtil.kt | 6 +- .../components/ClickableLinkText.kt | 4 +- .../components/LabelledCheckbox.kt | 4 +- .../designsystem/components/ProgressDialog.kt | 8 +-- .../components/dialogs/ConfirmationDialog.kt | 10 ++-- .../components/dialogs/ErrorDialog.kt | 10 ++-- .../preferences/PreferenceCategory.kt | 6 +- .../components/preferences/PreferenceSlide.kt | 6 +- .../preferences/PreferenceSwitch.kt | 3 +- .../components/preferences/PreferenceText.kt | 6 +- .../designsystem/preview/ElementPreview.kt | 3 +- .../designsystem/theme/ColorAliases.kt | 21 +++++-- .../designsystem/theme/ColorsDark.kt | 15 +---- .../designsystem/theme/ColorsLight.kt | 17 +----- .../designsystem/theme/ContentColor.kt | 40 ------------- .../designsystem/theme/ElementColors.kt | 60 ------------------- .../designsystem/theme/ElementSpaces.kt | 27 --------- .../designsystem/theme/ElementTheme.kt | 47 +++++++-------- .../designsystem/theme/ElementTypography.kt | 15 +---- .../designsystem/theme/components/Button.kt | 49 +++++++-------- .../designsystem/theme/components/Checkbox.kt | 13 +--- .../components/CircularProgressIndicator.kt | 3 +- .../designsystem/theme/components/Divider.kt | 3 +- .../theme/components/MediumTopAppBar.kt | 9 +-- .../components/ModalBottomSheetLayout.kt | 9 ++- .../theme/components/OutlinedTextField.kt | 37 +----------- .../designsystem/theme/components/Scaffold.kt | 8 +-- .../designsystem/theme/components/Slider.kt | 15 +---- .../designsystem/theme/components/Surface.kt | 8 +-- .../theme/components/TextField.kt | 12 +--- .../theme/components/TopAppBar.kt | 9 +-- .../matrix/ui/components/MatrixUserHeader.kt | 6 +- .../matrix/ui/components/MatrixUserRow.kt | 6 +- .../libraries/textcomposer/TextComposer.kt | 4 +- .../kotlin/extension/DependencyHandleScope.kt | 1 + .../android/tests/uitests/ScreenshotTest.kt | 6 +- .../tests/uitests/TypographyTestPreview.kt | 4 +- 52 files changed, 202 insertions(+), 446 deletions(-) delete mode 100644 libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ContentColor.kt delete mode 100644 libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ElementSpaces.kt diff --git a/features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerView.kt b/features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerView.kt index c64b3f0625..32fdeedb1d 100644 --- a/features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerView.kt +++ b/features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerView.kt @@ -31,6 +31,7 @@ import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.text.KeyboardActions import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.foundation.verticalScroll +import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.setValue @@ -50,7 +51,6 @@ import io.element.android.libraries.designsystem.components.VectorIcon 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.ElementTheme 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.OutlinedTextField @@ -86,7 +86,7 @@ fun ChangeServerView( .size(width = 81.dp, height = 73.dp) .align(Alignment.CenterHorizontally) .background( - color = ElementTheme.colors.surfaceVariant, + color = MaterialTheme.colorScheme.surfaceVariant, shape = RoundedCornerShape(32.dp) ) ) { @@ -108,7 +108,7 @@ fun ChangeServerView( textAlign = TextAlign.Center, fontWeight = FontWeight.Bold, fontSize = 24.sp, - color = ElementTheme.colors.primary, + color = MaterialTheme.colorScheme.primary, ) Text( text = "A server is a home for all your data.\n" + @@ -119,7 +119,7 @@ fun ChangeServerView( .padding(top = 16.dp), textAlign = TextAlign.Center, fontSize = 16.sp, - color = ElementTheme.colors.secondary, + color = MaterialTheme.colorScheme.secondary, ) var homeserverFieldState by textFieldState(stateValue = state.homeserver) OutlinedTextField( @@ -150,8 +150,8 @@ fun ChangeServerView( state.homeserver, state.changeServerAction.error ), - color = ElementTheme.colors.error, - style = ElementTheme.typography.bodySmall, + color = MaterialTheme.colorScheme.error, + style = MaterialTheme.typography.bodySmall, modifier = Modifier.padding(start = 16.dp) ) } diff --git a/features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootScreen.kt b/features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootScreen.kt index 3242197ce2..2d5381f99c 100644 --- a/features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootScreen.kt +++ b/features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootScreen.kt @@ -30,6 +30,7 @@ import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Visibility import androidx.compose.material.icons.filled.VisibilityOff +import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf @@ -98,7 +99,7 @@ fun LoginRootScreen( textAlign = TextAlign.Center, fontWeight = FontWeight.Bold, fontSize = 24.sp, - color = ElementTheme.colors.primary, + color = MaterialTheme.colorScheme.primary, ) // Form Column( @@ -189,8 +190,8 @@ fun LoginRootScreen( if (state.loggedInState is LoggedInState.ErrorLoggingIn) { Text( text = loginError(state.formState, state.loggedInState.failure), - color = ElementTheme.colors.error, - style = ElementTheme.typography.bodySmall, + color = MaterialTheme.colorScheme.error, + style = MaterialTheme.typography.bodySmall, modifier = Modifier.padding(start = 16.dp) ) } diff --git a/features/messages/build.gradle.kts b/features/messages/build.gradle.kts index 5931450294..975c7b5c0e 100644 --- a/features/messages/build.gradle.kts +++ b/features/messages/build.gradle.kts @@ -47,7 +47,4 @@ dependencies { testImplementation(libs.test.junit) androidTestImplementation(libs.test.junitext) ksp(libs.showkase.processor) - - // Not for components, but other classes. - implementation("androidx.compose.material3:material3") } diff --git a/features/messages/src/main/kotlin/io/element/android/features/messages/actionlist/ActionListView.kt b/features/messages/src/main/kotlin/io/element/android/features/messages/actionlist/ActionListView.kt index e580b48001..f2fe33f1c7 100644 --- a/features/messages/src/main/kotlin/io/element/android/features/messages/actionlist/ActionListView.kt +++ b/features/messages/src/main/kotlin/io/element/android/features/messages/actionlist/ActionListView.kt @@ -32,6 +32,7 @@ import androidx.compose.material.LocalContentColor import androidx.compose.material.ModalBottomSheetState import androidx.compose.material.ModalBottomSheetValue import androidx.compose.material.Text +import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.rememberCoroutineScope @@ -42,7 +43,6 @@ import androidx.compose.ui.unit.dp import io.element.android.features.messages.actionlist.model.TimelineItemAction import io.element.android.features.messages.timeline.model.TimelineItem import io.element.android.libraries.designsystem.components.VectorIcon -import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.designsystem.theme.components.ModalBottomSheetLayout import kotlinx.coroutines.flow.filter import kotlinx.coroutines.launch @@ -115,13 +115,13 @@ private fun SheetContent( text = { Text( text = action.title, - color = if (action.destructive) ElementTheme.colors.error else Color.Unspecified, + color = if (action.destructive) MaterialTheme.colorScheme.error else Color.Unspecified, ) }, icon = { VectorIcon( resourceId = action.icon, - tint = if (action.destructive) ElementTheme.colors.error else LocalContentColor.current, + tint = if (action.destructive) MaterialTheme.colorScheme.error else LocalContentColor.current, ) } ) diff --git a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/TimelineView.kt b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/TimelineView.kt index 13127271c2..91b9cc6023 100644 --- a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/TimelineView.kt +++ b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/TimelineView.kt @@ -39,6 +39,7 @@ import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.foundation.shape.CircleShape import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.ArrowDownward +import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.derivedStateOf @@ -269,7 +270,7 @@ private fun MessageSenderInformation( } Text( text = sender, - style = ElementTheme.typography.titleMedium, + style = MaterialTheme.typography.titleMedium, modifier = Modifier .alignBy(LastBaseline) ) @@ -328,8 +329,8 @@ internal fun BoxScope.TimelineScrollHelper( modifier = Modifier .align(Alignment.BottomCenter) .size(40.dp), - containerColor = ElementTheme.colors.surfaceVariant, - contentColor = ElementTheme.colors.onSurfaceVariant + containerColor = MaterialTheme.colorScheme.surfaceVariant, + contentColor = MaterialTheme.colorScheme.onSurfaceVariant ) { Icon(Icons.Default.ArrowDownward, "") } @@ -347,7 +348,7 @@ internal fun TimelineLoadingMoreIndicator() { ) { CircularProgressIndicator( strokeWidth = 2.dp, - color = ElementTheme.colors.primary + color = MaterialTheme.colorScheme.primary ) } } diff --git a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/TimelineItemImageView.kt b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/TimelineItemImageView.kt index cce7e21896..e497a52523 100644 --- a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/TimelineItemImageView.kt +++ b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/TimelineItemImageView.kt @@ -14,14 +14,12 @@ * limitations under the License. */ -@file:OptIn(ExperimentalFoundationApi::class) - package io.element.android.features.messages.timeline.components -import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.aspectRatio import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.saveable.rememberSaveable @@ -33,7 +31,6 @@ import androidx.compose.ui.platform.LocalContext import coil.compose.AsyncImage import coil.request.ImageRequest import io.element.android.features.messages.timeline.model.content.TimelineItemImageContent -import io.element.android.libraries.designsystem.theme.ElementTheme @Composable fun TimelineItemImageView( @@ -60,7 +57,7 @@ fun TimelineItemImageView( AsyncImage( model = model, contentDescription = null, - placeholder = ColorPainter(ElementTheme.colors.surfaceVariant), + placeholder = ColorPainter(MaterialTheme.colorScheme.surfaceVariant), contentScale = ContentScale.Crop, onSuccess = { isLoading.value = false }, ) diff --git a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/TimelineItemInformativeView.kt b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/TimelineItemInformativeView.kt index 5ad33a72ad..d7960f2ef9 100644 --- a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/TimelineItemInformativeView.kt +++ b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/TimelineItemInformativeView.kt @@ -22,6 +22,7 @@ import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Delete +import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -32,7 +33,6 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight -import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.designsystem.theme.components.Icon import io.element.android.libraries.designsystem.theme.components.Text @@ -49,14 +49,14 @@ fun TimelineItemInformativeView( ) { Icon( imageVector = icon, - tint = ElementTheme.colors.secondary, + tint = MaterialTheme.colorScheme.secondary, contentDescription = iconDescription, modifier = Modifier.size(16.dp) ) Spacer(modifier = Modifier.width(4.dp)) Text( fontStyle = FontStyle.Italic, - color = ElementTheme.colors.secondary, + color = MaterialTheme.colorScheme.secondary, fontSize = 14.sp, text = text ) diff --git a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/TimelineItemReactionsView.kt b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/TimelineItemReactionsView.kt index 22a9b306f1..50185bdb50 100644 --- a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/TimelineItemReactionsView.kt +++ b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/TimelineItemReactionsView.kt @@ -23,6 +23,7 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width import androidx.compose.foundation.shape.CornerSize import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -31,7 +32,6 @@ import androidx.compose.ui.unit.sp import com.google.accompanist.flowlayout.FlowRow import io.element.android.features.messages.timeline.model.AggregatedReaction import io.element.android.features.messages.timeline.model.TimelineItemReactions -import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.designsystem.theme.components.Surface import io.element.android.libraries.designsystem.theme.components.Text @@ -56,8 +56,8 @@ fun TimelineItemReactionsView( fun MessagesReactionButton(reaction: AggregatedReaction, modifier: Modifier = Modifier) { Surface( modifier = modifier, - color = ElementTheme.colors.surfaceVariant, - border = BorderStroke(2.dp, ElementTheme.colors.background), + color = MaterialTheme.colorScheme.surfaceVariant, + border = BorderStroke(2.dp, MaterialTheme.colorScheme.background), shape = RoundedCornerShape(corner = CornerSize(12.dp)), ) { Row( @@ -66,7 +66,7 @@ fun MessagesReactionButton(reaction: AggregatedReaction, modifier: Modifier = Mo ) { Text(text = reaction.key, fontSize = 12.sp) Spacer(modifier = Modifier.width(4.dp)) - Text(text = reaction.count, color = ElementTheme.colors.secondary, fontSize = 12.sp) + Text(text = reaction.count, color = MaterialTheme.colorScheme.secondary, fontSize = 12.sp) } } } diff --git a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/html/HtmlDocument.kt b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/html/HtmlDocument.kt index a3be7d3bd1..b7e8685656 100644 --- a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/html/HtmlDocument.kt +++ b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/html/HtmlDocument.kt @@ -25,7 +25,9 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.text.InlineTextContent import androidx.compose.foundation.text.appendInlineContent +import androidx.compose.material3.ColorScheme import androidx.compose.material3.LocalTextStyle +import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.draw.drawBehind @@ -45,8 +47,6 @@ import androidx.compose.ui.unit.sp import com.google.accompanist.flowlayout.FlowRow import io.element.android.libraries.designsystem.LinkColor import io.element.android.libraries.designsystem.components.ClickableLinkText -import io.element.android.libraries.designsystem.theme.ElementColors -import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.designsystem.theme.components.Surface import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.matrix.permalink.PermalinkData @@ -214,7 +214,7 @@ private fun HtmlInline( ) { Box(modifier) { val styledText = buildAnnotatedString { - appendInlineElement(element, ElementTheme.colors) + appendInlineElement(element, MaterialTheme.colorScheme) } HtmlText( text = styledText, @@ -232,7 +232,7 @@ private fun HtmlPreformatted( ) { val isCode = pre.firstElementChild()?.normalName() == "code" val backgroundColor = - if (isCode) ElementTheme.colors.codeBackground() else Color.Unspecified + if (isCode) MaterialTheme.colorScheme.codeBackground() else Color.Unspecified Box( modifier .background(color = backgroundColor) @@ -255,7 +255,7 @@ private fun HtmlParagraph( ) { Box(modifier) { val styledText = buildAnnotatedString { - appendInlineChildrenElements(paragraph.childNodes(), ElementTheme.colors) + appendInlineChildrenElements(paragraph.childNodes(), MaterialTheme.colorScheme) } HtmlText( text = styledText, onClick = onTextClicked, @@ -272,7 +272,7 @@ private fun HtmlBlockquote( onTextClicked: () -> Unit = {}, onTextLongClicked: () -> Unit = {}, ) { - val color = ElementTheme.colors.onBackground + val color = MaterialTheme.colorScheme.onBackground Box( modifier = modifier .drawBehind { @@ -287,7 +287,7 @@ private fun HtmlBlockquote( ) { val text = buildAnnotatedString { withStyle(style = SpanStyle(fontStyle = FontStyle.Italic)) { - appendInlineChildrenElements(blockquote.childNodes(), ElementTheme.colors) + appendInlineChildrenElements(blockquote.childNodes(), MaterialTheme.colorScheme) } } HtmlText( @@ -306,19 +306,19 @@ private fun HtmlHeading( onTextLongClicked: () -> Unit = {}, ) { val style = when (heading.normalName()) { - "h1" -> ElementTheme.typography.headlineLarge.copy(fontSize = 30.sp) - "h2" -> ElementTheme.typography.headlineLarge.copy(fontSize = 26.sp) - "h3" -> ElementTheme.typography.headlineMedium.copy(fontSize = 22.sp) - "h4" -> ElementTheme.typography.headlineMedium.copy(fontSize = 18.sp) - "h5" -> ElementTheme.typography.headlineSmall.copy(fontSize = 14.sp) - "h6" -> ElementTheme.typography.headlineSmall.copy(fontSize = 12.sp) + "h1" -> MaterialTheme.typography.headlineLarge.copy(fontSize = 30.sp) + "h2" -> MaterialTheme.typography.headlineLarge.copy(fontSize = 26.sp) + "h3" -> MaterialTheme.typography.headlineMedium.copy(fontSize = 22.sp) + "h4" -> MaterialTheme.typography.headlineMedium.copy(fontSize = 18.sp) + "h5" -> MaterialTheme.typography.headlineSmall.copy(fontSize = 14.sp) + "h6" -> MaterialTheme.typography.headlineSmall.copy(fontSize = 12.sp) else -> { return } } Box(modifier) { val text = buildAnnotatedString { - appendInlineChildrenElements(heading.childNodes(), ElementTheme.colors) + appendInlineChildrenElements(heading.childNodes(), MaterialTheme.colorScheme) } HtmlText( text = text, @@ -344,7 +344,7 @@ private fun HtmlMxReply( modifier = modifier .padding(bottom = 4.dp) .offset(x = -(8.dp)), - color = ElementTheme.colors.background, + color = MaterialTheme.colorScheme.background, shape = shape, ) { val text = buildAnnotatedString { @@ -354,7 +354,7 @@ private fun HtmlMxReply( withStyle( style = SpanStyle( fontSize = 12.sp, - color = ElementTheme.colors.secondary + color = MaterialTheme.colorScheme.secondary ) ) { append(blockquoteNode.text()) @@ -462,13 +462,13 @@ private fun HtmlListItems( } } -private fun ElementColors.codeBackground(): Color { +private fun ColorScheme.codeBackground(): Color { return background.copy(alpha = 0.3f) } private fun AnnotatedString.Builder.appendInlineChildrenElements( childNodes: List, - colors: ElementColors + colors: ColorScheme ) { for (node in childNodes) { when (node) { @@ -482,7 +482,7 @@ private fun AnnotatedString.Builder.appendInlineChildrenElements( } } -private fun AnnotatedString.Builder.appendInlineElement(element: Element, colors: ElementColors) { +private fun AnnotatedString.Builder.appendInlineElement(element: Element, colors: ColorScheme) { when (element.normalName()) { "br" -> { append('\n') diff --git a/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/bugreport/BugReportView.kt b/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/bugreport/BugReportView.kt index 0cd9ff0334..f2fbd7f8f5 100644 --- a/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/bugreport/BugReportView.kt +++ b/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/bugreport/BugReportView.kt @@ -26,6 +26,7 @@ import androidx.compose.foundation.layout.systemBarsPadding import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.foundation.verticalScroll +import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue @@ -49,7 +50,6 @@ 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.ElementTheme 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.OutlinedTextField @@ -97,7 +97,7 @@ fun BugReportView( textAlign = TextAlign.Center, fontWeight = FontWeight.Bold, fontSize = 24.sp, - color = ElementTheme.colors.primary, + color = MaterialTheme.colorScheme.primary, ) // Form Text( @@ -106,7 +106,7 @@ fun BugReportView( .fillMaxWidth() .padding(horizontal = 16.dp, vertical = 16.dp), fontSize = 16.sp, - color = ElementTheme.colors.primary, + color = MaterialTheme.colorScheme.primary, ) var descriptionFieldState by textFieldState( stateValue = state.formState.description diff --git a/features/roomlist/build.gradle.kts b/features/roomlist/build.gradle.kts index 08b043a17f..fc0402eafc 100644 --- a/features/roomlist/build.gradle.kts +++ b/features/roomlist/build.gradle.kts @@ -54,7 +54,4 @@ dependencies { androidTestImplementation(libs.test.junitext) ksp(libs.showkase.processor) - - // Not for components, but other classes. - implementation("androidx.compose.material3:material3") } diff --git a/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/components/RoomListTopBar.kt b/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/components/RoomListTopBar.kt index 70b4d974c7..f622164af9 100644 --- a/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/components/RoomListTopBar.kt +++ b/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/components/RoomListTopBar.kt @@ -27,6 +27,7 @@ import androidx.compose.material.icons.filled.Close import androidx.compose.material.icons.filled.Search import androidx.compose.material.icons.filled.Settings import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.MaterialTheme import androidx.compose.material3.TopAppBarScrollBehavior import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect @@ -45,7 +46,6 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.sp import io.element.android.libraries.designsystem.components.avatar.Avatar import io.element.android.libraries.designsystem.components.form.textFieldState -import io.element.android.libraries.designsystem.theme.ElementTheme 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.MediumTopAppBar @@ -130,7 +130,7 @@ fun SearchRoomListTopBar( placeholder = { Text( text = "Search", - color = ElementTheme.colors.onBackground.copy(alpha = ContentAlpha.medium) + color = MaterialTheme.colorScheme.onBackground.copy(alpha = ContentAlpha.medium) ) }, singleLine = true, @@ -144,7 +144,7 @@ fun SearchRoomListTopBar( Icon( imageVector = Icons.Default.Close, contentDescription = "clear", - tint = ElementTheme.colors.onBackground + tint = MaterialTheme.colorScheme.onBackground ) } } @@ -160,7 +160,7 @@ fun SearchRoomListTopBar( Icon( imageVector = Icons.Default.ArrowBack, contentDescription = "close", - tint = ElementTheme.colors.onBackground + tint = MaterialTheme.colorScheme.onBackground ) } }, diff --git a/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/components/RoomSummaryRow.kt b/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/components/RoomSummaryRow.kt index 580d0ebc4b..53ca8b5d1f 100644 --- a/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/components/RoomSummaryRow.kt +++ b/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/components/RoomSummaryRow.kt @@ -31,6 +31,7 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.shape.CircleShape import androidx.compose.material.ripple.rememberRipple +import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.runtime.remember import androidx.compose.ui.Alignment @@ -103,7 +104,7 @@ internal fun DefaultRoomSummaryRow( modifier = Modifier.placeholder( visible = room.isPlaceholder, shape = CircleShape, - color = ElementTheme.colors.roomListPlaceHolder, + color = ElementTheme.colors.roomListPlaceHolder(), ) ) Column( @@ -117,12 +118,12 @@ internal fun DefaultRoomSummaryRow( modifier = Modifier.placeholder( visible = room.isPlaceholder, shape = TextPlaceholderShape, - color = ElementTheme.colors.roomListPlaceHolder, + color = ElementTheme.colors.roomListPlaceHolder(), ), fontSize = 16.sp, fontWeight = FontWeight.SemiBold, text = room.name, - color = ElementTheme.colors.roomListRoomName, + color = MaterialTheme.roomListRoomName(), maxLines = 1, overflow = TextOverflow.Ellipsis ) @@ -131,10 +132,10 @@ internal fun DefaultRoomSummaryRow( modifier = Modifier.placeholder( visible = room.isPlaceholder, shape = TextPlaceholderShape, - color = ElementTheme.colors.roomListPlaceHolder, + color = ElementTheme.colors.roomListPlaceHolder(), ), text = room.lastMessage?.toString().orEmpty(), - color = ElementTheme.colors.roomListRoomMessage, + color = MaterialTheme.roomListRoomMessage(), fontSize = 14.sp, maxLines = 1, overflow = TextOverflow.Ellipsis @@ -149,15 +150,15 @@ internal fun DefaultRoomSummaryRow( modifier = Modifier.placeholder( visible = room.isPlaceholder, shape = TextPlaceholderShape, - color = ElementTheme.colors.roomListPlaceHolder, + color = ElementTheme.colors.roomListPlaceHolder(), ), fontSize = 12.sp, text = room.timestamp ?: "", - color = ElementTheme.colors.roomListRoomMessageDate, + color = MaterialTheme.roomListRoomMessageDate(), ) Spacer(Modifier.size(4.dp)) val unreadIndicatorColor = - if (room.hasUnread) ElementTheme.colors.roomListUnreadIndicator else Color.Transparent + if (room.hasUnread) MaterialTheme.roomListUnreadIndicator() else Color.Transparent Box( modifier = Modifier .size(12.dp) diff --git a/features/template/src/main/kotlin/io/element/android/features/template/TemplateView.kt b/features/template/src/main/kotlin/io/element/android/features/template/TemplateView.kt index a98912d958..8069b3a991 100644 --- a/features/template/src/main/kotlin/io/element/android/features/template/TemplateView.kt +++ b/features/template/src/main/kotlin/io/element/android/features/template/TemplateView.kt @@ -17,13 +17,14 @@ package io.element.android.features.template import androidx.compose.foundation.layout.Box +import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.tooling.preview.Preview import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight -import io.element.android.libraries.designsystem.theme.ElementTheme +import io.element.android.libraries.designsystem.theme.components.Text @Composable fun TemplateView( @@ -33,7 +34,7 @@ fun TemplateView( Box(modifier, contentAlignment = Alignment.Center) { Text( "Template feature view", - color = ElementTheme.colors.primary, + color = MaterialTheme.colorScheme.primary, ) } } diff --git a/libraries/designsystem/build.gradle.kts b/libraries/designsystem/build.gradle.kts index 10e51c8aec..45430e5d82 100644 --- a/libraries/designsystem/build.gradle.kts +++ b/libraries/designsystem/build.gradle.kts @@ -31,8 +31,5 @@ android { implementation(projects.libraries.elementresources) implementation(projects.libraries.uiStrings) ksp(libs.showkase.processor) - - // This is the only module to have a (temporary) dependence to material3. - implementation("androidx.compose.material3:material3") } } diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/ColorUtil.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/ColorUtil.kt index f6a0122a80..469c70913a 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/ColorUtil.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/ColorUtil.kt @@ -16,15 +16,15 @@ package io.element.android.libraries.designsystem +import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.graphics.Color -import io.element.android.libraries.designsystem.theme.ElementTheme @Composable fun Boolean.toEnabledColor(): Color { return if (this) { - ElementTheme.colors.primary + MaterialTheme.colorScheme.primary } else { - ElementTheme.colors.primary.copy(alpha = 0.40f) + MaterialTheme.colorScheme.primary.copy(alpha = 0.40f) } } diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ClickableLinkText.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ClickableLinkText.kt index a8a5b94ff4..54a8be0334 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ClickableLinkText.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ClickableLinkText.kt @@ -21,6 +21,7 @@ import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.interaction.PressInteraction import androidx.compose.foundation.text.InlineTextContent import androidx.compose.material3.LocalTextStyle +import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember @@ -31,7 +32,6 @@ import androidx.compose.ui.platform.LocalUriHandler import androidx.compose.ui.text.AnnotatedString import androidx.compose.ui.text.TextLayoutResult import androidx.compose.ui.text.TextStyle -import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.designsystem.theme.components.Text import kotlinx.collections.immutable.ImmutableMap import kotlinx.collections.immutable.persistentMapOf @@ -85,6 +85,6 @@ fun ClickableLinkText( layoutResult.value = it }, inlineContent = inlineContent, - color = ElementTheme.colors.primary, + color = MaterialTheme.colorScheme.primary, ) } diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/LabelledCheckbox.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/LabelledCheckbox.kt index cd381af63b..698d2fb6ee 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/LabelledCheckbox.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/LabelledCheckbox.kt @@ -18,13 +18,13 @@ package io.element.android.libraries.designsystem.components import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.tooling.preview.Preview import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight -import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.designsystem.theme.components.Checkbox import io.element.android.libraries.designsystem.theme.components.Text @@ -47,7 +47,7 @@ fun LabelledCheckbox( ) Text( text = text, - color = ElementTheme.colors.primary, + color = MaterialTheme.colorScheme.primary, ) } } diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ProgressDialog.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ProgressDialog.kt index 6f8ec96118..5028bcc030 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ProgressDialog.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ProgressDialog.kt @@ -22,6 +22,7 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -31,7 +32,6 @@ import androidx.compose.ui.window.Dialog import androidx.compose.ui.window.DialogProperties import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight -import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.designsystem.theme.components.CircularProgressIndicator import io.element.android.libraries.designsystem.theme.components.Text @@ -50,19 +50,19 @@ fun ProgressDialog( modifier = modifier .fillMaxWidth() .background( - color = ElementTheme.colors.surfaceVariant, + color = MaterialTheme.colorScheme.surfaceVariant, shape = RoundedCornerShape(8.dp) ) ) { Column(horizontalAlignment = Alignment.CenterHorizontally) { CircularProgressIndicator( modifier = Modifier.padding(16.dp), - color = ElementTheme.colors.onSurfaceVariant + color = MaterialTheme.colorScheme.onSurfaceVariant ) if (!text.isNullOrBlank()) { Text( text = text, - color = ElementTheme.colors.onSurfaceVariant, + color = MaterialTheme.colorScheme.onSurfaceVariant, modifier = Modifier.padding(16.dp) ) } diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/dialogs/ConfirmationDialog.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/dialogs/ConfirmationDialog.kt index b4b910ac3b..aee26ba7f2 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/dialogs/ConfirmationDialog.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/dialogs/ConfirmationDialog.kt @@ -23,6 +23,7 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.material3.AlertDialog import androidx.compose.material3.AlertDialogDefaults +import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color @@ -33,7 +34,6 @@ import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight -import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.designsystem.theme.components.Button import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.ui.strings.R as StringR @@ -51,10 +51,10 @@ fun ConfirmationDialog( onThirdButtonClicked: () -> Unit = {}, onDismiss: () -> Unit = {}, shape: Shape = AlertDialogDefaults.shape, - containerColor: Color = ElementTheme.colors.surfaceVariant, - iconContentColor: Color = ElementTheme.colors.onSurfaceVariant, - titleContentColor: Color = ElementTheme.colors.onSurfaceVariant, - textContentColor: Color = ElementTheme.colors.onSurfaceVariant, + containerColor: Color = MaterialTheme.colorScheme.surfaceVariant, + iconContentColor: Color = MaterialTheme.colorScheme.onSurfaceVariant, + titleContentColor: Color = MaterialTheme.colorScheme.onSurfaceVariant, + textContentColor: Color = MaterialTheme.colorScheme.onSurfaceVariant, tonalElevation: Dp = AlertDialogDefaults.TonalElevation, ) { AlertDialog( diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/dialogs/ErrorDialog.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/dialogs/ErrorDialog.kt index b9740c2074..fc4aefe6f1 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/dialogs/ErrorDialog.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/dialogs/ErrorDialog.kt @@ -22,6 +22,7 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.material3.AlertDialog import androidx.compose.material3.AlertDialogDefaults +import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color @@ -32,7 +33,6 @@ import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight -import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.designsystem.theme.components.Button import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.ui.strings.R as StringR @@ -45,10 +45,10 @@ fun ErrorDialog( submitText: String = stringResource(id = StringR.string.ok), onDismiss: () -> Unit = {}, shape: Shape = AlertDialogDefaults.shape, - containerColor: Color = ElementTheme.colors.surfaceVariant, - iconContentColor: Color = ElementTheme.colors.onSurfaceVariant, - titleContentColor: Color = ElementTheme.colors.onSurfaceVariant, - textContentColor: Color = ElementTheme.colors.onSurfaceVariant, + containerColor: Color = MaterialTheme.colorScheme.surfaceVariant, + iconContentColor: Color = MaterialTheme.colorScheme.onSurfaceVariant, + titleContentColor: Color = MaterialTheme.colorScheme.onSurfaceVariant, + textContentColor: Color = MaterialTheme.colorScheme.onSurfaceVariant, tonalElevation: Dp = AlertDialogDefaults.TonalElevation, ) { AlertDialog( diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceCategory.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceCategory.kt index 7206fb1081..eeed206e5f 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceCategory.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceCategory.kt @@ -23,13 +23,13 @@ import androidx.compose.foundation.layout.padding import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Announcement import androidx.compose.material.icons.filled.BugReport +import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight -import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.designsystem.theme.components.Divider import io.element.android.libraries.designsystem.theme.components.Text @@ -45,12 +45,12 @@ fun PreferenceCategory( ) { Divider( modifier = Modifier.padding(horizontal = 16.dp), - color = ElementTheme.colors.secondary, + color = MaterialTheme.colorScheme.secondary, thickness = 1.dp ) Text( modifier = Modifier.padding(top = 8.dp, start = 56.dp), - style = ElementTheme.typography.titleSmall, + style = MaterialTheme.typography.titleSmall, text = title ) content() diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSlide.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSlide.kt index 315f7caeab..c16eaab45b 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSlide.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSlide.kt @@ -23,6 +23,7 @@ import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.defaultMinSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding +import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -31,7 +32,6 @@ import androidx.compose.ui.tooling.preview.Preview import io.element.android.libraries.designsystem.components.preferences.components.PreferenceIcon import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight -import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.designsystem.theme.components.Slider import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.designsystem.toEnabledColor @@ -63,14 +63,14 @@ fun PreferenceSlide( ) { Text( modifier = Modifier.fillMaxWidth(), - style = ElementTheme.typography.bodyLarge, + style = MaterialTheme.typography.bodyLarge, color = enabled.toEnabledColor(), text = title ) summary?.let { Text( modifier = Modifier.fillMaxWidth(), - style = ElementTheme.typography.bodyMedium, + style = MaterialTheme.typography.bodyMedium, color = enabled.toEnabledColor(), text = summary ) diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSwitch.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSwitch.kt index 629148c071..7a4177a5ae 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSwitch.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSwitch.kt @@ -24,6 +24,7 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Announcement +import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -63,7 +64,7 @@ fun PreferenceSwitch( ) Text( modifier = Modifier.weight(1f), - style = ElementTheme.typography.bodyLarge, + style = MaterialTheme.typography.bodyLarge, color = enabled.toEnabledColor(), text = title ) diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceText.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceText.kt index b7b7662045..1c10d6259a 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceText.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceText.kt @@ -24,6 +24,7 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.BugReport +import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -32,7 +33,6 @@ import androidx.compose.ui.tooling.preview.Preview import io.element.android.libraries.designsystem.components.preferences.components.PreferenceIcon import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight -import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.designsystem.theme.components.Text @Composable @@ -58,9 +58,9 @@ fun PreferenceText( modifier = Modifier .weight(1f) .padding(end = preferencePaddingEnd), - style = ElementTheme.typography.bodyLarge, + style = MaterialTheme.typography.bodyLarge, text = title, - color = ElementTheme.colors.primary, + color = MaterialTheme.colorScheme.primary, ) } } diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/preview/ElementPreview.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/preview/ElementPreview.kt index 7a286f5314..f79cfed70b 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/preview/ElementPreview.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/preview/ElementPreview.kt @@ -18,6 +18,7 @@ package io.element.android.libraries.designsystem.preview import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box +import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import io.element.android.libraries.designsystem.theme.ElementTheme @@ -54,7 +55,7 @@ private fun ElementPreview( ) { ElementTheme(darkTheme = darkTheme) { if (showBackground) { - Box(modifier = Modifier.background(ElementTheme.colors.background)) { + Box(modifier = Modifier.background(MaterialTheme.colorScheme.background)) { content() } } else { diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ColorAliases.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ColorAliases.kt index 1325211232..33c4032dc9 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ColorAliases.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ColorAliases.kt @@ -16,14 +16,25 @@ package io.element.android.libraries.designsystem.theme +import androidx.compose.material3.MaterialTheme +import androidx.compose.runtime.Composable import io.element.android.libraries.designsystem.SystemGrey4Dark import io.element.android.libraries.designsystem.SystemGrey6Light /** * Room list */ -val ElementColors.roomListRoomName get() = primary -val ElementColors.roomListRoomMessage get() = secondary -val ElementColors.roomListRoomMessageDate get() = secondary -val ElementColors.roomListUnreadIndicator get() = primary -val ElementColors.roomListPlaceHolder get() = if (isLight) SystemGrey6Light else SystemGrey4Dark +@Composable +fun MaterialTheme.roomListRoomName() = colorScheme.primary + +@Composable +fun MaterialTheme.roomListRoomMessage() = colorScheme.secondary + +@Composable +fun MaterialTheme.roomListRoomMessageDate() = colorScheme.secondary + +@Composable +fun MaterialTheme.roomListUnreadIndicator() = colorScheme.primary + +@Composable +fun ElementColors.roomListPlaceHolder() = if (isLight) SystemGrey6Light else SystemGrey4Dark diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ColorsDark.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ColorsDark.kt index 19c7c2f49a..80b6122ba5 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ColorsDark.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ColorsDark.kt @@ -16,6 +16,7 @@ package io.element.android.libraries.designsystem.theme +import androidx.compose.material3.darkColorScheme import androidx.compose.ui.graphics.Color import io.element.android.libraries.designsystem.Azure import io.element.android.libraries.designsystem.DarkGrey @@ -23,24 +24,13 @@ import io.element.android.libraries.designsystem.SystemGrey5Dark import io.element.android.libraries.designsystem.SystemGrey6Dark fun elementColorsDark() = ElementColors( - primary = Color.White, - onPrimary = Color.Black, - secondary = DarkGrey, - text = Color.White, - background = Color.Black, - onBackground = Color.White, - surfaceVariant = SystemGrey5Dark, - onSurfaceVariant = Color.White, messageFromMeBackground = SystemGrey5Dark, messageFromOtherBackground = SystemGrey6Dark, messageHighlightedBackground = Azure, - success = Color.Green, - error = Color.Red, isLight = false, ) -/* -private val DarkColorScheme = darkColorScheme( +val materialColorSchemeDark = darkColorScheme( primary = Color.White, secondary = DarkGrey, tertiary = Color.White, @@ -50,4 +40,3 @@ private val DarkColorScheme = darkColorScheme( surfaceVariant = SystemGrey5Dark, onSurface = Color.White, ) - */ diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ColorsLight.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ColorsLight.kt index 6d7c7f62ea..8e8e41c9d6 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ColorsLight.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ColorsLight.kt @@ -16,6 +16,7 @@ package io.element.android.libraries.designsystem.theme +import androidx.compose.material3.lightColorScheme import androidx.compose.ui.graphics.Color import io.element.android.libraries.designsystem.Azure import io.element.android.libraries.designsystem.LightGrey @@ -23,24 +24,13 @@ import io.element.android.libraries.designsystem.SystemGrey5Light import io.element.android.libraries.designsystem.SystemGrey6Light fun elementColorsLight() = ElementColors( - primary = Color.Black, - onPrimary = Color.White, - secondary = LightGrey, - text = Color.Black, - background = Color.White, - onBackground = Color.Black, - surfaceVariant = SystemGrey5Light, - onSurfaceVariant = Color.Black, messageFromMeBackground = SystemGrey5Light, messageFromOtherBackground = SystemGrey6Light, messageHighlightedBackground = Azure, - success = Color.Green, - error = Color.Red, isLight = true, ) -/* -private val LightColorScheme = lightColorScheme( +val materialColorSchemeLight = lightColorScheme( primary = Color.Black, secondary = LightGrey, tertiary = Color.Black, @@ -50,5 +40,4 @@ private val LightColorScheme = lightColorScheme( surfaceVariant = SystemGrey5Light, onSurface = Color.Black, onSurfaceVariant = Color.Black, - - */ +) diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ContentColor.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ContentColor.kt deleted file mode 100644 index 1af916a109..0000000000 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ContentColor.kt +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (c) 2023 New Vector Ltd - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package io.element.android.libraries.designsystem.theme - -import androidx.compose.material3.LocalContentColor -import androidx.compose.runtime.Composable -import androidx.compose.runtime.ReadOnlyComposable -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.graphics.takeOrElse - -@Composable -@ReadOnlyComposable -fun elementContentColorFor(backgroundColor: Color): Color { - return ElementTheme.colors.elementContentColorFor(backgroundColor).takeOrElse { - LocalContentColor.current - } -} - -fun ElementColors.elementContentColorFor(backgroundColor: Color): Color { - return when (backgroundColor) { - primary -> onPrimary - surfaceVariant -> onSurfaceVariant - background -> onBackground - else -> Color.Unspecified - } -} diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ElementColors.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ElementColors.kt index 38da8e7816..b39c31d157 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ElementColors.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ElementColors.kt @@ -22,41 +22,11 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.graphics.Color class ElementColors( - primary: Color, - onPrimary: Color, - secondary: Color, - text: Color, - background: Color, - onBackground: Color, - surfaceVariant: Color, - onSurfaceVariant: Color, messageFromMeBackground: Color, messageFromOtherBackground: Color, messageHighlightedBackground: Color, - success: Color, - error: Color, isLight: Boolean, ) { - var primary by mutableStateOf(primary) - private set - var onPrimary by mutableStateOf(onPrimary) - private set - var secondary by mutableStateOf(secondary) - private set - var text by mutableStateOf(text) - private set - var success by mutableStateOf(success) - private set - var error by mutableStateOf(error) - private set - var background by mutableStateOf(background) - private set - var onBackground by mutableStateOf(onBackground) - private set - var surfaceVariant by mutableStateOf(surfaceVariant) - private set - var onSurfaceVariant by mutableStateOf(onSurfaceVariant) - private set var messageFromMeBackground by mutableStateOf(messageFromMeBackground) private set var messageFromOtherBackground by mutableStateOf(messageFromOtherBackground) @@ -68,51 +38,21 @@ class ElementColors( private set fun copy( - primary: Color = this.primary, - onPrimary: Color = this.onPrimary, - secondary: Color = this.secondary, - text: Color = this.text, - background: Color = this.background, - onBackground: Color = this.onBackground, - surfaceVariant: Color = this.surfaceVariant, - onSurfaceVariant: Color = this.onSurfaceVariant, messageFromMeBackground: Color = this.messageFromMeBackground, messageFromOtherBackground: Color = this.messageFromOtherBackground, messageHighlightedBackground: Color = this.messageHighlightedBackground, - success: Color = this.success, - error: Color = this.error, isLight: Boolean = this.isLight, ) = ElementColors( - primary = primary, - onPrimary = onPrimary, - secondary = secondary, - text = text, - background = background, - onBackground = onBackground, - surfaceVariant = surfaceVariant, - onSurfaceVariant = onSurfaceVariant, messageFromMeBackground = messageFromMeBackground, messageFromOtherBackground = messageFromOtherBackground, messageHighlightedBackground = messageHighlightedBackground, - success = success, - error = error, isLight = isLight, ) fun updateColorsFrom(other: ElementColors) { - primary = other.primary - onPrimary = other.onPrimary - secondary = other.secondary - text = other.text - success = other.success - background = other.background - onBackground = other.onBackground - surfaceVariant = other.surfaceVariant - onSurfaceVariant = other.onSurfaceVariant messageFromMeBackground = other.messageFromMeBackground messageFromOtherBackground = other.messageFromOtherBackground messageHighlightedBackground = other.messageHighlightedBackground - error = other.error isLight = other.isLight } } diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ElementSpaces.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ElementSpaces.kt deleted file mode 100644 index e5f2236cf0..0000000000 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ElementSpaces.kt +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (c) 2023 New Vector Ltd - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package io.element.android.libraries.designsystem.theme - -import androidx.compose.ui.unit.Dp -import androidx.compose.ui.unit.dp - -data class ElementSpaces( - val small: Dp = 4.dp, - val medium: Dp = 8.dp, - val large: Dp = 16.dp, - val extraLarge: Dp = 40.dp, -) diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ElementTheme.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ElementTheme.kt index 5281888b17..7e7d4d8caf 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ElementTheme.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ElementTheme.kt @@ -17,7 +17,8 @@ package io.element.android.libraries.designsystem.theme import androidx.compose.foundation.isSystemInDarkTheme -import androidx.compose.material.ProvideTextStyle +import androidx.compose.material3.ColorScheme +import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.ReadOnlyComposable @@ -35,50 +36,42 @@ object ElementTheme { @Composable @ReadOnlyComposable get() = LocalColors.current - - val typography: ElementTypography - @Composable - @ReadOnlyComposable - get() = LocalTypography.current - - val spaces: ElementSpaces - @Composable - @ReadOnlyComposable - get() = LocalSpaces.current } /* Global variables (application level) */ -val LocalSpaces = staticCompositionLocalOf { ElementSpaces() } val LocalColors = staticCompositionLocalOf { elementColorsLight() } -val LocalTypography = staticCompositionLocalOf { ElementTypography() } @Composable fun ElementTheme( darkTheme: Boolean = isSystemInDarkTheme(), lightColors: ElementColors = elementColorsLight(), darkColors: ElementColors = elementColorsDark(), - typography: ElementTypography = ElementTheme.typography, - spaces: ElementSpaces = ElementTheme.spaces, + materialLightColors: ColorScheme = materialColorSchemeLight, + materialDarkColors: ColorScheme = materialColorSchemeDark, content: @Composable () -> Unit, ) { val systemUiController = rememberSystemUiController() val useDarkIcons = !darkTheme val currentColor = remember { if (darkTheme) darkColors else lightColors } - SideEffect { - systemUiController.setStatusBarColor( - color = currentColor.background - ) - systemUiController.setSystemBarsColor( - color = Color.Transparent, - darkIcons = useDarkIcons - ) - } val rememberedColors = remember { currentColor.copy() }.apply { updateColorsFrom(currentColor) } CompositionLocalProvider( LocalColors provides rememberedColors, - LocalSpaces provides spaces, - LocalTypography provides typography, ) { - ProvideTextStyle(typography.body1, content = content) + MaterialTheme( + colorScheme = if (darkTheme) materialDarkColors else materialLightColors + ) { + val bgColor = MaterialTheme.colorScheme.background + SideEffect { + systemUiController.setStatusBarColor( + color = bgColor + ) + systemUiController.setSystemBarsColor( + color = Color.Transparent, + darkIcons = useDarkIcons + ) + } + + content() + } } } diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ElementTypography.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ElementTypography.kt index 57d0beaa36..b2159522c8 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ElementTypography.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ElementTypography.kt @@ -22,6 +22,9 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.sp import com.airbnb.android.showkase.annotation.ShowkaseTypography +/** + * TODO Provide the typo to Material3 theme. + */ @ShowkaseTypography(name = "H1", group = "Element") val h1Default: TextStyle = TextStyle( fontFamily = FontFamily.SansSerif, @@ -104,15 +107,3 @@ val titleMediumDefault: TextStyle = TextStyle( letterSpacing = 0.5.sp ) -data class ElementTypography( - val h1: TextStyle = h1Default, - val body1: TextStyle = body1Default, - val bodySmall: TextStyle = bodySmallDefault, - val bodyMedium: TextStyle = bodyMediumDefault, - val bodyLarge: TextStyle = bodyLargeDefault, - val headlineSmall: TextStyle = headlineSmallDefault, - val headlineMedium: TextStyle = headlineMediumDefault, - val headlineLarge: TextStyle = headlineLargeDefault, - val titleSmall: TextStyle = titleSmallDefault, - val titleMedium: TextStyle = titleMediumDefault, -) diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Button.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Button.kt index cb49ebdcd7..d20e5f9651 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Button.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Button.kt @@ -16,55 +16,46 @@ package io.element.android.libraries.designsystem.theme.components +import androidx.compose.foundation.BorderStroke +import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.RowScope -import androidx.compose.material.ContentAlpha -import androidx.compose.material.ProvideTextStyle +import androidx.compose.material3.ButtonColors import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.ButtonElevation import androidx.compose.runtime.Composable +import androidx.compose.runtime.remember import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.graphics.compositeOver +import androidx.compose.ui.graphics.Shape import androidx.compose.ui.tooling.preview.Preview import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight -import io.element.android.libraries.designsystem.theme.ElementTheme -import io.element.android.libraries.designsystem.theme.elementContentColorFor @Composable fun Button( onClick: () -> Unit, modifier: Modifier = Modifier, enabled: Boolean = true, - containerColor: Color = ElementTheme.colors.primary, + shape: Shape = ButtonDefaults.shape, + colors: ButtonColors = ButtonDefaults.buttonColors(), + elevation: ButtonElevation? = ButtonDefaults.buttonElevation(), + border: BorderStroke? = null, + contentPadding: PaddingValues = ButtonDefaults.ContentPadding, + interactionSource: MutableInteractionSource = remember { MutableInteractionSource() }, content: @Composable RowScope.() -> Unit ) { androidx.compose.material3.Button( - colors = ButtonDefaults.buttonColors( - containerColor = containerColor, - contentColor = elementContentColorFor(backgroundColor = containerColor), - disabledContainerColor = containerColor - .copy(alpha = 0.12f) - .compositeOver(containerColor), - disabledContentColor = elementContentColorFor(backgroundColor = containerColor) - .copy(alpha = ContentAlpha.disabled) - ), - // TODO shape = ButtonShape, - // TODO elevation = ButtonDefaults.elevation( - // defaultElevation = ElementTheme.elevation.default, - // pressedElevation = ElementTheme.elevation.pressed - // /* disabledElevation = 0.dp */ - // ), onClick = onClick, modifier = modifier, enabled = enabled, - content = { - ProvideTextStyle( - value = ElementTheme.typography.body1 - ) { - content() - } - } + shape = shape, + colors = colors, + elevation = elevation, + border = border, + contentPadding = contentPadding, + interactionSource = interactionSource, + content = content, ) } diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Checkbox.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Checkbox.kt index 25b1637ac8..2c8a7411fb 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Checkbox.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Checkbox.kt @@ -23,11 +23,9 @@ import androidx.compose.material3.CheckboxDefaults import androidx.compose.runtime.Composable import androidx.compose.runtime.remember import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color import androidx.compose.ui.tooling.preview.Preview import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight -import io.element.android.libraries.designsystem.theme.ElementTheme @Composable fun Checkbox( @@ -35,16 +33,7 @@ fun Checkbox( onCheckedChange: ((Boolean) -> Unit)?, modifier: Modifier = Modifier, enabled: Boolean = true, - colors: CheckboxColors = CheckboxDefaults.colors( - checkedColor = ElementTheme.colors.primary, - uncheckedColor = Color.Gray, // TODO ElementTheme.colors. - checkmarkColor = Color.Gray, // TODO ElementTheme.colors. - disabledCheckedColor = Color.Gray // TODO ElementTheme.colors. - .copy(alpha = 0.2F), - disabledUncheckedColor = Color.Gray // TODO ElementTheme.colors. - .copy(alpha = 0.2F), - disabledIndeterminateColor = Color.Gray // TODO ElementTheme.colors. - ), + colors: CheckboxColors = CheckboxDefaults.colors(), interactionSource: MutableInteractionSource = remember { MutableInteractionSource() } ) { androidx.compose.material3.Checkbox( diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/CircularProgressIndicator.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/CircularProgressIndicator.kt index 38eb970828..00a0f8c0de 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/CircularProgressIndicator.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/CircularProgressIndicator.kt @@ -21,7 +21,6 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.unit.Dp -import io.element.android.libraries.designsystem.theme.ElementTheme @Composable fun CircularProgressIndicator( @@ -41,7 +40,7 @@ fun CircularProgressIndicator( @Composable fun CircularProgressIndicator( modifier: Modifier = Modifier, - color: Color = ElementTheme.colors.primary, + color: Color = ProgressIndicatorDefaults.circularColor, strokeWidth: Dp = ProgressIndicatorDefaults.CircularStrokeWidth, ) { androidx.compose.material3.CircularProgressIndicator( diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Divider.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Divider.kt index 832f3b89d4..f15b81129e 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Divider.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Divider.kt @@ -24,13 +24,12 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Dp import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight -import io.element.android.libraries.designsystem.theme.ElementTheme @Composable fun Divider( modifier: Modifier = Modifier, thickness: Dp = DividerDefaults.Thickness, - color: Color = ElementTheme.colors.onBackground, + color: Color = DividerDefaults.color, ) { androidx.compose.material3.Divider( modifier = modifier, diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/MediumTopAppBar.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/MediumTopAppBar.kt index 579583757f..cbc215717d 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/MediumTopAppBar.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/MediumTopAppBar.kt @@ -24,7 +24,6 @@ import androidx.compose.material3.TopAppBarDefaults import androidx.compose.material3.TopAppBarScrollBehavior import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier -import io.element.android.libraries.designsystem.theme.ElementTheme @OptIn(ExperimentalMaterial3Api::class) @Composable @@ -34,13 +33,7 @@ fun MediumTopAppBar( navigationIcon: @Composable () -> Unit = {}, actions: @Composable RowScope.() -> Unit = {}, windowInsets: WindowInsets = TopAppBarDefaults.windowInsets, - colors: TopAppBarColors = TopAppBarDefaults.mediumTopAppBarColors( - containerColor = ElementTheme.colors.background, - scrolledContainerColor = ElementTheme.colors.background, - navigationIconContentColor = ElementTheme.colors.onBackground, - titleContentColor = ElementTheme.colors.onBackground, - actionIconContentColor = ElementTheme.colors.onBackground, - ), + colors: TopAppBarColors = TopAppBarDefaults.mediumTopAppBarColors(), scrollBehavior: TopAppBarScrollBehavior? = null ) { androidx.compose.material3.MediumTopAppBar( diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ModalBottomSheetLayout.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ModalBottomSheetLayout.kt index d3ca206832..6b558e3418 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ModalBottomSheetLayout.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ModalBottomSheetLayout.kt @@ -22,14 +22,13 @@ import androidx.compose.material.MaterialTheme import androidx.compose.material.ModalBottomSheetDefaults import androidx.compose.material.ModalBottomSheetState import androidx.compose.material.ModalBottomSheetValue +import androidx.compose.material.contentColorFor import androidx.compose.material.rememberModalBottomSheetState import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Shape import androidx.compose.ui.unit.Dp -import io.element.android.libraries.designsystem.theme.ElementTheme -import io.element.android.libraries.designsystem.theme.elementContentColorFor @OptIn(ExperimentalMaterialApi::class) @Composable @@ -39,9 +38,9 @@ fun ModalBottomSheetLayout( sheetState: ModalBottomSheetState = rememberModalBottomSheetState(ModalBottomSheetValue.Hidden), sheetShape: Shape = MaterialTheme.shapes.large, sheetElevation: Dp = ModalBottomSheetDefaults.Elevation, - sheetBackgroundColor: Color = ElementTheme.colors.surfaceVariant, - sheetContentColor: Color = elementContentColorFor(sheetBackgroundColor), - scrimColor: Color = ElementTheme.colors.onSurfaceVariant.copy(alpha = 0.32f), + sheetBackgroundColor: Color = MaterialTheme.colors.surface, + sheetContentColor: Color = contentColorFor(sheetBackgroundColor), + scrimColor: Color = ModalBottomSheetDefaults.scrimColor, content: @Composable () -> Unit = {} ) { androidx.compose.material.ModalBottomSheetLayout( diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/OutlinedTextField.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/OutlinedTextField.kt index fe178bb28d..fae6c06328 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/OutlinedTextField.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/OutlinedTextField.kt @@ -23,6 +23,7 @@ import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.foundation.text.selection.TextSelectionColors import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.LocalTextStyle +import androidx.compose.material3.TextFieldColors import androidx.compose.material3.TextFieldDefaults import androidx.compose.runtime.Composable import androidx.compose.runtime.remember @@ -35,7 +36,6 @@ import androidx.compose.ui.tooling.preview.Preview import io.element.android.libraries.designsystem.ElementGreen import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight -import io.element.android.libraries.designsystem.theme.ElementTheme @OptIn(ExperimentalMaterial3Api::class) @Composable @@ -59,6 +59,7 @@ fun OutlinedTextField( maxLines: Int = Int.MAX_VALUE, interactionSource: MutableInteractionSource = remember { MutableInteractionSource() }, shape: Shape = TextFieldDefaults.outlinedShape, + colors: TextFieldColors = TextFieldDefaults.outlinedTextFieldColors() ) { androidx.compose.material3.OutlinedTextField( value = value, @@ -80,39 +81,7 @@ fun OutlinedTextField( maxLines = maxLines, interactionSource = interactionSource, shape = shape, - colors = TextFieldDefaults.outlinedTextFieldColors( - textColor = ElementTheme.colors.primary, - disabledTextColor = ElementTheme.colors.primary.copy(alpha = 0.38f), - containerColor = Color.Transparent, - cursorColor = ElementTheme.colors.primary, - errorCursorColor = ElementTheme.colors.error, - selectionColors = TextSelectionColors( - handleColor = ElementGreen, - backgroundColor = ElementGreen.copy(alpha = 0.4f) - ), - focusedBorderColor = ElementTheme.colors.primary, - unfocusedBorderColor = ElementTheme.colors.secondary, - disabledBorderColor = ElementTheme.colors.secondary.copy(alpha = 0.12f), - errorBorderColor = ElementTheme.colors.error, - focusedLeadingIconColor = ElementTheme.colors.primary, - unfocusedLeadingIconColor = ElementTheme.colors.secondary, - disabledLeadingIconColor = ElementTheme.colors.secondary.copy(0.12f), - errorLeadingIconColor = ElementTheme.colors.error, - focusedTrailingIconColor = ElementTheme.colors.primary, - unfocusedTrailingIconColor = ElementTheme.colors.secondary, - disabledTrailingIconColor = ElementTheme.colors.secondary.copy(alpha = 0.12f), - errorTrailingIconColor = ElementTheme.colors.error, - focusedLabelColor = ElementTheme.colors.primary, - unfocusedLabelColor = ElementTheme.colors.secondary, - disabledLabelColor = ElementTheme.colors.secondary.copy(alpha = 0.12f), - errorLabelColor = ElementTheme.colors.error, - placeholderColor = ElementTheme.colors.secondary, - disabledPlaceholderColor = ElementTheme.colors.secondary.copy(alpha = 0.12f), - focusedSupportingTextColor = ElementTheme.colors.primary, - unfocusedSupportingTextColor = ElementTheme.colors.secondary, - disabledSupportingTextColor = ElementTheme.colors.primary.copy(alpha = 0.12f), - errorSupportingTextColor = ElementTheme.colors.error, - ), + colors = colors, ) } diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Scaffold.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Scaffold.kt index 7a1ede6d70..99a69c0553 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Scaffold.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Scaffold.kt @@ -20,12 +20,12 @@ import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.WindowInsets import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.FabPosition +import androidx.compose.material3.MaterialTheme import androidx.compose.material3.ScaffoldDefaults +import androidx.compose.material3.contentColorFor import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color -import io.element.android.libraries.designsystem.theme.ElementTheme -import io.element.android.libraries.designsystem.theme.elementContentColorFor @OptIn(ExperimentalMaterial3Api::class) @Composable @@ -36,8 +36,8 @@ fun Scaffold( snackbarHost: @Composable () -> Unit = {}, floatingActionButton: @Composable () -> Unit = {}, floatingActionButtonPosition: FabPosition = FabPosition.End, - containerColor: Color = ElementTheme.colors.background, - contentColor: Color = elementContentColorFor(containerColor), + containerColor: Color = MaterialTheme.colorScheme.background, + contentColor: Color = contentColorFor(containerColor), contentWindowInsets: WindowInsets = ScaffoldDefaults.contentWindowInsets, content: @Composable (PaddingValues) -> Unit ) { diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Slider.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Slider.kt index 87e1757dd7..edefe1ab98 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Slider.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Slider.kt @@ -18,6 +18,7 @@ package io.element.android.libraries.designsystem.theme.components import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.layout.Column +import androidx.compose.material3.MaterialTheme import androidx.compose.material3.SliderColors import androidx.compose.material3.SliderDefaults import androidx.compose.runtime.Composable @@ -26,7 +27,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.tooling.preview.Preview import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight -import io.element.android.libraries.designsystem.theme.ElementTheme @Composable fun Slider( @@ -38,18 +38,7 @@ fun Slider( /*@IntRange(from = 0)*/ steps: Int = 0, onValueChangeFinished: (() -> Unit)? = null, - colors: SliderColors = SliderDefaults.colors( - thumbColor = ElementTheme.colors.primary, - activeTrackColor = ElementTheme.colors.primary, - activeTickColor = ElementTheme.colors.primary, - inactiveTrackColor = ElementTheme.colors.primary, - inactiveTickColor = ElementTheme.colors.primary, - disabledThumbColor = ElementTheme.colors.primary.copy(alpha = 0.40f), - disabledActiveTrackColor = ElementTheme.colors.primary.copy(alpha = 0.40f), - disabledActiveTickColor = ElementTheme.colors.primary.copy(alpha = 0.40f), - disabledInactiveTrackColor = ElementTheme.colors.primary.copy(alpha = 0.40f), - disabledInactiveTickColor = ElementTheme.colors.primary.copy(alpha = 0.40f), - ), + colors: SliderColors = SliderDefaults.colors(), interactionSource: MutableInteractionSource = remember { MutableInteractionSource() } ) { androidx.compose.material3.Slider( diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Surface.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Surface.kt index 0689680972..8518d8a715 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Surface.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Surface.kt @@ -17,6 +17,8 @@ package io.element.android.libraries.designsystem.theme.components import androidx.compose.foundation.BorderStroke +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.contentColorFor import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color @@ -24,15 +26,13 @@ import androidx.compose.ui.graphics.RectangleShape import androidx.compose.ui.graphics.Shape import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp -import io.element.android.libraries.designsystem.theme.ElementTheme -import io.element.android.libraries.designsystem.theme.elementContentColorFor @Composable fun Surface( modifier: Modifier = Modifier, shape: Shape = RectangleShape, - color: Color = ElementTheme.colors.surfaceVariant, - contentColor: Color = elementContentColorFor(color), + color: Color = MaterialTheme.colorScheme.surface, + contentColor: Color = contentColorFor(color), tonalElevation: Dp = 0.dp, shadowElevation: Dp = 0.dp, border: BorderStroke? = null, diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/TextField.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/TextField.kt index 3a16b8fedb..dba39fccf1 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/TextField.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/TextField.kt @@ -22,6 +22,7 @@ import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.material.ContentAlpha import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.LocalTextStyle +import androidx.compose.material3.TextFieldColors import androidx.compose.material3.TextFieldDefaults import androidx.compose.runtime.Composable import androidx.compose.runtime.remember @@ -30,7 +31,6 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Shape import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.input.VisualTransformation -import io.element.android.libraries.designsystem.theme.ElementTheme @OptIn(ExperimentalMaterial3Api::class) @Composable @@ -54,6 +54,7 @@ fun TextField( maxLines: Int = Int.MAX_VALUE, interactionSource: MutableInteractionSource = remember { MutableInteractionSource() }, shape: Shape = TextFieldDefaults.filledShape, + colors: TextFieldColors = TextFieldDefaults.textFieldColors() ) { androidx.compose.material3.TextField( value = value, @@ -75,13 +76,6 @@ fun TextField( maxLines = maxLines, interactionSource = interactionSource, shape = shape, - colors = TextFieldDefaults.textFieldColors( - textColor = ElementTheme.colors.onBackground, - containerColor = Color.Transparent, - cursorColor = ElementTheme.colors.onBackground.copy(alpha = ContentAlpha.medium), - focusedIndicatorColor = Color.Transparent, - unfocusedIndicatorColor = Color.Transparent, - disabledIndicatorColor = Color.Transparent - ), + colors = colors, ) } diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/TopAppBar.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/TopAppBar.kt index 3930e2e3c1..76c388cefe 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/TopAppBar.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/TopAppBar.kt @@ -24,7 +24,6 @@ import androidx.compose.material3.TopAppBarDefaults import androidx.compose.material3.TopAppBarScrollBehavior import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier -import io.element.android.libraries.designsystem.theme.ElementTheme @OptIn(ExperimentalMaterial3Api::class) @Composable @@ -34,13 +33,7 @@ fun TopAppBar( navigationIcon: @Composable () -> Unit = {}, actions: @Composable RowScope.() -> Unit = {}, windowInsets: WindowInsets = TopAppBarDefaults.windowInsets, - colors: TopAppBarColors = TopAppBarDefaults.smallTopAppBarColors( - containerColor = ElementTheme.colors.background, - scrolledContainerColor = ElementTheme.colors.background, - navigationIconContentColor = ElementTheme.colors.onBackground, - titleContentColor = ElementTheme.colors.onBackground, - actionIconContentColor = ElementTheme.colors.onBackground, - ), + colors: TopAppBarColors = TopAppBarDefaults.smallTopAppBarColors(), scrollBehavior: TopAppBarScrollBehavior? = null ) { androidx.compose.material3.TopAppBar( diff --git a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/MatrixUserHeader.kt b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/MatrixUserHeader.kt index a8ce4af56f..e83c486476 100644 --- a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/MatrixUserHeader.kt +++ b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/MatrixUserHeader.kt @@ -23,6 +23,7 @@ import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding +import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -36,7 +37,6 @@ import io.element.android.libraries.designsystem.components.avatar.AvatarData import io.element.android.libraries.designsystem.components.avatar.AvatarSize import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight -import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.matrix.core.UserId import io.element.android.libraries.matrix.ui.model.MatrixUser @@ -67,14 +67,14 @@ fun MatrixUserHeader( text = matrixUser.getBestName(), maxLines = 1, overflow = TextOverflow.Ellipsis, - color = ElementTheme.colors.primary, + color = MaterialTheme.colorScheme.primary, ) // Id if (matrixUser.username.isNullOrEmpty().not()) { Spacer(modifier = Modifier.height(4.dp)) Text( text = matrixUser.id.value, - color = ElementTheme.colors.secondary, + color = MaterialTheme.colorScheme.secondary, fontSize = 14.sp, maxLines = 1, overflow = TextOverflow.Ellipsis diff --git a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/MatrixUserRow.kt b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/MatrixUserRow.kt index 5b6db5b7e6..50bb7d377f 100644 --- a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/MatrixUserRow.kt +++ b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/MatrixUserRow.kt @@ -23,6 +23,7 @@ import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding +import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -35,7 +36,6 @@ import io.element.android.libraries.designsystem.components.avatar.Avatar import io.element.android.libraries.designsystem.components.avatar.AvatarData import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight -import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.matrix.core.UserId import io.element.android.libraries.matrix.ui.model.MatrixUser @@ -71,13 +71,13 @@ fun MatrixUserRow( text = matrixUser.getBestName(), maxLines = 1, overflow = TextOverflow.Ellipsis, - color = ElementTheme.colors.primary, + color = MaterialTheme.colorScheme.primary, ) // Id if (matrixUser.username.isNullOrEmpty().not()) { Text( text = matrixUser.id.value, - color = ElementTheme.colors.secondary, + color = MaterialTheme.colorScheme.secondary, fontSize = 14.sp, maxLines = 1, overflow = TextOverflow.Ellipsis diff --git a/libraries/textcomposer/src/main/kotlin/io/element/android/libraries/textcomposer/TextComposer.kt b/libraries/textcomposer/src/main/kotlin/io/element/android/libraries/textcomposer/TextComposer.kt index ab736f4177..2c5cc26798 100644 --- a/libraries/textcomposer/src/main/kotlin/io/element/android/libraries/textcomposer/TextComposer.kt +++ b/libraries/textcomposer/src/main/kotlin/io/element/android/libraries/textcomposer/TextComposer.kt @@ -21,6 +21,7 @@ import android.net.Uri import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height +import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -34,7 +35,6 @@ import androidx.core.view.isInvisible import androidx.core.view.isVisible import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight -import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.ui.strings.R as StringR @@ -127,7 +127,7 @@ private fun FakeComposer( textAlign = TextAlign.Center, text = "Composer Preview", fontSize = 20.sp, - color = ElementTheme.colors.secondary, + color = MaterialTheme.colorScheme.secondary, ) } } diff --git a/plugins/src/main/kotlin/extension/DependencyHandleScope.kt b/plugins/src/main/kotlin/extension/DependencyHandleScope.kt index 49cf6dd1cd..710f603cad 100644 --- a/plugins/src/main/kotlin/extension/DependencyHandleScope.kt +++ b/plugins/src/main/kotlin/extension/DependencyHandleScope.kt @@ -38,6 +38,7 @@ fun DependencyHandlerScope.composeDependencies() { androidTestImplementation(composeBom) implementation("androidx.compose.ui:ui") implementation("androidx.compose.material:material") + implementation("androidx.compose.material3:material3") implementation("androidx.compose.material:material-icons-extended") implementation("androidx.compose.ui:ui-tooling-preview") implementation("androidx.activity:activity-compose:1.6.1") diff --git a/tests/uitests/src/test/kotlin/io/element/android/tests/uitests/ScreenshotTest.kt b/tests/uitests/src/test/kotlin/io/element/android/tests/uitests/ScreenshotTest.kt index bcd78869cf..1ccb0d76b2 100644 --- a/tests/uitests/src/test/kotlin/io/element/android/tests/uitests/ScreenshotTest.kt +++ b/tests/uitests/src/test/kotlin/io/element/android/tests/uitests/ScreenshotTest.kt @@ -24,6 +24,7 @@ import androidx.activity.OnBackPressedDispatcherOwner import androidx.activity.compose.LocalOnBackPressedDispatcherOwner import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box +import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalConfiguration @@ -74,7 +75,6 @@ class ScreenshotTest { @TestParameter(valuesProvider = PreviewProvider::class) componentTestPreview: TestPreview, @TestParameter baseDeviceConfig: BaseDeviceConfig, @TestParameter(value = ["1.0"/*, "1.5"*/]) fontScale: Float, - @TestParameter(value = ["light", "dark"]) theme: String, @TestParameter(value = ["en" /*"fr", "de", "ru"*/]) localeStr: String, ) { paparazzi.unsafeUpdateConfig( @@ -100,8 +100,8 @@ class ScreenshotTest { override fun getOnBackPressedDispatcher() = OnBackPressedDispatcher() } ) { - ElementTheme(darkTheme = (theme == "dark")) { - Box(modifier = Modifier.background(ElementTheme.colors.background)) { + ElementTheme { + Box(modifier = Modifier.background(MaterialTheme.colorScheme.background)) { componentTestPreview.Content() } } diff --git a/tests/uitests/src/test/kotlin/io/element/android/tests/uitests/TypographyTestPreview.kt b/tests/uitests/src/test/kotlin/io/element/android/tests/uitests/TypographyTestPreview.kt index 6f3b4f4bbf..80f27c25a0 100644 --- a/tests/uitests/src/test/kotlin/io/element/android/tests/uitests/TypographyTestPreview.kt +++ b/tests/uitests/src/test/kotlin/io/element/android/tests/uitests/TypographyTestPreview.kt @@ -19,11 +19,11 @@ package io.element.android.tests.uitests import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.text.BasicText +import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import com.airbnb.android.showkase.models.ShowkaseBrowserTypography import com.airbnb.android.showkase.ui.padding4x -import io.element.android.libraries.designsystem.theme.ElementTheme import java.util.Locale class TypographyTestPreview( @@ -39,7 +39,7 @@ class TypographyTestPreview( .fillMaxWidth() .padding(padding4x), style = showkaseBrowserTypography.textStyle.copy( - color = ElementTheme.colors.onBackground + color = MaterialTheme.colorScheme.onBackground ) ) } From 56cb19707b546b710191b6e19176dc090f8406b3 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Fri, 3 Feb 2023 10:24:52 +0100 Subject: [PATCH 18/22] Add some TODO for design input --- .../designsystem/theme/ColorsDark.kt | 24 ++++++++++++++++++- .../designsystem/theme/ColorsLight.kt | 23 +++++++++++++++++- 2 files changed, 45 insertions(+), 2 deletions(-) diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ColorsDark.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ColorsDark.kt index 80b6122ba5..ff02755081 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ColorsDark.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ColorsDark.kt @@ -30,13 +30,35 @@ fun elementColorsDark() = ElementColors( isLight = false, ) +// TODO Lots of colors are missing val materialColorSchemeDark = darkColorScheme( primary = Color.White, + // TODO onPrimary = ColorDarkTokens.OnPrimary, + // TODO primaryContainer = ColorDarkTokens.PrimaryContainer, + // TODO onPrimaryContainer = ColorDarkTokens.OnPrimaryContainer, + // TODO inversePrimary = ColorDarkTokens.InversePrimary, secondary = DarkGrey, + // TODO onSecondary = ColorDarkTokens.OnSecondary, + // TODO secondaryContainer = ColorDarkTokens.SecondaryContainer, + // TODO onSecondaryContainer = ColorDarkTokens.OnSecondaryContainer, tertiary = Color.White, + // TODO onTertiary = ColorDarkTokens.OnTertiary, + // TODO tertiaryContainer = ColorDarkTokens.TertiaryContainer, + // TODO onTertiaryContainer = ColorDarkTokens.OnTertiaryContainer, background = Color.Black, onBackground = Color.White, surface = Color.Black, - surfaceVariant = SystemGrey5Dark, onSurface = Color.White, + surfaceVariant = SystemGrey5Dark, + // TODO onSurfaceVariant = ColorDarkTokens.OnSurfaceVariant, + // TODO surfaceTint = primary, + // TODO inverseSurface = ColorDarkTokens.InverseSurface, + // TODO inverseOnSurface = ColorDarkTokens.InverseOnSurface, + // TODO error = ColorDarkTokens.Error, + // TODO onError = ColorDarkTokens.OnError, + // TODO errorContainer = ColorDarkTokens.ErrorContainer, + // TODO onErrorContainer = ColorDarkTokens.OnErrorContainer, + // TODO outline = ColorDarkTokens.Outline, + // TODO outlineVariant = ColorDarkTokens.OutlineVariant, + // TODO scrim = ColorDarkTokens.Scrim, ) diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ColorsLight.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ColorsLight.kt index 8e8e41c9d6..43932edd10 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ColorsLight.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ColorsLight.kt @@ -30,14 +30,35 @@ fun elementColorsLight() = ElementColors( isLight = true, ) +// TODO Lots of colors are missing val materialColorSchemeLight = lightColorScheme( primary = Color.Black, + // TODO onPrimary = ColorLightTokens.OnPrimary, + // TODO primaryContainer = ColorLightTokens.PrimaryContainer, + // TODO onPrimaryContainer = ColorLightTokens.OnPrimaryContainer, + // TODO inversePrimary = ColorLightTokens.InversePrimary, secondary = LightGrey, + // TODO onSecondary = ColorLightTokens.OnSecondary, + // TODO secondaryContainer = ColorLightTokens.SecondaryContainer, + // TODO onSecondaryContainer = ColorLightTokens.OnSecondaryContainer, tertiary = Color.Black, + // TODO onTertiary = ColorLightTokens.OnTertiary, + // TODO tertiaryContainer = ColorLightTokens.TertiaryContainer, + // TODO onTertiaryContainer = ColorLightTokens.OnTertiaryContainer, background = Color.White, onBackground = Color.Black, surface = Color.White, - surfaceVariant = SystemGrey5Light, onSurface = Color.Black, + surfaceVariant = SystemGrey5Light, onSurfaceVariant = Color.Black, + // TODO surfaceTint = primary, + // TODO inverseSurface = ColorLightTokens.InverseSurface, + // TODO inverseOnSurface = ColorLightTokens.InverseOnSurface, + // TODO error = ColorLightTokens.Error, + // TODO onError = ColorLightTokens.OnError, + // TODO errorContainer = ColorLightTokens.ErrorContainer, + // TODO onErrorContainer = ColorLightTokens.OnErrorContainer, + // TODO outline = ColorLightTokens.Outline, + // TODO outlineVariant = ColorLightTokens.OutlineVariant, + // TODO scrim = ColorLightTokens.Scrim, ) From 579693354ae65e0aacf6b5f2e31b351a13e62a12 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Fri, 3 Feb 2023 10:46:06 +0100 Subject: [PATCH 19/22] Fix issue. --- .../designsystem/theme/ElementTheme.kt | 41 ++++++++++++------- .../designsystem/theme/components/Slider.kt | 1 - 2 files changed, 26 insertions(+), 16 deletions(-) diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ElementTheme.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ElementTheme.kt index 7e7d4d8caf..cbeb84badb 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ElementTheme.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ElementTheme.kt @@ -16,9 +16,12 @@ package io.element.android.libraries.designsystem.theme +import android.os.Build import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.material3.ColorScheme import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.dynamicDarkColorScheme +import androidx.compose.material3.dynamicLightColorScheme import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.ReadOnlyComposable @@ -26,6 +29,7 @@ import androidx.compose.runtime.SideEffect import androidx.compose.runtime.remember import androidx.compose.runtime.staticCompositionLocalOf import androidx.compose.ui.graphics.Color +import androidx.compose.ui.platform.LocalContext import com.google.accompanist.systemuicontroller.rememberSystemUiController /** @@ -44,6 +48,7 @@ val LocalColors = staticCompositionLocalOf { elementColorsLight() } @Composable fun ElementTheme( darkTheme: Boolean = isSystemInDarkTheme(), + dynamicColor: Boolean = false, /* true to enable MaterialYou */ lightColors: ElementColors = elementColorsLight(), darkColors: ElementColors = elementColorsDark(), materialLightColors: ColorScheme = materialColorSchemeLight, @@ -53,25 +58,31 @@ fun ElementTheme( val systemUiController = rememberSystemUiController() val useDarkIcons = !darkTheme val currentColor = remember { if (darkTheme) darkColors else lightColors } + val colorScheme = when { + dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> { + val context = LocalContext.current + if (darkTheme) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context) + } + darkTheme -> materialDarkColors + else -> materialLightColors + } + SideEffect { + systemUiController.setStatusBarColor( + color = colorScheme.background + ) + systemUiController.setSystemBarsColor( + color = Color.Transparent, + darkIcons = useDarkIcons + ) + } val rememberedColors = remember { currentColor.copy() }.apply { updateColorsFrom(currentColor) } CompositionLocalProvider( LocalColors provides rememberedColors, ) { MaterialTheme( - colorScheme = if (darkTheme) materialDarkColors else materialLightColors - ) { - val bgColor = MaterialTheme.colorScheme.background - SideEffect { - systemUiController.setStatusBarColor( - color = bgColor - ) - systemUiController.setSystemBarsColor( - color = Color.Transparent, - darkIcons = useDarkIcons - ) - } - - content() - } + colorScheme = colorScheme, + // TODO typography = + content = content + ) } } diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Slider.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Slider.kt index edefe1ab98..a303e1ba77 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Slider.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Slider.kt @@ -18,7 +18,6 @@ package io.element.android.libraries.designsystem.theme.components import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.layout.Column -import androidx.compose.material3.MaterialTheme import androidx.compose.material3.SliderColors import androidx.compose.material3.SliderDefaults import androidx.compose.runtime.Composable From 01a4788814a3f87795b06b79140bd53fde94478a Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Fri, 3 Feb 2023 13:12:11 +0100 Subject: [PATCH 20/22] Update Screenshot test reference. --- ...iew_tests[Color_Material Design_DarkGrey,NEXUS_5,1,en].png} | 0 ...ew_tests[Color_Material Design_LightGrey,NEXUS_5,1,en].png} | 0 ...st_preview_tests[Typo_Element_Body Large,NEXUS_5,1,en].png} | 0 ...shotTest_preview_tests[Typo_Element_Body1,NEXUS_5,1,en].png | 3 +++ ...Test_preview_tests[Typo_Element_BodySmall,NEXUS_5,1,en].png | 3 +++ ...eenshotTest_preview_tests[Typo_Element_H1,NEXUS_5,1,en].png | 3 +++ ...preview_tests[Typo_Element_Headline Large,NEXUS_5,1,en].png | 3 +++ ...review_tests[Typo_Element_Headline Medium,NEXUS_5,1,en].png | 3 +++ ...preview_tests[Typo_Element_Headline Small,NEXUS_5,1,en].png | 3 +++ ...est_preview_tests[Typo_Element_bodyMedium,NEXUS_5,1,en].png | 3 +++ ...st_preview_tests[Typo_Element_titleMedium,NEXUS_5,1,en].png | 3 +++ ...est_preview_tests[Typo_Element_titleSmall,NEXUS_5,1,en].png | 3 +++ ...DefaultGroup_ChangeServerViewDarkPreview_,NEXUS_5,1,en].png | 3 +++ ...faultGroup_ChangeServerViewLightPreview_,NEXUS_5,1,en].png} | 0 ..._DefaultGroup_LoginRootScreenDarkPreview_,NEXUS_5,1,en].png | 3 +++ ...efaultGroup_LoginRootScreenLightPreview_,NEXUS_5,1,en].png} | 0 ...ultGroup_LogoutPreferenceViewDarkPreview_,NEXUS_5,1,en].png | 3 +++ ...tGroup_LogoutPreferenceViewLightPreview_,NEXUS_5,1,en].png} | 0 ...ll_DefaultGroup_MatrixUserRowDarkPreview_,NEXUS_5,1,en].png | 3 +++ ...l_DefaultGroup_MatrixUserRowLightPreview_,NEXUS_5,1,en].png | 3 +++ ...efaultGroup_LoginRootScreenDarkPreview__0,NEXUS_5,1,en].png | 3 +++ ...faultGroup_LoginRootScreenDarkPreview__1,NEXUS_5,1,en].png} | 0 ...efaultGroup_LoginRootScreenDarkPreview__2,NEXUS_5,1,en].png | 3 +++ ...faultGroup_LoginRootScreenDarkPreview__3,NEXUS_5,1,en].png} | 0 ...efaultGroup_LoginRootScreenDarkPreview__4,NEXUS_5,1,en].png | 3 +++ ...faultGroup_LoginRootScreenDarkPreview__5,NEXUS_5,1,en].png} | 0 ...aultGroup_LoginRootScreenLightPreview__0,NEXUS_5,1,en].png} | 0 ...aultGroup_LoginRootScreenLightPreview__1,NEXUS_5,1,en].png} | 0 ...aultGroup_LoginRootScreenLightPreview__2,NEXUS_5,1,en].png} | 0 ...aultGroup_LoginRootScreenLightPreview__3,NEXUS_5,1,en].png} | 0 ...aultGroup_LoginRootScreenLightPreview__4,NEXUS_5,1,en].png} | 0 ...aultGroup_LoginRootScreenLightPreview__5,NEXUS_5,1,en].png} | 0 ...aultGroup_PreferencesRootViewDarkPreview_,NEXUS_5,1,en].png | 3 +++ ...ultGroup_PreferencesRootViewLightPreview_,NEXUS_5,1,en].png | 3 +++ ...ll_DefaultGroup_BugReportViewDarkPreview_,NEXUS_5,1,en].png | 3 +++ ..._DefaultGroup_BugReportViewLightPreview_,NEXUS_5,1,en].png} | 0 ...ltGroup_CrashDetectionContentDarkPreview_,NEXUS_5,1,en].png | 3 +++ ...tGroup_CrashDetectionContentLightPreview_,NEXUS_5,1,en].png | 3 +++ ...tGroup_RageshakeDialogContentDarkPreview_,NEXUS_5,1,en].png | 3 +++ ...Group_RageshakeDialogContentLightPreview_,NEXUS_5,1,en].png | 3 +++ ...roup_RageshakePreferencesViewDarkPreview_,NEXUS_5,1,en].png | 3 +++ ...up_RageshakePreferencesViewLightPreview_,NEXUS_5,1,en].png} | 0 ...kePreferencesViewNotSupportedDarkPreview_,NEXUS_5,1,en].png | 3 +++ ...PreferencesViewNotSupportedLightPreview_,NEXUS_5,1,en].png} | 0 ...ull_DefaultGroup_RoomListViewDarkPreview_,NEXUS_5,1,en].png | 3 +++ ...ll_DefaultGroup_RoomListViewLightPreview_,NEXUS_5,1,en].png | 3 +++ ...atar_null_DefaultGroup_AvatarDarkPreview_,NEXUS_5,1,en].png | 3 +++ ...ar_null_DefaultGroup_AvatarLightPreview_,NEXUS_5,1,en].png} | 0 ...faultGroup_ConfirmationDialogDarkPreview_,NEXUS_5,1,en].png | 3 +++ ...aultGroup_ConfirmationDialogLightPreview_,NEXUS_5,1,en].png | 3 +++ ...null_DefaultGroup_ErrorDialogDarkPreview_,NEXUS_5,1,en].png | 3 +++ ...ull_DefaultGroup_ErrorDialogLightPreview_,NEXUS_5,1,en].png | 3 +++ ...faultGroup_PreferenceCategoryDarkPreview_,NEXUS_5,1,en].png | 3 +++ ...ultGroup_PreferenceCategoryLightPreview_,NEXUS_5,1,en].png} | 0 ..._DefaultGroup_PreferenceSlideDarkPreview_,NEXUS_5,1,en].png | 3 +++ ...efaultGroup_PreferenceSlideLightPreview_,NEXUS_5,1,en].png} | 0 ...DefaultGroup_PreferenceSwitchDarkPreview_,NEXUS_5,1,en].png | 3 +++ ...faultGroup_PreferenceSwitchLightPreview_,NEXUS_5,1,en].png} | 0 ...l_DefaultGroup_PreferenceTextDarkPreview_,NEXUS_5,1,en].png | 3 +++ ...DefaultGroup_PreferenceTextLightPreview_,NEXUS_5,1,en].png} | 0 ..._DefaultGroup_PreferenceViewDarkPreview_,NEXUS_5,1,en].png} | 0 ...DefaultGroup_PreferenceViewLightPreview_,NEXUS_5,1,en].png} | 0 ...DefaultGroup_LabelledCheckboxDarkPreview_,NEXUS_5,1,en].png | 3 +++ ...faultGroup_LabelledCheckboxLightPreview_,NEXUS_5,1,en].png} | 0 ...l_DefaultGroup_ProgressDialogDarkPreview_,NEXUS_5,1,en].png | 3 +++ ..._DefaultGroup_ProgressDialogLightPreview_,NEXUS_5,1,en].png | 3 +++ ...nts_null_DefaultGroup_ButtonsDarkPreview_,NEXUS_5,1,en].png | 3 +++ ...ts_null_DefaultGroup_ButtonsLightPreview_,NEXUS_5,1,en].png | 3 +++ ..._null_DefaultGroup_CheckboxesDarkPreview_,NEXUS_5,1,en].png | 3 +++ ...null_DefaultGroup_CheckboxesLightPreview_,NEXUS_5,1,en].png | 3 +++ ...nts_null_DefaultGroup_DividerDarkPreview_,NEXUS_5,1,en].png | 3 +++ ...ts_null_DefaultGroup_DividerLightPreview_,NEXUS_5,1,en].png | 3 +++ ...faultGroup_OutlinedTextFieldsDarkPreview_,NEXUS_5,1,en].png | 3 +++ ...aultGroup_OutlinedTextFieldsLightPreview_,NEXUS_5,1,en].png | 3 +++ ...nts_null_DefaultGroup_SlidersDarkPreview_,NEXUS_5,1,en].png | 3 +++ ...ts_null_DefaultGroup_SlidersLightPreview_,NEXUS_5,1,en].png | 3 +++ ...faultGroup_ShowkaseButtonDarkPreview_null,NEXUS_5,1,en].png | 3 +++ ...ultGroup_ShowkaseButtonLightPreview_null,NEXUS_5,1,en].png} | 0 ...tests[Color_Material Design_DarkGrey,NEXUS_5,1,dark,en].png | 3 --- ...ests[Color_Material Design_LightGrey,NEXUS_5,1,dark,en].png | 3 --- ...review_tests[Typo_Element_Body Large,NEXUS_5,1,dark,en].png | 3 --- ...ew_tests[Typo_Element_Headline Small,NEXUS_5,1,dark,en].png | 3 --- ...w_tests[Typo_Element_Headline Small,NEXUS_5,1,light,en].png | 3 --- ..._DefaultGroup_InitialsAvatarPreview_,NEXUS_5,1,dark,en].png | 3 --- ...aultGroup_ConfirmationDialogPreview_,NEXUS_5,1,dark,en].png | 3 --- ...ultGroup_ConfirmationDialogPreview_,NEXUS_5,1,light,en].png | 3 --- ...ull_DefaultGroup_ErrorDialogPreview_,NEXUS_5,1,dark,en].png | 3 --- ...ll_DefaultGroup_ErrorDialogPreview_,NEXUS_5,1,light,en].png | 3 --- ...aultGroup_PreferenceCategoryPreview_,NEXUS_5,1,dark,en].png | 3 --- ...DefaultGroup_PreferenceSlidePreview_,NEXUS_5,1,dark,en].png | 3 --- ...efaultGroup_PreferenceSwitchPreview_,NEXUS_5,1,dark,en].png | 3 --- ..._DefaultGroup_PreferenceTextPreview_,NEXUS_5,1,dark,en].png | 3 --- ...efaultGroup_LabelledCheckboxPreview_,NEXUS_5,1,dark,en].png | 3 --- ..._DefaultGroup_ProgressDialogPreview_,NEXUS_5,1,dark,en].png | 3 --- ...DefaultGroup_ProgressDialogPreview_,NEXUS_5,1,light,en].png | 3 --- ...ultGroup_ChangeServerContentPreview_,NEXUS_5,1,dark,en].png | 3 --- ...ll_DefaultGroup_LoginContentPreview_,NEXUS_5,1,dark,en].png | 3 --- ...l_DefaultGroup_LogoutContentPreview_,NEXUS_5,1,dark,en].png | 3 --- ...DefaultGroup_TimelineItemsPreview__0,NEXUS_5,1,dark,en].png | 3 --- ...DefaultGroup_TimelineItemsPreview__2,NEXUS_5,1,dark,en].png | 3 --- ...DefaultGroup_TimelineItemsPreview__4,NEXUS_5,1,dark,en].png | 3 --- ...aultGroup_PreferencesContentPreview_,NEXUS_5,1,dark,en].png | 3 --- ...ultGroup_PreferencesContentPreview_,NEXUS_5,1,light,en].png | 3 --- ...efaultGroup_BugReportContentPreview_,NEXUS_5,1,dark,en].png | 3 --- ...tGroup_CrashDetectionContentPreview_,NEXUS_5,1,dark,en].png | 3 --- ...Group_CrashDetectionContentPreview_,NEXUS_5,1,light,en].png | 3 --- ...Group_RageshakeDialogContentPreview_,NEXUS_5,1,dark,en].png | 3 --- ...roup_RageshakeDialogContentPreview_,NEXUS_5,1,light,en].png | 3 --- ...eshakePreferenceNotSupportedPreview_,NEXUS_5,1,dark,en].png | 3 --- ...oup_RageshakePreferencesViewPreview_,NEXUS_5,1,dark,en].png | 3 --- ...ll_DefaultGroup_RoomListViewPreview_,NEXUS_5,1,dark,en].png | 3 --- ...l_DefaultGroup_RoomListViewPreview_,NEXUS_5,1,light,en].png | 3 --- ...sts_null_Buttons_Showkasebutton_null,NEXUS_5,1,dark,en].png | 3 --- 113 files changed, 153 insertions(+), 105 deletions(-) rename tests/uitests/src/test/snapshots/images/{io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[Color_Material Design_DarkGrey,NEXUS_5,1,light,en].png => io.element.android.tests.uitests_ScreenshotTest_preview_tests[Color_Material Design_DarkGrey,NEXUS_5,1,en].png} (100%) rename tests/uitests/src/test/snapshots/images/{io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[Color_Material Design_LightGrey,NEXUS_5,1,light,en].png => io.element.android.tests.uitests_ScreenshotTest_preview_tests[Color_Material Design_LightGrey,NEXUS_5,1,en].png} (100%) rename tests/uitests/src/test/snapshots/images/{io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_Body Large,NEXUS_5,1,light,en].png => io.element.android.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_Body Large,NEXUS_5,1,en].png} (100%) create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_Body1,NEXUS_5,1,en].png create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_BodySmall,NEXUS_5,1,en].png create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_H1,NEXUS_5,1,en].png create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_Headline Large,NEXUS_5,1,en].png create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_Headline Medium,NEXUS_5,1,en].png create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_Headline Small,NEXUS_5,1,en].png create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_bodyMedium,NEXUS_5,1,en].png create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_titleMedium,NEXUS_5,1,en].png create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_titleSmall,NEXUS_5,1,en].png create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.login.changeserver_null_DefaultGroup_ChangeServerViewDarkPreview_,NEXUS_5,1,en].png rename tests/uitests/src/test/snapshots/images/{io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.login.changeserver_null_DefaultGroup_ChangeServerContentPreview_,NEXUS_5,1,light,en].png => io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.login.changeserver_null_DefaultGroup_ChangeServerViewLightPreview_,NEXUS_5,1,en].png} (100%) create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.login.root_null_DefaultGroup_LoginRootScreenDarkPreview_,NEXUS_5,1,en].png rename tests/uitests/src/test/snapshots/images/{io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.login.root_null_DefaultGroup_LoginContentPreview_,NEXUS_5,1,light,en].png => io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.login.root_null_DefaultGroup_LoginRootScreenLightPreview_,NEXUS_5,1,en].png} (100%) create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.logout_null_DefaultGroup_LogoutPreferenceViewDarkPreview_,NEXUS_5,1,en].png rename tests/uitests/src/test/snapshots/images/{io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.logout_null_DefaultGroup_LogoutContentPreview_,NEXUS_5,1,light,en].png => io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.logout_null_DefaultGroup_LogoutPreferenceViewLightPreview_,NEXUS_5,1,en].png} (100%) create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline.components_null_DefaultGroup_MatrixUserRowDarkPreview_,NEXUS_5,1,en].png create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline.components_null_DefaultGroup_MatrixUserRowLightPreview_,NEXUS_5,1,en].png create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenDarkPreview__0,NEXUS_5,1,en].png rename tests/uitests/src/test/snapshots/images/{io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.messages.timeline_null_DefaultGroup_TimelineItemsPreview__1,NEXUS_5,1,dark,en].png => io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenDarkPreview__1,NEXUS_5,1,en].png} (100%) create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenDarkPreview__2,NEXUS_5,1,en].png rename tests/uitests/src/test/snapshots/images/{io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.messages.timeline_null_DefaultGroup_TimelineItemsPreview__3,NEXUS_5,1,dark,en].png => io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenDarkPreview__3,NEXUS_5,1,en].png} (100%) create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenDarkPreview__4,NEXUS_5,1,en].png rename tests/uitests/src/test/snapshots/images/{io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.messages.timeline_null_DefaultGroup_TimelineItemsPreview__5,NEXUS_5,1,dark,en].png => io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenDarkPreview__5,NEXUS_5,1,en].png} (100%) rename tests/uitests/src/test/snapshots/images/{io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.messages.timeline_null_DefaultGroup_TimelineItemsPreview__0,NEXUS_5,1,light,en].png => io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenLightPreview__0,NEXUS_5,1,en].png} (100%) rename tests/uitests/src/test/snapshots/images/{io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.messages.timeline_null_DefaultGroup_TimelineItemsPreview__1,NEXUS_5,1,light,en].png => io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenLightPreview__1,NEXUS_5,1,en].png} (100%) rename tests/uitests/src/test/snapshots/images/{io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.messages.timeline_null_DefaultGroup_TimelineItemsPreview__2,NEXUS_5,1,light,en].png => io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenLightPreview__2,NEXUS_5,1,en].png} (100%) rename tests/uitests/src/test/snapshots/images/{io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.messages.timeline_null_DefaultGroup_TimelineItemsPreview__3,NEXUS_5,1,light,en].png => io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenLightPreview__3,NEXUS_5,1,en].png} (100%) rename tests/uitests/src/test/snapshots/images/{io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.messages.timeline_null_DefaultGroup_TimelineItemsPreview__4,NEXUS_5,1,light,en].png => io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenLightPreview__4,NEXUS_5,1,en].png} (100%) rename tests/uitests/src/test/snapshots/images/{io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.messages.timeline_null_DefaultGroup_TimelineItemsPreview__5,NEXUS_5,1,light,en].png => io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenLightPreview__5,NEXUS_5,1,en].png} (100%) create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.preferences.root_null_DefaultGroup_PreferencesRootViewDarkPreview_,NEXUS_5,1,en].png create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.preferences.root_null_DefaultGroup_PreferencesRootViewLightPreview_,NEXUS_5,1,en].png create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.rageshake.bugreport_null_DefaultGroup_BugReportViewDarkPreview_,NEXUS_5,1,en].png rename tests/uitests/src/test/snapshots/images/{io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.rageshake.bugreport_null_DefaultGroup_BugReportContentPreview_,NEXUS_5,1,light,en].png => io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.rageshake.bugreport_null_DefaultGroup_BugReportViewLightPreview_,NEXUS_5,1,en].png} (100%) create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.rageshake.crash.ui_null_DefaultGroup_CrashDetectionContentDarkPreview_,NEXUS_5,1,en].png create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.rageshake.crash.ui_null_DefaultGroup_CrashDetectionContentLightPreview_,NEXUS_5,1,en].png create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.rageshake.detection_null_DefaultGroup_RageshakeDialogContentDarkPreview_,NEXUS_5,1,en].png create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.rageshake.detection_null_DefaultGroup_RageshakeDialogContentLightPreview_,NEXUS_5,1,en].png create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.rageshake.preferences_null_DefaultGroup_RageshakePreferencesViewDarkPreview_,NEXUS_5,1,en].png rename tests/uitests/src/test/snapshots/images/{io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.rageshake.preferences_null_DefaultGroup_RageshakePreferencesViewPreview_,NEXUS_5,1,light,en].png => io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.rageshake.preferences_null_DefaultGroup_RageshakePreferencesViewLightPreview_,NEXUS_5,1,en].png} (100%) create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.rageshake.preferences_null_DefaultGroup_RageshakePreferencesViewNotSupportedDarkPreview_,NEXUS_5,1,en].png rename tests/uitests/src/test/snapshots/images/{io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.rageshake.preferences_null_DefaultGroup_RageshakePreferenceNotSupportedPreview_,NEXUS_5,1,light,en].png => io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.rageshake.preferences_null_DefaultGroup_RageshakePreferencesViewNotSupportedLightPreview_,NEXUS_5,1,en].png} (100%) create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.roomlist_null_DefaultGroup_RoomListViewDarkPreview_,NEXUS_5,1,en].png create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.roomlist_null_DefaultGroup_RoomListViewLightPreview_,NEXUS_5,1,en].png create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.avatar_null_DefaultGroup_AvatarDarkPreview_,NEXUS_5,1,en].png rename tests/uitests/src/test/snapshots/images/{io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.avatar_null_DefaultGroup_InitialsAvatarPreview_,NEXUS_5,1,light,en].png => io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.avatar_null_DefaultGroup_AvatarLightPreview_,NEXUS_5,1,en].png} (100%) create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.dialogs_null_DefaultGroup_ConfirmationDialogDarkPreview_,NEXUS_5,1,en].png create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.dialogs_null_DefaultGroup_ConfirmationDialogLightPreview_,NEXUS_5,1,en].png create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.dialogs_null_DefaultGroup_ErrorDialogDarkPreview_,NEXUS_5,1,en].png create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.dialogs_null_DefaultGroup_ErrorDialogLightPreview_,NEXUS_5,1,en].png create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.preferences_null_DefaultGroup_PreferenceCategoryDarkPreview_,NEXUS_5,1,en].png rename tests/uitests/src/test/snapshots/images/{io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.preferences_null_DefaultGroup_PreferenceCategoryPreview_,NEXUS_5,1,light,en].png => io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.preferences_null_DefaultGroup_PreferenceCategoryLightPreview_,NEXUS_5,1,en].png} (100%) create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.preferences_null_DefaultGroup_PreferenceSlideDarkPreview_,NEXUS_5,1,en].png rename tests/uitests/src/test/snapshots/images/{io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.preferences_null_DefaultGroup_PreferenceSlidePreview_,NEXUS_5,1,light,en].png => io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.preferences_null_DefaultGroup_PreferenceSlideLightPreview_,NEXUS_5,1,en].png} (100%) create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.preferences_null_DefaultGroup_PreferenceSwitchDarkPreview_,NEXUS_5,1,en].png rename tests/uitests/src/test/snapshots/images/{io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.preferences_null_DefaultGroup_PreferenceSwitchPreview_,NEXUS_5,1,light,en].png => io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.preferences_null_DefaultGroup_PreferenceSwitchLightPreview_,NEXUS_5,1,en].png} (100%) create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.preferences_null_DefaultGroup_PreferenceTextDarkPreview_,NEXUS_5,1,en].png rename tests/uitests/src/test/snapshots/images/{io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.preferences_null_DefaultGroup_PreferenceTextPreview_,NEXUS_5,1,light,en].png => io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.preferences_null_DefaultGroup_PreferenceTextLightPreview_,NEXUS_5,1,en].png} (100%) rename tests/uitests/src/test/snapshots/images/{io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.preferences_null_DefaultGroup_PreferenceScreenPreview_,NEXUS_5,1,dark,en].png => io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.preferences_null_DefaultGroup_PreferenceViewDarkPreview_,NEXUS_5,1,en].png} (100%) rename tests/uitests/src/test/snapshots/images/{io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.preferences_null_DefaultGroup_PreferenceScreenPreview_,NEXUS_5,1,light,en].png => io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.preferences_null_DefaultGroup_PreferenceViewLightPreview_,NEXUS_5,1,en].png} (100%) create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components_null_DefaultGroup_LabelledCheckboxDarkPreview_,NEXUS_5,1,en].png rename tests/uitests/src/test/snapshots/images/{io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components_null_DefaultGroup_LabelledCheckboxPreview_,NEXUS_5,1,light,en].png => io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components_null_DefaultGroup_LabelledCheckboxLightPreview_,NEXUS_5,1,en].png} (100%) create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components_null_DefaultGroup_ProgressDialogDarkPreview_,NEXUS_5,1,en].png create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components_null_DefaultGroup_ProgressDialogLightPreview_,NEXUS_5,1,en].png create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme.components_null_DefaultGroup_ButtonsDarkPreview_,NEXUS_5,1,en].png create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme.components_null_DefaultGroup_ButtonsLightPreview_,NEXUS_5,1,en].png create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme.components_null_DefaultGroup_CheckboxesDarkPreview_,NEXUS_5,1,en].png create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme.components_null_DefaultGroup_CheckboxesLightPreview_,NEXUS_5,1,en].png create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme.components_null_DefaultGroup_DividerDarkPreview_,NEXUS_5,1,en].png create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme.components_null_DefaultGroup_DividerLightPreview_,NEXUS_5,1,en].png create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme.components_null_DefaultGroup_OutlinedTextFieldsDarkPreview_,NEXUS_5,1,en].png create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme.components_null_DefaultGroup_OutlinedTextFieldsLightPreview_,NEXUS_5,1,en].png create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme.components_null_DefaultGroup_SlidersDarkPreview_,NEXUS_5,1,en].png create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme.components_null_DefaultGroup_SlidersLightPreview_,NEXUS_5,1,en].png create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.tests.uitests_null_DefaultGroup_ShowkaseButtonDarkPreview_null,NEXUS_5,1,en].png rename tests/uitests/src/test/snapshots/images/{io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.tests.uitests_null_Buttons_Showkasebutton_null,NEXUS_5,1,light,en].png => io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.tests.uitests_null_DefaultGroup_ShowkaseButtonLightPreview_null,NEXUS_5,1,en].png} (100%) delete mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[Color_Material Design_DarkGrey,NEXUS_5,1,dark,en].png delete mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[Color_Material Design_LightGrey,NEXUS_5,1,dark,en].png delete mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_Body Large,NEXUS_5,1,dark,en].png delete mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_Headline Small,NEXUS_5,1,dark,en].png delete mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_Headline Small,NEXUS_5,1,light,en].png delete mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.avatar_null_DefaultGroup_InitialsAvatarPreview_,NEXUS_5,1,dark,en].png delete mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.dialogs_null_DefaultGroup_ConfirmationDialogPreview_,NEXUS_5,1,dark,en].png delete mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.dialogs_null_DefaultGroup_ConfirmationDialogPreview_,NEXUS_5,1,light,en].png delete mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.dialogs_null_DefaultGroup_ErrorDialogPreview_,NEXUS_5,1,dark,en].png delete mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.dialogs_null_DefaultGroup_ErrorDialogPreview_,NEXUS_5,1,light,en].png delete mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.preferences_null_DefaultGroup_PreferenceCategoryPreview_,NEXUS_5,1,dark,en].png delete mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.preferences_null_DefaultGroup_PreferenceSlidePreview_,NEXUS_5,1,dark,en].png delete mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.preferences_null_DefaultGroup_PreferenceSwitchPreview_,NEXUS_5,1,dark,en].png delete mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.preferences_null_DefaultGroup_PreferenceTextPreview_,NEXUS_5,1,dark,en].png delete mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components_null_DefaultGroup_LabelledCheckboxPreview_,NEXUS_5,1,dark,en].png delete mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components_null_DefaultGroup_ProgressDialogPreview_,NEXUS_5,1,dark,en].png delete mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components_null_DefaultGroup_ProgressDialogPreview_,NEXUS_5,1,light,en].png delete mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.login.changeserver_null_DefaultGroup_ChangeServerContentPreview_,NEXUS_5,1,dark,en].png delete mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.login.root_null_DefaultGroup_LoginContentPreview_,NEXUS_5,1,dark,en].png delete mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.logout_null_DefaultGroup_LogoutContentPreview_,NEXUS_5,1,dark,en].png delete mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.messages.timeline_null_DefaultGroup_TimelineItemsPreview__0,NEXUS_5,1,dark,en].png delete mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.messages.timeline_null_DefaultGroup_TimelineItemsPreview__2,NEXUS_5,1,dark,en].png delete mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.messages.timeline_null_DefaultGroup_TimelineItemsPreview__4,NEXUS_5,1,dark,en].png delete mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.preferences.root_null_DefaultGroup_PreferencesContentPreview_,NEXUS_5,1,dark,en].png delete mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.preferences.root_null_DefaultGroup_PreferencesContentPreview_,NEXUS_5,1,light,en].png delete mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.rageshake.bugreport_null_DefaultGroup_BugReportContentPreview_,NEXUS_5,1,dark,en].png delete mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.rageshake.crash.ui_null_DefaultGroup_CrashDetectionContentPreview_,NEXUS_5,1,dark,en].png delete mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.rageshake.crash.ui_null_DefaultGroup_CrashDetectionContentPreview_,NEXUS_5,1,light,en].png delete mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.rageshake.detection_null_DefaultGroup_RageshakeDialogContentPreview_,NEXUS_5,1,dark,en].png delete mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.rageshake.detection_null_DefaultGroup_RageshakeDialogContentPreview_,NEXUS_5,1,light,en].png delete mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.rageshake.preferences_null_DefaultGroup_RageshakePreferenceNotSupportedPreview_,NEXUS_5,1,dark,en].png delete mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.rageshake.preferences_null_DefaultGroup_RageshakePreferencesViewPreview_,NEXUS_5,1,dark,en].png delete mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.roomlist_null_DefaultGroup_RoomListViewPreview_,NEXUS_5,1,dark,en].png delete mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.roomlist_null_DefaultGroup_RoomListViewPreview_,NEXUS_5,1,light,en].png delete mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.tests.uitests_null_Buttons_Showkasebutton_null,NEXUS_5,1,dark,en].png diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[Color_Material Design_DarkGrey,NEXUS_5,1,light,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[Color_Material Design_DarkGrey,NEXUS_5,1,en].png similarity index 100% rename from tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[Color_Material Design_DarkGrey,NEXUS_5,1,light,en].png rename to tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[Color_Material Design_DarkGrey,NEXUS_5,1,en].png diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[Color_Material Design_LightGrey,NEXUS_5,1,light,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[Color_Material Design_LightGrey,NEXUS_5,1,en].png similarity index 100% rename from tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[Color_Material Design_LightGrey,NEXUS_5,1,light,en].png rename to tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[Color_Material Design_LightGrey,NEXUS_5,1,en].png diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_Body Large,NEXUS_5,1,light,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_Body Large,NEXUS_5,1,en].png similarity index 100% rename from tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_Body Large,NEXUS_5,1,light,en].png rename to tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_Body Large,NEXUS_5,1,en].png diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_Body1,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_Body1,NEXUS_5,1,en].png new file mode 100644 index 0000000000..e2d264f3fd --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_Body1,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e60a495255bf6048af20f1cd7365caf6ca6f5d9e97bbf1519ce469f3cccec958 +size 6064 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_BodySmall,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_BodySmall,NEXUS_5,1,en].png new file mode 100644 index 0000000000..058c257e7d --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_BodySmall,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3025338830e0e20781a727ef61751be208d2c633e271f42fe91dbf89df43dbf5 +size 6681 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_H1,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_H1,NEXUS_5,1,en].png new file mode 100644 index 0000000000..69c38b48fe --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_H1,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5c68a348292da117047095d945c7b3fa764e4894fbc25354a88607af33378b90 +size 4775 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_Headline Large,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_Headline Large,NEXUS_5,1,en].png new file mode 100644 index 0000000000..eb99d57c55 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_Headline Large,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a8960ee49f84a98f0c309ea2d3cc208bfdf493c8843066830ee228e0c3b25634 +size 9695 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_Headline Medium,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_Headline Medium,NEXUS_5,1,en].png new file mode 100644 index 0000000000..173136b77d --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_Headline Medium,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dcfab4f43c1a796c9166116285353c4351182db3d5417f657c8a48e9798c6e87 +size 9589 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_Headline Small,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_Headline Small,NEXUS_5,1,en].png new file mode 100644 index 0000000000..a8d282ced2 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_Headline Small,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:12fdbd29d34a17ceec91dd37fddb46560a9047df5a4878491443e75c1fb2ad44 +size 8214 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_bodyMedium,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_bodyMedium,NEXUS_5,1,en].png new file mode 100644 index 0000000000..b282061ed3 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_bodyMedium,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5334cd5b273fc2e6ac65c730bc88adf74fa6b89fda0e76009d35a75bf2790559 +size 7728 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_titleMedium,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_titleMedium,NEXUS_5,1,en].png new file mode 100644 index 0000000000..935ccb6489 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_titleMedium,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:310e8dfa7d52b5ee835243b1025a7e20ec3fb7dafee62c230c870720e91cf897 +size 7044 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_titleSmall,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_titleSmall,NEXUS_5,1,en].png new file mode 100644 index 0000000000..6316774563 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_titleSmall,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7c4cbc97971b8a1561c232f14cb8600fea59527e7315bca9d225dde13cb1edd9 +size 6223 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.login.changeserver_null_DefaultGroup_ChangeServerViewDarkPreview_,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.login.changeserver_null_DefaultGroup_ChangeServerViewDarkPreview_,NEXUS_5,1,en].png new file mode 100644 index 0000000000..b8fd07a2b9 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.login.changeserver_null_DefaultGroup_ChangeServerViewDarkPreview_,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c434e7bb1316fdd1668c9d41675ff7fe1acc62dfdc6c64e96e485155a51befc4 +size 27698 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.login.changeserver_null_DefaultGroup_ChangeServerContentPreview_,NEXUS_5,1,light,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.login.changeserver_null_DefaultGroup_ChangeServerViewLightPreview_,NEXUS_5,1,en].png similarity index 100% rename from tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.login.changeserver_null_DefaultGroup_ChangeServerContentPreview_,NEXUS_5,1,light,en].png rename to tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.login.changeserver_null_DefaultGroup_ChangeServerViewLightPreview_,NEXUS_5,1,en].png diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.login.root_null_DefaultGroup_LoginRootScreenDarkPreview_,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.login.root_null_DefaultGroup_LoginRootScreenDarkPreview_,NEXUS_5,1,en].png new file mode 100644 index 0000000000..640514fca1 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.login.root_null_DefaultGroup_LoginRootScreenDarkPreview_,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7393dde7da886bec54405dc602e6584eca8d8617f3f28d9b00e708b0381f3c2b +size 25315 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.login.root_null_DefaultGroup_LoginContentPreview_,NEXUS_5,1,light,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.login.root_null_DefaultGroup_LoginRootScreenLightPreview_,NEXUS_5,1,en].png similarity index 100% rename from tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.login.root_null_DefaultGroup_LoginContentPreview_,NEXUS_5,1,light,en].png rename to tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.login.root_null_DefaultGroup_LoginRootScreenLightPreview_,NEXUS_5,1,en].png diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.logout_null_DefaultGroup_LogoutPreferenceViewDarkPreview_,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.logout_null_DefaultGroup_LogoutPreferenceViewDarkPreview_,NEXUS_5,1,en].png new file mode 100644 index 0000000000..ad57707ebb --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.logout_null_DefaultGroup_LogoutPreferenceViewDarkPreview_,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5151b9d544a6e50a3c3f2993d33e494ce3779c05802f05542706ebd10ba38373 +size 7245 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.logout_null_DefaultGroup_LogoutContentPreview_,NEXUS_5,1,light,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.logout_null_DefaultGroup_LogoutPreferenceViewLightPreview_,NEXUS_5,1,en].png similarity index 100% rename from tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.logout_null_DefaultGroup_LogoutContentPreview_,NEXUS_5,1,light,en].png rename to tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.logout_null_DefaultGroup_LogoutPreferenceViewLightPreview_,NEXUS_5,1,en].png diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline.components_null_DefaultGroup_MatrixUserRowDarkPreview_,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline.components_null_DefaultGroup_MatrixUserRowDarkPreview_,NEXUS_5,1,en].png new file mode 100644 index 0000000000..58ab573693 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline.components_null_DefaultGroup_MatrixUserRowDarkPreview_,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ef86e92ea3caad3687d66458e3b0832361808692783671db54dd321d61564792 +size 5836 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline.components_null_DefaultGroup_MatrixUserRowLightPreview_,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline.components_null_DefaultGroup_MatrixUserRowLightPreview_,NEXUS_5,1,en].png new file mode 100644 index 0000000000..9067e20c9d --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline.components_null_DefaultGroup_MatrixUserRowLightPreview_,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:674265aa2728d2f1724abcf600a573307d69d8dd77212eaf269176e56dc82fd5 +size 5610 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenDarkPreview__0,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenDarkPreview__0,NEXUS_5,1,en].png new file mode 100644 index 0000000000..5ea5c861b4 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenDarkPreview__0,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6b49b04090d8da089c170c82f864de5bf0edca49a3db38367aa0b2d0f42147e8 +size 31658 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.messages.timeline_null_DefaultGroup_TimelineItemsPreview__1,NEXUS_5,1,dark,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenDarkPreview__1,NEXUS_5,1,en].png similarity index 100% rename from tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.messages.timeline_null_DefaultGroup_TimelineItemsPreview__1,NEXUS_5,1,dark,en].png rename to tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenDarkPreview__1,NEXUS_5,1,en].png diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenDarkPreview__2,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenDarkPreview__2,NEXUS_5,1,en].png new file mode 100644 index 0000000000..4fe710e166 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenDarkPreview__2,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a0af0dec6058708a9e8ef643bfc9401d29be31808b9882fdc112b52da240103b +size 33508 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.messages.timeline_null_DefaultGroup_TimelineItemsPreview__3,NEXUS_5,1,dark,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenDarkPreview__3,NEXUS_5,1,en].png similarity index 100% rename from tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.messages.timeline_null_DefaultGroup_TimelineItemsPreview__3,NEXUS_5,1,dark,en].png rename to tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenDarkPreview__3,NEXUS_5,1,en].png diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenDarkPreview__4,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenDarkPreview__4,NEXUS_5,1,en].png new file mode 100644 index 0000000000..8566bb320b --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenDarkPreview__4,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c9607ad7cab7d64ef9eafdcaa33090b2475b69a742fd80b10327e8506248edf8 +size 29598 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.messages.timeline_null_DefaultGroup_TimelineItemsPreview__5,NEXUS_5,1,dark,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenDarkPreview__5,NEXUS_5,1,en].png similarity index 100% rename from tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.messages.timeline_null_DefaultGroup_TimelineItemsPreview__5,NEXUS_5,1,dark,en].png rename to tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenDarkPreview__5,NEXUS_5,1,en].png diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.messages.timeline_null_DefaultGroup_TimelineItemsPreview__0,NEXUS_5,1,light,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenLightPreview__0,NEXUS_5,1,en].png similarity index 100% rename from tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.messages.timeline_null_DefaultGroup_TimelineItemsPreview__0,NEXUS_5,1,light,en].png rename to tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenLightPreview__0,NEXUS_5,1,en].png diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.messages.timeline_null_DefaultGroup_TimelineItemsPreview__1,NEXUS_5,1,light,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenLightPreview__1,NEXUS_5,1,en].png similarity index 100% rename from tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.messages.timeline_null_DefaultGroup_TimelineItemsPreview__1,NEXUS_5,1,light,en].png rename to tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenLightPreview__1,NEXUS_5,1,en].png diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.messages.timeline_null_DefaultGroup_TimelineItemsPreview__2,NEXUS_5,1,light,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenLightPreview__2,NEXUS_5,1,en].png similarity index 100% rename from tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.messages.timeline_null_DefaultGroup_TimelineItemsPreview__2,NEXUS_5,1,light,en].png rename to tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenLightPreview__2,NEXUS_5,1,en].png diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.messages.timeline_null_DefaultGroup_TimelineItemsPreview__3,NEXUS_5,1,light,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenLightPreview__3,NEXUS_5,1,en].png similarity index 100% rename from tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.messages.timeline_null_DefaultGroup_TimelineItemsPreview__3,NEXUS_5,1,light,en].png rename to tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenLightPreview__3,NEXUS_5,1,en].png diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.messages.timeline_null_DefaultGroup_TimelineItemsPreview__4,NEXUS_5,1,light,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenLightPreview__4,NEXUS_5,1,en].png similarity index 100% rename from tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.messages.timeline_null_DefaultGroup_TimelineItemsPreview__4,NEXUS_5,1,light,en].png rename to tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenLightPreview__4,NEXUS_5,1,en].png diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.messages.timeline_null_DefaultGroup_TimelineItemsPreview__5,NEXUS_5,1,light,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenLightPreview__5,NEXUS_5,1,en].png similarity index 100% rename from tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.messages.timeline_null_DefaultGroup_TimelineItemsPreview__5,NEXUS_5,1,light,en].png rename to tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenLightPreview__5,NEXUS_5,1,en].png diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.preferences.root_null_DefaultGroup_PreferencesRootViewDarkPreview_,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.preferences.root_null_DefaultGroup_PreferencesRootViewDarkPreview_,NEXUS_5,1,en].png new file mode 100644 index 0000000000..80c9003f06 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.preferences.root_null_DefaultGroup_PreferencesRootViewDarkPreview_,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:55f4d1755b6692051b0fcdf7014cf567cd924dbebed18d22999a6472618a44c2 +size 26524 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.preferences.root_null_DefaultGroup_PreferencesRootViewLightPreview_,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.preferences.root_null_DefaultGroup_PreferencesRootViewLightPreview_,NEXUS_5,1,en].png new file mode 100644 index 0000000000..4ee53a9091 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.preferences.root_null_DefaultGroup_PreferencesRootViewLightPreview_,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:30a23b12d9f25e216e15df05ea4be2ca5d10d16b1c4be25fee876a255c6a19b3 +size 26287 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.rageshake.bugreport_null_DefaultGroup_BugReportViewDarkPreview_,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.rageshake.bugreport_null_DefaultGroup_BugReportViewDarkPreview_,NEXUS_5,1,en].png new file mode 100644 index 0000000000..547f890601 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.rageshake.bugreport_null_DefaultGroup_BugReportViewDarkPreview_,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3a73f66fa8ddb5c69580e59bf86364f430cf89c0710bcba98b8d8ccf605d16c2 +size 50660 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.rageshake.bugreport_null_DefaultGroup_BugReportContentPreview_,NEXUS_5,1,light,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.rageshake.bugreport_null_DefaultGroup_BugReportViewLightPreview_,NEXUS_5,1,en].png similarity index 100% rename from tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.rageshake.bugreport_null_DefaultGroup_BugReportContentPreview_,NEXUS_5,1,light,en].png rename to tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.rageshake.bugreport_null_DefaultGroup_BugReportViewLightPreview_,NEXUS_5,1,en].png diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.rageshake.crash.ui_null_DefaultGroup_CrashDetectionContentDarkPreview_,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.rageshake.crash.ui_null_DefaultGroup_CrashDetectionContentDarkPreview_,NEXUS_5,1,en].png new file mode 100644 index 0000000000..374ed70e4e --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.rageshake.crash.ui_null_DefaultGroup_CrashDetectionContentDarkPreview_,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f9ab15f317d30dbbd2dd1efae4e364e05e0523790b506d970465879f71e41dec +size 28995 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.rageshake.crash.ui_null_DefaultGroup_CrashDetectionContentLightPreview_,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.rageshake.crash.ui_null_DefaultGroup_CrashDetectionContentLightPreview_,NEXUS_5,1,en].png new file mode 100644 index 0000000000..35277743a5 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.rageshake.crash.ui_null_DefaultGroup_CrashDetectionContentLightPreview_,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:971012a67b23f0c07957b439af663ed44b47310089e20374bee1d8c4712bd209 +size 29213 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.rageshake.detection_null_DefaultGroup_RageshakeDialogContentDarkPreview_,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.rageshake.detection_null_DefaultGroup_RageshakeDialogContentDarkPreview_,NEXUS_5,1,en].png new file mode 100644 index 0000000000..396101cd5f --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.rageshake.detection_null_DefaultGroup_RageshakeDialogContentDarkPreview_,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:643bb6ca2dba3bd686d633beb103cd92a70547486c397d6472b1488d57b027c9 +size 33156 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.rageshake.detection_null_DefaultGroup_RageshakeDialogContentLightPreview_,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.rageshake.detection_null_DefaultGroup_RageshakeDialogContentLightPreview_,NEXUS_5,1,en].png new file mode 100644 index 0000000000..082816d1dc --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.rageshake.detection_null_DefaultGroup_RageshakeDialogContentLightPreview_,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:127f77b02e010acd936c86d1b54c25e152e3bfe660a0cf07c674bd17569a72cc +size 33163 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.rageshake.preferences_null_DefaultGroup_RageshakePreferencesViewDarkPreview_,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.rageshake.preferences_null_DefaultGroup_RageshakePreferencesViewDarkPreview_,NEXUS_5,1,en].png new file mode 100644 index 0000000000..f305574fe8 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.rageshake.preferences_null_DefaultGroup_RageshakePreferencesViewDarkPreview_,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2672387b0b02aee24ecdef31db43665b08b5660209d25b80da7286bc9517a60e +size 18727 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.rageshake.preferences_null_DefaultGroup_RageshakePreferencesViewPreview_,NEXUS_5,1,light,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.rageshake.preferences_null_DefaultGroup_RageshakePreferencesViewLightPreview_,NEXUS_5,1,en].png similarity index 100% rename from tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.rageshake.preferences_null_DefaultGroup_RageshakePreferencesViewPreview_,NEXUS_5,1,light,en].png rename to tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.rageshake.preferences_null_DefaultGroup_RageshakePreferencesViewLightPreview_,NEXUS_5,1,en].png diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.rageshake.preferences_null_DefaultGroup_RageshakePreferencesViewNotSupportedDarkPreview_,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.rageshake.preferences_null_DefaultGroup_RageshakePreferencesViewNotSupportedDarkPreview_,NEXUS_5,1,en].png new file mode 100644 index 0000000000..bd30d0b256 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.rageshake.preferences_null_DefaultGroup_RageshakePreferencesViewNotSupportedDarkPreview_,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1f37a8d115ca1253fb09505bc09cb14d7623d90cfba87940f53ff9f8033f724b +size 16614 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.rageshake.preferences_null_DefaultGroup_RageshakePreferenceNotSupportedPreview_,NEXUS_5,1,light,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.rageshake.preferences_null_DefaultGroup_RageshakePreferencesViewNotSupportedLightPreview_,NEXUS_5,1,en].png similarity index 100% rename from tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.rageshake.preferences_null_DefaultGroup_RageshakePreferenceNotSupportedPreview_,NEXUS_5,1,light,en].png rename to tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.rageshake.preferences_null_DefaultGroup_RageshakePreferencesViewNotSupportedLightPreview_,NEXUS_5,1,en].png diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.roomlist_null_DefaultGroup_RoomListViewDarkPreview_,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.roomlist_null_DefaultGroup_RoomListViewDarkPreview_,NEXUS_5,1,en].png new file mode 100644 index 0000000000..877935d457 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.roomlist_null_DefaultGroup_RoomListViewDarkPreview_,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c086ed8fea4f3369a93b5f00e76b8ecdfe4e7874042d277583987db0003bca4b +size 34956 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.roomlist_null_DefaultGroup_RoomListViewLightPreview_,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.roomlist_null_DefaultGroup_RoomListViewLightPreview_,NEXUS_5,1,en].png new file mode 100644 index 0000000000..517438eb48 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.roomlist_null_DefaultGroup_RoomListViewLightPreview_,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ab3d7fb8f67d178af44db4bae63f606eb88612c18b84d989c382fc17b9df068b +size 32363 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.avatar_null_DefaultGroup_AvatarDarkPreview_,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.avatar_null_DefaultGroup_AvatarDarkPreview_,NEXUS_5,1,en].png new file mode 100644 index 0000000000..e33d3ad878 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.avatar_null_DefaultGroup_AvatarDarkPreview_,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f59bf1e9e6695cab308f19400f8a4c58114b3f7e1a97e649c263e3b5b07b7de3 +size 8527 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.avatar_null_DefaultGroup_InitialsAvatarPreview_,NEXUS_5,1,light,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.avatar_null_DefaultGroup_AvatarLightPreview_,NEXUS_5,1,en].png similarity index 100% rename from tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.avatar_null_DefaultGroup_InitialsAvatarPreview_,NEXUS_5,1,light,en].png rename to tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.avatar_null_DefaultGroup_AvatarLightPreview_,NEXUS_5,1,en].png diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.dialogs_null_DefaultGroup_ConfirmationDialogDarkPreview_,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.dialogs_null_DefaultGroup_ConfirmationDialogDarkPreview_,NEXUS_5,1,en].png new file mode 100644 index 0000000000..886a306c07 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.dialogs_null_DefaultGroup_ConfirmationDialogDarkPreview_,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8988d36c35a1b134e878a7276d18cf2cb7779ff6ceb4a7436cfa9aa2ad7bed87 +size 18722 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.dialogs_null_DefaultGroup_ConfirmationDialogLightPreview_,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.dialogs_null_DefaultGroup_ConfirmationDialogLightPreview_,NEXUS_5,1,en].png new file mode 100644 index 0000000000..7720c31f21 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.dialogs_null_DefaultGroup_ConfirmationDialogLightPreview_,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cf1eaf7c71a6bd5855b40efc0852cf023c790142502fa1149878c8d0dd209be3 +size 18495 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.dialogs_null_DefaultGroup_ErrorDialogDarkPreview_,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.dialogs_null_DefaultGroup_ErrorDialogDarkPreview_,NEXUS_5,1,en].png new file mode 100644 index 0000000000..4fa59da9a0 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.dialogs_null_DefaultGroup_ErrorDialogDarkPreview_,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eaf83db86c387f95244f106ee642a0524c24030f61d62f3cba3566fb37c00dcf +size 12280 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.dialogs_null_DefaultGroup_ErrorDialogLightPreview_,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.dialogs_null_DefaultGroup_ErrorDialogLightPreview_,NEXUS_5,1,en].png new file mode 100644 index 0000000000..2a7fdb03fc --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.dialogs_null_DefaultGroup_ErrorDialogLightPreview_,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a3766ad81b5bb9b1e674ad8ad6efc481a95bfd655195d5c8b814ba2f16594640 +size 12374 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.preferences_null_DefaultGroup_PreferenceCategoryDarkPreview_,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.preferences_null_DefaultGroup_PreferenceCategoryDarkPreview_,NEXUS_5,1,en].png new file mode 100644 index 0000000000..387b8dcbeb --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.preferences_null_DefaultGroup_PreferenceCategoryDarkPreview_,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4c470aa6515fa5b7564805ccffecbb5c0632d690ea9311868b81f0456e7e0e19 +size 13138 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.preferences_null_DefaultGroup_PreferenceCategoryPreview_,NEXUS_5,1,light,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.preferences_null_DefaultGroup_PreferenceCategoryLightPreview_,NEXUS_5,1,en].png similarity index 100% rename from tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.preferences_null_DefaultGroup_PreferenceCategoryPreview_,NEXUS_5,1,light,en].png rename to tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.preferences_null_DefaultGroup_PreferenceCategoryLightPreview_,NEXUS_5,1,en].png diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.preferences_null_DefaultGroup_PreferenceSlideDarkPreview_,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.preferences_null_DefaultGroup_PreferenceSlideDarkPreview_,NEXUS_5,1,en].png new file mode 100644 index 0000000000..1bf464f832 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.preferences_null_DefaultGroup_PreferenceSlideDarkPreview_,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f5141e6fedfb2e6c22abbe9efd30258223283ee470d79d3aa59bbf58bc1ce900 +size 8904 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.preferences_null_DefaultGroup_PreferenceSlidePreview_,NEXUS_5,1,light,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.preferences_null_DefaultGroup_PreferenceSlideLightPreview_,NEXUS_5,1,en].png similarity index 100% rename from tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.preferences_null_DefaultGroup_PreferenceSlidePreview_,NEXUS_5,1,light,en].png rename to tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.preferences_null_DefaultGroup_PreferenceSlideLightPreview_,NEXUS_5,1,en].png diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.preferences_null_DefaultGroup_PreferenceSwitchDarkPreview_,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.preferences_null_DefaultGroup_PreferenceSwitchDarkPreview_,NEXUS_5,1,en].png new file mode 100644 index 0000000000..a160900ada --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.preferences_null_DefaultGroup_PreferenceSwitchDarkPreview_,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb61f940a3a773ed05e515807797b88eb4a4f38ffc6f99a5c5816bd5d403fbdd +size 7546 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.preferences_null_DefaultGroup_PreferenceSwitchPreview_,NEXUS_5,1,light,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.preferences_null_DefaultGroup_PreferenceSwitchLightPreview_,NEXUS_5,1,en].png similarity index 100% rename from tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.preferences_null_DefaultGroup_PreferenceSwitchPreview_,NEXUS_5,1,light,en].png rename to tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.preferences_null_DefaultGroup_PreferenceSwitchLightPreview_,NEXUS_5,1,en].png diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.preferences_null_DefaultGroup_PreferenceTextDarkPreview_,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.preferences_null_DefaultGroup_PreferenceTextDarkPreview_,NEXUS_5,1,en].png new file mode 100644 index 0000000000..49d48a0ead --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.preferences_null_DefaultGroup_PreferenceTextDarkPreview_,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:55d597b5b3bb53c1f7fcd96104548c6b93de4a4ef464302c73ba04c6a6d85afd +size 6117 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.preferences_null_DefaultGroup_PreferenceTextPreview_,NEXUS_5,1,light,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.preferences_null_DefaultGroup_PreferenceTextLightPreview_,NEXUS_5,1,en].png similarity index 100% rename from tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.preferences_null_DefaultGroup_PreferenceTextPreview_,NEXUS_5,1,light,en].png rename to tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.preferences_null_DefaultGroup_PreferenceTextLightPreview_,NEXUS_5,1,en].png diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.preferences_null_DefaultGroup_PreferenceScreenPreview_,NEXUS_5,1,dark,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.preferences_null_DefaultGroup_PreferenceViewDarkPreview_,NEXUS_5,1,en].png similarity index 100% rename from tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.preferences_null_DefaultGroup_PreferenceScreenPreview_,NEXUS_5,1,dark,en].png rename to tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.preferences_null_DefaultGroup_PreferenceViewDarkPreview_,NEXUS_5,1,en].png diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.preferences_null_DefaultGroup_PreferenceScreenPreview_,NEXUS_5,1,light,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.preferences_null_DefaultGroup_PreferenceViewLightPreview_,NEXUS_5,1,en].png similarity index 100% rename from tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.preferences_null_DefaultGroup_PreferenceScreenPreview_,NEXUS_5,1,light,en].png rename to tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.preferences_null_DefaultGroup_PreferenceViewLightPreview_,NEXUS_5,1,en].png diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components_null_DefaultGroup_LabelledCheckboxDarkPreview_,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components_null_DefaultGroup_LabelledCheckboxDarkPreview_,NEXUS_5,1,en].png new file mode 100644 index 0000000000..fb4edaf477 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components_null_DefaultGroup_LabelledCheckboxDarkPreview_,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bcbf114b16949dc147ed8437ad80470635c44716e9938b441d8ec2bd453bef66 +size 7801 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components_null_DefaultGroup_LabelledCheckboxPreview_,NEXUS_5,1,light,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components_null_DefaultGroup_LabelledCheckboxLightPreview_,NEXUS_5,1,en].png similarity index 100% rename from tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components_null_DefaultGroup_LabelledCheckboxPreview_,NEXUS_5,1,light,en].png rename to tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components_null_DefaultGroup_LabelledCheckboxLightPreview_,NEXUS_5,1,en].png diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components_null_DefaultGroup_ProgressDialogDarkPreview_,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components_null_DefaultGroup_ProgressDialogDarkPreview_,NEXUS_5,1,en].png new file mode 100644 index 0000000000..91688bd758 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components_null_DefaultGroup_ProgressDialogDarkPreview_,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:17d4e90669b132283c8be57ac9e35fda09263f28f5f1075a3f8878ef5357cff3 +size 9648 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components_null_DefaultGroup_ProgressDialogLightPreview_,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components_null_DefaultGroup_ProgressDialogLightPreview_,NEXUS_5,1,en].png new file mode 100644 index 0000000000..bd42f78314 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components_null_DefaultGroup_ProgressDialogLightPreview_,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:473beb3dcaeb9325aa92f98582b322fe74e2026659fe3cbdff793ee68246e7c1 +size 9923 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme.components_null_DefaultGroup_ButtonsDarkPreview_,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme.components_null_DefaultGroup_ButtonsDarkPreview_,NEXUS_5,1,en].png new file mode 100644 index 0000000000..0eadae1fce --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme.components_null_DefaultGroup_ButtonsDarkPreview_,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dce173f40598eb7ee75febe9135c6563ef7b35e6861dcf6f2d09c0af5febebb8 +size 13450 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme.components_null_DefaultGroup_ButtonsLightPreview_,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme.components_null_DefaultGroup_ButtonsLightPreview_,NEXUS_5,1,en].png new file mode 100644 index 0000000000..b46401dbe3 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme.components_null_DefaultGroup_ButtonsLightPreview_,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:52bbba0b16671da66ae06ad549151f794023043025971729ae1f5b9d6bb8f4ae +size 12689 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme.components_null_DefaultGroup_CheckboxesDarkPreview_,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme.components_null_DefaultGroup_CheckboxesDarkPreview_,NEXUS_5,1,en].png new file mode 100644 index 0000000000..4ee8b68466 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme.components_null_DefaultGroup_CheckboxesDarkPreview_,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:72b4f5c01f5236b7141b222cf8414f303ac60b74c386d2c71fa6348b2ab1173b +size 7506 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme.components_null_DefaultGroup_CheckboxesLightPreview_,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme.components_null_DefaultGroup_CheckboxesLightPreview_,NEXUS_5,1,en].png new file mode 100644 index 0000000000..3fe644f51e --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme.components_null_DefaultGroup_CheckboxesLightPreview_,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a3fc3903727b9ff1941ae59bf0566ac7485705813606550ad8ac615726e4efab +size 6121 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme.components_null_DefaultGroup_DividerDarkPreview_,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme.components_null_DefaultGroup_DividerDarkPreview_,NEXUS_5,1,en].png new file mode 100644 index 0000000000..8d3376900b --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme.components_null_DefaultGroup_DividerDarkPreview_,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:274521bb420e73dcce6bca9d4328909d896998e4fdf3cebe79dd7c6c4873db45 +size 4469 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme.components_null_DefaultGroup_DividerLightPreview_,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme.components_null_DefaultGroup_DividerLightPreview_,NEXUS_5,1,en].png new file mode 100644 index 0000000000..3ffdafd3ac --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme.components_null_DefaultGroup_DividerLightPreview_,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9e3a82fb55f7a5be9ddbb5a8146d4fe53ad6111e21b40912428fd95dde85346c +size 4470 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme.components_null_DefaultGroup_OutlinedTextFieldsDarkPreview_,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme.components_null_DefaultGroup_OutlinedTextFieldsDarkPreview_,NEXUS_5,1,en].png new file mode 100644 index 0000000000..fb679b5908 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme.components_null_DefaultGroup_OutlinedTextFieldsDarkPreview_,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e842ff561687f991106043a4f6b51455bd917db879ef1d624bd59df155ac61dd +size 21932 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme.components_null_DefaultGroup_OutlinedTextFieldsLightPreview_,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme.components_null_DefaultGroup_OutlinedTextFieldsLightPreview_,NEXUS_5,1,en].png new file mode 100644 index 0000000000..36cc8f6ff1 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme.components_null_DefaultGroup_OutlinedTextFieldsLightPreview_,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6c0ef4d55a1a21fdcec03d5f95871cb0bea94350cbfc5ed7a50cc343df7898ec +size 21054 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme.components_null_DefaultGroup_SlidersDarkPreview_,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme.components_null_DefaultGroup_SlidersDarkPreview_,NEXUS_5,1,en].png new file mode 100644 index 0000000000..0261662a40 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme.components_null_DefaultGroup_SlidersDarkPreview_,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:73a3e053cfbc83db5222b89209597ba56c3797da224b2e4a70286740c686c2ab +size 6388 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme.components_null_DefaultGroup_SlidersLightPreview_,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme.components_null_DefaultGroup_SlidersLightPreview_,NEXUS_5,1,en].png new file mode 100644 index 0000000000..d7d6b5016d --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme.components_null_DefaultGroup_SlidersLightPreview_,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5b9632ce17a34536ad14ada77f5852c43d0628444a2ee7a1b129432d98e92399 +size 6290 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.tests.uitests_null_DefaultGroup_ShowkaseButtonDarkPreview_null,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.tests.uitests_null_DefaultGroup_ShowkaseButtonDarkPreview_null,NEXUS_5,1,en].png new file mode 100644 index 0000000000..d3e7ef562a --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.tests.uitests_null_DefaultGroup_ShowkaseButtonDarkPreview_null,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0eebdfaaf064be053b22b548fdf45fe218a341fa8718d204e8c2463e45a374bb +size 10649 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.tests.uitests_null_Buttons_Showkasebutton_null,NEXUS_5,1,light,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.tests.uitests_null_DefaultGroup_ShowkaseButtonLightPreview_null,NEXUS_5,1,en].png similarity index 100% rename from tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.tests.uitests_null_Buttons_Showkasebutton_null,NEXUS_5,1,light,en].png rename to tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.tests.uitests_null_DefaultGroup_ShowkaseButtonLightPreview_null,NEXUS_5,1,en].png diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[Color_Material Design_DarkGrey,NEXUS_5,1,dark,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[Color_Material Design_DarkGrey,NEXUS_5,1,dark,en].png deleted file mode 100644 index 44aabba74b..0000000000 --- a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[Color_Material Design_DarkGrey,NEXUS_5,1,dark,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:457c973681addb003e8f84ce3706361cfe0bb88845799838971da910476a4ba8 -size 4371 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[Color_Material Design_LightGrey,NEXUS_5,1,dark,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[Color_Material Design_LightGrey,NEXUS_5,1,dark,en].png deleted file mode 100644 index 35c67a316c..0000000000 --- a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[Color_Material Design_LightGrey,NEXUS_5,1,dark,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f2c05b0f79fea3df1147a454202f1ca2973d48939e4fc296be171ad98f272333 -size 4371 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_Body Large,NEXUS_5,1,dark,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_Body Large,NEXUS_5,1,dark,en].png deleted file mode 100644 index 786ac1495b..0000000000 --- a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_Body Large,NEXUS_5,1,dark,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1d1b2622226f026d0231020c389b6e99a1c50cd0bc84d77df6060e390c8521fb -size 7056 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_Headline Small,NEXUS_5,1,dark,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_Headline Small,NEXUS_5,1,dark,en].png deleted file mode 100644 index ab15d2cfd5..0000000000 --- a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_Headline Small,NEXUS_5,1,dark,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:de0b7b271b6057db6ef81888356583bdc3432e4f26a52c58586f88043de20021 -size 9476 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_Headline Small,NEXUS_5,1,light,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_Headline Small,NEXUS_5,1,light,en].png deleted file mode 100644 index 02e426ff7b..0000000000 --- a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[Typo_Element_Headline Small,NEXUS_5,1,light,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d02db7b3881676d8b194e6871e178af8af99e09bd5cc15b865a25bd405e3fc33 -size 9445 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.avatar_null_DefaultGroup_InitialsAvatarPreview_,NEXUS_5,1,dark,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.avatar_null_DefaultGroup_InitialsAvatarPreview_,NEXUS_5,1,dark,en].png deleted file mode 100644 index 2c7e9fbd5d..0000000000 --- a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.avatar_null_DefaultGroup_InitialsAvatarPreview_,NEXUS_5,1,dark,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9c0fb883d948d8177cd32eb81b24e7b104acd7b6b120b73d6693088f947701da -size 8295 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.dialogs_null_DefaultGroup_ConfirmationDialogPreview_,NEXUS_5,1,dark,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.dialogs_null_DefaultGroup_ConfirmationDialogPreview_,NEXUS_5,1,dark,en].png deleted file mode 100644 index 29165db48c..0000000000 --- a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.dialogs_null_DefaultGroup_ConfirmationDialogPreview_,NEXUS_5,1,dark,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f6d88788a186b08d8e2834c39efb1c6476cf51aec70aa08dc806eb69e2d98d9a -size 20004 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.dialogs_null_DefaultGroup_ConfirmationDialogPreview_,NEXUS_5,1,light,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.dialogs_null_DefaultGroup_ConfirmationDialogPreview_,NEXUS_5,1,light,en].png deleted file mode 100644 index 4193346f3c..0000000000 --- a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.dialogs_null_DefaultGroup_ConfirmationDialogPreview_,NEXUS_5,1,light,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:45860d45aefad7cfd7d7b9f92146799860a5ede7e815d5b28b606fc566b3838c -size 18344 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.dialogs_null_DefaultGroup_ErrorDialogPreview_,NEXUS_5,1,dark,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.dialogs_null_DefaultGroup_ErrorDialogPreview_,NEXUS_5,1,dark,en].png deleted file mode 100644 index 8bba8846db..0000000000 --- a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.dialogs_null_DefaultGroup_ErrorDialogPreview_,NEXUS_5,1,dark,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:39d924e3718d7f045c15888373a96ec85d4afd0ef405bf25edc453fddaacdc55 -size 13082 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.dialogs_null_DefaultGroup_ErrorDialogPreview_,NEXUS_5,1,light,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.dialogs_null_DefaultGroup_ErrorDialogPreview_,NEXUS_5,1,light,en].png deleted file mode 100644 index 49b0df4d6f..0000000000 --- a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.dialogs_null_DefaultGroup_ErrorDialogPreview_,NEXUS_5,1,light,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5e5bf72f9d90cbe4b4136a4a2e30168895a3354c6f35ed1d4fc77bfe2987fdaf -size 12565 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.preferences_null_DefaultGroup_PreferenceCategoryPreview_,NEXUS_5,1,dark,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.preferences_null_DefaultGroup_PreferenceCategoryPreview_,NEXUS_5,1,dark,en].png deleted file mode 100644 index 2d55ca4648..0000000000 --- a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.preferences_null_DefaultGroup_PreferenceCategoryPreview_,NEXUS_5,1,dark,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4e23f8342179fc1a88c278f8e81ddb026034958a6b2fdbaae06ff26dc282d483 -size 11654 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.preferences_null_DefaultGroup_PreferenceSlidePreview_,NEXUS_5,1,dark,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.preferences_null_DefaultGroup_PreferenceSlidePreview_,NEXUS_5,1,dark,en].png deleted file mode 100644 index 302811af53..0000000000 --- a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.preferences_null_DefaultGroup_PreferenceSlidePreview_,NEXUS_5,1,dark,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:eb61547b9e5b4666abd74145086ae2ee846dced3099f9b36dd2534047caf3266 -size 8465 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.preferences_null_DefaultGroup_PreferenceSwitchPreview_,NEXUS_5,1,dark,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.preferences_null_DefaultGroup_PreferenceSwitchPreview_,NEXUS_5,1,dark,en].png deleted file mode 100644 index 707aefe0fb..0000000000 --- a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.preferences_null_DefaultGroup_PreferenceSwitchPreview_,NEXUS_5,1,dark,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d5db2a9a3f2d9bec3d74b45892ee453c51afc3b3b41d6ec1624d72a8377176b4 -size 7095 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.preferences_null_DefaultGroup_PreferenceTextPreview_,NEXUS_5,1,dark,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.preferences_null_DefaultGroup_PreferenceTextPreview_,NEXUS_5,1,dark,en].png deleted file mode 100644 index 2fd0494ca5..0000000000 --- a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components.preferences_null_DefaultGroup_PreferenceTextPreview_,NEXUS_5,1,dark,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b9a36ce6978aa3182e519789a8ea7e1399ae63da630fa7f6727248ba8ba010f7 -size 4837 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components_null_DefaultGroup_LabelledCheckboxPreview_,NEXUS_5,1,dark,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components_null_DefaultGroup_LabelledCheckboxPreview_,NEXUS_5,1,dark,en].png deleted file mode 100644 index 9aa044dfae..0000000000 --- a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components_null_DefaultGroup_LabelledCheckboxPreview_,NEXUS_5,1,dark,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f331a07e5b56c550023b9c4eff3afd71fece8dd4d649fd1e2aaa178c27557fda -size 5007 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components_null_DefaultGroup_ProgressDialogPreview_,NEXUS_5,1,dark,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components_null_DefaultGroup_ProgressDialogPreview_,NEXUS_5,1,dark,en].png deleted file mode 100644 index 9c2e5c3087..0000000000 --- a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components_null_DefaultGroup_ProgressDialogPreview_,NEXUS_5,1,dark,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e302ba0695a7663e1abcb98d47cecf5b78968d76202841f9e251313d3dd8c579 -size 10232 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components_null_DefaultGroup_ProgressDialogPreview_,NEXUS_5,1,light,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components_null_DefaultGroup_ProgressDialogPreview_,NEXUS_5,1,light,en].png deleted file mode 100644 index 2a54849c8d..0000000000 --- a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.designsystem.components_null_DefaultGroup_ProgressDialogPreview_,NEXUS_5,1,light,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:08918409e8daa9f2d3498fe9f463323e737e59ec8472a50b6bf5ec13a1abacfc -size 9576 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.login.changeserver_null_DefaultGroup_ChangeServerContentPreview_,NEXUS_5,1,dark,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.login.changeserver_null_DefaultGroup_ChangeServerContentPreview_,NEXUS_5,1,dark,en].png deleted file mode 100644 index f168f5fb81..0000000000 --- a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.login.changeserver_null_DefaultGroup_ChangeServerContentPreview_,NEXUS_5,1,dark,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0689e18b72a961ecbea6011c73568703ba255375fdb9bbe34b2e94f08c379cc7 -size 27841 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.login.root_null_DefaultGroup_LoginContentPreview_,NEXUS_5,1,dark,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.login.root_null_DefaultGroup_LoginContentPreview_,NEXUS_5,1,dark,en].png deleted file mode 100644 index 815940ac34..0000000000 --- a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.login.root_null_DefaultGroup_LoginContentPreview_,NEXUS_5,1,dark,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bc2f6c7463b55716720344a2e873774ea09d98717add30b748a54f1e0374ec04 -size 24751 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.logout_null_DefaultGroup_LogoutContentPreview_,NEXUS_5,1,dark,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.logout_null_DefaultGroup_LogoutContentPreview_,NEXUS_5,1,dark,en].png deleted file mode 100644 index 89df9fb9e1..0000000000 --- a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.logout_null_DefaultGroup_LogoutContentPreview_,NEXUS_5,1,dark,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:accc42a849df3c0d8a16de0e21842139558d8c68cdcf9efcccf6b58a7cb3b4b3 -size 4742 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.messages.timeline_null_DefaultGroup_TimelineItemsPreview__0,NEXUS_5,1,dark,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.messages.timeline_null_DefaultGroup_TimelineItemsPreview__0,NEXUS_5,1,dark,en].png deleted file mode 100644 index 4676f3504b..0000000000 --- a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.messages.timeline_null_DefaultGroup_TimelineItemsPreview__0,NEXUS_5,1,dark,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3d5fb95fb866a51e2dbc26239dc70e37a92bddc79d4edc027226948dfe323312 -size 30189 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.messages.timeline_null_DefaultGroup_TimelineItemsPreview__2,NEXUS_5,1,dark,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.messages.timeline_null_DefaultGroup_TimelineItemsPreview__2,NEXUS_5,1,dark,en].png deleted file mode 100644 index 2c2a002ae5..0000000000 --- a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.messages.timeline_null_DefaultGroup_TimelineItemsPreview__2,NEXUS_5,1,dark,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:19bcd322392a4d27742a25989810e38d4ac6a38edfb5a228bc13364ed36e7101 -size 31691 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.messages.timeline_null_DefaultGroup_TimelineItemsPreview__4,NEXUS_5,1,dark,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.messages.timeline_null_DefaultGroup_TimelineItemsPreview__4,NEXUS_5,1,dark,en].png deleted file mode 100644 index 9b684aa226..0000000000 --- a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.messages.timeline_null_DefaultGroup_TimelineItemsPreview__4,NEXUS_5,1,dark,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e50733c48b4cb37fc82c228a7013c7aa74e263b13014cb57c7bb1ca0c2ea91c6 -size 28631 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.preferences.root_null_DefaultGroup_PreferencesContentPreview_,NEXUS_5,1,dark,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.preferences.root_null_DefaultGroup_PreferencesContentPreview_,NEXUS_5,1,dark,en].png deleted file mode 100644 index 738199e997..0000000000 --- a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.preferences.root_null_DefaultGroup_PreferencesContentPreview_,NEXUS_5,1,dark,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a588e13eaa5fef1f93443445c15256037a70771260e24ca4ee6700e55519bf50 -size 27107 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.preferences.root_null_DefaultGroup_PreferencesContentPreview_,NEXUS_5,1,light,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.preferences.root_null_DefaultGroup_PreferencesContentPreview_,NEXUS_5,1,light,en].png deleted file mode 100644 index 9270e28bd0..0000000000 --- a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.preferences.root_null_DefaultGroup_PreferencesContentPreview_,NEXUS_5,1,light,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:58f4e6a4bed5bb2fe4cf2556ee04984dc3efb78ccc4bc501f98f733d1d849289 -size 26636 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.rageshake.bugreport_null_DefaultGroup_BugReportContentPreview_,NEXUS_5,1,dark,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.rageshake.bugreport_null_DefaultGroup_BugReportContentPreview_,NEXUS_5,1,dark,en].png deleted file mode 100644 index 91b32ac1a3..0000000000 --- a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.rageshake.bugreport_null_DefaultGroup_BugReportContentPreview_,NEXUS_5,1,dark,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9cf66a0074d1d7842ee176eb6a5e655fe9ed734a95078731cdacd4d7d8f2a80c -size 49391 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.rageshake.crash.ui_null_DefaultGroup_CrashDetectionContentPreview_,NEXUS_5,1,dark,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.rageshake.crash.ui_null_DefaultGroup_CrashDetectionContentPreview_,NEXUS_5,1,dark,en].png deleted file mode 100644 index 706c00952e..0000000000 --- a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.rageshake.crash.ui_null_DefaultGroup_CrashDetectionContentPreview_,NEXUS_5,1,dark,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e04b3a5a4db346d18666fc4df81fdbb1fa84dc526020fdc257c33190e122c11f -size 29757 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.rageshake.crash.ui_null_DefaultGroup_CrashDetectionContentPreview_,NEXUS_5,1,light,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.rageshake.crash.ui_null_DefaultGroup_CrashDetectionContentPreview_,NEXUS_5,1,light,en].png deleted file mode 100644 index a6318eea0e..0000000000 --- a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.rageshake.crash.ui_null_DefaultGroup_CrashDetectionContentPreview_,NEXUS_5,1,light,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:af0d4d6e3dcda60a7aa4aa20df2b012359c21d51bc9b94e4ed04b19b1d8f38e4 -size 28409 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.rageshake.detection_null_DefaultGroup_RageshakeDialogContentPreview_,NEXUS_5,1,dark,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.rageshake.detection_null_DefaultGroup_RageshakeDialogContentPreview_,NEXUS_5,1,dark,en].png deleted file mode 100644 index 20a47c41b4..0000000000 --- a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.rageshake.detection_null_DefaultGroup_RageshakeDialogContentPreview_,NEXUS_5,1,dark,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a4c1e1b89f3692c1441ec502afe20c1b1d3746c996435ba7abfd624ee88995dc -size 34328 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.rageshake.detection_null_DefaultGroup_RageshakeDialogContentPreview_,NEXUS_5,1,light,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.rageshake.detection_null_DefaultGroup_RageshakeDialogContentPreview_,NEXUS_5,1,light,en].png deleted file mode 100644 index 1a442816eb..0000000000 --- a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.rageshake.detection_null_DefaultGroup_RageshakeDialogContentPreview_,NEXUS_5,1,light,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c74aecba85977483d6415f6cacc2a45199f763773fde1a590a96d43d83b2de0e -size 32407 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.rageshake.preferences_null_DefaultGroup_RageshakePreferenceNotSupportedPreview_,NEXUS_5,1,dark,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.rageshake.preferences_null_DefaultGroup_RageshakePreferenceNotSupportedPreview_,NEXUS_5,1,dark,en].png deleted file mode 100644 index 003c8fc202..0000000000 --- a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.rageshake.preferences_null_DefaultGroup_RageshakePreferenceNotSupportedPreview_,NEXUS_5,1,dark,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0a0c3a23a06fa723cf6474fda8f8fb88f876b78d7293121ffb438eddacb834f8 -size 4895 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.rageshake.preferences_null_DefaultGroup_RageshakePreferencesViewPreview_,NEXUS_5,1,dark,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.rageshake.preferences_null_DefaultGroup_RageshakePreferencesViewPreview_,NEXUS_5,1,dark,en].png deleted file mode 100644 index e78a01a2ea..0000000000 --- a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.rageshake.preferences_null_DefaultGroup_RageshakePreferencesViewPreview_,NEXUS_5,1,dark,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:685ec863756abd3036b9db5303684b7a347ae148973670bfbedca421b0d0c464 -size 15532 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.roomlist_null_DefaultGroup_RoomListViewPreview_,NEXUS_5,1,dark,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.roomlist_null_DefaultGroup_RoomListViewPreview_,NEXUS_5,1,dark,en].png deleted file mode 100644 index d3499bc2fc..0000000000 --- a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.roomlist_null_DefaultGroup_RoomListViewPreview_,NEXUS_5,1,dark,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b76198faaae0e5bdc4d7ace41cad029f48603c2ee5dcb8e246cfeb524c1d39ad -size 35856 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.roomlist_null_DefaultGroup_RoomListViewPreview_,NEXUS_5,1,light,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.roomlist_null_DefaultGroup_RoomListViewPreview_,NEXUS_5,1,light,en].png deleted file mode 100644 index fad4fef94a..0000000000 --- a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.features.roomlist_null_DefaultGroup_RoomListViewPreview_,NEXUS_5,1,light,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c1aea2bc7f73fd2b3a7d11fcab917e61025dcd536bb912a4bfd7d0ceb33e726a -size 33553 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.tests.uitests_null_Buttons_Showkasebutton_null,NEXUS_5,1,dark,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.tests.uitests_null_Buttons_Showkasebutton_null,NEXUS_5,1,dark,en].png deleted file mode 100644 index 687e51b32c..0000000000 --- a/tests/uitests/src/test/snapshots/images/io.element.android.x.tests.uitests_ScreenshotTest_preview_tests[io.element.android.x.tests.uitests_null_Buttons_Showkasebutton_null,NEXUS_5,1,dark,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:35d660e370ec4f7f4e0165418a2981f1afe057cac312ee9cad1c4a4dcc02f189 -size 10386 From 732fb9bd1e4c55bc6a71388288c4062d7fbf4320 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Fri, 3 Feb 2023 13:39:43 +0100 Subject: [PATCH 21/22] Fix detekt issue, optimize import, fix color of preference category title --- .../main/kotlin/io/element/android/x/di/AppBindings.kt | 1 - .../android/features/login/root/LoginRootScreen.kt | 1 - .../android/features/messages/timeline/TimelineView.kt | 9 ++++----- .../designsystem/{Type.kt => ElementTextStyles.kt} | 0 .../components/preferences/PreferenceCategory.kt | 3 ++- .../components/preferences/PreferenceSwitch.kt | 1 - .../android/libraries/designsystem/theme/ColorAliases.kt | 2 +- .../designsystem/theme/components/OutlinedTextField.kt | 3 --- .../libraries/designsystem/theme/components/Text.kt | 4 +++- .../libraries/designsystem/theme/components/TextField.kt | 2 -- .../libraries/matrix/room/RoomSummaryDataSource.kt | 2 -- ...up_LogoutPreferenceViewDarkPreview_,NEXUS_5,1,en].png | 4 ++-- ...Group_LoginRootScreenDarkPreview__0,NEXUS_5,1,en].png | 4 ++-- ...Group_LoginRootScreenDarkPreview__1,NEXUS_5,1,en].png | 4 ++-- ...Group_LoginRootScreenDarkPreview__2,NEXUS_5,1,en].png | 4 ++-- ...Group_LoginRootScreenDarkPreview__3,NEXUS_5,1,en].png | 4 ++-- ...Group_LoginRootScreenDarkPreview__4,NEXUS_5,1,en].png | 4 ++-- ...Group_LoginRootScreenDarkPreview__5,NEXUS_5,1,en].png | 4 ++-- ...roup_LoginRootScreenLightPreview__0,NEXUS_5,1,en].png | 4 ++-- ...roup_LoginRootScreenLightPreview__1,NEXUS_5,1,en].png | 4 ++-- ...roup_LoginRootScreenLightPreview__2,NEXUS_5,1,en].png | 4 ++-- ...roup_LoginRootScreenLightPreview__3,NEXUS_5,1,en].png | 4 ++-- ...roup_LoginRootScreenLightPreview__4,NEXUS_5,1,en].png | 4 ++-- ...roup_LoginRootScreenLightPreview__5,NEXUS_5,1,en].png | 4 ++-- ...ageshakePreferencesViewDarkPreview_,NEXUS_5,1,en].png | 4 ++-- ...erencesViewNotSupportedDarkPreview_,NEXUS_5,1,en].png | 4 ++-- ...roup_PreferenceCategoryDarkPreview_,NEXUS_5,1,en].png | 4 ++-- tools/detekt/detekt.yml | 4 ++-- 28 files changed, 44 insertions(+), 52 deletions(-) rename libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/{Type.kt => ElementTextStyles.kt} (100%) diff --git a/app/src/main/kotlin/io/element/android/x/di/AppBindings.kt b/app/src/main/kotlin/io/element/android/x/di/AppBindings.kt index de8b29682e..94b93b8fd5 100644 --- a/app/src/main/kotlin/io/element/android/x/di/AppBindings.kt +++ b/app/src/main/kotlin/io/element/android/x/di/AppBindings.kt @@ -20,7 +20,6 @@ import com.squareup.anvil.annotations.ContributesTo import io.element.android.libraries.di.AppScope import io.element.android.libraries.matrix.auth.MatrixAuthenticationService import io.element.android.x.root.RootPresenter -import kotlinx.coroutines.CoroutineScope @ContributesTo(AppScope::class) interface AppBindings { diff --git a/features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootScreen.kt b/features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootScreen.kt index 2d5381f99c..052de92a52 100644 --- a/features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootScreen.kt +++ b/features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootScreen.kt @@ -52,7 +52,6 @@ import io.element.android.features.login.error.loginError 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.ElementTheme 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 diff --git a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/TimelineView.kt b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/TimelineView.kt index 91b9cc6023..a6d6d8a2af 100644 --- a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/TimelineView.kt +++ b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/TimelineView.kt @@ -77,7 +77,6 @@ import io.element.android.libraries.designsystem.components.avatar.Avatar import io.element.android.libraries.designsystem.components.avatar.AvatarData import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight -import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.designsystem.theme.components.CircularProgressIndicator import io.element.android.libraries.designsystem.theme.components.FloatingActionButton import io.element.android.libraries.designsystem.theme.components.Icon @@ -377,7 +376,7 @@ private fun ContentToPreview(content: TimelineItemContent) { createMessageEvent( isMine = false, content = content, - groupPosition = MessagesItemGroupPosition.First + groupPosition = MessagesItemGroupPosition.Last ), createMessageEvent( isMine = false, @@ -387,13 +386,13 @@ private fun ContentToPreview(content: TimelineItemContent) { createMessageEvent( isMine = false, content = content, - groupPosition = MessagesItemGroupPosition.Last + groupPosition = MessagesItemGroupPosition.First ), // 3 items (First Middle Last) with isMine = true createMessageEvent( isMine = true, content = content, - groupPosition = MessagesItemGroupPosition.First + groupPosition = MessagesItemGroupPosition.Last ), createMessageEvent( isMine = true, @@ -403,7 +402,7 @@ private fun ContentToPreview(content: TimelineItemContent) { createMessageEvent( isMine = true, content = content, - groupPosition = MessagesItemGroupPosition.Last + groupPosition = MessagesItemGroupPosition.First ), ) TimelineView( diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/Type.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/ElementTextStyles.kt similarity index 100% rename from libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/Type.kt rename to libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/ElementTextStyles.kt diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceCategory.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceCategory.kt index eeed206e5f..5129d58e16 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceCategory.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceCategory.kt @@ -51,7 +51,8 @@ fun PreferenceCategory( Text( modifier = Modifier.padding(top = 8.dp, start = 56.dp), style = MaterialTheme.typography.titleSmall, - text = title + color = MaterialTheme.colorScheme.primary, + text = title, ) content() } diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSwitch.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSwitch.kt index 7a4177a5ae..53e4e0a29c 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSwitch.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSwitch.kt @@ -33,7 +33,6 @@ import androidx.compose.ui.tooling.preview.Preview import io.element.android.libraries.designsystem.components.preferences.components.PreferenceIcon import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight -import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.designsystem.theme.components.Checkbox import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.designsystem.toEnabledColor diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ColorAliases.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ColorAliases.kt index 33c4032dc9..8e7b029453 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ColorAliases.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ColorAliases.kt @@ -22,7 +22,7 @@ import io.element.android.libraries.designsystem.SystemGrey4Dark import io.element.android.libraries.designsystem.SystemGrey6Light /** - * Room list + * Room list. */ @Composable fun MaterialTheme.roomListRoomName() = colorScheme.primary diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/OutlinedTextField.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/OutlinedTextField.kt index fae6c06328..6e0cc157fe 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/OutlinedTextField.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/OutlinedTextField.kt @@ -20,7 +20,6 @@ import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.layout.Column import androidx.compose.foundation.text.KeyboardActions import androidx.compose.foundation.text.KeyboardOptions -import androidx.compose.foundation.text.selection.TextSelectionColors import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.LocalTextStyle import androidx.compose.material3.TextFieldColors @@ -28,12 +27,10 @@ import androidx.compose.material3.TextFieldDefaults import androidx.compose.runtime.Composable import androidx.compose.runtime.remember import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Shape import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.input.VisualTransformation import androidx.compose.ui.tooling.preview.Preview -import io.element.android.libraries.designsystem.ElementGreen import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Text.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Text.kt index 6d7a255d4b..ff74db3b81 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Text.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Text.kt @@ -31,6 +31,8 @@ import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextDecoration import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.TextUnit +import kotlinx.collections.immutable.ImmutableMap +import kotlinx.collections.immutable.persistentMapOf @Composable fun Text( @@ -87,7 +89,7 @@ fun Text( overflow: TextOverflow = TextOverflow.Clip, softWrap: Boolean = true, maxLines: Int = Int.MAX_VALUE, - inlineContent: Map = mapOf(), + inlineContent: ImmutableMap = persistentMapOf(), onTextLayout: (TextLayoutResult) -> Unit = {}, style: TextStyle = LocalTextStyle.current ) { diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/TextField.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/TextField.kt index dba39fccf1..27995b46af 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/TextField.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/TextField.kt @@ -19,7 +19,6 @@ package io.element.android.libraries.designsystem.theme.components import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.text.KeyboardActions import androidx.compose.foundation.text.KeyboardOptions -import androidx.compose.material.ContentAlpha import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.LocalTextStyle import androidx.compose.material3.TextFieldColors @@ -27,7 +26,6 @@ import androidx.compose.material3.TextFieldDefaults import androidx.compose.runtime.Composable import androidx.compose.runtime.remember import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Shape import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.input.VisualTransformation diff --git a/libraries/matrix/src/main/kotlin/io/element/android/libraries/matrix/room/RoomSummaryDataSource.kt b/libraries/matrix/src/main/kotlin/io/element/android/libraries/matrix/room/RoomSummaryDataSource.kt index 11ae71795d..8d3ead328d 100644 --- a/libraries/matrix/src/main/kotlin/io/element/android/libraries/matrix/room/RoomSummaryDataSource.kt +++ b/libraries/matrix/src/main/kotlin/io/element/android/libraries/matrix/room/RoomSummaryDataSource.kt @@ -20,7 +20,6 @@ import io.element.android.libraries.core.coroutine.CoroutineDispatchers import io.element.android.libraries.matrix.sync.roomListDiff import io.element.android.libraries.matrix.sync.state import kotlinx.coroutines.CoroutineScope -import kotlinx.coroutines.FlowPreview import kotlinx.coroutines.SupervisorJob import kotlinx.coroutines.cancel import kotlinx.coroutines.cancelChildren @@ -29,7 +28,6 @@ import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach -import kotlinx.coroutines.flow.sample import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import org.matrix.rustcomponents.sdk.RoomListEntry diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.logout_null_DefaultGroup_LogoutPreferenceViewDarkPreview_,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.logout_null_DefaultGroup_LogoutPreferenceViewDarkPreview_,NEXUS_5,1,en].png index ad57707ebb..92c0633a91 100644 --- a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.logout_null_DefaultGroup_LogoutPreferenceViewDarkPreview_,NEXUS_5,1,en].png +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.logout_null_DefaultGroup_LogoutPreferenceViewDarkPreview_,NEXUS_5,1,en].png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5151b9d544a6e50a3c3f2993d33e494ce3779c05802f05542706ebd10ba38373 -size 7245 +oid sha256:155e39fcadcc8bc039267a8b0dca338a92bcb3b4b23ab55a0cd9f3ef91c729fc +size 8888 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenDarkPreview__0,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenDarkPreview__0,NEXUS_5,1,en].png index 5ea5c861b4..0aa521f943 100644 --- a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenDarkPreview__0,NEXUS_5,1,en].png +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenDarkPreview__0,NEXUS_5,1,en].png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6b49b04090d8da089c170c82f864de5bf0edca49a3db38367aa0b2d0f42147e8 -size 31658 +oid sha256:7be62fbfef658b54e9a2fea2b66cae87de145f1dd8dd70baa4828d1c2a8c9c96 +size 31637 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenDarkPreview__1,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenDarkPreview__1,NEXUS_5,1,en].png index 6dfe58cbdc..8548e31a8c 100644 --- a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenDarkPreview__1,NEXUS_5,1,en].png +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenDarkPreview__1,NEXUS_5,1,en].png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1be16bc1a73ef5bb7af740b8720c508dbc202d4748d60fb2e10fabcfdeacc75c -size 43668 +oid sha256:ffbfcdf2cd238cd58bac1cbc141be5aa7e74184c4b35018777552d6956e17263 +size 43423 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenDarkPreview__2,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenDarkPreview__2,NEXUS_5,1,en].png index 4fe710e166..556e55dcc1 100644 --- a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenDarkPreview__2,NEXUS_5,1,en].png +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenDarkPreview__2,NEXUS_5,1,en].png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a0af0dec6058708a9e8ef643bfc9401d29be31808b9882fdc112b52da240103b -size 33508 +oid sha256:49fb267e9136c8b78f083156681b9432c757af755a2161cfdea42df43371e645 +size 33431 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenDarkPreview__3,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenDarkPreview__3,NEXUS_5,1,en].png index b4dc232172..ea261625d8 100644 --- a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenDarkPreview__3,NEXUS_5,1,en].png +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenDarkPreview__3,NEXUS_5,1,en].png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3ea0809dcddfc5df7aaba26f4ed74bebe404c86f5923c78541518fb7560e897e -size 55699 +oid sha256:aa2177214c486e5af577c7d001bf92f1fbe7e1b68adcef3c2d7b91fe1d95a864 +size 55533 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenDarkPreview__4,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenDarkPreview__4,NEXUS_5,1,en].png index 8566bb320b..a23377387a 100644 --- a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenDarkPreview__4,NEXUS_5,1,en].png +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenDarkPreview__4,NEXUS_5,1,en].png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c9607ad7cab7d64ef9eafdcaa33090b2475b69a742fd80b10327e8506248edf8 -size 29598 +oid sha256:ffb69c688191b581c220d2b1b4f89be74a59496caaf39a1e54a3d5ddc586b319 +size 29603 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenDarkPreview__5,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenDarkPreview__5,NEXUS_5,1,en].png index bf5d223a28..47a852803b 100644 --- a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenDarkPreview__5,NEXUS_5,1,en].png +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenDarkPreview__5,NEXUS_5,1,en].png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ab7cb0da1b64d2c6d87578debbc336feedbe203f6331726503a084101b9a10e6 -size 51186 +oid sha256:461792b0350436f4dd3527243b8a8fb57d619cb94c6f49db93462675c1ada886 +size 51009 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenLightPreview__0,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenLightPreview__0,NEXUS_5,1,en].png index 54c51dda5c..3d1094d520 100644 --- a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenLightPreview__0,NEXUS_5,1,en].png +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenLightPreview__0,NEXUS_5,1,en].png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5b7d3c2cf8d466f6e25404596079fb6254ad6e9fb3ba3f0f72ef1c0ba019dc60 -size 31165 +oid sha256:3697be1c70d071df9f1af57085d31a44a175b323602bbbe00dea091757d5e06d +size 31265 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenLightPreview__1,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenLightPreview__1,NEXUS_5,1,en].png index 7b8a310f6f..77adf1dcdc 100644 --- a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenLightPreview__1,NEXUS_5,1,en].png +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenLightPreview__1,NEXUS_5,1,en].png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:02c410850ed4b8658a21c4a60b62757baa9799d4c6dee4d53d2e6b2ca76f7b61 -size 41942 +oid sha256:37461ec9e58f5999e5d0bc0810a84131ec5faaec2b7e99359b36f05d8865d3d2 +size 41757 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenLightPreview__2,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenLightPreview__2,NEXUS_5,1,en].png index 7344b3e35e..9509ba2522 100644 --- a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenLightPreview__2,NEXUS_5,1,en].png +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenLightPreview__2,NEXUS_5,1,en].png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0a0ea920c88ab127513918055621a75528de35d69296727a8be7368df4c848e9 -size 33040 +oid sha256:4b4489e2f3f326f952d4680adcb14e88174628454bd3b3503864166074c5ca5c +size 33177 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenLightPreview__3,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenLightPreview__3,NEXUS_5,1,en].png index 89d55c25a3..88aa21ce03 100644 --- a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenLightPreview__3,NEXUS_5,1,en].png +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenLightPreview__3,NEXUS_5,1,en].png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cc36b26cbaab9ee19c898a27bc5bc0a04c77e4004933c47fc69608df103e08d9 -size 52964 +oid sha256:2ee3a40f5c8131f588642420d4e682f6ed0a00d6faf3d793b249e28c43b09e9c +size 52914 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenLightPreview__4,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenLightPreview__4,NEXUS_5,1,en].png index 1d930443fe..68a59311cc 100644 --- a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenLightPreview__4,NEXUS_5,1,en].png +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenLightPreview__4,NEXUS_5,1,en].png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0500e499fb319057b0ca5feb9db9e429266a2832521b429d502d1f62804ee23f -size 29222 +oid sha256:154c03f8e6eb6be2cb26fe077b4e6397df13173fe6bfcd3f23bc8287a37921b7 +size 29275 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenLightPreview__5,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenLightPreview__5,NEXUS_5,1,en].png index 0a01c81f08..8d8bc4078e 100644 --- a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenLightPreview__5,NEXUS_5,1,en].png +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.messages.timeline_null_DefaultGroup_LoginRootScreenLightPreview__5,NEXUS_5,1,en].png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5535df19747bdec380b79eec8b9d8e2d7e6ed765fe0bb4e4c1c2ffeb4de46854 -size 49115 +oid sha256:0a9a1a9ac69f15110934ae2de3ce55d7c1d3027079e68ecdf5dcb2861863ce8e +size 49057 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.rageshake.preferences_null_DefaultGroup_RageshakePreferencesViewDarkPreview_,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.rageshake.preferences_null_DefaultGroup_RageshakePreferencesViewDarkPreview_,NEXUS_5,1,en].png index f305574fe8..1d080b2c8b 100644 --- a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.rageshake.preferences_null_DefaultGroup_RageshakePreferencesViewDarkPreview_,NEXUS_5,1,en].png +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.rageshake.preferences_null_DefaultGroup_RageshakePreferencesViewDarkPreview_,NEXUS_5,1,en].png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2672387b0b02aee24ecdef31db43665b08b5660209d25b80da7286bc9517a60e -size 18727 +oid sha256:5c385c5b124217368b054e85e8313a0dac30274ea6fc08f9a71f60e80f547df0 +size 22589 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.rageshake.preferences_null_DefaultGroup_RageshakePreferencesViewNotSupportedDarkPreview_,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.rageshake.preferences_null_DefaultGroup_RageshakePreferencesViewNotSupportedDarkPreview_,NEXUS_5,1,en].png index bd30d0b256..c408edcdc4 100644 --- a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.rageshake.preferences_null_DefaultGroup_RageshakePreferencesViewNotSupportedDarkPreview_,NEXUS_5,1,en].png +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.features.rageshake.preferences_null_DefaultGroup_RageshakePreferencesViewNotSupportedDarkPreview_,NEXUS_5,1,en].png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1f37a8d115ca1253fb09505bc09cb14d7623d90cfba87940f53ff9f8033f724b -size 16614 +oid sha256:eac040a95a0e551d61fb0a14c26190304ac97b8a575a0911812f3fdade88f0e6 +size 21014 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.preferences_null_DefaultGroup_PreferenceCategoryDarkPreview_,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.preferences_null_DefaultGroup_PreferenceCategoryDarkPreview_,NEXUS_5,1,en].png index 387b8dcbeb..a8a3738f0e 100644 --- a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.preferences_null_DefaultGroup_PreferenceCategoryDarkPreview_,NEXUS_5,1,en].png +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.components.preferences_null_DefaultGroup_PreferenceCategoryDarkPreview_,NEXUS_5,1,en].png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4c470aa6515fa5b7564805ccffecbb5c0632d690ea9311868b81f0456e7e0e19 -size 13138 +oid sha256:5f67cd11f58cba1e7de19aab0c35ca0638b4c0f0dee373d4fc7155e903285e62 +size 15843 diff --git a/tools/detekt/detekt.yml b/tools/detekt/detekt.yml index 3634454339..9b95b0cc16 100644 --- a/tools/detekt/detekt.yml +++ b/tools/detekt/detekt.yml @@ -107,7 +107,7 @@ TwitterCompose: CompositionLocalAllowlist: active: true # You can optionally define a list of CompositionLocals that are allowed here - # allowedCompositionLocals: LocalSomething,LocalSomethingElse + allowedCompositionLocals: LocalColors CompositionLocalNaming: active: true ContentEmitterReturningValues: @@ -137,7 +137,7 @@ TwitterCompose: PreviewNaming: active: true PreviewPublic: - active: true + active: false # You can optionally disable that only previews with @PreviewParameter are flagged previewPublicOnlyIfParams: false RememberMissing: From 864b70f512ecc14af3d2387de4235bc41357ac26 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Fri, 3 Feb 2023 16:21:53 +0100 Subject: [PATCH 22/22] Add preview for colors. --- .../designsystem/theme/ColorAliases.kt | 28 ++++++++ .../designsystem/theme/ColorsDark.kt | 11 +++ .../designsystem/theme/ColorsLight.kt | 11 +++ .../designsystem/theme/components/Text.kt | 63 +++++++++++++++++ .../theme/previews/ColorListPreview.kt | 47 +++++++++++++ .../theme/previews/ColorPreview.kt | 64 +++++++++++++++++ .../theme/previews/ColorsSchemePreview.kt | 68 +++++++++++++++++++ .../libraries/designsystem/utils/Colors.kt | 26 +++++++ ...ltGroup_TextDarkPreview_,NEXUS_5,1,en].png | 3 + ...tGroup_TextLightPreview_,NEXUS_5,1,en].png | 3 + ...ColorAliasesDarkPreview_,NEXUS_5,1,en].png | 3 + ...olorAliasesLightPreview_,NEXUS_5,1,en].png | 3 + ...ColorsSchemePreviewDark_,NEXUS_5,1,en].png | 3 + ...olorsSchemePreviewLight_,NEXUS_5,1,en].png | 3 + 14 files changed, 336 insertions(+) create mode 100644 libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/previews/ColorListPreview.kt create mode 100644 libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/previews/ColorPreview.kt create mode 100644 libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/previews/ColorsSchemePreview.kt create mode 100644 libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/utils/Colors.kt create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme.components_null_DefaultGroup_TextDarkPreview_,NEXUS_5,1,en].png create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme.components_null_DefaultGroup_TextLightPreview_,NEXUS_5,1,en].png create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme_null_DefaultGroup_ColorAliasesDarkPreview_,NEXUS_5,1,en].png create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme_null_DefaultGroup_ColorAliasesLightPreview_,NEXUS_5,1,en].png create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme_null_DefaultGroup_ColorsSchemePreviewDark_,NEXUS_5,1,en].png create mode 100644 tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme_null_DefaultGroup_ColorsSchemePreviewLight_,NEXUS_5,1,en].png diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ColorAliases.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ColorAliases.kt index 8e7b029453..5fd5c3f0af 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ColorAliases.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ColorAliases.kt @@ -18,8 +18,13 @@ package io.element.android.libraries.designsystem.theme import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.tooling.preview.Preview import io.element.android.libraries.designsystem.SystemGrey4Dark import io.element.android.libraries.designsystem.SystemGrey6Light +import io.element.android.libraries.designsystem.preview.ElementPreviewDark +import io.element.android.libraries.designsystem.preview.ElementPreviewLight +import io.element.android.libraries.designsystem.theme.previews.ColorListPreview /** * Room list. @@ -38,3 +43,26 @@ fun MaterialTheme.roomListUnreadIndicator() = colorScheme.primary @Composable fun ElementColors.roomListPlaceHolder() = if (isLight) SystemGrey6Light else SystemGrey4Dark + +@Preview +@Composable +fun ColorAliasesLightPreview() = ElementPreviewLight { ContentToPreview() } + +@Preview +@Composable +fun ColorAliasesDarkPreview() = ElementPreviewDark { ContentToPreview() } + +@Composable +private fun ContentToPreview() { + ColorListPreview( + backgroundColor = Color.Black, + foregroundColor = Color.White, + colors = mapOf( + "roomListRoomName" to MaterialTheme.roomListRoomName(), + "roomListRoomMessage" to MaterialTheme.roomListRoomMessage(), + "roomListRoomMessageDate" to MaterialTheme.roomListRoomMessageDate(), + "roomListUnreadIndicator" to MaterialTheme.roomListUnreadIndicator(), + "roomListPlaceHolder" to ElementTheme.colors.roomListPlaceHolder(), + ) + ) +} diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ColorsDark.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ColorsDark.kt index ff02755081..774158856e 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ColorsDark.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ColorsDark.kt @@ -17,11 +17,14 @@ package io.element.android.libraries.designsystem.theme import androidx.compose.material3.darkColorScheme +import androidx.compose.runtime.Composable import androidx.compose.ui.graphics.Color +import androidx.compose.ui.tooling.preview.Preview import io.element.android.libraries.designsystem.Azure import io.element.android.libraries.designsystem.DarkGrey import io.element.android.libraries.designsystem.SystemGrey5Dark import io.element.android.libraries.designsystem.SystemGrey6Dark +import io.element.android.libraries.designsystem.theme.previews.ColorsSchemePreview fun elementColorsDark() = ElementColors( messageFromMeBackground = SystemGrey5Dark, @@ -62,3 +65,11 @@ val materialColorSchemeDark = darkColorScheme( // TODO outlineVariant = ColorDarkTokens.OutlineVariant, // TODO scrim = ColorDarkTokens.Scrim, ) + +@Preview +@Composable +fun ColorsSchemePreviewDark() = ColorsSchemePreview( + Color.White, + Color.Black, + materialColorSchemeDark, +) diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ColorsLight.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ColorsLight.kt index 43932edd10..dc13718360 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ColorsLight.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/ColorsLight.kt @@ -17,11 +17,14 @@ package io.element.android.libraries.designsystem.theme import androidx.compose.material3.lightColorScheme +import androidx.compose.runtime.Composable import androidx.compose.ui.graphics.Color +import androidx.compose.ui.tooling.preview.Preview import io.element.android.libraries.designsystem.Azure import io.element.android.libraries.designsystem.LightGrey import io.element.android.libraries.designsystem.SystemGrey5Light import io.element.android.libraries.designsystem.SystemGrey6Light +import io.element.android.libraries.designsystem.theme.previews.ColorsSchemePreview fun elementColorsLight() = ElementColors( messageFromMeBackground = SystemGrey5Light, @@ -62,3 +65,11 @@ val materialColorSchemeLight = lightColorScheme( // TODO outlineVariant = ColorLightTokens.OutlineVariant, // TODO scrim = ColorLightTokens.Scrim, ) + +@Preview +@Composable +fun ColorsSchemePreviewLight() = ColorsSchemePreview( + Color.Black, + Color.White, + materialColorSchemeLight, +) diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Text.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Text.kt index ff74db3b81..2e05f2a793 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Text.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Text.kt @@ -16,8 +16,19 @@ package io.element.android.libraries.designsystem.theme.components +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.IntrinsicSize +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width import androidx.compose.foundation.text.InlineTextContent import androidx.compose.material3.LocalTextStyle +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.contentColorFor import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color @@ -30,7 +41,12 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextDecoration import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.TextUnit +import androidx.compose.ui.unit.dp +import io.element.android.libraries.designsystem.preview.ElementPreviewDark +import io.element.android.libraries.designsystem.preview.ElementPreviewLight +import io.element.android.libraries.designsystem.utils.toHrf import kotlinx.collections.immutable.ImmutableMap import kotlinx.collections.immutable.persistentMapOf @@ -113,3 +129,50 @@ fun Text( style = style, ) } + +@Preview +@Composable +fun TextLightPreview() = ElementPreviewLight { ContentToPreview() } + +@Preview +@Composable +fun TextDarkPreview() = ElementPreviewDark { ContentToPreview() } + +@Composable +private fun ContentToPreview() { + val colors = mapOf( + "primary" to MaterialTheme.colorScheme.primary, + "secondary" to MaterialTheme.colorScheme.secondary, + "tertiary" to MaterialTheme.colorScheme.tertiary, + "background" to MaterialTheme.colorScheme.background, + "error" to MaterialTheme.colorScheme.error, + "surface" to MaterialTheme.colorScheme.surface, + "surfaceVariant" to MaterialTheme.colorScheme.surfaceVariant, + "primaryContainer" to MaterialTheme.colorScheme.primaryContainer, + "secondaryContainer" to MaterialTheme.colorScheme.secondaryContainer, + "tertiaryContainer" to MaterialTheme.colorScheme.tertiaryContainer, + // "inversePrimary" to MaterialTheme.colorScheme.inversePrimary, + "errorContainer" to MaterialTheme.colorScheme.errorContainer, + "inverseSurface" to MaterialTheme.colorScheme.inverseSurface, + ) + Column( + modifier = Modifier.width(IntrinsicSize.Max) + ) { + colors.keys.forEach { name -> + val color = colors[name]!! + val textColor = contentColorFor(backgroundColor = color) + Box( + modifier = Modifier + .background(color = color) + .fillMaxWidth() + .padding(2.dp) + ) { + Text( + text = "Text on $name\n${textColor.toHrf()} on ${color.toHrf()}", + color = textColor, + ) + } + Spacer(modifier = Modifier.height(2.dp)) + } + } +} diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/previews/ColorListPreview.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/previews/ColorListPreview.kt new file mode 100644 index 0000000000..3d728c0ad4 --- /dev/null +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/previews/ColorListPreview.kt @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2023 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.designsystem.theme.previews + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.unit.dp + +@Composable +internal fun ColorListPreview( + backgroundColor: Color, + foregroundColor: Color, + colors: Map, + modifier: Modifier = Modifier, +) { + Column( + modifier = modifier + .background(color = backgroundColor) + .fillMaxWidth() + ) { + colors.keys.forEach { name -> + val color = colors[name]!! + ColorPreview(backgroundColor = backgroundColor, foregroundColor = foregroundColor, name = name, color = color) + } + Spacer(modifier = Modifier.height(2.dp)) + } +} diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/previews/ColorPreview.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/previews/ColorPreview.kt new file mode 100644 index 0000000000..6cfcfec8ff --- /dev/null +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/previews/ColorPreview.kt @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2023 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.designsystem.theme.previews + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Brush +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import io.element.android.libraries.designsystem.theme.components.Text +import io.element.android.libraries.designsystem.utils.toHrf + +@Composable +internal fun ColorPreview( + backgroundColor: Color, + foregroundColor: Color, + name: String, color: Color, + modifier: Modifier = Modifier, +) { + Column(modifier = modifier.fillMaxWidth()) { + Text(text = name + " " + color.toHrf(), fontSize = 6.sp, color = foregroundColor) + val backgroundBrush = Brush.linearGradient( + listOf( + backgroundColor, + foregroundColor, + ) + ) + Row( + modifier = Modifier.background(backgroundBrush) + ) { + repeat(2) { + Box( + modifier = Modifier + .padding(1.dp) + .background(color = color) + .height(10.dp) + .weight(1f) + ) + } + } + } +} diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/previews/ColorsSchemePreview.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/previews/ColorsSchemePreview.kt new file mode 100644 index 0000000000..79bdb0b35f --- /dev/null +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/previews/ColorsSchemePreview.kt @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2023 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.designsystem.theme.previews + +import androidx.compose.material3.ColorScheme +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color + +@Composable +internal fun ColorsSchemePreview( + backgroundColor: Color, + foregroundColor: Color, + colorScheme: ColorScheme, + modifier: Modifier = Modifier, +) { + val colors = mapOf( + "primary" to colorScheme.primary, + "onPrimary" to colorScheme.onPrimary, + "primaryContainer" to colorScheme.primaryContainer, + "onPrimaryContainer" to colorScheme.onPrimaryContainer, + "inversePrimary" to colorScheme.inversePrimary, + "secondary" to colorScheme.secondary, + "onSecondary" to colorScheme.onSecondary, + "secondaryContainer" to colorScheme.secondaryContainer, + "onSecondaryContainer" to colorScheme.onSecondaryContainer, + "tertiary" to colorScheme.tertiary, + "onTertiary" to colorScheme.onTertiary, + "tertiaryContainer" to colorScheme.tertiaryContainer, + "onTertiaryContainer" to colorScheme.onTertiaryContainer, + "background" to colorScheme.background, + "onBackground" to colorScheme.onBackground, + "surface" to colorScheme.surface, + "onSurface" to colorScheme.onSurface, + "surfaceVariant" to colorScheme.surfaceVariant, + "onSurfaceVariant" to colorScheme.onSurfaceVariant, + "surfaceTint" to colorScheme.surfaceTint, + "inverseSurface" to colorScheme.inverseSurface, + "inverseOnSurface" to colorScheme.inverseOnSurface, + "error" to colorScheme.error, + "onError" to colorScheme.onError, + "errorContainer" to colorScheme.errorContainer, + "onErrorContainer" to colorScheme.onErrorContainer, + "outline" to colorScheme.outline, + "outlineVariant" to colorScheme.outlineVariant, + "scrim" to colorScheme.scrim, + ) + ColorListPreview( + backgroundColor = backgroundColor, + foregroundColor = foregroundColor, + colors = colors, + modifier = modifier, + ) +} diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/utils/Colors.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/utils/Colors.kt new file mode 100644 index 0000000000..42723cbb54 --- /dev/null +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/utils/Colors.kt @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2023 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.designsystem.utils + +import androidx.compose.ui.graphics.Color + +/** + * Convert color to Human Readable Format. + */ +internal fun Color.toHrf(): String { + return "0x" + value.toString(16).take(8).uppercase() +} diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme.components_null_DefaultGroup_TextDarkPreview_,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme.components_null_DefaultGroup_TextDarkPreview_,NEXUS_5,1,en].png new file mode 100644 index 0000000000..9a2284a7ab --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme.components_null_DefaultGroup_TextDarkPreview_,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5127c51e1eb76ceb0620073449a5dde0805f9ba3d0fae6368aaf15473e837c1f +size 104643 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme.components_null_DefaultGroup_TextLightPreview_,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme.components_null_DefaultGroup_TextLightPreview_,NEXUS_5,1,en].png new file mode 100644 index 0000000000..cf5702384e --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme.components_null_DefaultGroup_TextLightPreview_,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2239989d1ea3db71952a74282d79a08c4e2dbc321c1cea6478b7cf25957bfecb +size 102883 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme_null_DefaultGroup_ColorAliasesDarkPreview_,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme_null_DefaultGroup_ColorAliasesDarkPreview_,NEXUS_5,1,en].png new file mode 100644 index 0000000000..f30ca8538a --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme_null_DefaultGroup_ColorAliasesDarkPreview_,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:75ed390c5f71cdfebf87f722b3d377f6c1a047d2b3791812516ddad2c2326407 +size 30804 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme_null_DefaultGroup_ColorAliasesLightPreview_,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme_null_DefaultGroup_ColorAliasesLightPreview_,NEXUS_5,1,en].png new file mode 100644 index 0000000000..ba868312fc --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme_null_DefaultGroup_ColorAliasesLightPreview_,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1f388b7b6dce61610a5bb3d839f3be11be19363cf734a3f70032354d33f2b0db +size 32087 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme_null_DefaultGroup_ColorsSchemePreviewDark_,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme_null_DefaultGroup_ColorsSchemePreviewDark_,NEXUS_5,1,en].png new file mode 100644 index 0000000000..62ad4ddd72 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme_null_DefaultGroup_ColorsSchemePreviewDark_,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:425c923cf0e7993816c237d22a50c32962dc58e42a56bba788742f5b5ac2fdc6 +size 115420 diff --git a/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme_null_DefaultGroup_ColorsSchemePreviewLight_,NEXUS_5,1,en].png b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme_null_DefaultGroup_ColorsSchemePreviewLight_,NEXUS_5,1,en].png new file mode 100644 index 0000000000..f4f1aeaa13 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/io.element.android.tests.uitests_ScreenshotTest_preview_tests[io.element.android.libraries.designsystem.theme_null_DefaultGroup_ColorsSchemePreviewLight_,NEXUS_5,1,en].png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3c25192e1654d49d72af7591700ee88303562812de23ec1118e8f27d852da8a9 +size 116950