new icons

This commit is contained in:
callebtc 2026-07-27 13:45:51 +02:00
parent 7cef3f329e
commit 352dd6e93f
41 changed files with 374 additions and 51 deletions

View File

@ -0,0 +1,6 @@
# Design-spec icons
These standalone SVGs were extracted from the supplied 393 px Figma screen exports. The matching
Android vector resources in `res/drawable/ic_spec_*.xml` are the runtime copies used by Compose.
Paths and stroke weights remain faithful to the exports; UI tint and opacity are applied at the
call site so selected and disabled states remain theme-aware.

View File

@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
<path d="M3 15L8 11.267L13 15V2.4C13 2.029 12.856 1.673 12.601 1.41C12.345 1.147 11.998 1 11.636 1H4.364C4.002 1 3.655 1.147 3.399 1.41C3.144 1.673 3 2.029 3 2.4V15Z" fill="currentColor" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 370 B

View File

@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M3 15L8 11.267L13 15V2.4C13 2.029 12.856 1.673 12.601 1.41C12.345 1.147 11.998 1 11.636 1H4.364C4.002 1 3.655 1.147 3.399 1.41C3.144 1.673 3 2.029 3 2.4V15Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 362 B

View File

@ -0,0 +1,6 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<g transform="translate(-16 -370)" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round">
<path d="M28.5 370.625H18.5C18.0027 370.625 17.5258 370.823 17.1742 371.174C16.8225 371.526 16.625 372.003 16.625 372.5V378.75C16.625 379.247 16.8225 379.724 17.1742 380.076C17.5258 380.427 18.0027 380.625 18.5 380.625H20.375V384.375L24.125 380.625H28.5C28.9973 380.625 29.4742 380.427 29.8258 380.076C30.1775 379.724 30.375 379.247 30.375 378.75V372.5C30.375 372.003 30.1775 371.526 29.8258 371.174C29.4742 370.823 28.9973 370.625 28.5 370.625Z"/>
<path d="M24.125 385.625H27.875L31.625 389.375V385.625H33.5C33.9973 385.625 34.4742 385.427 34.8258 385.076C35.1775 384.724 35.375 384.247 35.375 383.75V377.5C35.375 377.003 35.1775 376.526 34.8258 376.174C34.4742 375.823 33.9973 375.625 33.5 375.625H32.875"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 955 B

View File

@ -0,0 +1,6 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<g transform="translate(-16 -407)" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round">
<path d="M26.625 422.875H35.375"/>
<path d="M16.625 407.875L24.125 415.375L16.625 422.875"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 338 B

View File

@ -0,0 +1,6 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<g transform="translate(-16 -682)" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round">
<path d="M16.625 692C16.625 692 20.375 685.125 26 685.125C31.625 685.125 35.375 692 35.375 692C35.375 692 31.625 698.875 26 698.875C20.375 698.875 16.625 692 16.625 692Z"/>
<path d="M22.25 692C22.25 689.929 23.9288 688.25 26 688.25M29.75 692C29.75 694.071 28.0712 695.75 26 695.75M17.25 700.75L34.75 683.25"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 555 B

View File

@ -0,0 +1,7 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<g transform="translate(-16 -278)" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round">
<path d="M25.9999 297.375C28.2187 297.375 30.0174 293.178 30.0174 288C30.0174 282.822 28.2187 278.625 25.9999 278.625C23.7811 278.625 21.9824 282.822 21.9824 288C21.9824 293.178 23.7811 297.375 25.9999 297.375Z"/>
<path d="M16.625 288H35.375"/>
<path d="M26 297.375C31.1777 297.375 35.375 293.178 35.375 288C35.375 282.822 31.1777 278.625 26 278.625C20.8223 278.625 16.625 282.822 16.625 288C16.625 293.178 20.8223 297.375 26 297.375Z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 687 B

View File

@ -0,0 +1,7 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<g transform="translate(-16 -310)" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round">
<path d="M32.25 329.375H19.75C18.715 329.375 17.875 328.535 17.875 327.5V321.25C17.875 320.215 18.715 319.375 19.75 319.375H32.25C33.285 319.375 34.125 320.215 34.125 321.25V327.5C34.125 328.535 33.285 329.375 32.25 329.375Z"/>
<path d="M21.625 316.875V315C21.625 312.584 23.5838 310.625 26 310.625C28.4162 310.625 30.375 312.584 30.375 315V316.875"/>
<path d="M26 326.25C27.0355 326.25 27.875 325.411 27.875 324.375C27.875 323.339 27.0355 322.5 26 322.5C24.9645 322.5 24.125 323.339 24.125 324.375C24.125 325.411 24.9645 326.25 26 326.25Z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 792 B

View File

@ -0,0 +1,6 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<g transform="translate(-16 -582)" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round">
<path d="M29.5236 587.888V594.4C29.5236 596.41 32.5761 596.856 34.1749 594.139C35.5299 591.84 35.1974 588.334 33.5049 586.025C31.0149 582.629 25.2574 581.359 21.0736 584.166C17.2311 586.746 15.8624 591.968 17.9861 596.188C20.0874 600.364 25.0199 602.386 29.4861 600.876"/>
<path d="M25.8485 595.785C27.8698 595.785 29.5085 594.032 29.5085 591.87C29.5085 589.708 27.8698 587.955 25.8485 587.955C23.8271 587.955 22.1885 589.708 22.1885 591.87C22.1885 594.032 23.8271 595.785 25.8485 595.785Z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 738 B

View File

@ -0,0 +1,3 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path transform="translate(-16 -786)" d="M17.875 805.375H22.875M20.375 786.625V789.125M20.375 789.125L27.875 796.625M16.625 790.375L22.875 796.625M30.375 789.125L35.375 794.125M25.375 789.125L32.875 796.625M35.375 789.125H16.625V796.625H35.375V789.125ZM20.375 805.375V799.125M29.125 805.375H34.125M31.625 786.625V789.125M31.625 805.375V799.125" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 541 B

View File

