Merge pull request #2067 from element-hq/feature/bma/videoCallIcon

Video call icon
This commit is contained in:
Benoit Marty
2023-12-20 18:16:00 +01:00
committed by GitHub
113 changed files with 226 additions and 339 deletions

View File

@@ -91,7 +91,6 @@ import io.element.android.libraries.designsystem.components.avatar.AvatarData
import io.element.android.libraries.designsystem.components.avatar.AvatarSize
import io.element.android.libraries.designsystem.components.button.BackButton
import io.element.android.libraries.designsystem.components.dialogs.ConfirmationDialog
import io.element.android.libraries.designsystem.icons.CompoundDrawables
import io.element.android.libraries.designsystem.preview.ElementPreview
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
import io.element.android.libraries.designsystem.theme.components.BottomSheetDragHandle
@@ -479,7 +478,10 @@ private fun MessagesViewTopBar(
JoinCallMenuItem(onJoinCallClicked = onJoinCallClicked)
} else {
IconButton(onClick = onJoinCallClicked, enabled = callState != RoomCallState.DISABLED) {
Icon(CompoundIcons.VideoCall, contentDescription = stringResource(CommonStrings.a11y_start_call))
Icon(
imageVector = CompoundIcons.VideoCallSolid,
contentDescription = stringResource(CommonStrings.a11y_start_call),
)
}
}
Spacer(Modifier.width(8.dp))
@@ -504,7 +506,7 @@ private fun JoinCallMenuItem(
) {
Icon(
modifier = Modifier.size(20.dp),
resourceId = CompoundDrawables.ic_video_call,
imageVector = CompoundIcons.VideoCallSolid,
contentDescription = null
)
Spacer(Modifier.width(8.dp))

View File

@@ -128,7 +128,7 @@ private fun AttachmentSourcePickerMenu(
)
ListItem(
modifier = Modifier.clickable { state.eventSink(MessageComposerEvents.PickAttachmentSource.VideoFromCamera) },
leadingContent = ListItemContent.Icon(IconSource.Resource(CommonDrawables.ic_video_call)),
leadingContent = ListItemContent.Icon(IconSource.Vector(CompoundIcons.VideoCall)),
headlineContent = { Text(stringResource(R.string.screen_room_attachment_source_camera_video)) },
style = ListItemStyle.Primary,
)
@@ -138,7 +138,7 @@ private fun AttachmentSourcePickerMenu(
state.eventSink(MessageComposerEvents.PickAttachmentSource.Location)
onSendLocationClicked()
},
leadingContent = ListItemContent.Icon(IconSource.Resource(CommonDrawables.ic_location_pin) ),
leadingContent = ListItemContent.Icon(IconSource.Resource(CommonDrawables.ic_location_pin)),
headlineContent = { Text(stringResource(R.string.screen_room_attachment_source_location)) },
style = ListItemStyle.Primary,
)

View File

@@ -62,6 +62,7 @@ import androidx.compose.ui.zIndex
import androidx.constraintlayout.compose.ConstrainScope
import androidx.constraintlayout.compose.ConstraintLayout
import io.element.android.compound.theme.ElementTheme
import io.element.android.compound.tokens.generated.CompoundIcons
import io.element.android.features.messages.impl.timeline.TimelineEvents
import io.element.android.features.messages.impl.timeline.TimelineRoomInfo
import io.element.android.features.messages.impl.timeline.aTimelineItemEvent
@@ -93,7 +94,6 @@ import io.element.android.libraries.designsystem.swipe.rememberSwipeableActionsS
import io.element.android.libraries.designsystem.text.toPx
import io.element.android.libraries.designsystem.theme.components.Icon
import io.element.android.libraries.designsystem.theme.components.Text
import io.element.android.libraries.designsystem.utils.CommonDrawables
import io.element.android.libraries.matrix.api.core.EventId
import io.element.android.libraries.matrix.api.core.UserId
import io.element.android.libraries.matrix.api.permalink.PermalinkData
@@ -428,7 +428,8 @@ private fun MessageEventBubbleContent(
verticalAlignment = Alignment.CenterVertically,
) {
Icon(
resourceId = CommonDrawables.ic_thread_decoration,
modifier = Modifier.height(14.dp),
imageVector = CompoundIcons.Threads,
contentDescription = null,
tint = ElementTheme.colors.iconSecondary,
)

View File

@@ -42,7 +42,7 @@ import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.tooling.preview.PreviewParameter
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
import androidx.compose.ui.unit.dp
import io.element.android.features.messages.impl.R
import io.element.android.compound.theme.ElementTheme
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemVoiceContent
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemVoiceContentProvider
import io.element.android.features.messages.impl.voicemessages.timeline.VoiceMessageEvents
@@ -56,7 +56,7 @@ import io.element.android.libraries.designsystem.theme.components.CircularProgre
import io.element.android.libraries.designsystem.theme.components.Icon
import io.element.android.libraries.designsystem.theme.components.IconButton
import io.element.android.libraries.designsystem.theme.components.Text
import io.element.android.compound.theme.ElementTheme
import io.element.android.libraries.designsystem.utils.CommonDrawables
import io.element.android.libraries.ui.strings.CommonStrings
import kotlinx.coroutines.delay
@@ -119,7 +119,7 @@ private fun PlayButton(
enabled = enabled,
) {
Icon(
resourceId = R.drawable.play,
resourceId = CommonDrawables.ic_play,
contentDescription = stringResource(id = CommonStrings.a11y_play),
)
}
@@ -133,8 +133,8 @@ private fun PauseButton(
onClick = onClick,
) {
Icon(
resourceId = R.drawable.pause,
contentDescription = stringResource(id = CommonStrings.a11y_play),
resourceId = CommonDrawables.ic_pause,
contentDescription = stringResource(id = CommonStrings.a11y_pause),
)
}
}
@@ -147,7 +147,7 @@ private fun RetryButton(
onClick = onClick,
) {
Icon(
resourceId = R.drawable.retry,
resourceId = CommonDrawables.ic_retry,
contentDescription = stringResource(id = CommonStrings.action_retry),
)
}
@@ -183,7 +183,7 @@ private fun ProgressButton(
)
} else {
Icon(
resourceId = R.drawable.pause,
resourceId = CommonDrawables.ic_pause,
contentDescription = stringResource(id = CommonStrings.a11y_pause),
)
}

