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 d373a2b810
commit 14cf2b0440
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))
}
}
}

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