ui
This commit is contained in:
@@ -7,6 +7,7 @@ import androidx.compose.foundation.layout.Box
|
|||||||
import androidx.compose.foundation.layout.BoxScope
|
import androidx.compose.foundation.layout.BoxScope
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
import androidx.compose.foundation.layout.Row
|
import androidx.compose.foundation.layout.Row
|
||||||
|
import androidx.compose.foundation.layout.RowScope
|
||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.layout.size
|
import androidx.compose.foundation.layout.size
|
||||||
@@ -15,10 +16,17 @@ import androidx.compose.foundation.shape.RoundedCornerShape
|
|||||||
import androidx.compose.material.icons.Icons
|
import androidx.compose.material.icons.Icons
|
||||||
import androidx.compose.material.icons.filled.KeyboardArrowRight
|
import androidx.compose.material.icons.filled.KeyboardArrowRight
|
||||||
import androidx.compose.material.icons.outlined.Star
|
import androidx.compose.material.icons.outlined.Star
|
||||||
|
import androidx.compose.material3.Button
|
||||||
import androidx.compose.material3.Divider
|
import androidx.compose.material3.Divider
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
|
import androidx.compose.material3.OutlinedTextField
|
||||||
|
import androidx.compose.material3.Surface
|
||||||
import androidx.compose.material3.Text
|
import androidx.compose.material3.Text
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
|
import androidx.compose.runtime.getValue
|
||||||
|
import androidx.compose.runtime.mutableStateOf
|
||||||
|
import androidx.compose.runtime.remember
|
||||||
|
import androidx.compose.runtime.setValue
|
||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.draw.clip
|
import androidx.compose.ui.draw.clip
|
||||||
@@ -35,18 +43,20 @@ import com.megboyzz.devmenu.ui.asPainter
|
|||||||
fun ClickableMenuPosition(
|
fun ClickableMenuPosition(
|
||||||
name: String,
|
name: String,
|
||||||
icon: Painter,
|
icon: Painter,
|
||||||
onClick: () -> Unit
|
onClick: () -> Unit = {},
|
||||||
|
withEnd: Boolean = true
|
||||||
) {
|
) {
|
||||||
|
|
||||||
Row(
|
Row(
|
||||||
verticalAlignment = Alignment.CenterVertically,
|
verticalAlignment = Alignment.CenterVertically,
|
||||||
horizontalArrangement = Arrangement.SpaceBetween,
|
horizontalArrangement = Arrangement.SpaceBetween,
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.clickableWithRipple(onClick = onClick)
|
.clickableWithRipple(onClick = onClick, enabled = withEnd)
|
||||||
|
.padding(4.dp)
|
||||||
.fillMaxWidth()
|
.fillMaxWidth()
|
||||||
) {
|
) {
|
||||||
CoreMenuPosition(name = name, icon = icon)
|
CoreMenuPosition(name = name, icon = icon)
|
||||||
Icon(Icons.Default.KeyboardArrowRight, null)
|
if (withEnd) Image(painter = R.drawable.enter.asPainter(), contentDescription = null)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -80,14 +90,12 @@ fun FsElementInContextMenu(
|
|||||||
horizontalArrangement = Arrangement.spacedBy(12.dp)
|
horizontalArrangement = Arrangement.spacedBy(12.dp)
|
||||||
) {
|
) {
|
||||||
|
|
||||||
val modifier = Modifier.size(32.dp).shadow(elevation = 6.dp)
|
val modifier = Modifier
|
||||||
|
.size(32.dp)
|
||||||
|
.clip(RoundedCornerShape(10.dp))
|
||||||
|
.shadow(elevation = 6.dp)
|
||||||
|
|
||||||
when(type){
|
FsElementIcon(type, modifier)
|
||||||
ElementType.isHidden -> { Image(painter = R.drawable.icon_hidden_file.asPainter(), contentDescription = null, modifier) }
|
|
||||||
ElementType.isFile -> { Image(painter = R.drawable.icon_file.asPainter(), contentDescription = null, modifier) }
|
|
||||||
ElementType.isDir -> { Image(painter = R.drawable.icon_folder.asPainter(), contentDescription = null, modifier) }
|
|
||||||
ElementType.isReplaced -> { Image(painter = R.drawable.icon_replaced_file.asPainter(), contentDescription = null, modifier) }
|
|
||||||
}
|
|
||||||
Text(
|
Text(
|
||||||
text = name
|
text = name
|
||||||
)
|
)
|
||||||
@@ -99,41 +107,116 @@ fun FsElementInContextMenu(
|
|||||||
fun FileContextMenu(
|
fun FileContextMenu(
|
||||||
name: String,
|
name: String,
|
||||||
type: ElementType,
|
type: ElementType,
|
||||||
|
onRemoveElement: () -> Unit,
|
||||||
|
onUpdateType: (ElementType) -> Unit
|
||||||
) {
|
) {
|
||||||
|
|
||||||
|
var innerType by remember { mutableStateOf(type) }
|
||||||
|
var isMain by remember { mutableStateOf(true) }
|
||||||
|
|
||||||
CoreFileContextMenu {
|
CoreFileContextMenu {
|
||||||
Column(
|
Column(verticalArrangement = Arrangement.spacedBy(20.dp)) {
|
||||||
verticalArrangement = Arrangement.spacedBy(20.dp)
|
|
||||||
) {
|
|
||||||
FsElementInContextMenu(name = name, type = type)
|
FsElementInContextMenu(name = name, type = type)
|
||||||
Divider()
|
Divider()
|
||||||
|
if (isMain) {
|
||||||
ClickableMenuPosition(
|
ClickableMenuPosition(
|
||||||
name = "Заменить",
|
name = "Заменить",
|
||||||
icon = rememberVectorPainter(image = Icons.Outlined.Star)
|
icon = R.drawable.star.asPainter(),
|
||||||
) {
|
onClick = {
|
||||||
|
innerType = ElementType.isReplaced
|
||||||
|
onUpdateType(innerType)
|
||||||
}
|
}
|
||||||
|
)
|
||||||
ClickableMenuPosition(
|
ClickableMenuPosition(
|
||||||
name = "Заменить",
|
name = "Скрыть для игры",
|
||||||
icon = rememberVectorPainter(image = Icons.Outlined.Star)
|
icon = R.drawable.hide.asPainter(),
|
||||||
) {
|
onClick = {
|
||||||
|
innerType = ElementType.isHidden
|
||||||
|
|
||||||
}
|
}
|
||||||
|
)
|
||||||
ClickableMenuPosition(
|
ClickableMenuPosition(
|
||||||
name = "Заменить",
|
name = "Свойства",
|
||||||
icon = rememberVectorPainter(image = Icons.Outlined.Star)
|
icon = R.drawable.info.asPainter(),
|
||||||
) {
|
onClick = {}
|
||||||
|
)
|
||||||
}
|
|
||||||
ClickableMenuPosition(
|
ClickableMenuPosition(
|
||||||
name = "Заменить",
|
name = "Удалить",
|
||||||
icon = rememberVectorPainter(image = Icons.Outlined.Star)
|
icon = R.drawable.trash.asPainter(),
|
||||||
) {
|
onClick = { isMain = !isMain }
|
||||||
|
)
|
||||||
|
}else{
|
||||||
|
ClickableMenuPosition(
|
||||||
|
name = "Удалить",
|
||||||
|
icon = R.drawable.trash.asPainter(),
|
||||||
|
withEnd = false
|
||||||
|
)
|
||||||
|
RemoveFileButtonsGroup(
|
||||||
|
onDelete = onRemoveElement,
|
||||||
|
onCancel = { isMain =! isMain }
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
fun RemoveFileButtonsGroup(
|
||||||
|
onDelete: () -> Unit,
|
||||||
|
onCancel: () -> Unit
|
||||||
|
) {
|
||||||
|
Row(
|
||||||
|
horizontalArrangement = Arrangement.spacedBy(12.dp),
|
||||||
|
) {
|
||||||
|
val m = Modifier.weight(1f)
|
||||||
|
RemoveButton(text = "Удалить", onClick = onDelete, modifier = m)
|
||||||
|
RemoveButton(text = "Отмена", onClick = onCancel, modifier = m)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Preview
|
||||||
|
@Composable
|
||||||
|
fun TwoButtonsRow() {
|
||||||
|
Surface(
|
||||||
|
modifier = Modifier.fillMaxWidth()
|
||||||
|
) {
|
||||||
|
Row(
|
||||||
|
modifier = Modifier.fillMaxWidth(),
|
||||||
|
) {
|
||||||
|
Button(
|
||||||
|
onClick = { /* Действие для первой кнопки */ },
|
||||||
|
modifier = Modifier.weight(1f) // Каждая кнопка занимает равное количество места (50%)
|
||||||
|
) {
|
||||||
|
// Ваш текст и стиль для первой кнопки
|
||||||
|
}
|
||||||
|
|
||||||
|
Button(
|
||||||
|
onClick = { /* Действие для второй кнопки */ },
|
||||||
|
modifier = Modifier.weight(1f) // Каждая кнопка занимает равное количество места (50%)
|
||||||
|
) {
|
||||||
|
// Ваш текст и стиль для второй кнопки
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
fun RemoveButton(
|
||||||
|
text: String,
|
||||||
|
modifier: Modifier = Modifier,
|
||||||
|
onClick: () -> Unit
|
||||||
|
) {
|
||||||
|
Row() {
|
||||||
|
Button(
|
||||||
|
onClick = onClick,
|
||||||
|
shape = RoundedCornerShape(10.dp),
|
||||||
|
modifier = modifier
|
||||||
|
) {
|
||||||
|
Text(text = text)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun CoreFileContextMenu(
|
fun CoreFileContextMenu(
|
||||||
content: @Composable BoxScope.() -> Unit
|
content: @Composable BoxScope.() -> Unit
|
||||||
@@ -146,7 +229,7 @@ fun CoreFileContextMenu(
|
|||||||
.background(Color.White)
|
.background(Color.White)
|
||||||
.clip(RoundedCornerShape(10.dp)),
|
.clip(RoundedCornerShape(10.dp)),
|
||||||
contentAlignment = Alignment.TopCenter
|
contentAlignment = Alignment.TopCenter
|
||||||
){
|
) {
|
||||||
|
|
||||||
Box(
|
Box(
|
||||||
modifier = Modifier.padding(
|
modifier = Modifier.padding(
|
||||||
@@ -165,7 +248,9 @@ fun ClicablePreview() {
|
|||||||
|
|
||||||
FileContextMenu(
|
FileContextMenu(
|
||||||
name = "my_file.txt",
|
name = "my_file.txt",
|
||||||
type = ElementType.isFile
|
type = ElementType.isFile,
|
||||||
|
onRemoveElement = {},
|
||||||
|
onUpdateType = {}
|
||||||
)
|
)
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -25,13 +25,6 @@ import com.megboyzz.devmenu.R
|
|||||||
import com.megboyzz.devmenu.ui.asPainter
|
import com.megboyzz.devmenu.ui.asPainter
|
||||||
import com.megboyzz.devmenu.ui.theme.DevMenuTheme
|
import com.megboyzz.devmenu.ui.theme.DevMenuTheme
|
||||||
|
|
||||||
enum class ElementType {
|
|
||||||
isHidden,
|
|
||||||
isReplaced,
|
|
||||||
isFile,
|
|
||||||
isDir
|
|
||||||
}
|
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun FsElement(
|
fun FsElement(
|
||||||
name: String,
|
name: String,
|
||||||
@@ -48,15 +41,8 @@ fun FsElement(
|
|||||||
onLongClick = onLongPressClick
|
onLongClick = onLongPressClick
|
||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
when(type){
|
FsElementIcon(type = type)
|
||||||
ElementType.isHidden -> { Image(painter = R.drawable.icon_hidden_file.asPainter(), contentDescription = null) }
|
Text(text = name)
|
||||||
ElementType.isFile -> { Image(painter = R.drawable.icon_file.asPainter(), contentDescription = null) }
|
|
||||||
ElementType.isDir -> { Image(painter = R.drawable.icon_folder.asPainter(), contentDescription = null) }
|
|
||||||
ElementType.isReplaced -> { Image(painter = R.drawable.icon_replaced_file.asPainter(), contentDescription = null) }
|
|
||||||
}
|
|
||||||
Text(
|
|
||||||
text = name
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,24 +2,54 @@ package com.megboyzz.devmenu.ui.components
|
|||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import androidx.compose.foundation.ExperimentalFoundationApi
|
import androidx.compose.foundation.ExperimentalFoundationApi
|
||||||
|
import androidx.compose.foundation.Image
|
||||||
import androidx.compose.foundation.combinedClickable
|
import androidx.compose.foundation.combinedClickable
|
||||||
import androidx.compose.foundation.interaction.MutableInteractionSource
|
import androidx.compose.foundation.interaction.MutableInteractionSource
|
||||||
import androidx.compose.material.ripple.rememberRipple
|
import androidx.compose.material.ripple.rememberRipple
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.remember
|
import androidx.compose.runtime.remember
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
|
import androidx.compose.ui.unit.Dp
|
||||||
|
import com.megboyzz.devmenu.R
|
||||||
|
import com.megboyzz.devmenu.ui.asPainter
|
||||||
|
|
||||||
|
enum class ElementType {
|
||||||
|
isHidden,
|
||||||
|
isReplaced,
|
||||||
|
isFile,
|
||||||
|
isDir
|
||||||
|
}
|
||||||
|
|
||||||
@SuppressLint("ModifierFactoryUnreferencedReceiver")
|
@SuppressLint("ModifierFactoryUnreferencedReceiver")
|
||||||
@OptIn(ExperimentalFoundationApi::class)
|
@OptIn(ExperimentalFoundationApi::class)
|
||||||
@Composable
|
@Composable
|
||||||
fun Modifier.clickableWithRipple(
|
fun Modifier.clickableWithRipple(
|
||||||
onClick: () -> Unit,
|
onClick: () -> Unit,
|
||||||
onLongClick: () -> Unit = {}
|
onLongClick: () -> Unit = {},
|
||||||
|
enabled: Boolean = true
|
||||||
): Modifier {
|
): Modifier {
|
||||||
return Modifier.combinedClickable(
|
return Modifier.combinedClickable(
|
||||||
|
enabled = enabled,
|
||||||
interactionSource = remember { MutableInteractionSource() },
|
interactionSource = remember { MutableInteractionSource() },
|
||||||
indication = rememberRipple(),
|
indication = rememberRipple(),
|
||||||
onClick = onClick,
|
onClick = onClick,
|
||||||
onLongClick = onLongClick
|
onLongClick = onLongClick
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
fun FsElementIcon(
|
||||||
|
type: ElementType,
|
||||||
|
modifier: Modifier = Modifier
|
||||||
|
) {
|
||||||
|
|
||||||
|
val painter = when(type){
|
||||||
|
ElementType.isHidden -> R.drawable.icon_hidden_file.asPainter()
|
||||||
|
ElementType.isFile -> R.drawable.icon_file.asPainter()
|
||||||
|
ElementType.isDir -> R.drawable.icon_folder.asPainter()
|
||||||
|
ElementType.isReplaced -> R.drawable.icon_replaced_file.asPainter()
|
||||||
|
}
|
||||||
|
|
||||||
|
Image(painter = painter, contentDescription = null, modifier)
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,9 @@
|
|||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="12dp"
|
||||||
|
android:height="12dp"
|
||||||
|
android:viewportWidth="12"
|
||||||
|
android:viewportHeight="12">
|
||||||
|
<path
|
||||||
|
android:pathData="M3.45,10.613C3.358,10.512 3.311,10.396 3.306,10.262C3.302,10.129 3.35,10.012 3.45,9.913L7.388,5.975L3.45,2.038C3.358,1.946 3.311,1.831 3.306,1.694C3.302,1.556 3.35,1.438 3.45,1.338C3.542,1.238 3.656,1.185 3.794,1.181C3.931,1.177 4.05,1.225 4.15,1.325L8.538,5.713C8.579,5.754 8.608,5.796 8.625,5.838C8.642,5.879 8.65,5.925 8.65,5.975C8.65,6.025 8.642,6.071 8.625,6.113C8.608,6.154 8.579,6.196 8.538,6.238L4.15,10.625C4.058,10.717 3.944,10.762 3.806,10.762C3.669,10.762 3.55,10.712 3.45,10.613Z"
|
||||||
|
android:fillColor="#1B3D54"/>
|
||||||
|
</vector>
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
<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.1,13.3L14.65,11.85C14.8,11.067 14.575,10.333 13.975,9.65C13.375,8.967 12.6,8.7 11.65,8.85L10.2,7.4C10.483,7.267 10.771,7.167 11.063,7.1C11.354,7.033 11.667,7 12,7C13.25,7 14.313,7.437 15.188,8.312C16.063,9.187 16.5,10.25 16.5,11.5C16.5,11.833 16.467,12.146 16.4,12.438C16.333,12.729 16.233,13.017 16.1,13.3ZM19.3,16.45L17.85,15.05C18.483,14.567 19.046,14.038 19.538,13.462C20.029,12.887 20.45,12.233 20.8,11.5C19.967,9.817 18.771,8.479 17.212,7.487C15.654,6.496 13.917,6 12,6C11.517,6 11.042,6.033 10.575,6.1C10.108,6.167 9.65,6.267 9.2,6.4L7.65,4.85C8.333,4.567 9.033,4.354 9.75,4.212C10.467,4.071 11.217,4 12,4C14.517,4 16.758,4.696 18.725,6.087C20.692,7.479 22.117,9.283 23,11.5C22.617,12.483 22.112,13.396 21.487,14.238C20.862,15.079 20.133,15.817 19.3,16.45ZM19.8,22.6L15.6,18.45C15.017,18.633 14.429,18.771 13.837,18.862C13.246,18.954 12.633,19 12,19C9.483,19 7.242,18.304 5.275,16.913C3.308,15.521 1.883,13.717 1,11.5C1.35,10.617 1.792,9.796 2.325,9.037C2.858,8.279 3.467,7.6 4.15,7L1.4,4.2L2.8,2.8L21.2,21.2L19.8,22.6ZM5.55,8.4C5.067,8.833 4.625,9.308 4.225,9.825C3.825,10.342 3.483,10.9 3.2,11.5C4.033,13.183 5.229,14.521 6.787,15.512C8.346,16.504 10.083,17 12,17C12.333,17 12.658,16.979 12.975,16.938C13.292,16.896 13.617,16.85 13.95,16.8L13.05,15.85C12.867,15.9 12.692,15.938 12.525,15.962C12.358,15.988 12.183,16 12,16C10.75,16 9.688,15.563 8.813,14.688C7.938,13.813 7.5,12.75 7.5,11.5C7.5,11.317 7.512,11.142 7.537,10.975C7.563,10.808 7.6,10.633 7.65,10.45L5.55,8.4Z"
|
||||||
|
android:fillColor="#1B3D54"/>
|
||||||
|
</vector>
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
<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,17H13V11H11V17ZM12,9C12.283,9 12.521,8.904 12.712,8.712C12.904,8.521 13,8.283 13,8C13,7.717 12.904,7.479 12.712,7.287C12.521,7.096 12.283,7 12,7C11.717,7 11.479,7.096 11.288,7.287C11.096,7.479 11,7.717 11,8C11,8.283 11.096,8.521 11.288,8.712C11.479,8.904 11.717,9 12,9ZM12,22C10.617,22 9.317,21.737 8.1,21.212C6.883,20.688 5.825,19.975 4.925,19.075C4.025,18.175 3.313,17.117 2.787,15.9C2.263,14.683 2,13.383 2,12C2,10.617 2.263,9.317 2.787,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,22ZM12,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,14.233 4.775,16.125 6.325,17.675C7.875,19.225 9.767,20 12,20Z"
|
||||||
|
android:fillColor="#1B3D54"/>
|
||||||
|
</vector>
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
<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="M7.324,18.818L11.999,16.018L16.674,18.85L15.437,13.55L19.55,9.996L14.125,9.519L11.999,4.533L9.873,9.487L4.447,9.965L8.561,13.531L7.324,18.818ZM11.999,17.681L6.641,20.9C6.505,20.973 6.367,21.006 6.227,20.999C6.086,20.993 5.959,20.949 5.844,20.869C5.73,20.789 5.644,20.683 5.587,20.552C5.529,20.421 5.522,20.275 5.563,20.115L6.973,14.052L2.259,9.957C2.131,9.851 2.052,9.73 2.02,9.592C1.989,9.455 1.994,9.319 2.036,9.184C2.07,9.057 2.142,8.95 2.253,8.863C2.363,8.776 2.499,8.727 2.661,8.714L8.897,8.167L11.323,2.431C11.391,2.292 11.487,2.185 11.61,2.111C11.734,2.037 11.863,2 11.999,2C12.134,2 12.264,2.037 12.387,2.111C12.511,2.185 12.606,2.292 12.674,2.431L15.1,8.167L21.337,8.714C21.498,8.727 21.634,8.776 21.745,8.863C21.855,8.95 21.932,9.057 21.974,9.184C22.007,9.319 22.009,9.455 21.977,9.592C21.946,9.73 21.866,9.851 21.739,9.957L17.025,14.052L18.446,20.115C18.48,20.275 18.468,20.421 18.411,20.552C18.354,20.683 18.268,20.789 18.153,20.869C18.039,20.949 17.911,20.993 17.771,20.999C17.63,21.006 17.492,20.973 17.357,20.9L11.999,17.681Z"
|
||||||
|
android:fillColor="#1B3D54"/>
|
||||||
|
</vector>
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
<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="M7,21C6.45,21 5.979,20.804 5.588,20.413C5.196,20.021 5,19.55 5,19V6H4V4H9V3H15V4H20V6H19V19C19,19.55 18.804,20.021 18.413,20.413C18.021,20.804 17.55,21 17,21H7ZM17,6H7V19H17V6ZM9,17H11V8H9V17ZM13,17H15V8H13V17Z"
|
||||||
|
android:fillColor="#1B3D54"/>
|
||||||
|
</vector>
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
<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,16C13.25,16 14.313,15.563 15.188,14.688C16.063,13.813 16.5,12.75 16.5,11.5C16.5,10.25 16.063,9.188 15.188,8.313C14.313,7.438 13.25,7 12,7C10.75,7 9.688,7.438 8.813,8.313C7.938,9.188 7.5,10.25 7.5,11.5C7.5,12.75 7.938,13.813 8.813,14.688C9.688,15.563 10.75,16 12,16ZM12,14.2C11.25,14.2 10.613,13.938 10.087,13.413C9.563,12.887 9.3,12.25 9.3,11.5C9.3,10.75 9.563,10.113 10.087,9.587C10.613,9.063 11.25,8.8 12,8.8C12.75,8.8 13.387,9.063 13.913,9.587C14.438,10.113 14.7,10.75 14.7,11.5C14.7,12.25 14.438,12.887 13.913,13.413C13.387,13.938 12.75,14.2 12,14.2ZM12,19C9.567,19 7.35,18.321 5.35,16.962C3.35,15.604 1.9,13.783 1,11.5C1.9,9.217 3.35,7.396 5.35,6.037C7.35,4.679 9.567,4 12,4C14.433,4 16.65,4.679 18.65,6.037C20.65,7.396 22.1,9.217 23,11.5C22.1,13.783 20.65,15.604 18.65,16.962C16.65,18.321 14.433,19 12,19ZM12,17C13.883,17 15.613,16.504 17.188,15.512C18.763,14.521 19.967,13.183 20.8,11.5C19.967,9.817 18.763,8.479 17.188,7.488C15.613,6.496 13.883,6 12,6C10.117,6 8.387,6.496 6.813,7.488C5.238,8.479 4.033,9.817 3.2,11.5C4.033,13.183 5.238,14.521 6.813,15.512C8.387,16.504 10.117,17 12,17Z"
|
||||||
|
android:fillColor="#1B3D54"/>
|
||||||
|
</vector>
|
||||||
Reference in New Issue
Block a user