View File

@@ -1,9 +0,0 @@
<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="M16,19C15.45,19 14.979,18.804 14.587,18.413C14.196,18.021 14,17.55 14,17V7C14,6.45 14.196,5.979 14.587,5.588C14.979,5.196 15.45,5 16,5C16.55,5 17.021,5.196 17.413,5.588C17.804,5.979 18,6.45 18,7V17C18,17.55 17.804,18.021 17.413,18.413C17.021,18.804 16.55,19 16,19ZM8,19C7.45,19 6.979,18.804 6.588,18.413C6.196,18.021 6,17.55 6,17V7C6,6.45 6.196,5.979 6.588,5.588C6.979,5.196 7.45,5 8,5C8.55,5 9.021,5.196 9.413,5.588C9.804,5.979 10,6.45 10,7V17C10,17.55 9.804,18.021 9.413,18.413C9.021,18.804 8.55,19 8,19Z"
android:fillColor="#656D77"/>
</vector>

View File

@@ -1,9 +0,0 @@
<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.525,18.025C9.192,18.242 8.854,18.254 8.512,18.063C8.171,17.871 8,17.575 8,17.175V6.825C8,6.425 8.171,6.129 8.512,5.938C8.854,5.746 9.192,5.759 9.525,5.975L17.675,11.15C17.975,11.35 18.125,11.634 18.125,12C18.125,12.367 17.975,12.65 17.675,12.85L9.525,18.025Z"
android:fillColor="#656D77"/>
</vector>

View File