@ -0,0 +1,6 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<g transform="translate(-16 -314)" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round">
<path d="M28.2187 328.116L25.14 327.241C25.0239 327.208 24.9198 327.142 24.8404 327.051C24.761 326.96 24.7096 326.848 24.6925 326.729L24.4338 324.907C25.0869 324.609 25.6407 324.129 26.0291 323.525C26.4176 322.921 26.6244 322.218 26.625 321.5V319.782C26.6402 318.788 26.2704 317.826 25.593 317.098C24.9156 316.37 23.9829 315.932 22.99 315.875C22.488 315.86 21.9879 315.945 21.5196 316.127C21.0513 316.308 20.6242 316.582 20.2637 316.932C19.9032 317.282 19.6166 317.7 19.421 318.163C19.2254 318.625 19.1248 319.123 19.125 319.625V321.5C19.1256 322.218 19.3324 322.921 19.7209 323.525C20.1093 324.129 20.6631 324.609 21.3162 324.907L21.0575 326.724C21.0404 326.843 20.989 326.955 20.9096 327.046C20.8302 327.137 20.7261 327.203 20.61 327.236L17.5313 328.111C17.2702 328.186 17.0406 328.343 16.8771 328.56C16.7136 328.777 16.6251 329.041 16.625 329.312V332.125H29.125V329.317C29.1249 329.046 29.0364 328.782 28.8729 328.565C28.7094 328.348 28.4798 328.191 28.2187 328.116Z"/>
<path d="M31.625 332.125H35.375V328.101C35.375 327.823 35.2819 327.552 35.1104 327.332C34.939 327.113 34.6991 326.956 34.4288 326.889L30.7825 325.977C30.6618 325.947 30.5528 325.882 30.4695 325.789C30.3863 325.697 30.3324 325.582 30.315 325.459L30.0587 323.657C30.7119 323.359 31.2657 322.879 31.6541 322.275C32.0426 321.671 32.2494 320.968 32.25 320.25V318.532C32.2652 317.538 31.8954 316.576 31.218 315.848C30.5406 315.12 29.6079 314.682 28.615 314.625C27.9181 314.603 27.229 314.777 26.625 315.125"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -0,0 +1,6 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<g transform="translate(-16 -242)" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round">
<path d="M27.725 252.271L28.1875 255.125H31.48C32.3075 255.125 33.0375 255.669 33.2763 256.461L34.75 261.375H17.25L18.7237 256.461C18.9612 255.669 19.6912 255.125 20.52 255.125H23.8125L24.275 252.271"/>
<path d="M30.375 247C30.375 244.584 28.4162 242.625 26 242.625C23.5838 242.625 21.625 244.584 21.625 247V248.25C21.625 250.666 23.5838 252.625 26 252.625C28.4162 252.625 30.375 250.666 30.375 248.25V247Z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 655 B

View File

@ -0,0 +1,6 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<g transform="translate(-16 -378)" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round">
<path d="M25.375 386.125C26.0654 386.125 26.625 385.565 26.625 384.875C26.625 384.185 26.0654 383.625 25.375 383.625C24.6846 383.625 24.125 384.185 24.125 384.875C24.125 385.565 24.6846 386.125 25.375 386.125Z"/>
<path d="M25.375 397.375V386.125M21.625 397.375H29.125M28.9102 388.41C29.8475 387.472 30.3741 386.201 30.3741 384.875C30.3741 383.549 29.8475 382.278 28.9102 381.34M31.5625 391.062C32.3751 390.25 33.0197 389.285 33.4595 388.224C33.8993 387.162 34.1256 386.024 34.1256 384.875C34.1256 383.726 33.8993 382.588 33.4595 381.526C33.0197 380.465 32.3751 379.5 31.5625 378.688M21.8399 388.41C20.9026 387.472 20.376 386.201 20.376 384.875C20.376 383.549 20.9026 382.278 21.8399 381.34M19.1876 391.062C18.375 390.25 17.7304 389.285 17.2907 388.224C16.8509 387.162 16.6245 386.024 16.6245 384.875C16.6245 383.726 16.8509 382.588 17.2907 381.526C17.7304 380.465 18.375 379.5 19.1876 378.688"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -0,0 +1,3 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path transform="translate(-16 -734)" d="M16.625 749.625H16.88C18.3088 749.625 19.6688 749.014 20.6175 747.946L27.6338 740.053C28.5825 738.985 29.9425 738.374 31.3712 738.374H35.375M31.625 734.625L35.375 738.375L31.625 742.125M26.3477 746.5L27.6339 747.946C28.5827 749.014 29.9427 749.625 31.3714 749.625H35.3752M16.625 738.375H16.88C18.3088 738.375 19.6688 738.986 20.6175 740.054L21.9025 741.5M31.625 753.375L35.375 749.625L31.625 745.875" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 638 B

View File

@ -0,0 +1,3 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path transform="translate(-16 -446)" d="M26 446.925L28.1637 453.836H35.375L29.645 458.143L31.8975 465.075L26 460.79L20.1025 465.075L22.355 458.143L16.625 453.836H23.8363L26 446.925Z" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 380 B

View File

@ -0,0 +1,5 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="8" cy="8" r="7.5" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="3 3"/>
<circle cx="5" cy="6" r="1" fill="currentColor"/><circle cx="11" cy="6" r="1" fill="currentColor"/>
<path d="M5.5 10.5H10.5" stroke="currentColor" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 405 B

View File

@ -0,0 +1,3 @@
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
<path d="M0 5H2.5V12.5H0ZM2.5 2.5H5V15H2.5ZM5 0H7.5V15H5ZM7.5 0H10V17.5H7.5ZM10 0H12.5V17.5H10ZM12.5 0H15V20H12.5ZM15 2.5H17.5V15H15ZM17.5 5H20V12.5H17.5Z" fill="currentColor"/>
</svg>

After

Width:  |  Height:  |  Size: 271 B

View File

