Iterate design on several screens: update icons, replace PreferenceTexts (#1771)

- Batch import new icons from the design team.
- Rename _september icons since they're just extra icons that need to be integrated in Compound in the future, and it should be ok if we don't distinguish between ic_september_*, ic_november_* etc., so all icons are now simply ic_* in the designsystem module.
- Create a new CompoundIconListPreviewProvider to add chunked lists of icons for previews. Add an exception for it to Konsist.
- Move some icons to use Compound icons.
- Remove most PreferenceText usages, use ListItem instead.

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
This commit is contained in:
Jorge Martin Espinosa 2023-11-15 10:52:37 +01:00 committed by GitHub
parent 99783a6eed
commit a5bad53c62
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
194 changed files with 945 additions and 519 deletions

1
changelog.d/1718.misc Normal file
View file

@ -0,0 +1 @@
Update icons and move away from `PreferenceText` components.

View file

@ -140,7 +140,7 @@ private fun CreateRoomActionButtonsList(
) {
Column(modifier = modifier) {
CreateRoomActionButton(
iconRes = CommonDrawables.ic_groups,
iconRes = CommonDrawables.ic_compound_plus,
text = stringResource(id = R.string.screen_create_room_action_create_room),
onClick = onNewRoomClicked,
)

View file

@ -18,7 +18,6 @@ package io.element.android.features.location.impl.send
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.ExperimentalLayoutApi
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.WindowInsets
import androidx.compose.foundation.layout.asPaddingValues
@ -27,9 +26,6 @@ import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.navigationBars
import androidx.compose.foundation.layout.padding
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.LocationSearching
import androidx.compose.material.icons.filled.MyLocation
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.ListItem
import androidx.compose.material3.SheetValue
@ -68,7 +64,7 @@ import io.element.android.libraries.maplibre.compose.rememberCameraPositionState
import io.element.android.libraries.theme.ElementTheme
import io.element.android.libraries.ui.strings.CommonStrings
@OptIn(ExperimentalMaterial3Api::class, ExperimentalLayoutApi::class)
@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun SendLocationView(
state: SendLocationState,
@ -215,8 +211,8 @@ fun SendLocationView(
.padding(end = 16.dp, bottom = 72.dp + navBarPadding),
) {
when (state.mode) {
SendLocationState.Mode.PinLocation -> Icon(imageVector = Icons.Default.LocationSearching, contentDescription = null)
SendLocationState.Mode.SenderLocation -> Icon(imageVector = Icons.Default.MyLocation, contentDescription = null)
SendLocationState.Mode.PinLocation -> Icon(resourceId = CommonDrawables.ic_location_navigator, contentDescription = null)
SendLocationState.Mode.SenderLocation -> Icon(resourceId = CommonDrawables.ic_location_navigator_centered, contentDescription = null)
}
}
}

View file

@ -26,6 +26,8 @@ import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.imePadding
import androidx.compose.foundation.layout.navigationBarsPadding
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width
@ -33,9 +35,6 @@ import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.items
import androidx.compose.foundation.shape.CircleShape
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.ExperimentalMaterialApi
import androidx.compose.material.ListItem
import androidx.compose.material.Text
import androidx.compose.material.ripple.rememberRipple
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.MaterialTheme
@ -70,12 +69,17 @@ import io.element.android.features.messages.impl.timeline.model.event.TimelineIt
import io.element.android.features.messages.impl.utils.messagesummary.MessageSummaryFormatterImpl
import io.element.android.libraries.designsystem.components.avatar.Avatar
import io.element.android.libraries.designsystem.components.avatar.AvatarSize
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
import io.element.android.libraries.designsystem.components.list.ListItemContent
import io.element.android.libraries.designsystem.preview.ElementPreview
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
import io.element.android.libraries.designsystem.text.toSp
import io.element.android.libraries.designsystem.theme.components.HorizontalDivider
import io.element.android.libraries.designsystem.theme.components.Icon
import io.element.android.libraries.designsystem.theme.components.IconSource
import io.element.android.libraries.designsystem.theme.components.ListItem
import io.element.android.libraries.designsystem.theme.components.ListItemStyle
import io.element.android.libraries.designsystem.theme.components.ModalBottomSheet
import io.element.android.libraries.designsystem.theme.components.Text
import io.element.android.libraries.designsystem.theme.components.hide
import io.element.android.libraries.designsystem.utils.CommonDrawables
import io.element.android.libraries.matrix.ui.components.AttachmentThumbnail
@ -140,15 +144,13 @@ fun ActionListView(
onEmojiReactionClicked = ::onEmojiReactionClicked,
onCustomReactionClicked = ::onCustomReactionClicked,
modifier = Modifier
.padding(bottom = 32.dp)
// .navigationBarsPadding() - FIXME after https://issuetracker.google.com/issues/275849044
// .imePadding()
.navigationBarsPadding()
.imePadding()
)
}
}
}
@OptIn(ExperimentalMaterialApi::class)
@Composable
private fun SheetContent(
state: ActionListState,
@ -198,18 +200,13 @@ private fun SheetContent(
modifier = Modifier.clickable {
onActionClicked(action)
},
text = {
Text(
text = stringResource(id = action.titleRes),
color = if (action.destructive) MaterialTheme.colorScheme.error else MaterialTheme.colorScheme.primary,
)
headlineContent = {
Text(text = stringResource(id = action.titleRes))
},
icon = {
Icon(
resourceId = action.icon,
contentDescription = "",
tint = if (action.destructive) MaterialTheme.colorScheme.error else MaterialTheme.colorScheme.primary,
)
leadingContent = ListItemContent.Icon(IconSource.Resource(action.icon)),
style = when {
action.destructive -> ListItemStyle.Destructive
else -> ListItemStyle.Primary
}
)
}
@ -373,7 +370,7 @@ private fun EmojiReactionsRow(
contentAlignment = Alignment.Center
) {
Icon(
resourceId = CommonDrawables.ic_september_add_reaction,
resourceId = CommonDrawables.ic_add_reaction,
contentDescription = "Emojis",
tint = MaterialTheme.colorScheme.secondary,
modifier = Modifier
@ -410,8 +407,7 @@ private fun EmojiButton(
) {
Text(
emoji,
fontSize = 24.dp.toSp(),
color = Color.White,
style = ElementTheme.typography.fontBodyLgRegular.copy(fontSize = 24.dp.toSp(), color = Color.White),
modifier = Modifier
.clickable(
enabled = true,

View file

@ -28,13 +28,13 @@ sealed class TimelineItemAction(
@DrawableRes val icon: Int,
val destructive: Boolean = false
) {
data object Forward : TimelineItemAction(CommonStrings.action_forward, CommonDrawables.ic_september_forward)
data object Copy : TimelineItemAction(CommonStrings.action_copy, CommonDrawables.ic_september_copy)
data object Forward : TimelineItemAction(CommonStrings.action_forward, CommonDrawables.ic_forward)
data object Copy : TimelineItemAction(CommonStrings.action_copy, CommonDrawables.ic_copy)
data object Redact : TimelineItemAction(CommonStrings.action_remove, CommonDrawables.ic_compound_delete, destructive = true)
data object Reply : TimelineItemAction(CommonStrings.action_reply, CommonDrawables.ic_september_reply)
data object ReplyInThread : TimelineItemAction(CommonStrings.action_reply_in_thread, CommonDrawables.ic_september_reply)
data object Edit : TimelineItemAction(CommonStrings.action_edit, CommonDrawables.ic_september_edit_outline)
data object ViewSource : TimelineItemAction(CommonStrings.action_view_source, CommonDrawables.ic_september_view_source)
data object Reply : TimelineItemAction(CommonStrings.action_reply, CommonDrawables.ic_reply)
data object ReplyInThread : TimelineItemAction(CommonStrings.action_reply_in_thread, CommonDrawables.ic_reply)
data object Edit : TimelineItemAction(CommonStrings.action_edit, CommonDrawables.ic_edit_outline)
data object ViewSource : TimelineItemAction(CommonStrings.action_view_source, CommonDrawables.ic_developer_options)
data object ReportContent : TimelineItemAction(CommonStrings.action_report_content, CommonDrawables.ic_compound_chat_problem, destructive = true)
data object EndPoll : TimelineItemAction(CommonStrings.action_end_poll, CommonDrawables.ic_poll_end)
}

View file

@ -236,7 +236,7 @@ private fun MediaFileView(
) {
Icon(
imageVector = if (isAudio) Icons.Outlined.GraphicEq else null,
resourceId = if (isAudio) null else CommonDrawables.ic_september_attachment,
resourceId = if (isAudio) null else CommonDrawables.ic_attachment,
contentDescription = null,
tint = MaterialTheme.colorScheme.background,
modifier = Modifier

View file

@ -19,9 +19,8 @@ package io.element.android.features.messages.impl.messagecomposer
import androidx.activity.compose.BackHandler
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.padding
import androidx.compose.material.ExperimentalMaterialApi
import androidx.compose.material.ListItem
import androidx.compose.foundation.layout.imePadding
import androidx.compose.foundation.layout.navigationBarsPadding
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.rememberModalBottomSheetState
import androidx.compose.runtime.Composable
@ -33,12 +32,14 @@ import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalView
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import io.element.android.features.messages.impl.R
import io.element.android.libraries.androidutils.ui.hideKeyboard
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
import io.element.android.libraries.designsystem.components.list.ListItemContent
import io.element.android.libraries.designsystem.preview.ElementPreview
import io.element.android.libraries.designsystem.theme.components.Icon
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
import io.element.android.libraries.designsystem.theme.components.IconSource
import io.element.android.libraries.designsystem.theme.components.ListItem
import io.element.android.libraries.designsystem.theme.components.ListItemStyle
import io.element.android.libraries.designsystem.theme.components.ModalBottomSheet
import io.element.android.libraries.designsystem.theme.components.Text
import io.element.android.libraries.designsystem.utils.CommonDrawables
@ -93,7 +94,6 @@ internal fun AttachmentsBottomSheet(
}
}
@OptIn(ExperimentalMaterialApi::class)
@Composable
private fun AttachmentSourcePickerMenu(
state: MessageComposerState,
@ -103,28 +103,33 @@ private fun AttachmentSourcePickerMenu(
modifier: Modifier = Modifier,
) {
Column(
modifier.padding(bottom = 32.dp)
// .navigationBarsPadding() - FIXME after https://issuetracker.google.com/issues/275849044
modifier = modifier
.navigationBarsPadding()
.imePadding()
) {
ListItem(
modifier = Modifier.clickable { state.eventSink(MessageComposerEvents.PickAttachmentSource.FromGallery) },
icon = { Icon(CommonDrawables.ic_september_photo_video_library, null) },
text = { Text(stringResource(R.string.screen_room_attachment_source_gallery)) },
leadingContent = ListItemContent.Icon(IconSource.Resource(CommonDrawables.ic_image)),
headlineContent = { Text(stringResource(R.string.screen_room_attachment_source_gallery)) },
style = ListItemStyle.Primary,
)
ListItem(
modifier = Modifier.clickable { state.eventSink(MessageComposerEvents.PickAttachmentSource.FromFiles) },
icon = { Icon(CommonDrawables.ic_september_attachment, null) },
text = { Text(stringResource(R.string.screen_room_attachment_source_files)) },
leadingContent = ListItemContent.Icon(IconSource.Resource(CommonDrawables.ic_attachment)),
headlineContent = { Text(stringResource(R.string.screen_room_attachment_source_files)) },
style = ListItemStyle.Primary,
)
ListItem(
modifier = Modifier.clickable { state.eventSink(MessageComposerEvents.PickAttachmentSource.PhotoFromCamera) },
icon = { Icon(CommonDrawables.ic_september_take_photo_camera, null) },
text = { Text(stringResource(R.string.screen_room_attachment_source_camera_photo)) },
leadingContent = ListItemContent.Icon(IconSource.Resource(CommonDrawables.ic_take_photo_camera, )),
headlineContent = { Text(stringResource(R.string.screen_room_attachment_source_camera_photo)) },
style = ListItemStyle.Primary,
)
ListItem(
modifier = Modifier.clickable { state.eventSink(MessageComposerEvents.PickAttachmentSource.VideoFromCamera) },
icon = { Icon(CommonDrawables.ic_september_video_call, null) },
text = { Text(stringResource(R.string.screen_room_attachment_source_camera_video)) },
leadingContent = ListItemContent.Icon(IconSource.Resource(CommonDrawables.ic_video_call)),
headlineContent = { Text(stringResource(R.string.screen_room_attachment_source_camera_video)) },
style = ListItemStyle.Primary,
)
if (state.canShareLocation) {
ListItem(
@ -132,8 +137,9 @@ private fun AttachmentSourcePickerMenu(
state.eventSink(MessageComposerEvents.PickAttachmentSource.Location)
onSendLocationClicked()
},
icon = { Icon(CommonDrawables.ic_september_location, null) },
text = { Text(stringResource(R.string.screen_room_attachment_source_location)) },
leadingContent = ListItemContent.Icon(IconSource.Resource(CommonDrawables.ic_location_pin) ),
headlineContent = { Text(stringResource(R.string.screen_room_attachment_source_location)) },
style = ListItemStyle.Primary,
)
}
if (state.canCreatePoll) {
@ -142,15 +148,17 @@ private fun AttachmentSourcePickerMenu(
state.eventSink(MessageComposerEvents.PickAttachmentSource.Poll)
onCreatePollClicked()
},
icon = { Icon(CommonDrawables.ic_compound_polls, null) },
text = { Text(stringResource(R.string.screen_room_attachment_source_poll)) },
leadingContent = ListItemContent.Icon(IconSource.Resource(CommonDrawables.ic_compound_polls)),
headlineContent = { Text(stringResource(R.string.screen_room_attachment_source_poll)) },
style = ListItemStyle.Primary,
)
}
if (enableTextFormatting) {
ListItem(
modifier = Modifier.clickable { state.eventSink(MessageComposerEvents.ToggleTextFormatting(enabled = true)) },
icon = { Icon(CommonDrawables.ic_september_text_formatting, null) },
text = { Text(stringResource(R.string.screen_room_attachment_text_formatting)) },
leadingContent = ListItemContent.Icon(IconSource.Resource(CommonDrawables.ic_text_formatting, null)),
headlineContent = { Text(stringResource(R.string.screen_room_attachment_text_formatting)) },
style = ListItemStyle.Primary,
)
}
}

View file

@ -181,7 +181,7 @@ internal fun MessagesReactionButtonPreview(@PreviewParameter(AggregatedReactionP
@Composable
internal fun MessagesAddReactionButtonPreview() = ElementPreview {
MessagesReactionButton(
content = MessagesReactionsButtonContent.Icon(CommonDrawables.ic_september_add_reaction),
content = MessagesReactionsButtonContent.Icon(CommonDrawables.ic_add_reaction),
onClick = {},
onLongClick = {}
)

View file

@ -49,7 +49,7 @@ fun RowScope.ReplySwipeIndicator(
alpha = swipeProgress()
},
contentDescription = null,
resourceId = CommonDrawables.ic_september_reply,
resourceId = CommonDrawables.ic_reply,
)
}

View file

@ -196,7 +196,7 @@ internal fun TimelineItemReactionsLayoutPreview() = ElementPreview {
},
addMoreButton = {
MessagesReactionButton(
content = MessagesReactionsButtonContent.Icon(CommonDrawables.ic_september_add_reaction),
content = MessagesReactionsButtonContent.Icon(CommonDrawables.ic_add_reaction),
onClick = {},
onLongClick = {}
)

View file

@ -95,7 +95,7 @@ private fun TimelineItemReactionsView(
},
addMoreButton = {
MessagesReactionButton(
content = MessagesReactionsButtonContent.Icon(CommonDrawables.ic_september_add_reaction),
content = MessagesReactionsButtonContent.Icon(CommonDrawables.ic_add_reaction),
onClick = onMoreReactionsClick,
onLongClick = {}
)

View file

@ -35,7 +35,7 @@ fun TimelineItemEncryptedView(
TimelineItemInformativeView(
text = stringResource(id = CommonStrings.common_waiting_for_decryption_key),
iconDescription = stringResource(id = CommonStrings.dialog_title_warning),
iconResourceId = CommonDrawables.ic_september_decryption_error,
iconResourceId = CommonDrawables.ic_waiting_to_decrypt,
extraPadding = extraPadding,
modifier = modifier
)

View file

@ -59,7 +59,7 @@ fun TimelineItemFileView(
contentAlignment = Alignment.Center,
) {
Icon(
resourceId = CommonDrawables.ic_september_attachment,
resourceId = CommonDrawables.ic_attachment,
contentDescription = "OpenFile",
tint = ElementTheme.materialColors.primary,
modifier = Modifier

View file

@ -20,7 +20,6 @@ import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Lock
import androidx.compose.material.icons.outlined.InsertChart
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
@ -135,7 +134,7 @@ fun PreferencesRootView(
if (state.showLockScreenSettings) {
ListItem(
headlineContent = { Text(stringResource(id = CommonStrings.common_screen_lock)) },
leadingContent = ListItemContent.Icon(IconSource.Vector(Icons.Default.Lock)),
leadingContent = ListItemContent.Icon(IconSource.Resource(CommonDrawables.ic_lock_outline)),
onClick = onOpenLockScreenSettings,
)
}

View file

@ -32,7 +32,6 @@ import androidx.compose.foundation.verticalScroll
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.MoreVert
import androidx.compose.material.icons.outlined.Add
import androidx.compose.material.icons.outlined.Person
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.Composable
@ -57,6 +56,7 @@ import io.element.android.libraries.designsystem.components.avatar.AvatarData
import io.element.android.libraries.designsystem.components.avatar.AvatarSize
import io.element.android.libraries.designsystem.components.button.BackButton
import io.element.android.libraries.designsystem.components.button.MainActionButton
import io.element.android.libraries.designsystem.components.list.ListItemContent
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
@ -66,6 +66,9 @@ import io.element.android.libraries.designsystem.theme.components.DropdownMenu
import io.element.android.libraries.designsystem.theme.components.DropdownMenuItem
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.IconSource
import io.element.android.libraries.designsystem.theme.components.ListItem
import io.element.android.libraries.designsystem.theme.components.ListItemStyle
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
@ -324,10 +327,10 @@ private fun NotificationSection(
stringResource(R.string.screen_room_details_notification_mode_custom)
}
PreferenceCategory(modifier = modifier) {
PreferenceText(
title = stringResource(R.string.screen_room_details_notification_title),
subtitle = subtitle,
iconResourceId = CommonDrawables.ic_compound_notifications,
ListItem(
headlineContent = { Text(text = stringResource(R.string.screen_room_details_notification_title)) },
supportingContent = { Text(text = subtitle) },
leadingContent = ListItemContent.Icon(IconSource.Resource(CommonDrawables.ic_compound_notifications)),
onClick = openRoomNotificationSettings,
)
}
@ -340,10 +343,10 @@ private fun MembersSection(
modifier: Modifier = Modifier,
) {
PreferenceCategory(modifier = modifier) {
PreferenceText(
title = stringResource(CommonStrings.common_people),
icon = Icons.Outlined.Person,
currentValue = memberCount.toString(),
ListItem(
headlineContent = { Text(stringResource(CommonStrings.common_people)) },
leadingContent = ListItemContent.Icon(IconSource.Resource(CommonDrawables.ic_user)),
trailingContent = ListItemContent.Text(memberCount.toString()),
onClick = openRoomMemberList,
)
}
@ -355,9 +358,9 @@ private fun InviteSection(
modifier: Modifier = Modifier,
) {
PreferenceCategory(modifier = modifier) {
PreferenceText(
title = stringResource(R.string.screen_room_details_invite_people_title),
iconResourceId = CommonDrawables.ic_compound_user_add,
ListItem(
headlineContent = { Text(stringResource(R.string.screen_room_details_invite_people_title)) },
leadingContent = ListItemContent.Icon(IconSource.Resource(CommonDrawables.ic_user_add)),
onClick = invitePeople,
)
}
@ -366,10 +369,10 @@ private fun InviteSection(
@Composable
private fun SecuritySection(modifier: Modifier = Modifier) {
PreferenceCategory(title = stringResource(R.string.screen_room_details_security_title), modifier = modifier) {
PreferenceText(
title = stringResource(R.string.screen_room_details_encryption_enabled_title),
subtitle = stringResource(R.string.screen_room_details_encryption_enabled_subtitle),
iconResourceId = CommonDrawables.ic_compound_lock,
ListItem(
headlineContent = { Text(stringResource(R.string.screen_room_details_encryption_enabled_title)) },
supportingContent = { Text(stringResource(R.string.screen_room_details_encryption_enabled_subtitle)) },
leadingContent = ListItemContent.Icon(IconSource.Resource(CommonDrawables.ic_encryption_enabled)),
)
}
}
@ -377,10 +380,10 @@ private fun SecuritySection(modifier: Modifier = Modifier) {
@Composable
private fun OtherActionsSection(onLeaveRoom: () -> Unit, modifier: Modifier = Modifier) {
PreferenceCategory(showDivider = false, modifier = modifier) {
PreferenceText(
title = stringResource(R.string.screen_room_details_leave_room_title),
iconResourceId = CommonDrawables.ic_compound_leave,
tintColor = MaterialTheme.colorScheme.error,
ListItem(
headlineContent = { Text(stringResource(R.string.screen_room_details_leave_room_title)) },
leadingContent = ListItemContent.Icon(IconSource.Resource(CommonDrawables.ic_compound_leave)),
style = ListItemStyle.Destructive,
onClick = onLeaveRoom,
)
}

View file

@ -16,20 +16,26 @@
package io.element.android.features.roomdetails.impl.blockuser
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.outlined.Block
import androidx.compose.material3.MaterialTheme
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.progressSemantics
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import io.element.android.features.roomdetails.impl.R
import io.element.android.features.roomdetails.impl.members.details.RoomMemberDetailsEvents
import io.element.android.features.roomdetails.impl.members.details.RoomMemberDetailsState
import io.element.android.libraries.architecture.Async
import io.element.android.libraries.core.bool.orFalse
import io.element.android.libraries.designsystem.components.dialogs.RetryDialog
import io.element.android.libraries.designsystem.components.list.ListItemContent
import io.element.android.libraries.designsystem.components.preferences.PreferenceCategory
import io.element.android.libraries.designsystem.components.preferences.PreferenceText
import io.element.android.libraries.designsystem.theme.components.CircularProgressIndicator
import io.element.android.libraries.designsystem.theme.components.IconSource
import io.element.android.libraries.designsystem.theme.components.ListItem
import io.element.android.libraries.designsystem.theme.components.ListItemStyle
import io.element.android.libraries.designsystem.theme.components.Text
import io.element.android.libraries.designsystem.utils.CommonDrawables
import io.element.android.libraries.ui.strings.CommonStrings
@Composable
@ -65,21 +71,29 @@ private fun PreferenceBlockUser(
eventSink: (RoomMemberDetailsEvents) -> Unit,
modifier: Modifier = Modifier,
) {
val loadingCurrentValue = @Composable {
CircularProgressIndicator(
modifier = Modifier
.progressSemantics()
.size(20.dp),
strokeWidth = 2.dp
)
}
if (isBlocked.orFalse()) {
PreferenceText(
title = stringResource(R.string.screen_dm_details_unblock_user),
icon = Icons.Outlined.Block,
ListItem(
headlineContent = { Text(stringResource(R.string.screen_dm_details_unblock_user)) },
leadingContent = ListItemContent.Icon(IconSource.Resource(CommonDrawables.ic_compound_block)),
onClick = { if (!isLoading) eventSink(RoomMemberDetailsEvents.UnblockUser(needsConfirmation = true)) },
loadingCurrentValue = isLoading,
trailingContent = if (isLoading) ListItemContent.Custom(loadingCurrentValue) else null,
modifier = modifier,
)
} else {
PreferenceText(
title = stringResource(R.string.screen_dm_details_block_user),
icon = Icons.Outlined.Block,
tintColor = MaterialTheme.colorScheme.error,
ListItem(
headlineContent = { Text(stringResource(R.string.screen_dm_details_block_user)) },
leadingContent = ListItemContent.Icon(IconSource.Resource(CommonDrawables.ic_compound_block)),
style = ListItemStyle.Destructive,
onClick = { if (!isLoading) eventSink(RoomMemberDetailsEvents.BlockUser(needsConfirmation = true)) },
loadingCurrentValue = isLoading,
trailingContent = if (isLoading) ListItemContent.Custom(loadingCurrentValue) else null,
modifier = modifier,
)
}

View file

@ -22,25 +22,22 @@ import androidx.compose.foundation.layout.consumeWindowInsets
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.res.vectorResource
import androidx.compose.ui.tooling.preview.PreviewParameter
import androidx.compose.ui.unit.dp
import io.element.android.features.roomdetails.impl.R
import io.element.android.libraries.core.bool.orTrue
import io.element.android.libraries.designsystem.components.async.AsyncView
import io.element.android.libraries.designsystem.components.button.BackButton
import io.element.android.libraries.designsystem.components.preferences.PreferenceText
import io.element.android.libraries.designsystem.preview.ElementPreview
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
import io.element.android.libraries.designsystem.theme.components.ListItem
import io.element.android.libraries.designsystem.theme.components.ListItemStyle
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.CommonDrawables
@Composable
fun UserDefinedRoomNotificationSettingsView(
@ -75,10 +72,9 @@ fun UserDefinedRoomNotificationSettingsView(
)
}
PreferenceText(
title = stringResource(R.string.screen_room_notification_settings_edit_remove_setting),
icon = ImageVector.vectorResource(CommonDrawables.ic_compound_delete),
tintColor = MaterialTheme.colorScheme.error,
ListItem(
headlineContent = { Text(stringResource(R.string.screen_room_notification_settings_edit_remove_setting)) },
style = ListItemStyle.Destructive,
onClick = {
state.eventSink(RoomNotificationSettingsEvents.DeleteCustomNotification)
}

View file

@ -18,20 +18,18 @@ package io.element.android.features.roomlist.impl
import androidx.compose.foundation.clickable
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.foundation.layout.size
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.ListItem
import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
import io.element.android.libraries.designsystem.components.list.ListItemContent
import io.element.android.libraries.designsystem.preview.ElementPreview
import io.element.android.libraries.designsystem.theme.components.Icon
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
import io.element.android.libraries.designsystem.theme.components.IconSource
import io.element.android.libraries.designsystem.theme.components.ListItem
import io.element.android.libraries.designsystem.theme.components.ListItemStyle
import io.element.android.libraries.designsystem.theme.components.ModalBottomSheet
import io.element.android.libraries.designsystem.theme.components.Text
import io.element.android.libraries.designsystem.utils.CommonDrawables
@ -88,34 +86,25 @@ private fun RoomListModalBottomSheetContent(
)
},
modifier = Modifier.clickable { onRoomSettingsClicked(contextMenu.roomId) },
leadingContent = {
Icon(
resourceId = CommonDrawables.ic_compound_settings,
contentDescription = stringResource(id = CommonStrings.common_settings),
modifier = Modifier.size(20.dp),
tint = MaterialTheme.colorScheme.onSurface,
leadingContent = ListItemContent.Icon(
iconSource = IconSource.Resource(
CommonDrawables.ic_compound_settings,
contentDescription = stringResource(id = CommonStrings.common_settings)
)
}
),
style = ListItemStyle.Primary,
)
ListItem(
headlineContent = {
Text(
text = stringResource(id = CommonStrings.action_leave_room),
color = MaterialTheme.colorScheme.error,
style = MaterialTheme.typography.bodyLarge,
)
},
headlineContent = { Text(text = stringResource(id = CommonStrings.action_leave_room)) },
modifier = Modifier.clickable { onLeaveRoomClicked(contextMenu.roomId) },
leadingContent = {
Icon(
resourceId = CommonDrawables.ic_compound_leave,
contentDescription = stringResource(id = CommonStrings.action_leave_room),
modifier = Modifier.size(20.dp),
tint = MaterialTheme.colorScheme.error,
leadingContent = ListItemContent.Icon(
iconSource = IconSource.Resource(
CommonDrawables.ic_compound_leave,
contentDescription = stringResource(id = CommonStrings.action_leave_room)
)
}
),
style = ListItemStyle.Destructive,
)
Spacer(modifier = Modifier.height(32.dp))
}
}

View file

@ -243,7 +243,7 @@ private fun RoomListContent(
) {
Icon(
// Note cannot use Icons.Outlined.EditSquare, it does not exist :/
resourceId = CommonDrawables.ic_september_compose_button,
resourceId = CommonDrawables.ic_new_message,
contentDescription = stringResource(id = R.string.screen_roomlist_a11y_create_message)
)
}

View file

@ -253,7 +253,7 @@ private fun DefaultRoomListTopBar(
showMenu = false
onMenuActionClicked(RoomListMenuAction.ReportBug)
},
text = { Text(stringResource(id = CommonStrings.common_report_a_bug)) },
text = { Text(stringResource(id = CommonStrings.common_report_a_problem)) },
leadingIcon = {
Icon(
resourceId = CommonDrawables.ic_compound_chat_problem,

View file

@ -114,7 +114,7 @@ private fun RecoveryKeyStaticContent(
modifier = Modifier.weight(1f),
)
Icon(
resourceId = CommonDrawables.ic_september_copy,
resourceId = CommonDrawables.ic_copy,
contentDescription = stringResource(id = CommonStrings.action_copy),
tint = ElementTheme.colors.iconSecondary,
)

View file

@ -16,10 +16,12 @@
package io.element.android.libraries.designsystem.components.list
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.widthIn
import androidx.compose.runtime.Composable
import androidx.compose.runtime.Immutable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.DpSize
@ -126,7 +128,12 @@ sealed interface ListItemContent {
)
}
is Text -> TextComponent(modifier = Modifier.widthIn(max = 128.dp), text = text, maxLines = 1, overflow = TextOverflow.Ellipsis)
is Badge -> RedIndicatorAtom()
is Badge -> Box(
modifier = Modifier.size(maxCompactSize),
contentAlignment = Alignment.Center,
) {
RedIndicatorAtom()
}
is Custom -> content()
}
}

View file

@ -96,43 +96,43 @@ internal val iconsCompound = listOf(
R.drawable.ic_compound_web_browser,
)
internal val iconsSeptember = listOf(
R.drawable.ic_september_add_reaction,
R.drawable.ic_september_attachment,
R.drawable.ic_september_compose_button,
R.drawable.ic_september_copy,
R.drawable.ic_september_decryption_error,
R.drawable.ic_september_edit_outline,
R.drawable.ic_september_edit_solid_16,
R.drawable.ic_september_forward,
R.drawable.ic_september_location,
R.drawable.ic_september_photo_camera,
R.drawable.ic_september_photo_video_library,
R.drawable.ic_september_reply,
R.drawable.ic_september_send,
R.drawable.ic_september_take_photo_camera,
R.drawable.ic_september_text_formatting,
R.drawable.ic_september_video_call,
R.drawable.ic_september_view_source,
)
// This list and all the drawable it contains should be removed at some point.
// All the icons should be defined in Compound.
internal val iconsOther = listOf(
R.drawable.ic_add_reaction,
R.drawable.ic_attachment,
R.drawable.ic_copy,
R.drawable.ic_developer_options,
R.drawable.ic_devices,
R.drawable.ic_edit,
R.drawable.ic_edit_outline,
R.drawable.ic_edit_solid,
R.drawable.ic_encryption_enabled,
R.drawable.ic_forward,
R.drawable.ic_groups,
R.drawable.ic_image,
R.drawable.ic_indent_decrease,
R.drawable.ic_indent_increase,
R.drawable.ic_inline_code,
R.drawable.ic_italic,
R.drawable.ic_link,
R.drawable.ic_location_navigator,
R.drawable.ic_location_navigator_centered,
R.drawable.ic_new_message,
R.drawable.ic_numbered_list,
R.drawable.ic_plus,
R.drawable.ic_poll_end,
R.drawable.ic_quote,
R.drawable.ic_reply,
R.drawable.ic_send,
R.drawable.ic_sign_out,
R.drawable.ic_strikethrough,
R.drawable.ic_take_photo_camera,
R.drawable.ic_text_formatting,
R.drawable.ic_thread_decoration,
R.drawable.ic_underline,
R.drawable.ic_sign_out,
R.drawable.ic_user,
R.drawable.ic_user_add,
R.drawable.ic_video_call,
R.drawable.ic_waiting_to_decrypt,
)

View file

@ -38,7 +38,7 @@ import io.element.android.libraries.theme.ElementTheme
import kotlinx.collections.immutable.ImmutableList
import kotlinx.collections.immutable.toPersistentList
internal class IconChunkPreviewProvider : PreviewParameterProvider<IconChunk> {
internal class CompoundIconListPreviewProvider : PreviewParameterProvider<IconChunk> {
override val values: Sequence<IconChunk>
get() {
val chunks = iconsCompound.chunked(36)
@ -49,6 +49,17 @@ internal class IconChunkPreviewProvider : PreviewParameterProvider<IconChunk> {
}
}
internal class OtherIconListPreviewProvider : PreviewParameterProvider<IconChunk> {
override val values: Sequence<IconChunk>
get() {
val chunks = iconsOther.chunked(36)
return chunks.mapIndexed { index, chunk ->
IconChunk(index = index+1, total = chunks.size, icons = chunk.toPersistentList())
}
.asSequence()
}
}
internal data class IconChunk(
val index: Int,
val total: Int,
@ -57,7 +68,7 @@ internal data class IconChunk(
@PreviewsDayNight
@Composable
internal fun IconsCompoundPreview(@PreviewParameter(IconChunkPreviewProvider::class) chunk: IconChunk) = ElementPreview {
internal fun IconsCompoundPreview(@PreviewParameter(CompoundIconListPreviewProvider::class) chunk: IconChunk) = ElementPreview {
IconsPreview(
title = "R.drawable.ic_compound_* ${chunk.index}/${chunk.total}",
iconsList = chunk.icons,
@ -69,22 +80,10 @@ internal fun IconsCompoundPreview(@PreviewParameter(IconChunkPreviewProvider::cl
@PreviewsDayNight
@Composable
internal fun IconsSeptemberPreview() = ElementPreview {
internal fun IconsOtherPreview(@PreviewParameter(OtherIconListPreviewProvider::class) iconChunk: IconChunk) = ElementPreview {
IconsPreview(
title = "R.drawable.ic_september_*",
iconsList = iconsSeptember.toPersistentList(),
iconNameTransform = { name ->
name.removePrefix("ic_september_")
.replace("_", " ")
})
}
@PreviewsDayNight
@Composable
internal fun IconsOtherPreview() = ElementPreview {
IconsPreview(
title = "R.drawable.ic_*",
iconsList = iconsOther.toPersistentList(),
title = "R.drawable.ic_* ${iconChunk.index}/${iconChunk.total}",
iconsList = iconChunk.icons,
iconNameTransform = { name ->
name.removePrefix("ic_")
.replace("_", " ")

View file

@ -20,12 +20,12 @@
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M12.712,16.712C12.521,16.904 12.283,17 12,17C11.717,17 11.479,16.904 11.288,16.712C11.096,16.521 11,16.283 11,16C11,15.717 11.096,15.479 11.288,15.288C11.479,15.096 11.717,15 12,15C12.283,15 12.521,15.096 12.712,15.288C12.904,15.479 13,15.717 13,16C13,16.283 12.904,16.521 12.712,16.712Z"
android:pathData="M12.7,16.7C12.5,16.9 12.3,17 12,17C11.7,17 11.5,16.9 11.3,16.7C11.1,16.5 11,16.3 11,16C11,15.7 11.1,15.5 11.3,15.3C11.5,15.1 11.7,15 12,15C12.3,15 12.5,15.1 12.7,15.3C12.9,15.5 13,15.7 13,16C13,16.3 12.9,16.5 12.7,16.7Z"
android:fillColor="@android:color/white"/>
<path
android:pathData="M12.712,12.712C12.521,12.904 12.283,13 12,13C11.717,13 11.479,12.904 11.288,12.712C11.096,12.521 11,12.283 11,12V8C11,7.717 11.096,7.479 11.288,7.287C11.479,7.096 11.717,7 12,7C12.283,7 12.521,7.096 12.712,7.287C12.904,7.479 13,7.717 13,8V12C13,12.283 12.904,12.521 12.712,12.712Z"
android:pathData="M12.7,12.7C12.5,12.9 12.3,13 12,13C11.7,13 11.5,12.9 11.3,12.7C11.1,12.5 11,12.3 11,12V8C11,7.7 11.1,7.5 11.3,7.3C11.5,7.1 11.7,7 12,7C12.3,7 12.5,7.1 12.7,7.3C12.9,7.5 13,7.7 13,8V12C13,12.3 12.9,12.5 12.7,12.7Z"
android:fillColor="@android:color/white"/>
<path
android:pathData="M2.95,16.3C2.633,15.617 2.396,14.917 2.238,14.2C2.079,13.483 2,12.75 2,12C2,10.617 2.263,9.317 2.788,8.1C3.313,6.883 4.025,5.825 4.925,4.925C5.825,4.025 6.883,3.313 8.1,2.787C9.317,2.263 10.617,2 12,2C13.383,2 14.683,2.263 15.9,2.787C17.117,3.313 18.175,4.025 19.075,4.925C19.975,5.825 20.688,6.883 21.212,8.1C21.737,9.317 22,10.617 22,12C22,13.383 21.737,14.683 21.212,15.9C20.688,17.117 19.975,18.175 19.075,19.075C18.175,19.975 17.117,20.688 15.9,21.212C14.683,21.737 13.383,22 12,22C11.25,22 10.517,21.921 9.8,21.763C9.083,21.604 8.383,21.367 7.7,21.05L2.75,22.5C2.367,22.617 2.033,22.533 1.75,22.25C1.467,21.967 1.383,21.633 1.5,21.25L2.95,16.3ZM7.15,19.1C7.233,19.067 7.325,19.046 7.425,19.038C7.525,19.029 7.617,19.025 7.7,19.025C7.85,19.025 7.996,19.038 8.138,19.063C8.279,19.087 8.417,19.133 8.55,19.2C9.083,19.467 9.642,19.667 10.225,19.8C10.808,19.933 11.4,20 12,20C14.233,20 16.125,19.225 17.675,17.675C19.225,16.125 20,14.233 20,12C20,9.767 19.225,7.875 17.675,6.325C16.125,4.775 14.233,4 12,4C9.767,4 7.875,4.775 6.325,6.325C4.775,7.875 4,9.767 4,12C4,12.6 4.067,13.192 4.2,13.775C4.333,14.358 4.533,14.917 4.8,15.45C4.917,15.667 4.979,15.896 4.988,16.138C4.996,16.379 4.967,16.617 4.9,16.85L3.95,20.05L7.15,19.1Z"
android:pathData="M2.95,16.3C2.63,15.62 2.4,14.92 2.24,14.2C2.08,13.48 2,12.75 2,12C2,10.62 2.26,9.32 2.79,8.1C3.31,6.88 4.03,5.83 4.93,4.93C5.83,4.03 6.88,3.31 8.1,2.79C9.32,2.26 10.62,2 12,2C13.38,2 14.68,2.26 15.9,2.79C17.12,3.31 18.18,4.03 19.08,4.93C19.98,5.83 20.69,6.88 21.21,8.1C21.74,9.32 22,10.62 22,12C22,13.38 21.74,14.68 21.21,15.9C20.69,17.12 19.98,18.18 19.08,19.08C18.18,19.98 17.12,20.69 15.9,21.21C14.68,21.74 13.38,22 12,22C11.25,22 10.52,21.92 9.8,21.76C9.08,21.6 8.38,21.37 7.7,21.05L2.75,22.5C2.37,22.62 2.03,22.53 1.75,22.25C1.47,21.97 1.38,21.63 1.5,21.25L2.95,16.3ZM7.15,19.1C7.23,19.07 7.33,19.05 7.43,19.04C7.53,19.03 7.62,19.03 7.7,19.03C7.85,19.03 8,19.04 8.14,19.06C8.28,19.09 8.42,19.13 8.55,19.2C9.08,19.47 9.64,19.67 10.23,19.8C10.81,19.93 11.4,20 12,20C14.23,20 16.13,19.23 17.68,17.68C19.23,16.13 20,14.23 20,12C20,9.77 19.23,7.88 17.68,6.33C16.13,4.78 14.23,4 12,4C9.77,4 7.88,4.78 6.33,6.33C4.78,7.88 4,9.77 4,12C4,12.6 4.07,13.19 4.2,13.78C4.33,14.36 4.53,14.92 4.8,15.45C4.92,15.67 4.98,15.9 4.99,16.14C5,16.38 4.97,16.62 4.9,16.85L3.95,20.05L7.15,19.1Z"
android:fillColor="@android:color/white"/>
</vector>

View file

@ -20,6 +20,6 @@
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M5,21C4.45,21 3.979,20.804 3.588,20.413C3.196,20.021 3,19.55 3,19V5C3,4.45 3.196,3.979 3.588,3.588C3.979,3.196 4.45,3 5,3H19C19.55,3 20.021,3.196 20.413,3.588C20.804,3.979 21,4.45 21,5V19C21,19.55 20.804,20.021 20.413,20.413C20.021,20.804 19.55,21 19,21H5ZM5,19H19V5H5V19ZM7,17H17C17.2,17 17.35,16.908 17.45,16.725C17.55,16.542 17.533,16.367 17.4,16.2L14.65,12.525C14.55,12.392 14.417,12.325 14.25,12.325C14.083,12.325 13.95,12.392 13.85,12.525L11.25,16L9.4,13.525C9.3,13.392 9.167,13.325 9,13.325C8.833,13.325 8.7,13.392 8.6,13.525L6.6,16.2C6.467,16.367 6.45,16.542 6.55,16.725C6.65,16.908 6.8,17 7,17Z"
android:pathData="M11,13H6C5.717,13 5.479,12.904 5.287,12.712C5.096,12.521 5,12.283 5,12C5,11.717 5.096,11.479 5.287,11.288C5.479,11.096 5.717,11 6,11H11V6C11,5.717 11.096,5.479 11.288,5.287C11.479,5.096 11.717,5 12,5C12.283,5 12.521,5.096 12.712,5.287C12.904,5.479 13,5.717 13,6V11H18C18.283,11 18.521,11.096 18.712,11.288C18.904,11.479 19,11.717 19,12C19,12.283 18.904,12.521 18.712,12.712C18.521,12.904 18.283,13 18,13H13V18C13,18.283 12.904,18.521 12.712,18.712C12.521,18.904 12.283,19 12,19C11.717,19 11.479,18.904 11.288,18.712C11.096,18.521 11,18.283 11,18V13Z"
android:fillColor="@android:color/white"/>
</vector>

View file

@ -0,0 +1,25 @@
<!--
~ 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.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="16dp"
android:height="16dp"
android:viewportWidth="16"
android:viewportHeight="16">
<path
android:pathData="M12.9,6L10,3.2L11,2.2C11.2,2 11.5,1.8 11.9,1.8C12.3,1.8 12.6,2 12.9,2.2L13.8,3.2C14,3.4 14.2,3.7 14.2,4.1C14.2,4.4 14.1,4.7 13.8,5L12.9,6ZM2.7,14C2.5,14 2.3,13.9 2.2,13.8C2.1,13.7 2,13.5 2,13.3V11.5C2,11.4 2,11.3 2.1,11.2C2.1,11.1 2.1,11 2.2,11L9.1,4.1L11.9,6.9L5,13.8C5,13.9 4.9,13.9 4.8,14C4.7,14 4.6,14 4.6,14H2.7Z"
android:fillColor="#1B1D22"/>
</vector>

View file

@ -0,0 +1,25 @@
<!--
~ 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.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M6,22C5.5,22 5,21.8 4.6,21.4C4.2,21 4,20.6 4,20V10C4,9.5 4.2,9 4.6,8.6C5,8.2 5.5,8 6,8H7V6C7,4.6 7.5,3.4 8.5,2.5C9.4,1.5 10.6,1 12,1C13.4,1 14.6,1.5 15.5,2.5C16.5,3.4 17,4.6 17,6V8H18C18.6,8 19,8.2 19.4,8.6C19.8,9 20,9.5 20,10V20C20,20.6 19.8,21 19.4,21.4C19,21.8 18.6,22 18,22H6ZM6,20H18V10H6V20ZM12,17C12.6,17 13,16.8 13.4,16.4C13.8,16 14,15.6 14,15C14,14.5 13.8,14 13.4,13.6C13,13.2 12.6,13 12,13C11.5,13 11,13.2 10.6,13.6C10.2,14 10,14.5 10,15C10,15.6 10.2,16 10.6,16.4C11,16.8 11.5,17 12,17ZM9,8H15V6C15,5.2 14.7,4.5 14.1,3.9C13.5,3.3 12.8,3 12,3C11.2,3 10.5,3.3 9.9,3.9C9.3,4.5 9,5.2 9,6V8Z"
android:fillColor="#000000"/>
</vector>

View file

@ -20,6 +20,9 @@
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M5,21.025C4.45,21.025 3.979,20.829 3.588,20.438C3.196,20.046 3,19.575 3,19.025V5.025C3,4.475 3.196,4.004 3.588,3.612C3.979,3.221 4.45,3.025 5,3.025H13.925L11.925,5.025H5V19.025H19V12.075L21,10.075V19.025C21,19.575 20.804,20.046 20.413,20.438C20.021,20.829 19.55,21.025 19,21.025H5ZM16.175,3.6L17.6,5L11,11.6V13.025H12.4L19.025,6.4L20.45,7.8L13.825,14.425C13.642,14.608 13.429,14.754 13.188,14.863C12.946,14.971 12.692,15.025 12.425,15.025H10C9.717,15.025 9.479,14.929 9.288,14.738C9.096,14.546 9,14.308 9,14.025V11.6C9,11.333 9.05,11.079 9.15,10.837C9.25,10.596 9.392,10.383 9.575,10.2L16.175,3.6ZM20.45,7.8L16.175,3.6L18.675,1.1C19.075,0.7 19.554,0.5 20.112,0.5C20.671,0.5 21.142,0.7 21.525,1.1L22.925,2.525C23.308,2.908 23.5,3.375 23.5,3.925C23.5,4.475 23.308,4.942 22.925,5.325L20.45,7.8Z"
android:pathData="M17,9C17,10.1 16.1,11 15,11C13.9,11 13,10.1 13,9C13,7.9 13.9,7 15,7C16.1,7 17,7.9 17,9Z"
android:fillColor="@android:color/white"/>
<path
android:pathData="M5,3C3.9,3 3,3.9 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.9 20.1,3 19,3H5ZM19,5V19L5,19V15.8L9,11.8L16.2,19L19,19L10.4,10.4C9.6,9.6 8.4,9.6 7.6,10.4L5,13V5H19Z"
android:fillColor="@android:color/white"/>
</vector>

View file

@ -0,0 +1,25 @@
<!--
~ 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.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M11,22V21C8.916,20.767 7.129,19.904 5.637,18.413C4.146,16.921 3.283,15.133 3.05,13.05H2.05C1.766,13.05 1.529,12.954 1.337,12.763C1.146,12.571 1.05,12.333 1.05,12.05C1.05,11.767 1.146,11.529 1.337,11.338C1.529,11.146 1.766,11.05 2.05,11.05H3.05C3.283,8.967 4.146,7.179 5.637,5.688C7.129,4.196 8.916,3.333 11,3.1V2.1C11,1.817 11.096,1.579 11.287,1.388C11.479,1.196 11.717,1.1 12,1.1C12.283,1.1 12.521,1.196 12.712,1.388C12.904,1.579 13,1.817 13,2.1V3.1C15.083,3.333 16.871,4.196 18.362,5.688C19.854,7.179 20.716,8.967 20.95,11.05H21.95C22.233,11.05 22.471,11.146 22.662,11.338C22.854,11.529 22.95,11.767 22.95,12.05C22.95,12.333 22.854,12.571 22.662,12.763C22.471,12.954 22.233,13.05 21.95,13.05H20.95C20.716,15.133 19.854,16.921 18.362,18.413C16.871,19.904 15.083,20.767 13,21V22C13,22.283 12.904,22.521 12.712,22.713C12.521,22.904 12.283,23 12,23C11.717,23 11.479,22.904 11.287,22.713C11.096,22.521 11,22.283 11,22ZM12,19.05C13.933,19.05 15.583,18.367 16.95,17C18.316,15.633 19,13.983 19,12.05C19,10.117 18.316,8.467 16.95,7.1C15.583,5.733 13.933,5.05 12,5.05C10.066,5.05 8.416,5.733 7.05,7.1C5.683,8.467 5,10.117 5,12.05C5,13.983 5.683,15.633 7.05,17C8.416,18.367 10.066,19.05 12,19.05Z"
android:fillColor="#1B1D22"/>
</vector>

View file

@ -0,0 +1,25 @@
<!--
~ 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.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M11,21.95V20.95C8.916,20.716 7.129,19.854 5.637,18.362C4.146,16.871 3.283,15.083 3.05,13H2.05C1.766,13 1.529,12.904 1.337,12.712C1.146,12.521 1.05,12.283 1.05,12C1.05,11.717 1.146,11.479 1.337,11.287C1.529,11.096 1.766,11 2.05,11H3.05C3.283,8.916 4.146,7.129 5.637,5.637C7.129,4.146 8.916,3.283 11,3.05V2.05C11,1.766 11.096,1.529 11.287,1.337C11.479,1.146 11.717,1.05 12,1.05C12.283,1.05 12.521,1.146 12.712,1.337C12.904,1.529 13,1.766 13,2.05V3.05C15.083,3.283 16.871,4.146 18.362,5.637C19.854,7.129 20.716,8.916 20.95,11H21.95C22.233,11 22.471,11.096 22.662,11.287C22.854,11.479 22.95,11.717 22.95,12C22.95,12.283 22.854,12.521 22.662,12.712C22.471,12.904 22.233,13 21.95,13H20.95C20.716,15.083 19.854,16.871 18.362,18.362C16.871,19.854 15.083,20.716 13,20.95V21.95C13,22.233 12.904,22.471 12.712,22.662C12.521,22.854 12.283,22.95 12,22.95C11.717,22.95 11.479,22.854 11.287,22.662C11.096,22.471 11,22.233 11,21.95ZM12,19C13.933,19 15.583,18.316 16.95,16.95C18.316,15.583 19,13.933 19,12C19,10.066 18.316,8.416 16.95,7.05C15.583,5.683 13.933,5 12,5C10.066,5 8.416,5.683 7.05,7.05C5.683,8.416 5,10.066 5,12C5,13.933 5.683,15.583 7.05,16.95C8.416,18.316 10.066,19 12,19ZM12,16C10.9,16 9.958,15.608 9.175,14.825C8.391,14.042 8,13.1 8,12C8,10.9 8.391,9.958 9.175,9.175C9.958,8.391 10.9,8 12,8C13.1,8 14.042,8.391 14.825,9.175C15.608,9.958 16,10.9 16,12C16,13.1 15.608,14.042 14.825,14.825C14.042,15.608 13.1,16 12,16Z"
android:fillColor="#1B1D22"/>
</vector>

View file

@ -20,6 +20,6 @@
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M12,19.35C14.033,17.483 15.542,15.788 16.525,14.262C17.508,12.738 18,11.383 18,10.2C18,8.383 17.421,6.896 16.263,5.738C15.104,4.579 13.684,4 12,4C10.317,4 8.896,4.579 7.738,5.738C6.579,6.896 6,8.383 6,10.2C6,11.383 6.492,12.738 7.475,14.262C8.458,15.788 9.967,17.483 12,19.35ZM12,21.325C11.767,21.325 11.533,21.283 11.3,21.2C11.067,21.117 10.858,20.992 10.675,20.825C9.592,19.825 8.633,18.85 7.8,17.9C6.967,16.95 6.271,16.029 5.713,15.137C5.154,14.246 4.729,13.387 4.438,12.563C4.146,11.738 4,10.95 4,10.2C4,7.7 4.804,5.708 6.413,4.225C8.021,2.742 9.883,2 12,2C14.117,2 15.979,2.742 17.588,4.225C19.196,5.708 20,7.7 20,10.2C20,10.95 19.854,11.738 19.563,12.563C19.271,13.387 18.846,14.246 18.288,15.137C17.729,16.029 17.034,16.95 16.2,17.9C15.367,18.85 14.408,19.825 13.325,20.825C13.142,20.992 12.934,21.117 12.7,21.2C12.467,21.283 12.233,21.325 12,21.325ZM12,12C12.55,12 13.021,11.804 13.413,11.413C13.804,11.021 14,10.55 14,10C14,9.45 13.804,8.979 13.413,8.587C13.021,8.196 12.55,8 12,8C11.45,8 10.979,8.196 10.588,8.587C10.196,8.979 10,9.45 10,10C10,10.55 10.196,11.021 10.588,11.413C10.979,11.804 11.45,12 12,12Z"
android:fillColor="@android:color/white"/>
android:pathData="M12,19.35C14.033,17.483 15.542,15.788 16.525,14.262C17.508,12.738 18,11.383 18,10.2C18,8.383 17.421,6.896 16.263,5.738C15.104,4.579 13.683,4 12,4C10.317,4 8.896,4.579 7.738,5.738C6.579,6.896 6,8.383 6,10.2C6,11.383 6.492,12.738 7.475,14.262C8.458,15.788 9.967,17.483 12,19.35ZM12,21.325C11.767,21.325 11.533,21.283 11.3,21.2C11.067,21.117 10.858,20.992 10.675,20.825C9.592,19.825 8.633,18.85 7.8,17.9C6.967,16.95 6.271,16.029 5.713,15.137C5.154,14.246 4.729,13.387 4.438,12.563C4.146,11.738 4,10.95 4,10.2C4,7.7 4.804,5.708 6.412,4.225C8.021,2.742 9.883,2 12,2C14.117,2 15.979,2.742 17.587,4.225C19.196,5.708 20,7.7 20,10.2C20,10.95 19.854,11.738 19.563,12.563C19.271,13.387 18.846,14.246 18.288,15.137C17.729,16.029 17.033,16.95 16.2,17.9C15.367,18.85 14.408,19.825 13.325,20.825C13.142,20.992 12.933,21.117 12.7,21.2C12.467,21.283 12.233,21.325 12,21.325ZM12,12C12.55,12 13.021,11.804 13.413,11.413C13.804,11.021 14,10.55 14,10C14,9.45 13.804,8.979 13.413,8.587C13.021,8.196 12.55,8 12,8C11.45,8 10.979,8.196 10.587,8.587C10.196,8.979 10,9.45 10,10C10,10.55 10.196,11.021 10.587,11.413C10.979,11.804 11.45,12 12,12Z"
android:fillColor="#1B1D22"/>
</vector>

View file

@ -15,15 +15,11 @@
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="20dp"
android:height="20dp"
android:viewportWidth="20"
android:viewportHeight="20">
<group>
<clip-path
android:pathData="M0,0h20v20h-20z"/>
<path
android:pathData="M15,6.667H14.167V5C14.167,2.7 12.3,0.833 10,0.833C7.7,0.833 5.833,2.7 5.833,5V6.667H5C4.083,6.667 3.333,7.417 3.333,8.333V16.667C3.333,17.583 4.083,18.333 5,18.333H15C15.917,18.333 16.667,17.583 16.667,16.667V8.333C16.667,7.417 15.917,6.667 15,6.667ZM7.5,5C7.5,3.617 8.617,2.5 10,2.5C11.384,2.5 12.5,3.617 12.5,5V6.667H7.5V5ZM14.167,16.667H5.833C5.375,16.667 5,16.292 5,15.833V9.167C5,8.708 5.375,8.333 5.833,8.333H14.167C14.625,8.333 15,8.708 15,9.167V15.833C15,16.292 14.625,16.667 14.167,16.667ZM10,14.167C10.917,14.167 11.667,13.417 11.667,12.5C11.667,11.583 10.917,10.833 10,10.833C9.083,10.833 8.333,11.583 8.333,12.5C8.333,13.417 9.083,14.167 10,14.167Z"
android:fillColor="@android:color/white"/>
</group>
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M6,22C5.45,22 4.979,21.804 4.588,21.413C4.196,21.021 4,20.55 4,20V10C4,9.45 4.196,8.979 4.588,8.587C4.979,8.196 5.45,8 6,8H7V6C7,4.617 7.488,3.438 8.462,2.463C9.438,1.487 10.617,1 12,1C13.383,1 14.563,1.487 15.538,2.463C16.513,3.438 17,4.617 17,6V8H18C18.55,8 19.021,8.196 19.413,8.587C19.804,8.979 20,9.45 20,10V20C20,20.55 19.804,21.021 19.413,21.413C19.021,21.804 18.55,22 18,22H6ZM6,20H18V10H6V20ZM9,8H15V6C15,5.167 14.708,4.458 14.125,3.875C13.542,3.292 12.833,3 12,3C11.167,3 10.458,3.292 9.875,3.875C9.292,4.458 9,5.167 9,6V8Z"
android:fillColor="#1B1D22"/>
</vector>

View file

@ -0,0 +1,31 @@
<!--
~ 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.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M5,3H11C11.6,3 12,3.5 12,4C12,4.6 11.6,5 11,5H5V19H19V13C19,12.5 19.5,12 20,12C20.6,12 21,12.5 21,13V19C21,20.1 20.1,21 19,21H5C3.9,21 3,20.1 3,19V5C3,3.9 3.9,3 5,3Z"
android:fillColor="#1B1D22"/>
<path
android:pathData="M20.2,3.8C19.7,3.2 18.7,3.2 18.1,3.8L17.7,4.2L19.8,6.3L20.2,5.9C20.8,5.3 20.8,4.4 20.2,3.8Z"
android:fillColor="#1B1D22"/>
<path
android:pathData="M19,7.1L16.9,5L8,13.9V16H10.1L19,7.1Z"
android:fillColor="#1B1D22"/>
</vector>

View file

@ -1,25 +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.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M12.125,21.9C12.008,21.9 11.9,21.887 11.8,21.862C11.7,21.837 11.6,21.808 11.5,21.775C9.25,21.025 7.454,19.642 6.113,17.625C4.771,15.608 4.067,13.433 4,11.1V6.375C4,5.958 4.121,5.583 4.363,5.25C4.604,4.917 4.917,4.675 5.3,4.525L11.3,2.275C11.533,2.192 11.767,2.15 12,2.15C12.233,2.15 12.467,2.192 12.7,2.275L18.7,4.525C19.083,4.675 19.396,4.917 19.638,5.25C19.879,5.583 20,5.958 20,6.375V11.1C20,11.267 19.996,11.433 19.987,11.6C19.979,11.767 19.967,11.933 19.95,12.1C19.8,12.067 19.646,12.042 19.487,12.025C19.329,12.008 19.167,12 19,12C18.817,12 18.642,12.008 18.475,12.025C18.308,12.042 18.133,12.067 17.95,12.1C17.967,11.933 17.979,11.771 17.987,11.612C17.996,11.454 18,11.283 18,11.1V6.375L12,4.125L6,6.375V11.1C6,13.117 6.567,14.95 7.7,16.6C8.833,18.25 10.267,19.35 12,19.9C12.35,19.783 12.692,19.642 13.025,19.475C13.358,19.308 13.683,19.117 14,18.9V21.25C13.833,21.333 13.663,21.408 13.488,21.475C13.313,21.542 13.075,21.642 12.775,21.775C12.675,21.808 12.571,21.837 12.462,21.862C12.354,21.887 12.242,21.9 12.125,21.9ZM16.85,22C16.617,22 16.417,21.917 16.25,21.75C16.083,21.583 16,21.383 16,21.15V17.85C16,17.617 16.083,17.417 16.25,17.25C16.417,17.083 16.617,17 16.85,17H17V16C17,15.45 17.196,14.979 17.587,14.587C17.979,14.196 18.45,14 19,14C19.55,14 20.021,14.196 20.413,14.587C20.804,14.979 21,15.45 21,16V17H21.15C21.383,17 21.583,17.083 21.75,17.25C21.917,17.417 22,17.617 22,17.85V21.15C22,21.383 21.917,21.583 21.75,21.75C21.583,21.917 21.383,22 21.15,22H16.85ZM18,17H20V16C20,15.717 19.904,15.479 19.712,15.287C19.521,15.096 19.283,15 19,15C18.717,15 18.479,15.096 18.288,15.287C18.096,15.479 18,15.717 18,16V17Z"
android:fillColor="@android:color/white"/>
</vector>

View file

@ -1,25 +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.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="16dp"
android:height="16dp"
android:viewportWidth="16"
android:viewportHeight="16">
<path
android:pathData="M8,11.667C8.833,11.667 9.542,11.375 10.125,10.792C10.708,10.208 11,9.5 11,8.667C11,7.833 10.708,7.125 10.125,6.542C9.542,5.958 8.833,5.667 8,5.667C7.167,5.667 6.458,5.958 5.875,6.542C5.292,7.125 5,7.833 5,8.667C5,9.5 5.292,10.208 5.875,10.792C6.458,11.375 7.167,11.667 8,11.667ZM8,10.333C7.533,10.333 7.139,10.172 6.817,9.85C6.494,9.528 6.333,9.133 6.333,8.667C6.333,8.2 6.494,7.806 6.817,7.483C7.139,7.161 7.533,7 8,7C8.467,7 8.861,7.161 9.183,7.483C9.506,7.806 9.667,8.2 9.667,8.667C9.667,9.133 9.506,9.528 9.183,9.85C8.861,10.172 8.467,10.333 8,10.333ZM2.667,14C2.3,14 1.986,13.869 1.725,13.608C1.464,13.347 1.333,13.033 1.333,12.667V4.667C1.333,4.3 1.464,3.986 1.725,3.725C1.986,3.464 2.3,3.333 2.667,3.333H4.767L5.6,2.433C5.722,2.3 5.869,2.194 6.042,2.117C6.214,2.039 6.394,2 6.583,2H9.417C9.606,2 9.786,2.039 9.958,2.117C10.131,2.194 10.278,2.3 10.4,2.433L11.233,3.333H13.333C13.7,3.333 14.014,3.464 14.275,3.725C14.536,3.986 14.667,4.3 14.667,4.667V12.667C14.667,13.033 14.536,13.347 14.275,13.608C14.014,13.869 13.7,14 13.333,14H2.667Z"
android:fillColor="@android:color/white"/>
</vector>

View file

@ -0,0 +1,25 @@
<!--
~ 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.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M12,12C10.9,12 10,11.6 9.2,10.8C8.4,10 8,9.1 8,8C8,6.9 8.4,6 9.2,5.2C10,4.4 10.9,4 12,4C13.1,4 14,4.4 14.8,5.2C15.6,6 16,6.9 16,8C16,9.1 15.6,10 14.8,10.8C14,11.6 13.1,12 12,12ZM4,18V17.2C4,16.6 4.2,16.1 4.4,15.6C4.7,15.2 5.1,14.8 5.6,14.6C6.6,14 7.7,13.7 8.8,13.4C9.8,13.1 10.9,13 12,13C13.1,13 14.2,13.1 15.3,13.4C16.3,13.7 17.4,14 18.4,14.6C18.9,14.8 19.3,15.2 19.6,15.6C19.9,16.1 20,16.6 20,17.2V18C20,18.6 19.8,19 19.4,19.4C19,19.8 18.6,20 18,20H6C5.5,20 5,19.8 4.6,19.4C4.2,19 4,18.6 4,18ZM6,18H18V17.2C18,17 18,16.9 17.9,16.7C17.8,16.6 17.7,16.4 17.5,16.4C16.6,15.9 15.7,15.6 14.8,15.3C13.9,15.1 12.9,15 12,15C11.1,15 10.1,15.1 9.2,15.3C8.3,15.6 7.4,15.9 6.5,16.4C6.4,16.4 6.2,16.6 6.1,16.7C6.1,16.9 6,17 6,17.2V18ZM12,10C12.6,10 13,9.8 13.4,9.4C13.8,9 14,8.6 14,8C14,7.5 13.8,7 13.4,6.6C13,6.2 12.6,6 12,6C11.5,6 11,6.2 10.6,6.6C10.2,7 10,7.5 10,8C10,8.6 10.2,9 10.6,9.4C11,9.8 11.5,10 12,10Z"
android:fillColor="#1B1D22"/>
</vector>

View file

@ -0,0 +1,28 @@
<!--
~ 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.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M10,12C8.9,12 8,11.6 7.2,10.8C6.4,10 6,9.1 6,8C6,6.9 6.4,6 7.2,5.2C8,4.4 8.9,4 10,4C11.1,4 12,4.4 12.8,5.2C13.6,6 14,6.9 14,8C14,9.1 13.6,10 12.8,10.8C12,11.6 11.1,12 10,12ZM2,18V17.2C2,16.6 2.2,16.1 2.4,15.6C2.7,15.2 3.1,14.8 3.6,14.6C4.6,14 5.7,13.7 6.8,13.4C7.8,13.1 8.9,13 10,13C11.1,13 12.2,13.1 13.3,13.4C14.3,13.7 15.4,14 16.4,14.6C16.9,14.8 17.3,15.2 17.6,15.6C17.9,16.1 18,16.6 18,17.2V18C18,18.6 17.8,19 17.4,19.4C17,19.8 16.6,20 16,20H4C3.5,20 3,19.8 2.6,19.4C2.2,19 2,18.6 2,18ZM4,18H16V17.2C16,17 16,16.9 15.9,16.7C15.8,16.6 15.7,16.4 15.5,16.4C14.6,15.9 13.7,15.6 12.8,15.3C11.9,15.1 10.9,15 10,15C9.1,15 8.1,15.1 7.2,15.3C6.3,15.6 5.4,15.9 4.5,16.4C4.4,16.4 4.2,16.6 4.1,16.7C4.1,16.9 4,17 4,17.2V18ZM10,10C10.6,10 11,9.8 11.4,9.4C11.8,9 12,8.6 12,8C12,7.5 11.8,7 11.4,6.6C11,6.2 10.6,6 10,6C9.5,6 9,6.2 8.6,6.6C8.2,7 8,7.5 8,8C8,8.6 8.2,9 8.6,9.4C9,9.8 9.5,10 10,10Z"
android:fillColor="#1B1D22"/>
<path
android:pathData="M17,11H19V13C19,13.3 19.1,13.5 19.3,13.7C19.5,13.9 19.7,14 20,14C20.3,14 20.5,13.9 20.7,13.7C20.9,13.5 21,13.3 21,13V11H23C23.3,11 23.5,10.9 23.7,10.7C23.9,10.5 24,10.3 24,10C24,9.7 23.9,9.5 23.7,9.3C23.5,9.1 23.3,9 23,9H21V7C21,6.7 20.9,6.5 20.7,6.3C20.5,6.1 20.3,6 20,6C19.7,6 19.5,6.1 19.3,6.3C19.1,6.5 19,6.7 19,7V9H17C16.7,9 16.5,9.1 16.3,9.3C16.1,9.5 16,9.7 16,10C16,10.3 16.1,10.5 16.3,10.7C16.5,10.9 16.7,11 17,11Z"
android:fillColor="#1B1D22"/>
</vector>

View file

@ -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.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M13,8C13,7.5 12.6,7 12,7C11.5,7 11,7.5 11,8V12C11,12.3 11.1,12.5 11.3,12.7L14.1,15.5C14.5,15.9 15.2,15.9 15.5,15.5C15.9,15.2 15.9,14.5 15.5,14.1L13,11.6V8Z"
android:fillColor="#1B1D22"/>
<path
android:pathData="M22,11.9C22,17.4 17.5,21.9 12,21.9C6.5,21.9 2,17.4 2,11.9C2,6.4 6.5,1.9 12,1.9C17.5,1.9 22,6.4 22,11.9ZM20,11.9C20,16.3 16.4,19.9 12,19.9C7.6,19.9 4,16.3 4,11.9C4,7.5 7.6,3.9 12,3.9C16.4,3.9 20,7.5 20,11.9Z"
android:fillColor="#1B1D22"
android:fillType="evenOdd"/>
</vector>

View file

@ -105,7 +105,7 @@ fun AttachmentThumbnail(
}
AttachmentThumbnailType.File -> {
Icon(
resourceId = CommonDrawables.ic_september_attachment,
resourceId = CommonDrawables.ic_attachment,
contentDescription = info.textContent,
modifier = Modifier.rotate(-45f)
)

View file

@ -28,16 +28,18 @@ import androidx.compose.foundation.lazy.items
import androidx.compose.material.ExperimentalMaterialApi
import androidx.compose.material.ModalBottomSheetState
import androidx.compose.material.ModalBottomSheetValue
import androidx.compose.material3.ListItem
import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.Composable
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.res.stringResource
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
import io.element.android.libraries.designsystem.components.list.ListItemContent
import io.element.android.libraries.designsystem.preview.ElementPreview
import io.element.android.libraries.designsystem.theme.components.Icon
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
import io.element.android.libraries.designsystem.theme.components.IconSource
import io.element.android.libraries.designsystem.theme.components.ListItem
import io.element.android.libraries.designsystem.theme.components.ListItemStyle
import io.element.android.libraries.designsystem.theme.components.ModalBottomSheetLayout
import io.element.android.libraries.designsystem.theme.components.Text
import io.element.android.libraries.matrix.ui.media.AvatarAction
@ -98,12 +100,10 @@ private fun AvatarActionBottomSheetContent(
color = if (action.destructive) MaterialTheme.colorScheme.error else MaterialTheme.colorScheme.primary,
)
},
leadingContent = {
Icon(
resourceId = action.iconResourceId,
contentDescription = stringResource(action.titleResId),
tint = if (action.destructive) MaterialTheme.colorScheme.error else MaterialTheme.colorScheme.secondary,
)
leadingContent = ListItemContent.Icon(IconSource.Resource(action.iconResourceId)),
style = when {
action.destructive -> ListItemStyle.Destructive
else -> ListItemStyle.Primary
}
)
}

View file

@ -26,8 +26,6 @@ import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.shape.CircleShape
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.outlined.AddAPhoto
import androidx.compose.material.ripple.rememberRipple
import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.Composable
@ -40,6 +38,7 @@ 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.components.Icon
import io.element.android.libraries.designsystem.utils.CommonDrawables
@Composable
fun EditableAvatarView(
@ -87,7 +86,7 @@ fun EditableAvatarView(
) {
Icon(
modifier = Modifier.size(16.dp),
imageVector = Icons.Outlined.AddAPhoto,
resourceId = CommonDrawables.ic_edit,
contentDescription = "",
tint = MaterialTheme.colorScheme.onPrimary,
)

View file

@ -30,12 +30,12 @@ sealed class AvatarAction(
) {
data object TakePhoto : AvatarAction(
titleResId = CommonStrings.action_take_photo,
iconResourceId = CommonDrawables.ic_september_take_photo_camera,
iconResourceId = CommonDrawables.ic_take_photo_camera,
)
data object ChoosePhoto : AvatarAction(
titleResId = CommonStrings.action_choose_photo,
iconResourceId = CommonDrawables.ic_september_photo_video_library,
iconResourceId = CommonDrawables.ic_image,
)
data object Remove : AvatarAction(

View file

@ -475,7 +475,7 @@ private fun EditingModeView(
.padding(start = 12.dp)
) {
Icon(
resourceId = CommonDrawables.ic_september_edit_solid_16,
resourceId = CommonDrawables.ic_edit_solid,
contentDescription = stringResource(CommonStrings.common_editing),
tint = ElementTheme.materialColors.secondary,
modifier = Modifier

View file

@ -54,7 +54,7 @@ internal fun SendButton(
) {
val iconId = when (composerMode) {
is MessageComposerMode.Edit -> CommonDrawables.ic_compound_check
else -> CommonDrawables.ic_september_send
else -> CommonDrawables.ic_send
}
val iconSize = when (composerMode) {
is MessageComposerMode.Edit -> 24.dp

View file

@ -21,5 +21,5 @@
android:viewportHeight="24">
<path
android:pathData="M8.825,12L10.3,10.525C10.5,10.325 10.6,10.092 10.6,9.825C10.6,9.558 10.5,9.325 10.3,9.125C10.1,8.925 9.863,8.825 9.587,8.825C9.313,8.825 9.075,8.925 8.875,9.125L6.7,11.3C6.6,11.4 6.529,11.508 6.488,11.625C6.446,11.742 6.425,11.867 6.425,12C6.425,12.133 6.446,12.258 6.488,12.375C6.529,12.492 6.6,12.6 6.7,12.7L8.875,14.875C9.075,15.075 9.313,15.175 9.587,15.175C9.863,15.175 10.1,15.075 10.3,14.875C10.5,14.675 10.6,14.442 10.6,14.175C10.6,13.908 10.5,13.675 10.3,13.475L8.825,12ZM15.175,12L13.7,13.475C13.5,13.675 13.4,13.908 13.4,14.175C13.4,14.442 13.5,14.675 13.7,14.875C13.9,15.075 14.137,15.175 14.413,15.175C14.688,15.175 14.925,15.075 15.125,14.875L17.3,12.7C17.4,12.6 17.471,12.492 17.513,12.375C17.554,12.258 17.575,12.133 17.575,12C17.575,11.867 17.554,11.742 17.513,11.625C17.471,11.508 17.4,11.4 17.3,11.3L15.125,9.125C15.025,9.025 14.913,8.95 14.788,8.9C14.663,8.85 14.538,8.825 14.413,8.825C14.288,8.825 14.163,8.85 14.038,8.9C13.913,8.95 13.8,9.025 13.7,9.125C13.5,9.325 13.4,9.558 13.4,9.825C13.4,10.092 13.5,10.325 13.7,10.525L15.175,12ZM5,21C4.45,21 3.979,20.804 3.588,20.413C3.196,20.021 3,19.55 3,19V5C3,4.45 3.196,3.979 3.588,3.588C3.979,3.196 4.45,3 5,3H19C19.55,3 20.021,3.196 20.413,3.588C20.804,3.979 21,4.45 21,5V19C21,19.55 20.804,20.021 20.413,20.413C20.021,20.804 19.55,21 19,21H5ZM5,19H19V5H5V19Z"
android:fillColor="@android:color/white"/>
android:fillColor="#1B1D22"/>
</vector>

View file

@ -0,0 +1,25 @@
<!--
~ 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.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M3.5,20C3.083,20 2.729,19.854 2.438,19.563C2.146,19.271 2,18.917 2,18.5C2,18.083 2.146,17.729 2.438,17.438C2.729,17.146 3.083,17 3.5,17H4V6C4,5.45 4.196,4.979 4.588,4.588C4.979,4.196 5.45,4 6,4H20C20.283,4 20.521,4.096 20.712,4.287C20.904,4.479 21,4.717 21,5C21,5.283 20.904,5.521 20.712,5.713C20.521,5.904 20.283,6 20,6H6V17H10.5C10.917,17 11.271,17.146 11.563,17.438C11.854,17.729 12,18.083 12,18.5C12,18.917 11.854,19.271 11.563,19.563C11.271,19.854 10.917,20 10.5,20H3.5ZM15,20C14.717,20 14.479,19.904 14.288,19.712C14.096,19.521 14,19.283 14,19V9C14,8.717 14.096,8.479 14.288,8.288C14.479,8.096 14.717,8 15,8H21C21.283,8 21.521,8.096 21.712,8.288C21.904,8.479 22,8.717 22,9V19C22,19.283 21.904,19.521 21.712,19.712C21.521,19.904 21.283,20 21,20H15ZM16,17H20V10H16V17Z"
android:fillColor="#1B1D22"/>
</vector>

View file

@ -0,0 +1,25 @@
<!--
~ 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.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="16dp"
android:height="16dp"
android:viewportWidth="16"
android:viewportHeight="16">
<path
android:pathData="M12.867,5.95L10.033,3.15L10.967,2.217C11.222,1.961 11.536,1.833 11.908,1.833C12.281,1.833 12.594,1.961 12.85,2.217L13.783,3.15C14.039,3.405 14.172,3.714 14.183,4.075C14.194,4.436 14.072,4.744 13.817,5L12.867,5.95ZM2.667,14C2.478,14 2.319,13.936 2.192,13.808C2.064,13.68 2,13.522 2,13.333V11.45C2,11.361 2.017,11.275 2.05,11.191C2.083,11.108 2.133,11.033 2.2,10.967L9.067,4.1L11.9,6.933L5.033,13.8C4.967,13.866 4.892,13.917 4.808,13.95C4.725,13.983 4.639,14 4.55,14H2.667Z"
android:fillColor="#1B1D22"/>
</vector>

View file

@ -0,0 +1,25 @@
<!--
~ 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.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M6,22C5.45,22 4.979,21.804 4.588,21.413C4.196,21.021 4,20.55 4,20V10C4,9.45 4.196,8.979 4.588,8.587C4.979,8.196 5.45,8 6,8H7V6C7,4.617 7.488,3.438 8.462,2.463C9.438,1.487 10.617,1 12,1C13.383,1 14.563,1.487 15.538,2.463C16.513,3.438 17,4.617 17,6V8H18C18.55,8 19.021,8.196 19.413,8.587C19.804,8.979 20,9.45 20,10V20C20,20.55 19.804,21.021 19.413,21.413C19.021,21.804 18.55,22 18,22H6ZM6,20H18V10H6V20ZM12,17C12.55,17 13.021,16.804 13.413,16.413C13.804,16.021 14,15.55 14,15C14,14.45 13.804,13.979 13.413,13.587C13.021,13.196 12.55,13 12,13C11.45,13 10.979,13.196 10.587,13.587C10.196,13.979 10,14.45 10,15C10,15.55 10.196,16.021 10.587,16.413C10.979,16.804 11.45,17 12,17ZM9,8H15V6C15,5.167 14.708,4.458 14.125,3.875C13.542,3.292 12.833,3 12,3C11.167,3 10.458,3.292 9.875,3.875C9.292,4.458 9,5.167 9,6V8Z"
android:fillColor="#000000"/>
</vector>

View file

@ -0,0 +1,25 @@
<!--
~ 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.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M11,22V21C8.916,20.767 7.129,19.904 5.637,18.413C4.146,16.921 3.283,15.133 3.05,13.05H2.05C1.766,13.05 1.529,12.954 1.337,12.763C1.146,12.571 1.05,12.333 1.05,12.05C1.05,11.767 1.146,11.529 1.337,11.338C1.529,11.146 1.766,11.05 2.05,11.05H3.05C3.283,8.967 4.146,7.179 5.637,5.688C7.129,4.196 8.916,3.333 11,3.1V2.1C11,1.817 11.096,1.579 11.287,1.388C11.479,1.196 11.717,1.1 12,1.1C12.283,1.1 12.521,1.196 12.712,1.388C12.904,1.579 13,1.817 13,2.1V3.1C15.083,3.333 16.871,4.196 18.362,5.688C19.854,7.179 20.716,8.967 20.95,11.05H21.95C22.233,11.05 22.471,11.146 22.662,11.338C22.854,11.529 22.95,11.767 22.95,12.05C22.95,12.333 22.854,12.571 22.662,12.763C22.471,12.954 22.233,13.05 21.95,13.05H20.95C20.716,15.133 19.854,16.921 18.362,18.413C16.871,19.904 15.083,20.767 13,21V22C13,22.283 12.904,22.521 12.712,22.713C12.521,22.904 12.283,23 12,23C11.717,23 11.479,22.904 11.287,22.713C11.096,22.521 11,22.283 11,22ZM12,19.05C13.933,19.05 15.583,18.367 16.95,17C18.316,15.633 19,13.983 19,12.05C19,10.117 18.316,8.467 16.95,7.1C15.583,5.733 13.933,5.05 12,5.05C10.066,5.05 8.416,5.733 7.05,7.1C5.683,8.467 5,10.117 5,12.05C5,13.983 5.683,15.633 7.05,17C8.416,18.367 10.066,19.05 12,19.05Z"
android:fillColor="#1B1D22"/>
</vector>

View file

@ -0,0 +1,31 @@
<!--
~ 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.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M5,3H11C11.552,3 12,3.448 12,4C12,4.552 11.552,5 11,5H5V19H19V13C19,12.448 19.448,12 20,12C20.552,12 21,12.448 21,13V19C21,20.105 20.105,21 19,21H5C3.895,21 3,20.105 3,19V5C3,3.895 3.895,3 5,3Z"
android:fillColor="#1B1D22"/>
<path
android:pathData="M20.233,3.767C19.647,3.181 18.698,3.181 18.112,3.767L17.657,4.222L19.778,6.343L20.233,5.888C20.819,5.303 20.819,4.353 20.233,3.767Z"
android:fillColor="#1B1D22"/>
<path
android:pathData="M19.021,7.101L16.899,4.979L8,13.879V16H10.121L19.021,7.101Z"
android:fillColor="#1B1D22"/>
</vector>

View file

@ -0,0 +1,25 @@
<!--
~ 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.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M20,19C19.716,19 19.479,18.904 19.288,18.712C19.096,18.521 19,18.283 19,18V15C19,14.167 18.708,13.458 18.125,12.875C17.542,12.292 16.833,12 16,12H6.8L9.725,14.925C9.908,15.108 10,15.333 10,15.6C10,15.867 9.9,16.1 9.7,16.3C9.516,16.483 9.283,16.575 9,16.575C8.716,16.575 8.483,16.483 8.3,16.3L3.7,11.7C3.6,11.6 3.529,11.492 3.488,11.375C3.446,11.258 3.425,11.133 3.425,11C3.425,10.867 3.446,10.742 3.488,10.625C3.529,10.508 3.6,10.4 3.7,10.3L8.325,5.675C8.508,5.492 8.733,5.4 9,5.4C9.266,5.4 9.5,5.5 9.7,5.7C9.883,5.883 9.975,6.117 9.975,6.4C9.975,6.683 9.883,6.917 9.7,7.1L6.8,10H16C17.383,10 18.563,10.487 19.538,11.462C20.513,12.437 21,13.617 21,15V18C21,18.283 20.904,18.521 20.712,18.712C20.521,18.904 20.283,19 20,19Z"
android:fillColor="#1B1D22"/>
</vector>

View file

@ -0,0 +1,25 @@
<!--
~ 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.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M9,12.031C9,11.748 9.096,11.51 9.288,11.319C9.479,11.127 9.717,11.031 10,11.031H17.15L15.275,9.156C15.075,8.956 14.975,8.723 14.975,8.456C14.975,8.19 15.083,7.948 15.3,7.731C15.5,7.531 15.738,7.435 16.013,7.444C16.288,7.452 16.517,7.548 16.7,7.731L20.3,11.331C20.4,11.431 20.471,11.54 20.513,11.656C20.554,11.773 20.575,11.898 20.575,12.031C20.575,12.165 20.554,12.29 20.513,12.406C20.471,12.523 20.4,12.631 20.3,12.731L16.7,16.331C16.5,16.531 16.263,16.627 15.988,16.619C15.713,16.61 15.483,16.515 15.3,16.331C15.1,16.131 14.996,15.894 14.988,15.619C14.979,15.344 15.075,15.106 15.275,14.906L17.15,13.031H10C9.717,13.031 9.479,12.935 9.288,12.744C9.096,12.552 9,12.315 9,12.031ZM3,5.031C3,4.481 3.196,4.01 3.588,3.619C3.979,3.227 4.45,3.031 5,3.031H11C11.283,3.031 11.521,3.127 11.713,3.319C11.904,3.51 12,3.748 12,4.031C12,4.315 11.904,4.552 11.713,4.744C11.521,4.935 11.283,5.031 11,5.031L5,5.031L5,19.031H11C11.283,19.031 11.521,19.127 11.713,19.319C11.904,19.51 12,19.748 12,20.031C12,20.315 11.904,20.552 11.713,20.744C11.521,20.935 11.283,21.031 11,21.031H5C4.45,21.031 3.979,20.835 3.588,20.444C3.196,20.052 3,19.581 3,19.031V5.031Z"
android:fillColor="#1B1D22"/>
</vector>

View file

@ -0,0 +1,25 @@
<!--
~ 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.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M12,12C10.9,12 9.958,11.608 9.175,10.825C8.392,10.042 8,9.1 8,8C8,6.9 8.392,5.958 9.175,5.175C9.958,4.392 10.9,4 12,4C13.1,4 14.042,4.392 14.825,5.175C15.608,5.958 16,6.9 16,8C16,9.1 15.608,10.042 14.825,10.825C14.042,11.608 13.1,12 12,12ZM4,18V17.2C4,16.633 4.146,16.112 4.438,15.637C4.729,15.163 5.117,14.8 5.6,14.55C6.633,14.033 7.683,13.646 8.75,13.387C9.817,13.129 10.9,13 12,13C13.1,13 14.183,13.129 15.25,13.387C16.317,13.646 17.367,14.033 18.4,14.55C18.883,14.8 19.271,15.163 19.563,15.637C19.854,16.112 20,16.633 20,17.2V18C20,18.55 19.804,19.021 19.413,19.413C19.021,19.804 18.55,20 18,20H6C5.45,20 4.979,19.804 4.588,19.413C4.196,19.021 4,18.55 4,18ZM6,18H18V17.2C18,17.017 17.954,16.85 17.862,16.7C17.771,16.55 17.65,16.433 17.5,16.35C16.6,15.9 15.692,15.563 14.775,15.337C13.858,15.113 12.933,15 12,15C11.067,15 10.142,15.113 9.225,15.337C8.308,15.563 7.4,15.9 6.5,16.35C6.35,16.433 6.229,16.55 6.137,16.7C6.046,16.85 6,17.017 6,17.2V18ZM12,10C12.55,10 13.021,9.804 13.413,9.413C13.804,9.021 14,8.55 14,8C14,7.45 13.804,6.979 13.413,6.588C13.021,6.196 12.55,6 12,6C11.45,6 10.979,6.196 10.587,6.588C10.196,6.979 10,7.45 10,8C10,8.55 10.196,9.021 10.587,9.413C10.979,9.804 11.45,10 12,10Z"
android:fillColor="#1B1D22"/>
</vector>

View file

@ -0,0 +1,28 @@
<!--
~ 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.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M10,12C8.9,12 7.958,11.608 7.175,10.825C6.392,10.042 6,9.1 6,8C6,6.9 6.392,5.958 7.175,5.175C7.958,4.392 8.9,4 10,4C11.1,4 12.042,4.392 12.825,5.175C13.608,5.958 14,6.9 14,8C14,9.1 13.608,10.042 12.825,10.825C12.042,11.608 11.1,12 10,12ZM2,18V17.2C2,16.633 2.146,16.112 2.438,15.637C2.729,15.163 3.117,14.8 3.6,14.55C4.633,14.033 5.683,13.646 6.75,13.387C7.817,13.129 8.9,13 10,13C11.1,13 12.183,13.129 13.25,13.387C14.317,13.646 15.367,14.033 16.4,14.55C16.883,14.8 17.271,15.163 17.563,15.637C17.854,16.112 18,16.633 18,17.2V18C18,18.55 17.804,19.021 17.413,19.413C17.021,19.804 16.55,20 16,20H4C3.45,20 2.979,19.804 2.588,19.413C2.196,19.021 2,18.55 2,18ZM4,18H16V17.2C16,17.017 15.954,16.85 15.863,16.7C15.771,16.55 15.65,16.433 15.5,16.35C14.6,15.9 13.692,15.563 12.775,15.337C11.858,15.113 10.933,15 10,15C9.067,15 8.142,15.113 7.225,15.337C6.308,15.563 5.4,15.9 4.5,16.35C4.35,16.433 4.229,16.55 4.137,16.7C4.046,16.85 4,17.017 4,17.2V18ZM10,10C10.55,10 11.021,9.804 11.413,9.413C11.804,9.021 12,8.55 12,8C12,7.45 11.804,6.979 11.413,6.588C11.021,6.196 10.55,6 10,6C9.45,6 8.979,6.196 8.587,6.588C8.196,6.979 8,7.45 8,8C8,8.55 8.196,9.021 8.587,9.413C8.979,9.804 9.45,10 10,10Z"
android:fillColor="#1B1D22"/>
<path
android:pathData="M17,11H19V13C19,13.283 19.096,13.521 19.288,13.712C19.479,13.904 19.717,14 20,14C20.283,14 20.521,13.904 20.712,13.712C20.904,13.521 21,13.283 21,13V11H23C23.283,11 23.521,10.904 23.712,10.712C23.904,10.521 24,10.283 24,10C24,9.717 23.904,9.479 23.712,9.288C23.521,9.096 23.283,9 23,9H21V7C21,6.717 20.904,6.479 20.712,6.287C20.521,6.096 20.283,6 20,6C19.717,6 19.479,6.096 19.288,6.287C19.096,6.479 19,6.717 19,7V9H17C16.717,9 16.479,9.096 16.288,9.288C16.096,9.479 16,9.717 16,10C16,10.283 16.096,10.521 16.288,10.712C16.479,10.904 16.717,11 17,11Z"
android:fillColor="#1B1D22"/>
</vector>

View file

@ -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.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M13,8C13,7.448 12.552,7 12,7C11.448,7 11,7.448 11,8V12C11,12.265 11.105,12.52 11.293,12.707L14.123,15.537C14.513,15.928 15.147,15.928 15.537,15.537C15.928,15.147 15.928,14.513 15.537,14.123L13,11.586V8Z"
android:fillColor="#1B1D22"/>
<path
android:pathData="M22,11.915C22,17.438 17.523,21.915 12,21.915C6.477,21.915 2,17.438 2,11.915C2,6.392 6.477,1.915 12,1.915C17.523,1.915 22,6.392 22,11.915ZM20,11.915C20,16.333 16.418,19.915 12,19.915C7.582,19.915 4,16.333 4,11.915C4,7.497 7.582,3.915 12,3.915C16.418,3.915 20,7.497 20,11.915Z"
android:fillColor="#1B1D22"
android:fillType="evenOdd"/>
</vector>

View file

@ -59,7 +59,7 @@ class KonsistClassNameTest {
.substringBefore("<")
.removeSuffix("?")
.replace(".", "")
it.name.endsWith("Provider") && it.name.contains(providedType)
it.name.endsWith("Provider") && (it.name.contains("IconList") || it.name.contains(providedType))
}
}
}

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b513c5dc3dcab57aa0161dda218a23bca21591e5d3e74c57affded1ee9160ba8
size 23575
oid sha256:79f771e31445db99b25df34ae686a940d0bb7e44745abe5ed2da79bf258122ed
size 23090

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3a326bbd2a5b8682aba465f5ffe988243893121d4dcc615159982cc1d3a6c52f
size 22039
oid sha256:e83a879d73aec0356e2a5a2db628183108b2d045a9bbb72d86324419d3407b0f
size 21460

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:812de54cf01d30f00db9606f7907f106453eba5f9bba4b9fd38a61d8944e780c
size 288364
oid sha256:261face86126e646561ef480904b0af7e7aaf990e5a6fd198d0d953f4a613e11
size 288233

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:bc89eabc29dd72962b2ccece5bc003ffaf233b81817acf5b59f4574d4774af41
size 391205
oid sha256:c935cbdc16bead41781b486da0427a2d6df3530fe8f35a8bb031c660db8e7e73
size 391103

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:322558b9928b3e408320e9c002439b0ebd6b09a86c03cd3668ffd64f03d0b5c8
size 22317
oid sha256:4fe166a1cb630b39bf4d21f78da1cca582a466e7cf50a879546db9ccb123cb7e
size 22385

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3555a707ef787466d493247a5198131469c3e61d4f2aaf10e7a86e99f7fcccd6
size 41368
oid sha256:2ee8c200c15a0b9d9aefb2de0f3dec576742ac4fe59c71ce0ee016cf23415d5a
size 41422

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4d902d99d379baa2f4fb0eebb9479fc6c497cf1ed62059cda799f4acea72efd7
size 39897
oid sha256:cc7691f9c3643ad352bf687a898512b4adb4ea0b12e536ebda3bce7c8f2512d1
size 39954

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:322558b9928b3e408320e9c002439b0ebd6b09a86c03cd3668ffd64f03d0b5c8
size 22317
oid sha256:4fe166a1cb630b39bf4d21f78da1cca582a466e7cf50a879546db9ccb123cb7e
size 22385

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2d3b5105a703083f7ef66c74e54232a4626e47c2409637d72170381212e2becd
size 22456
oid sha256:7e083f35c919d664603c4edeb24a32e9a9e594a480d4b4ebabd92863a77d7af3
size 22504

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3700451074385a0cf8601faa11432124b60c05060cf79459b8aab35cefa0bc0c
size 20723
oid sha256:b1cd421332c29fe6ea004f95c113fa8bfb0ccc64b34c77b5d03c93debf6fd758
size 20780

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8e7a461733795c789f0f6507874fbcb7d911b2b93ad0fd44a446d6882def8141
size 38048
oid sha256:38539e5bf70c45e79cea35d6d5cd15ac1476a51083a177d82eb2765673733fc0
size 38110

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a6d34735c7ad55744a0309897d826d6fd2d935ee2ffb7a4f6192d1b5b5e9925e
size 36499
oid sha256:7d9fb2ef1976c318c4dc7191a10d482e98ceb8651a90cdef933c100cff4bdb6a
size 36560

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3700451074385a0cf8601faa11432124b60c05060cf79459b8aab35cefa0bc0c
size 20723
oid sha256:b1cd421332c29fe6ea004f95c113fa8bfb0ccc64b34c77b5d03c93debf6fd758
size 20780

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5c9bba26f9a57eeb103087ed9b630eb9964983db2692e1019a3d6b4fc66c3296
size 20888
oid sha256:0e197302e95daa0a1bb1461e0564afd234723db0300521c623cc3640c56f431b
size 20938

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:85692ea3847fe5a79f955bb71153ccb6e5b24cf451292c7b9d56f26e2eff95b7
size 28840
oid sha256:1aecc7465d731f46d32ea9222022b6f640a3aa86c81a77c93487d5f35bfcad1b
size 28689

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2e7684929f93f437c50549b309e1ba75b95cddb506ad9c8ef97373d0552bddfb
size 39017
oid sha256:28300c9143f5701e46ed3b8d77e93d34584f82949a335003bab685ffb4cd1434
size 38850

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:56f71535fd676a86e79b0e987701d34c85c96276e5338f77117b13e1b3a05144
size 45715
oid sha256:f79e915bd6c47b424fd34dfa38130a083b00288e0f6eb15c685d78bb9ce29e0b
size 45508

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2f594c95c1de47b3fa74add85f87b70005c54ed9230d29967742a8a8291b6844
size 46255
oid sha256:f332e7d12d5f64a1704d17e5adc42e9eb0ea9ed21a2d116955e2e0e276153182
size 46090

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d398070330d5c66358b7ac17d4e1b93795fb9001ffc6eabe533d3bae86de7d58
size 39810
oid sha256:ecc28b4311d27eaaa1c32128ed3c1f3ca03c5bb0c1390b8685c82caed2d6bc3b
size 39662

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d32becec465a3f01e35aac9ebbeb8f48507cc2146f35b8e6c6393bbd410cca3e
size 39370
oid sha256:6b269d050154e28ebf9b1eaa51856e1199490ea7aecc6439fc567bd3b8cbb7d8
size 39224

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e8e50be96a1b204b8187fd76802650569a740a927739135a6b6307481f2d5568
size 40453
oid sha256:19f262d8c0786fe8e1781c5934e7ff86f89d36decb2d0566ca35772962b3866c
size 40306

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:979138753000ada021a67f4bc14a89b912430c4331ac69aa702b2e50c050d7cb
size 41200
oid sha256:c3ca04db3a4e6096aa75e547fd059a199aca4b91a31b36e3ae84254a08fbfbf1
size 41043

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e06e1a32d8c9d06a307a5116a396a03308d5e5486f911d34002139485e7d9ffe
size 28176
oid sha256:d847380eed52b6842f2926143e189208f11baf8ce906acae23dcf797384cd1c1
size 28015

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5df2d3b6e4698867277712214fa526e08a9bf790140cd000cfe2bf94c70e77f4
size 27525
oid sha256:eabb7309eef1e5bf0d496e053c1531f44262e109b3847e2de5e60ffd6df4e942
size 27505

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:cb4be22a56036d53f7c394c3829a9f8f09820276d7529ace0d3731965a8a92f9
size 37556
oid sha256:9740a5e50f62b47a4daccccfb795b6844033b6578227b93584b3e29a949c0448
size 37510

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:369e8b4e3f741476cfa5ff7e3f9d5d1e1399fcf3494fadb95540129436ef4d68
size 43744
oid sha256:6460478383d3dfd4043b129743c508ca6cc7bc64e0635dee51d1de7ba073d3c7
size 43672

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:bd4fad16706caabe092b40fc2ffbc748db5b763ba649f88fe7463ab17f73ca4e
size 44329
oid sha256:b561a070230bb3fb50a189a969cda1fa723fb519915c8af0b21ec516a71cc630
size 44220

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9b2aaa54bf065e6496957c3a60d61336f65e6b76f97e5dbc773284ee49fac91d
size 37988
oid sha256:88c8e6bcecef8c8da37603cea72dfdeab1d975d674ff049d8994ab12e9799451
size 37939

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a99566280864e66ec327d2d6d8016c74b12f1c62ff27fd0d2d4ba0109ae9756a
size 37747
oid sha256:2a639070cb7293c750b153489d1b88a946db8231f818063da86ea38bce282863
size 37693

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:83f6cbcdbc00c49aed762339769e0f639604286406c46b1336b7757e2aad8b41
size 38641
oid sha256:d1a18f1544bd6b2f9592acf3e0347792136116b0c5159591cc6bc4a6071638a3
size 38557

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:752abe37a810cc8e4b36ae5f4c4aa38c9f22757b6458f272ba991050c69aee53
size 39409
oid sha256:0c18f92cda3af1e3a5524fd6191b45810e20eb3449335fa357e390465e051be4
size 39309

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0c53fdbe427ddb7088d9bd8f9b46a1281d145fd6f9ccc3a7de339750e3079075
size 26498
oid sha256:04c5ab1c0d9abebd7e189beb5cebecd5dfaa27a90a24ff499ad72a2ab4d003be
size 26307

Some files were not shown because too many files have changed in this diff Show more