@@ -176,7 +176,7 @@ private fun RowScope.LastMessageAndIndicatorRow(room: RoomListRoomSummary) {
if (room.hasOngoingCall) {
Icon(
modifier = Modifier.size(16.dp),
imageVector = CompoundIcons.VideoCall,
imageVector = CompoundIcons.VideoCallSolid,
contentDescription = null,
tint = ElementTheme.colors.unreadIndicator,
)

View File

@@ -28,7 +28,6 @@ internal val iconsOther = listOf(
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,
@@ -45,15 +44,13 @@ internal val iconsOther = listOf(
R.drawable.ic_plus,
R.drawable.ic_quote,
R.drawable.ic_reply,
R.drawable.ic_send,
R.drawable.ic_retry,
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_user,
R.drawable.ic_user_add,
R.drawable.ic_video_call,
R.drawable.ic_waiting_to_decrypt,
)

View File

@@ -44,7 +44,7 @@ internal class CompoundIconListPreviewProvider : PreviewParameterProvider<IconCh
get() {
val chunks = CompoundIcons.allResIds.chunked(36)
return chunks.mapIndexed { index, chunk ->
IconChunk(index = index+1, total = chunks.size, icons = chunk.toPersistentList())
IconChunk(index = index + 1, total = chunks.size, icons = chunk.toPersistentList())
}
.asSequence()
}

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="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.406 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.192C2.083,11.108 2.133,11.033 2.2,10.967L9.067,4.1L11.9,6.933L5.033,13.8C4.967,13.867 4.892,13.917 4.808,13.95C4.725,13.983 4.639,14 4.55,14H2.667Z"
android:fillColor="@android:color/white"/>
</vector>

View File

@@ -5,5 +5,5 @@
android:viewportHeight="20">
<path
android:pathData="M13.25,15.25C12.837,15.25 12.484,15.103 12.191,14.809C11.897,14.516 11.75,14.163 11.75,13.75V6.25C11.75,5.838 11.897,5.484 12.191,5.191C12.484,4.897 12.837,4.75 13.25,4.75H13.75C14.163,4.75 14.516,4.897 14.809,5.191C15.103,5.484 15.25,5.838 15.25,6.25V13.75C15.25,14.163 15.103,14.516 14.809,14.809C14.516,15.103 14.163,15.25 13.75,15.25H13.25ZM6.25,15.25C5.838,15.25 5.484,15.103 5.191,14.809C4.897,14.516 4.75,14.163 4.75,13.75V6.25C4.75,5.838 4.897,5.484 5.191,5.191C5.484,4.897 5.838,4.75 6.25,4.75H6.75C7.162,4.75 7.516,4.897 7.809,5.191C8.103,5.484 8.25,5.838 8.25,6.25V13.75C8.25,14.163 8.103,14.516 7.809,14.809C7.516,15.103 7.162,15.25 6.75,15.25H6.25Z"
android:fillColor="#656D77"/>
android:fillColor="@android:color/white"/>
</vector>

View File

@@ -5,5 +5,5 @@
android:viewportHeight="24">
<path
android:pathData="M12,20C9.767,20 7.875,19.225 6.325,17.675C4.775,16.125 4,14.233 4,12C4,9.767 4.775,7.875 6.325,6.325C7.875,4.775 9.767,4 12,4C13.15,4 14.25,4.238 15.3,4.713C16.35,5.188 17.25,5.867 18,6.75V5C18,4.717 18.096,4.479 18.288,4.287C18.479,4.096 18.717,4 19,4C19.283,4 19.521,4.096 19.712,4.287C19.904,4.479 20,4.717 20,5V10C20,10.283 19.904,10.521 19.712,10.712C19.521,10.904 19.283,11 19,11H14C13.717,11 13.479,10.904 13.288,10.712C13.096,10.521 13,10.283 13,10C13,9.717 13.096,9.479 13.288,9.288C13.479,9.096 13.717,9 14,9H17.2C16.667,8.067 15.938,7.333 15.012,6.8C14.087,6.267 13.083,6 12,6C10.333,6 8.917,6.583 7.75,7.75C6.583,8.917 6,10.333 6,12C6,13.667 6.583,15.083 7.75,16.25C8.917,17.417 10.333,18 12,18C13.133,18 14.171,17.712 15.113,17.138C16.054,16.563 16.783,15.792 17.3,14.825C17.433,14.592 17.621,14.429 17.862,14.337C18.104,14.246 18.35,14.242 18.6,14.325C18.867,14.408 19.058,14.583 19.175,14.85C19.292,15.117 19.283,15.367 19.15,15.6C18.467,16.933 17.492,18 16.225,18.8C14.958,19.6 13.55,20 12,20Z"
android:fillColor="#656D77"/>
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="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M23.106,13.447L2.345,23.822C0.946,24.522 -0.51,23.022 0.174,21.653C0.174,21.653 2.747,16.457 3.455,15.096C4.163,13.734 4.973,13.499 12.497,12.526C12.775,12.49 13.003,12.28 13.003,12C13.003,11.72 12.775,11.509 12.497,11.474C4.973,10.501 4.163,10.266 3.455,8.904C2.747,7.544 0.174,2.347 0.174,2.347C-0.51,0.979 0.946,-0.522 2.345,0.178L23.106,10.554C24.298,11.149 24.298,12.851 23.106,13.447Z"
android:fillColor="@android:color/white"/>
</vector>

View File

@@ -1,15 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="14dp"
android:height="13dp"
android:viewportWidth="14"
android:viewportHeight="13">
<path
android:pathData="M3.667,4.667C3.478,4.667 3.319,4.603 3.192,4.475C3.064,4.347 3,4.189 3,4C3,3.811 3.064,3.653 3.192,3.525C3.319,3.397 3.478,3.333 3.667,3.333H10.333C10.522,3.333 10.681,3.397 10.808,3.525C10.936,3.653 11,3.811 11,4C11,4.189 10.936,4.347 10.808,4.475C10.681,4.603 10.522,4.667 10.333,4.667H3.667Z"
android:fillColor="@android:color/white"/>
<path
android:pathData="M3.667,7.333C3.478,7.333 3.319,7.269 3.192,7.142C3.064,7.014 3,6.856 3,6.667C3,6.478 3.064,6.319 3.192,6.192C3.319,6.064 3.478,6 3.667,6H7.667C7.855,6 8.014,6.064 8.142,6.192C8.269,6.319 8.333,6.478 8.333,6.667C8.333,6.856 8.269,7.014 8.142,7.142C8.014,7.269 7.855,7.333 7.667,7.333H3.667Z"
android:fillColor="@android:color/white"/>
<path
android:pathData="M1.471,12.195C1.051,12.615 0.333,12.318 0.333,11.724V1.333C0.333,0.597 0.93,0 1.667,0H12.333C13.07,0 13.667,0.597 13.667,1.333V9.333C13.667,10.07 13.07,10.667 12.333,10.667H3L1.471,12.195ZM3,9.333H12.333V1.333H1.667V10.114L2.057,9.724C2.307,9.474 2.646,9.333 3,9.333Z"
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="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M2,8C2,5.791 3.791,4 6,4H16C17.105,4 18,4.895 18,6V10.286L21.349,7.415C21.998,6.859 23,7.32 23,8.174V15.826C23,16.68 21.998,17.141 21.349,16.585L18,13.714V18C18,19.105 17.105,20 16,20H6C3.791,20 2,18.209 2,16V8ZM6,6C4.895,6 4,6.895 4,8V16C4,17.105 4.895,18 6,18H16V6H6ZM21,13.652V10.349L19.073,12L21,13.652Z"
android:fillColor="@android:color/white"/>
</vector>

View File

@@ -57,7 +57,6 @@ import io.element.android.libraries.designsystem.preview.PreviewsDayNight
import io.element.android.libraries.designsystem.theme.components.CircularProgressIndicator
import io.element.android.libraries.designsystem.theme.components.Icon
import io.element.android.libraries.designsystem.theme.components.Text
import io.element.android.libraries.designsystem.utils.CommonDrawables
import io.element.android.libraries.matrix.api.core.EventId
import io.element.android.libraries.matrix.api.core.TransactionId
import io.element.android.libraries.matrix.api.core.UserId
@@ -486,7 +485,7 @@ private fun EditingModeView(
.padding(start = 12.dp)
) {
Icon(
resourceId = CommonDrawables.ic_edit_solid,
imageVector = CompoundIcons.Edit,
contentDescription = stringResource(CommonStrings.common_editing),
tint = ElementTheme.materialColors.secondary,
modifier = Modifier
@@ -550,7 +549,9 @@ private fun ReplyToModeView(
) {
Text(
text = senderName,
modifier = Modifier.fillMaxWidth().clipToBounds(),
modifier = Modifier
.fillMaxWidth()
.clipToBounds(),
style = ElementTheme.typography.fontBodySmMedium,
textAlign = TextAlign.Start,
color = ElementTheme.materialColors.primary,

View File

@@ -19,7 +19,6 @@ package io.element.android.libraries.textcomposer.components
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.shape.CircleShape
@@ -30,14 +29,15 @@ import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import io.element.android.compound.icons.CompoundIcons
import io.element.android.compound.icons.compoundicons.Check
import io.element.android.compound.icons.compoundicons.Send
import io.element.android.compound.theme.ElementTheme
import io.element.android.libraries.designsystem.preview.ElementPreview
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
import io.element.android.libraries.designsystem.theme.components.Icon
import io.element.android.libraries.designsystem.theme.components.IconButton
import io.element.android.libraries.designsystem.utils.CommonDrawables
import io.element.android.libraries.textcomposer.model.MessageComposerMode
import io.element.android.compound.theme.ElementTheme
import io.element.android.libraries.designsystem.icons.CompoundDrawables
import io.element.android.libraries.ui.strings.CommonStrings
@Composable
@@ -53,14 +53,9 @@ internal fun SendButton(
onClick = onClick,
enabled = canSendMessage,
) {
val iconId = when (composerMode) {
is MessageComposerMode.Edit -> CompoundDrawables.ic_check
else -> CommonDrawables.ic_send
}
val iconSize = when (composerMode) {
is MessageComposerMode.Edit -> 24.dp
// CommonDrawables.ic_september_send is too big... reduce its size.
else -> 18.dp
val iconVector = when (composerMode) {
is MessageComposerMode.Edit -> CompoundIcons.Check
else -> CompoundIcons.Send
}
val iconStartPadding = when (composerMode) {
is MessageComposerMode.Edit -> 0.dp
@@ -78,10 +73,9 @@ internal fun SendButton(
) {
Icon(
modifier = Modifier
.height(iconSize)
.padding(start = iconStartPadding)
.align(Alignment.Center),
resourceId = iconId,
imageVector = iconVector,
contentDescription = contentDescription,
// Exception here, we use Color.White instead of ElementTheme.colors.iconOnSolidPrimary
tint = if (canSendMessage) Color.White else ElementTheme.colors.iconDisabled

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