@ -0,0 +1,8 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<g transform="translate(-16 -242)" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round">
<path d="M21.1387 252.139C22.4278 250.851 24.1757 250.127 25.998 250.127C27.8204 250.127 29.5683 250.851 30.8574 252.139"/>
<path d="M27.25 255.601C27.4831 255.81 27.6603 256.073 27.7656 256.368C27.8708 256.662 27.9008 256.978 27.8527 257.287C27.8046 257.596 27.68 257.888 27.4902 258.137C27.3004 258.385 27.0514 258.582 26.766 258.71C26.4806 258.838 26.1677 258.892 25.856 258.868C25.5442 258.844 25.2433 258.743 24.9809 258.573C24.7184 258.403 24.5026 258.17 24.3531 257.895C24.2036 257.62 24.1252 257.313 24.125 257"/>
<path d="M17.6025 248.604C19.8294 246.378 22.8493 245.127 25.9982 245.127C29.147 245.127 32.1669 246.378 34.3938 248.604"/>
<path d="M34.125 243.875L19.125 258.875"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 942 B

View File

@ -1,15 +1,6 @@
package com.bitchat.android.ui
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.AlternateEmail
import androidx.compose.material.icons.filled.DeleteForever
import androidx.compose.material.icons.filled.Person
import androidx.compose.material.icons.filled.Terminal
import androidx.compose.material.icons.filled.WifiOff
import androidx.compose.material.icons.outlined.BookmarkBorder
import androidx.compose.material.icons.outlined.Lock
import androidx.compose.material.icons.outlined.Public
import androidx.compose.material.icons.outlined.VisibilityOff
import androidx.annotation.DrawableRes
import androidx.compose.animation.core.FastOutSlowInEasing
import androidx.compose.animation.core.animateDpAsState
import androidx.compose.animation.animateColorAsState
@ -45,6 +36,7 @@ import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.layout.onSizeChanged
import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.unit.IntOffset
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp
@ -122,7 +114,7 @@ internal fun AboutSectionLabel(
*/
@Composable
internal fun SheetIconSectionHeader(
icon: ImageVector,
@DrawableRes iconRes: Int,
title: String,
subtitle: String? = null,
modifier: Modifier = Modifier
@ -141,7 +133,7 @@ internal fun SheetIconSectionHeader(
horizontalArrangement = Arrangement.spacedBy(10.dp)
) {
Icon(
imageVector = icon,
painter = painterResource(iconRes),
contentDescription = null,
tint = colorScheme.primary,
modifier = Modifier.size(22.dp)
@ -332,7 +324,7 @@ private fun AboutTabLabel(
/** One line of the "How To Use" list: an icon plus a single instruction. */
@Composable
private fun AboutInstructionRow(
icon: ImageVector,
@DrawableRes iconRes: Int,
text: String
) {
val colorScheme = MaterialTheme.colorScheme
@ -346,7 +338,7 @@ private fun AboutInstructionRow(
verticalAlignment = Alignment.Top
) {
Icon(
imageVector = icon,
painter = painterResource(iconRes),
contentDescription = null,
tint = colorScheme.primary,
modifier = Modifier
@ -385,31 +377,31 @@ internal fun AboutHowToUseSection(modifier: Modifier = Modifier) {
)
AboutInstructionRow(
icon = Icons.Filled.AlternateEmail,
iconRes = R.drawable.ic_spec_person,
text = stringResource(R.string.about_howto_nickname)
)
AboutInstructionRow(
icon = Icons.Outlined.Public,
iconRes = R.drawable.ic_spec_globe,
text = stringResource(R.string.about_howto_channels)
)
AboutInstructionRow(
icon = Icons.Filled.Person,
iconRes = R.drawable.ic_spec_people,
text = stringResource(R.string.about_howto_people)
)
AboutInstructionRow(
icon = Icons.Outlined.BookmarkBorder,
iconRes = R.drawable.ic_spec_bookmark_outline,
text = stringResource(R.string.about_howto_bookmark)
)
AboutInstructionRow(
icon = Icons.Filled.AlternateEmail,
iconRes = R.drawable.ic_spec_mention,
text = stringResource(R.string.about_howto_mention)
)
AboutInstructionRow(
icon = Icons.Filled.Terminal,
iconRes = R.drawable.ic_spec_command,
text = stringResource(R.string.about_howto_commands)
)
AboutInstructionRow(
icon = Icons.Filled.DeleteForever,
iconRes = R.drawable.ic_spec_waveform,
text = stringResource(R.string.about_howto_panic)
)
}
@ -422,22 +414,22 @@ internal fun AboutHowToUseSection(modifier: Modifier = Modifier) {
internal fun AboutFeatureCard(modifier: Modifier = Modifier) {
val features = listOf(
Triple(
Icons.Filled.WifiOff,
R.drawable.ic_spec_wifi_off,
R.string.about_offline_mesh_title,
R.string.about_offline_mesh_desc
),
Triple(
Icons.Outlined.Lock,
R.drawable.ic_spec_lock,
R.string.about_e2e_title,
R.string.about_e2e_desc
),
Triple(
Icons.Outlined.Public,
R.drawable.ic_spec_globe,
R.string.about_online_geohash_title,
R.string.about_online_geohash_desc
),
Triple(
Icons.Outlined.VisibilityOff,
R.drawable.ic_spec_eye_off,
R.string.about_no_tracking_title,
R.string.about_no_tracking_desc
),
@ -446,7 +438,7 @@ internal fun AboutFeatureCard(modifier: Modifier = Modifier) {
Column(modifier = modifier.fillMaxWidth()) {
features.forEach { (icon, titleRes, descRes) ->
AboutFeatureRow(
icon = icon,
iconRes = icon,
title = stringResource(titleRes),
subtitle = stringResource(descRes)
)
@ -456,7 +448,7 @@ internal fun AboutFeatureCard(modifier: Modifier = Modifier) {
@Composable
private fun AboutFeatureRow(
icon: ImageVector,
@DrawableRes iconRes: Int,
title: String,
subtitle: String
) {
@ -471,7 +463,7 @@ private fun AboutFeatureRow(
verticalAlignment = Alignment.Top
) {
Icon(
imageVector = icon,
painter = painterResource(iconRes),
contentDescription = null,
tint = colorScheme.primary,
modifier = Modifier
@ -617,4 +609,3 @@ internal fun SheetDestructiveButton(
}
}
}

View File

@ -32,7 +32,9 @@ import androidx.compose.ui.graphics.SolidColor
import androidx.compose.ui.graphics.graphicsLayer
import androidx.compose.ui.graphics.lerp
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.graphics.painter.Painter
import androidx.compose.ui.platform.LocalFocusManager
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.input.ImeAction
@ -203,6 +205,64 @@ internal fun TorAwareHeaderIcon(
}
}
/** Painter-resource counterpart used by the extracted Figma SVG family. */
@Composable
internal fun TorAwareHeaderIcon(
painter: Painter,
tint: Color,
isProgress: Boolean,
contentDescription: String?,
modifier: Modifier = Modifier,
) {
val pulse = if (isProgress) {
val transition = rememberInfiniteTransition(label = "torPainterGlow")
transition.animateFloat(
initialValue = 0.42f,
targetValue = 1f,
animationSpec = infiniteRepeatable(
animation = tween(durationMillis = 1800, easing = FastOutSlowInEasing),
repeatMode = RepeatMode.Reverse
),
label = "torPainterGlowPulse"
).value
} else {
1f
}
Box(
contentAlignment = Alignment.Center,
modifier = modifier.size(HeaderIconSize)
) {
if (isProgress) {
val glowBrush = remember(tint) {
Brush.radialGradient(
colorStops = arrayOf(
0.0f to tint.copy(alpha = 0.55f),
0.45f to tint.copy(alpha = 0.22f),
1.0f to Color.Transparent,
)
)
}
Box(
modifier = Modifier
.requiredSize(HeaderIconSize + 14.dp)
.graphicsLayer { alpha = pulse * 0.85f }
.background(glowBrush)
)
}
Icon(
painter = painter,
contentDescription = contentDescription,
modifier = Modifier
.size(HeaderIconSize)
.graphicsLayer {
alpha = if (isProgress) 0.55f + pulse * 0.45f else 1f
},
tint = tint
)
}
}
@Composable
fun NoiseSessionIcon(
sessionState: String?,
@ -342,7 +402,7 @@ fun PeerCounter(
Icon(
// A single silhouette rather than a crowd: at 22.dp a multi-person glyph collapses
// into an indistinct blob, and the number beside it already conveys "how many".
imageVector = Icons.Filled.Person,
painter = painterResource(R.drawable.ic_spec_people),
contentDescription = when (selectedLocationChannel) {
is com.bitchat.android.geohash.ChannelID.Location -> stringResource(R.string.cd_geohash_participants)
else -> stringResource(R.string.cd_connected_peers)
@ -628,7 +688,11 @@ private fun LocationChannelsButton(
} else {
TorConnectionVisual(tint = channelColor, isProgress = false)
}
val badgeIcon = if (isLocation) Icons.Outlined.Public else Icons.Filled.Hub
val badgeIconRes = if (isLocation) {
R.drawable.ic_spec_globe
} else {
R.drawable.ic_spec_range
}
Row(
verticalAlignment = Alignment.CenterVertically,
@ -645,7 +709,7 @@ private fun LocationChannelsButton(
.padding(start = 0.dp, end = 6.dp)
) {
TorAwareHeaderIcon(
imageVector = badgeIcon,
painter = painterResource(badgeIconRes),
tint = torVisual.tint,
isProgress = torVisual.isProgress,
contentDescription = stringResource(R.string.cd_tor_status)

View File

@ -24,6 +24,7 @@ import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.res.painterResource
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.bitchat.android.ui.theme.BitchatFontFamily
import com.bitchat.android.R
@ -60,7 +61,7 @@ fun GeohashPeopleList(
Column(modifier = modifier) {
if (geohashPeople.isEmpty()) {
SheetIconSectionHeader(
icon = Icons.Outlined.Person,
iconRes = R.drawable.ic_spec_people,
title = stringResource(R.string.section_people)
)
Surface(
@ -163,7 +164,7 @@ fun GeohashPeopleList(
if (namedPeople.isNotEmpty()) {
SheetIconSectionHeader(
icon = Icons.Outlined.Person,
iconRes = R.drawable.ic_spec_people,
title = stringResource(R.string.section_people)
)
PeopleCard(people = namedPeople, row = { personRow(it) })
@ -171,7 +172,7 @@ fun GeohashPeopleList(
if (anonPeople.isNotEmpty()) {
SheetIconSectionHeader(
icon = Icons.Outlined.HelpOutline,
iconRes = R.drawable.ic_spec_teleport,
title = stringResource(R.string.section_anon),
modifier = Modifier.padding(top = if (namedPeople.isNotEmpty()) 20.dp else 0.dp)
)
@ -307,9 +308,9 @@ private fun GeohashPersonItem(
isMe -> "face.smiling" to palette.accentOrange
else -> "face.smiling" to palette.textSecondary
}
val statusIcon = when (iconName) {
"face.dashed" -> Icons.Outlined.Explore
else -> Icons.Outlined.LocationOn
val statusIconRes = when (iconName) {
"face.dashed" -> R.drawable.ic_spec_teleport
else -> R.drawable.ic_spec_person
}
val (baseNameRaw, suffixRaw) = splitSuffix(person.displayName)
@ -341,7 +342,7 @@ private fun GeohashPersonItem(
)
} else {
Icon(
imageVector = statusIcon,
painter = painterResource(statusIconRes),
contentDescription = if (isTeleported || isMyTeleported) "Teleported user" else "User",
modifier = Modifier.size(22.dp),
tint = iconColor.copy(alpha = if (iconName == "face.dashed") 0.6f else 1.0f)

View File

@ -40,6 +40,7 @@ import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.SolidColor
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.font.FontWeight
@ -192,7 +193,7 @@ fun LocationChannelsSheet(
item(key = "mesh_card") {
Column {
SheetIconSectionHeader(
icon = Icons.Filled.Hub,
iconRes = R.drawable.ic_spec_range,
title = stringResource(R.string.mesh_title),
subtitle = stringResource(R.string.mesh_section_subtitle),
modifier = Modifier.padding(top = 8.dp)
@ -230,7 +231,7 @@ fun LocationChannelsSheet(
item(key = "location_channels_header") {
SheetIconSectionHeader(
icon = Icons.Outlined.Public,
iconRes = R.drawable.ic_spec_globe,
title = stringResource(R.string.location_channels_heading),
subtitle = stringResource(R.string.location_channels_desc),
modifier = Modifier.padding(top = 20.dp)
@ -726,7 +727,13 @@ private fun ChannelBookmarkButton(
contentAlignment = Alignment.Center
) {
Icon(
imageVector = if (bookmarked) Icons.Filled.Bookmark else Icons.Outlined.BookmarkBorder,
painter = painterResource(
if (bookmarked) {
R.drawable.ic_spec_bookmark_filled
} else {
R.drawable.ic_spec_bookmark_outline
}
),
contentDescription = stringResource(
if (bookmarked) R.string.cd_remove_bookmark else R.string.cd_add_bookmark
),

View File

@ -1,7 +1,5 @@
package com.bitchat.android.ui
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.outlined.Description
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.shape.CircleShape
@ -17,6 +15,7 @@ import androidx.compose.ui.draw.scale
import androidx.compose.ui.draw.clip
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.unit.dp
import com.bitchat.android.R
import com.bitchat.android.geohash.ChannelID
@ -66,7 +65,7 @@ fun LocationNotesButton(
contentAlignment = Alignment.Center
) {
TorAwareHeaderIcon(
imageVector = Icons.Outlined.Description,
painter = painterResource(R.drawable.ic_spec_chat_bubbles),
tint = torVisual.tint,
isProgress = torVisual.isProgress,
contentDescription = contentDescription

View File

@ -28,6 +28,7 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp
@ -122,7 +123,7 @@ fun MeshPeerListSheet(
item(key = "channels_section") {
Column {
SheetIconSectionHeader(
icon = Icons.Filled.Tag,
iconRes = R.drawable.ic_spec_chat_bubbles,
title = stringResource(R.string.channels),
modifier = Modifier.padding(top = 8.dp)
)
@ -321,7 +322,7 @@ fun PeopleSection(
Column(modifier = modifier) {
SheetIconSectionHeader(
icon = Icons.Filled.Person,
iconRes = R.drawable.ic_spec_people,
title = stringResource(R.string.people_count_title, peopleCount)
)
@ -616,7 +617,7 @@ private fun PeerItem(
)
} else if (showNostrGlobe) {
Icon(
imageVector = Icons.Filled.Public,
painter = painterResource(R.drawable.ic_spec_globe),
contentDescription = stringResource(R.string.cd_reachable_via_nostr),
modifier = Modifier.size(PeerRowIconSize),
tint = palette.accentPurple
@ -690,7 +691,7 @@ private fun PeerItem(
contentAlignment = Alignment.Center
) {
Icon(
imageVector = if (isFavorite) Icons.Filled.Star else Icons.Outlined.Star,
painter = painterResource(R.drawable.ic_spec_star),
contentDescription = if (isFavorite) "Remove from favorites" else "Add to favorites",
modifier = Modifier.size(PeerRowIconSize),
tint = if (isFavorite) palette.accentOrange else palette.textTertiary
@ -971,7 +972,7 @@ fun PrivateChatSheet(
when {
isNostrPeer || isNostrReachableFavorite -> {
Icon(
imageVector = Icons.Filled.Public,
painter = painterResource(R.drawable.ic_spec_globe),
contentDescription = stringResource(R.string.cd_nostr_reachable),
modifier = Modifier.size(14.dp),
tint = Color(0xFF9C27B0)
@ -1039,7 +1040,7 @@ fun PrivateChatSheet(
modifier = Modifier.size(28.dp)
) {
Icon(
imageVector = if (isFavorite) Icons.Filled.Star else Icons.Outlined.Star,
painter = painterResource(R.drawable.ic_spec_star),
contentDescription = if (isFavorite) stringResource(R.string.cd_remove_favorite) else stringResource(R.string.cd_add_favorite),
modifier = Modifier.size(16.dp),
tint = if (isFavorite) Color(0xFFFFD700) else colorScheme.onSurface.copy(alpha = 0.6f)

View File

@ -0,0 +1,6 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="16dp" android:height="16dp" android:viewportWidth="16" android:viewportHeight="16">
<path android:fillColor="#FFFFFFFF" android:strokeColor="#FFFFFFFF" android:strokeWidth="1.5"
android:strokeLineCap="round" android:strokeLineJoin="round"
android:pathData="M3,15L8,11.267L13,15V2.4C13,2.029 12.856,1.673 12.601,1.41C12.345,1.147 11.998,1 11.636,1H4.364C4.002,1 3.655,1.147 3.399,1.41C3.144,1.673 3,2.029 3,2.4V15Z"/>
</vector>

View File

@ -0,0 +1,6 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="16dp" android:height="16dp" android:viewportWidth="16" android:viewportHeight="16">
<path android:fillColor="#00000000" android:strokeColor="#FFFFFFFF" android:strokeWidth="1.5"
android:strokeLineCap="round" android:strokeLineJoin="round"
android:pathData="M3,15L8,11.267L13,15V2.4C13,2.029 12.856,1.673 12.601,1.41C12.345,1.147 11.998,1 11.636,1H4.364C4.002,1 3.655,1.147 3.399,1.41C3.144,1.673 3,2.029 3,2.4V15Z"/>
</vector>

View File

@ -0,0 +1,14 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="20dp"
android:height="20dp"
android:viewportWidth="20"
android:viewportHeight="20">
<group android:translateX="-16" android:translateY="-370">
<path android:fillColor="#00000000" android:strokeColor="#FFFFFFFF"
android:strokeWidth="1.25" android:strokeLineCap="round" android:strokeLineJoin="round"
android:pathData="M28.5,370.625H18.5C18.0027,370.625 17.5258,370.823 17.1742,371.174C16.8225,371.526 16.625,372.003 16.625,372.5V378.75C16.625,379.247 16.8225,379.724 17.1742,380.076C17.5258,380.427 18.0027,380.625 18.5,380.625H20.375V384.375L24.125,380.625H28.5C28.9973,380.625 29.4742,380.427 29.8258,380.076C30.1775,379.724 30.375,379.247 30.375,378.75V372.5C30.375,372.003 30.1775,371.526 29.8258,371.174C29.4742,370.823 28.9973,370.625 28.5,370.625Z"/>
<path android:fillColor="#00000000" android:strokeColor="#FFFFFFFF"
android:strokeWidth="1.25" android:strokeLineCap="round" android:strokeLineJoin="round"
android:pathData="M24.125,385.625H27.875L31.625,389.375V385.625H33.5C33.9973,385.625 34.4742,385.427 34.8258,385.076C35.1775,384.724 35.375,384.247 35.375,383.75V377.5C35.375,377.003 35.1775,376.526 34.8258,376.174C34.4742,375.823 33.9973,375.625 33.5,375.625H32.875"/>
</group>
</vector>

View File

@ -0,0 +1,14 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="20dp"
android:height="20dp"
android:viewportWidth="20"
android:viewportHeight="20">
<group android:translateX="-16" android:translateY="-407">
<path android:fillColor="#00000000" android:strokeColor="#FFFFFFFF"
android:strokeWidth="1.25" android:strokeLineCap="round" android:strokeLineJoin="round"
android:pathData="M26.625,422.875H35.375"/>
<path android:fillColor="#00000000" android:strokeColor="#FFFFFFFF"
android:strokeWidth="1.25" android:strokeLineCap="round" android:strokeLineJoin="round"
android:pathData="M16.625,407.875L24.125,415.375L16.625,422.875"/>
</group>
</vector>

View File

@ -0,0 +1,7 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="20dp" android:height="20dp" android:viewportWidth="20" android:viewportHeight="20">
<group android:translateX="-16" android:translateY="-682">
<path android:fillColor="#00000000" android:strokeColor="#FFFFFFFF" android:strokeWidth="1.25" android:strokeLineCap="round" android:strokeLineJoin="round" android:pathData="M16.625,692C16.625,692 20.375,685.125 26,685.125C31.625,685.125 35.375,692 35.375,692C35.375,692 31.625,698.875 26,698.875C20.375,698.875 16.625,692 16.625,692Z"/>
<path android:fillColor="#00000000" android:strokeColor="#FFFFFFFF" android:strokeWidth="1.25" android:strokeLineCap="round" android:pathData="M22.25,692C22.25,689.929 23.9288,688.25 26,688.25M29.75,692C29.75,694.071 28.0712,695.75 26,695.75M17.25,700.75L34.75,683.25"/>
</group>
</vector>

View File

@ -0,0 +1,17 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="20dp"
android:height="20dp"
android:viewportWidth="20"
android:viewportHeight="20">
<group android:translateX="-16" android:translateY="-278">
<path android:fillColor="#00000000" android:strokeColor="#FFFFFFFF"
android:strokeWidth="1.25" android:strokeLineCap="round" android:strokeLineJoin="round"
android:pathData="M25.9999,297.375C28.2187,297.375 30.0174,293.178 30.0174,288C30.0174,282.822 28.2187,278.625 25.9999,278.625C23.7811,278.625 21.9824,282.822 21.9824,288C21.9824,293.178 23.7811,297.375 25.9999,297.375Z"/>
<path android:fillColor="#00000000" android:strokeColor="#FFFFFFFF"
android:strokeWidth="1.25" android:strokeLineCap="round"
android:pathData="M16.625,288H35.375"/>
<path android:fillColor="#00000000" android:strokeColor="#FFFFFFFF"
android:strokeWidth="1.25" android:strokeLineCap="round" android:strokeLineJoin="round"
android:pathData="M26,297.375C31.1777,297.375 35.375,293.178 35.375,288C35.375,282.822 31.1777,278.625 26,278.625C20.8223,278.625 16.625,282.822 16.625,288C16.625,293.178 20.8223,297.375 26,297.375Z"/>
</group>
</vector>

View File

@ -0,0 +1,11 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="20dp"
android:height="20dp"
android:viewportWidth="20"
android:viewportHeight="20">
<group android:translateX="-16" android:translateY="-310">
<path android:fillColor="#00000000" android:strokeColor="#FFFFFFFF" android:strokeWidth="1.25" android:strokeLineCap="round" android:strokeLineJoin="round" android:pathData="M32.25,329.375H19.75C18.715,329.375 17.875,328.535 17.875,327.5V321.25C17.875,320.215 18.715,319.375 19.75,319.375H32.25C33.285,319.375 34.125,320.215 34.125,321.25V327.5C34.125,328.535 33.285,329.375 32.25,329.375Z"/>
<path android:fillColor="#00000000" android:strokeColor="#FFFFFFFF" android:strokeWidth="1.25" android:strokeLineCap="round" android:strokeLineJoin="round" android:pathData="M21.625,316.875V315C21.625,312.584 23.5838,310.625 26,310.625C28.4162,310.625 30.375,312.584 30.375,315V316.875"/>
<path android:fillColor="#00000000" android:strokeColor="#FFFFFFFF" android:strokeWidth="1.25" android:strokeLineCap="round" android:strokeLineJoin="round" android:pathData="M26,326.25C27.0355,326.25 27.875,325.411 27.875,324.375C27.875,323.339 27.0355,322.5 26,322.5C24.9645,322.5 24.125,323.339 24.125,324.375C24.125,325.411 24.9645,326.25 26,326.25Z"/>
</group>
</vector>

View File

@ -0,0 +1,7 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="20dp" android:height="20dp" android:viewportWidth="20" android:viewportHeight="20">
<group android:translateX="-16" android:translateY="-582">
<path android:fillColor="#00000000" android:strokeColor="#FFFFFFFF" android:strokeWidth="1.25" android:strokeLineCap="round" android:strokeLineJoin="round" android:pathData="M29.5236,587.888V594.4C29.5236,596.41 32.5761,596.856 34.1749,594.139C35.5299,591.84 35.1974,588.334 33.5049,586.025C31.0149,582.629 25.2574,581.359 21.0736,584.166C17.2311,586.746 15.8624,591.968 17.9861,596.188C20.0874,600.364 25.0199,602.386 29.4861,600.876"/>
<path android:fillColor="#00000000" android:strokeColor="#FFFFFFFF" android:strokeWidth="1.25" android:strokeLineCap="round" android:strokeLineJoin="round" android:pathData="M25.8485,595.785C27.8698,595.785 29.5085,594.032 29.5085,591.87C29.5085,589.708 27.8698,587.955 25.8485,587.955C23.8271,587.955 22.1885,589.708 22.1885,591.87C22.1885,594.032 23.8271,595.785 25.8485,595.785Z"/>
</group>
</vector>

View File

@ -0,0 +1,6 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="20dp" android:height="20dp" android:viewportWidth="20" android:viewportHeight="20">
<group android:translateX="-16" android:translateY="-786">
<path android:fillColor="#00000000" android:strokeColor="#FFFFFFFF" android:strokeWidth="1.25" android:strokeLineCap="round" android:strokeLineJoin="round" android:pathData="M17.875,805.375H22.875M20.375,786.625V789.125M20.375,789.125L27.875,796.625M16.625,790.375L22.875,796.625M30.375,789.125L35.375,794.125M25.375,789.125L32.875,796.625M35.375,789.125H16.625V796.625H35.375V789.125ZM20.375,805.375V799.125M29.125,805.375H34.125M31.625,786.625V789.125M31.625,805.375V799.125"/>
</group>
</vector>

View File

@ -0,0 +1,14 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="20dp"
android:height="20dp"
android:viewportWidth="20"
android:viewportHeight="20">
<group android:translateX="-16" android:translateY="-314">
<path android:fillColor="#00000000" android:strokeColor="#FFFFFFFF"
android:strokeWidth="1.25" android:strokeLineCap="round" android:strokeLineJoin="round"
android:pathData="M28.2187,328.116L25.14,327.241C25.0239,327.208 24.9198,327.142 24.8404,327.051C24.761,326.96 24.7096,326.848 24.6925,326.729L24.4338,324.907C25.0869,324.609 25.6407,324.129 26.0291,323.525C26.4176,322.921 26.6244,322.218 26.625,321.5V319.782C26.6402,318.788 26.2704,317.826 25.593,317.098C24.9156,316.37 23.9829,315.932 22.99,315.875C22.488,315.86 21.9879,315.945 21.5196,316.127C21.0513,316.308 20.6242,316.582 20.2637,316.932C19.9032,317.282 19.6166,317.7 19.421,318.163C19.2254,318.625 19.1248,319.123 19.125,319.625V321.5C19.1256,322.218 19.3324,322.921 19.7209,323.525C20.1093,324.129 20.6631,324.609 21.3162,324.907L21.0575,326.724C21.0404,326.843 20.989,326.955 20.9096,327.046C20.8302,327.137 20.7261,327.203 20.61,327.236L17.5313,328.111C17.2702,328.186 17.0406,328.343 16.8771,328.56C16.7136,328.777 16.6251,329.041 16.625,329.312V332.125H29.125V329.317C29.1249,329.046 29.0364,328.782 28.8729,328.565C28.7094,328.348 28.4798,328.191 28.2187,328.116Z"/>
<path android:fillColor="#00000000" android:strokeColor="#FFFFFFFF"
android:strokeWidth="1.25" android:strokeLineCap="round" android:strokeLineJoin="round"
android:pathData="M31.625,332.125H35.375V328.101C35.375,327.823 35.2819,327.552 35.1104,327.332C34.939,327.113 34.6991,326.956 34.4288,326.889L30.7825,325.977C30.6618,325.947 30.5528,325.882 30.4695,325.789C30.3863,325.697 30.3324,325.582 30.315,325.459L30.0587,323.657C30.7119,323.359 31.2657,322.879 31.6541,322.275C32.0426,321.671 32.2494,320.968 32.25,320.25V318.532C32.2652,317.538 31.8954,316.576 31.218,315.848C30.5406,315.12 29.6079,314.682 28.615,314.625C27.9181,314.603 27.229,314.777 26.625,315.125"/>
</group>
</vector>

View File

@ -0,0 +1,14 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="20dp"
android:height="20dp"
android:viewportWidth="20"
android:viewportHeight="20">
<group android:translateX="-16" android:translateY="-242">
<path android:fillColor="#00000000" android:strokeColor="#FFFFFFFF"
android:strokeWidth="1.25" android:strokeLineCap="round" android:strokeLineJoin="round"
android:pathData="M27.725,252.271L28.1875,255.125H31.48C32.3075,255.125 33.0375,255.669 33.2763,256.461L34.75,261.375H17.25L18.7237,256.461C18.9612,255.669 19.6912,255.125 20.52,255.125H23.8125L24.275,252.271"/>
<path android:fillColor="#00000000" android:strokeColor="#FFFFFFFF"
android:strokeWidth="1.25" android:strokeLineCap="round" android:strokeLineJoin="round"
android:pathData="M30.375,247C30.375,244.584 28.4162,242.625 26,242.625C23.5838,242.625 21.625,244.584 21.625,247V248.25C21.625,250.666 23.5838,252.625 26,252.625C28.4162,252.625 30.375,250.666 30.375,248.25V247Z"/>
</group>
</vector>

View File

@ -0,0 +1,11 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="20dp"
android:height="20dp"
android:viewportWidth="20"
android:viewportHeight="20">
<group android:translateX="-16" android:translateY="-378">
<path android:fillColor="#00000000" android:strokeColor="#FFFFFFFF" android:strokeWidth="1.25" android:strokeLineCap="round" android:strokeLineJoin="round" android:pathData="M25.375,386.125C26.0654,386.125 26.625,385.565 26.625,384.875C26.625,384.185 26.0654,383.625 25.375,383.625C24.6846,383.625 24.125,384.185 24.125,384.875C24.125,385.565 24.6846,386.125 25.375,386.125Z"/>
<path android:fillColor="#00000000" android:strokeColor="#FFFFFFFF" android:strokeWidth="1.25" android:strokeLineCap="round" android:pathData="M25.375,397.375V386.125M21.625,397.375H29.125"/>
<path android:fillColor="#00000000" android:strokeColor="#FFFFFFFF" android:strokeWidth="1.25" android:strokeLineCap="round" android:strokeLineJoin="round" android:pathData="M28.9102,388.41C29.8475,387.472 30.3741,386.201 30.3741,384.875C30.3741,383.549 29.8475,382.278 28.9102,381.34M31.5625,391.062C32.3751,390.25 33.0197,389.285 33.4595,388.224C33.8993,387.162 34.1256,386.024 34.1256,384.875C34.1256,383.726 33.8993,382.588 33.4595,381.526C33.0197,380.465 32.3751,379.5 31.5625,378.688M21.8399,388.41C20.9026,387.472 20.376,386.201 20.376,384.875C20.376,383.549 20.9026,382.278 21.8399,381.34M19.1876,391.062C18.375,390.25 17.7304,389.285 17.2907,388.224C16.8509,387.162 16.6245,386.024 16.6245,384.875C16.6245,383.726 16.8509,382.588 17.2907,381.526C17.7304,380.465 18.375,379.5 19.1876,378.688"/>
</group>
</vector>

View File

@ -0,0 +1,6 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="20dp" android:height="20dp" android:viewportWidth="20" android:viewportHeight="20">
<group android:translateX="-16" android:translateY="-734">
<path android:fillColor="#00000000" android:strokeColor="#FFFFFFFF" android:strokeWidth="1.25" android:strokeLineCap="round" android:strokeLineJoin="round" android:pathData="M16.625,749.625H16.88C18.3088,749.625 19.6688,749.014 20.6175,747.946L27.6338,740.053C28.5825,738.985 29.9425,738.374 31.3712,738.374H35.375M31.625,734.625L35.375,738.375L31.625,742.125M26.3477,746.5L27.6339,747.946C28.5827,749.014 29.9427,749.625 31.3714,749.625H35.3752M16.625,738.375H16.88C18.3088,738.375 19.6688,738.986 20.6175,740.054L21.9025,741.5M31.625,753.375L35.375,749.625L31.625,745.875"/>
</group>
</vector>

View File

@ -0,0 +1,8 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="20dp" android:height="20dp" android:viewportWidth="20" android:viewportHeight="20">
<group android:translateX="-16" android:translateY="-446">
<path android:fillColor="#00000000" android:strokeColor="#FFFFFFFF" android:strokeWidth="1.25"
android:strokeLineCap="round" android:strokeLineJoin="round"
android:pathData="M26,446.925L28.1637,453.836H35.375L29.645,458.143L31.8975,465.075L26,460.79L20.1025,465.075L22.355,458.143L16.625,453.836H23.8363L26,446.925Z"/>
</group>
</vector>

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="16dp" android:height="16dp" android:viewportWidth="16" android:viewportHeight="16">
<path android:fillColor="#00000000" android:strokeColor="#FFFFFFFF" android:strokeWidth="1"
android:strokeLineCap="round"
android:pathData="M8,0.5A7.5,7.5 0,0 1,12.6 2.1M15.1,5.5A7.5,7.5 0,0 1,15.1 10.5M12.6,13.9A7.5,7.5 0,0 1,8 15.5M3.4,13.9A7.5,7.5 0,0 1,0.9 10.5M0.9,5.5A7.5,7.5 0,0 1,3.4 2.1"/>
<path android:fillColor="#FFFFFFFF" android:pathData="M5,5A1,1 0,1 0,5,7A1,1 0,1 0,5,5M11,5A1,1 0,1 0,11,7A1,1 0,1 0,11,5"/>
<path android:fillColor="#00000000" android:strokeColor="#FFFFFFFF" android:strokeWidth="1"
android:strokeLineCap="round" android:pathData="M5.5,10.5H10.5"/>
</vector>

View File

@ -0,0 +1,5 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="20dp" android:height="20dp" android:viewportWidth="20" android:viewportHeight="20">
<path android:fillColor="#FFFFFFFF"
android:pathData="M0,5H2.5V12.5H0ZM2.5,2.5H5V15H2.5ZM5,0H7.5V15H5ZM7.5,0H10V17.5H7.5ZM10,0H12.5V17.5H10ZM12.5,0H15V20H12.5ZM15,2.5H17.5V15H15ZM17.5,5H20V12.5H17.5Z"/>
</vector>

View File

@ -0,0 +1,12 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="20dp"
android:height="20dp"
android:viewportWidth="20"
android:viewportHeight="20">
<group android:translateX="-16" android:translateY="-242">
<path android:fillColor="#00000000" android:strokeColor="#FFFFFFFF" android:strokeWidth="1.25" android:strokeLineCap="round" android:strokeLineJoin="round" android:pathData="M21.1387,252.139C22.4278,250.851 24.1757,250.127 25.998,250.127C27.8204,250.127 29.5683,250.851 30.8574,252.139"/>
<path android:fillColor="#00000000" android:strokeColor="#FFFFFFFF" android:strokeWidth="1.25" android:strokeLineCap="round" android:strokeLineJoin="round" android:pathData="M27.25,255.601C27.4831,255.81 27.6603,256.073 27.7656,256.368C27.8708,256.662 27.9008,256.978 27.8527,257.287C27.8046,257.596 27.68,257.888 27.4902,258.137C27.3004,258.385 27.0514,258.582 26.766,258.71C26.4806,258.838 26.1677,258.892 25.856,258.868C25.5442,258.844 25.2433,258.743 24.9809,258.573C24.7184,258.403 24.5026,258.17 24.3531,257.895C24.2036,257.62 24.1252,257.313 24.125,257"/>
<path android:fillColor="#00000000" android:strokeColor="#FFFFFFFF" android:strokeWidth="1.25" android:strokeLineCap="round" android:strokeLineJoin="round" android:pathData="M17.6025,248.604C19.8294,246.378 22.8493,245.127 25.9982,245.127C29.147,245.127 32.1669,246.378 34.3938,248.604"/>
<path android:fillColor="#00000000" android:strokeColor="#FFFFFFFF" android:strokeWidth="1.25" android:strokeLineCap="round" android:pathData="M34.125,243.875L19.125,258.875"/>
</group>
</vector>