compose微信界面

master
yenne 2023-12-26 11:06:01 +08:00
commit 1c44b61fc2
93 changed files with 2851 additions and 0 deletions

15
.gitignore vendored 100644
View File

@ -0,0 +1,15 @@
*.iml
.gradle
/local.properties
/.idea/caches
/.idea/libraries
/.idea/modules.xml
/.idea/workspace.xml
/.idea/navEditor.xml
/.idea/assetWizardSettings.xml
.DS_Store
/build
/captures
.externalNativeBuild
.cxx
local.properties

3
.idea/.gitignore vendored 100644
View File

@ -0,0 +1,3 @@
# 默认忽略的文件
/shelf/
/workspace.xml

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<bytecodeTargetLevel target="17" />
</component>
</project>

View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="deploymentTargetDropDown">
<value>
<entry key="TabItemPreview">
<State />
</entry>
<entry key="WeBottomBarPreview">
<State />
</entry>
<entry key="app">
<State>
<targetSelectedWithDropDown>
<Target>
<type value="QUICK_BOOT_TARGET" />
<deviceKey>
<Key>
<type value="VIRTUAL_DEVICE_PATH" />
<value value="C:\Users\YZC\.android\avd\Pixel_2_API_29.avd" />
</Key>
</deviceKey>
</Target>
</targetSelectedWithDropDown>
<timeTargetWasSelectedWithDropDown value="2023-12-26T02:58:30.400215100Z" />
</State>
</entry>
</value>
</component>
</project>

19
.idea/gradle.xml 100644
View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GradleMigrationSettings" migrationVersion="1" />
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleJvm" value="#GRADLE_LOCAL_JAVA_HOME" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
<option value="$PROJECT_DIR$/app" />
</set>
</option>
<option name="resolveExternalAnnotations" value="false" />
</GradleProjectSettings>
</option>
</component>
</project>

View File

@ -0,0 +1,41 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="PreviewAnnotationInFunctionWithParameters" enabled="true" level="ERROR" enabled_by_default="true">
<option name="composableFile" value="true" />
<option name="previewFile" value="true" />
</inspection_tool>
<inspection_tool class="PreviewApiLevelMustBeValid" enabled="true" level="ERROR" enabled_by_default="true">
<option name="composableFile" value="true" />
<option name="previewFile" value="true" />
</inspection_tool>
<inspection_tool class="PreviewDimensionRespectsLimit" enabled="true" level="WARNING" enabled_by_default="true">
<option name="composableFile" value="true" />
<option name="previewFile" value="true" />
</inspection_tool>
<inspection_tool class="PreviewFontScaleMustBeGreaterThanZero" enabled="true" level="ERROR" enabled_by_default="true">
<option name="composableFile" value="true" />
<option name="previewFile" value="true" />
</inspection_tool>
<inspection_tool class="PreviewMultipleParameterProviders" enabled="true" level="ERROR" enabled_by_default="true">
<option name="composableFile" value="true" />
<option name="previewFile" value="true" />
</inspection_tool>
<inspection_tool class="PreviewMustBeTopLevelFunction" enabled="true" level="ERROR" enabled_by_default="true">
<option name="composableFile" value="true" />
<option name="previewFile" value="true" />
</inspection_tool>
<inspection_tool class="PreviewNeedsComposableAnnotation" enabled="true" level="ERROR" enabled_by_default="true">
<option name="composableFile" value="true" />
<option name="previewFile" value="true" />
</inspection_tool>
<inspection_tool class="PreviewNotSupportedInUnitTestFiles" enabled="true" level="ERROR" enabled_by_default="true">
<option name="composableFile" value="true" />
<option name="previewFile" value="true" />
</inspection_tool>
<inspection_tool class="PreviewPickerAnnotation" enabled="true" level="ERROR" enabled_by_default="true">
<option name="composableFile" value="true" />
<option name="previewFile" value="true" />
</inspection_tool>
</profile>
</component>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="KotlinJpsPluginSettings">
<option name="version" value="1.9.0" />
</component>
</project>

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectMigrations">
<option name="MigrateToGradleLocalJavaHome">
<set>
<option value="$PROJECT_DIR$" />
</set>
</option>
</component>
</project>

9
.idea/misc.xml 100644
View File

@ -0,0 +1,9 @@
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="jbr-17" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">
<option name="id" value="Android" />
</component>
</project>

6
.idea/vcs.xml 100644
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

1
app/.gitignore vendored 100644
View File

@ -0,0 +1 @@
/build

View File

@ -0,0 +1,70 @@
plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
}
android {
namespace = "com.example.wechat"
compileSdk = 34
defaultConfig {
applicationId = "com.example.wechat"
minSdk = 29
targetSdk = 34
versionCode = 1
versionName = "1.0"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables {
useSupportLibrary = true
}
}
buildTypes {
release {
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = "1.8"
}
buildFeatures {
compose = true
}
composeOptions {
kotlinCompilerExtensionVersion = "1.5.1"
}
packaging {
resources {
excludes += "/META-INF/{AL2.0,LGPL2.1}"
}
}
}
dependencies {
implementation("androidx.core:core-ktx:1.12.0")
implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.6.2")
implementation("androidx.activity:activity-compose:1.8.2")
implementation(platform("androidx.compose:compose-bom:2023.08.00"))
implementation("androidx.compose.ui:ui")
implementation("androidx.compose.ui:ui-graphics")
implementation("androidx.compose.ui:ui-tooling-preview")
implementation("androidx.compose.material3:material3")
implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.6.2")
testImplementation("junit:junit:4.13.2")
androidTestImplementation("androidx.test.ext:junit:1.1.5")
androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
androidTestImplementation(platform("androidx.compose:compose-bom:2023.08.00"))
androidTestImplementation("androidx.compose.ui:ui-test-junit4")
debugImplementation("androidx.compose.ui:ui-tooling")
debugImplementation("androidx.compose.ui:ui-test-manifest")
}

21
app/proguard-rules.pro vendored 100644
View File

@ -0,0 +1,21 @@
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

View File

@ -0,0 +1,24 @@
package com.example.wechat
import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.ext.junit.runners.AndroidJUnit4
import org.junit.Test
import org.junit.runner.RunWith
import org.junit.Assert.*
/**
* Instrumented test, which will execute on an Android device.
*
* See [testing documentation](http://d.android.com/tools/testing).
*/
@RunWith(AndroidJUnit4::class)
class ExampleInstrumentedTest {
@Test
fun useAppContext() {
// Context of the app under test.
val appContext = InstrumentationRegistry.getInstrumentation().targetContext
assertEquals("com.example.wechat", appContext.packageName)
}
}

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<application
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.WeChat"
tools:targetApi="31">
<activity
android:name=".MainActivity"
android:exported="true"
android:label="@string/app_name"
android:theme="@style/Theme.WeChat">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>

View File

@ -0,0 +1,32 @@
package com.example.wechat
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.activity.viewModels
import androidx.compose.foundation.layout.Box
import com.example.wechat.ui.ChatPage
import com.example.wechat.ui.Home
import com.example.wechat.ui.theme.WeChatTheme
class MainActivity : ComponentActivity() {
private val viewModel: WeViewModel by viewModels()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
WeChatTheme(viewModel.theme) {
Box {
Home(viewModel)
ChatPage()
}
}
}
}
override fun onBackPressed() {
if (!viewModel.endChat()) {
super.onBackPressed()
}
}
}

View File

@ -0,0 +1,63 @@
package com.example.wechat
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateListOf
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.setValue
import androidx.lifecycle.ViewModel
import com.example.wechat.data.Chat
import com.example.wechat.data.Msg
import com.example.wechat.data.User
import com.example.wechat.ui.theme.WeChatTheme
class WeViewModel: ViewModel() {
var chats by mutableStateOf(
listOf( // List<Chat>
Chat(
friend = User("jskj", "骏升科技", R.drawable.avatar_jskj),
mutableStateListOf(
Msg(User("jskj", "骏升科技", R.drawable.avatar_jskj), "早上好!", "8:20"),
Msg(User.Me, "", "14:21"),
Msg(User("jskj", "骏升科技", R.drawable.avatar_jskj), "该吃饭了", "12:00"),
Msg(User.Me, "我们去吃饭吧", "12:02"),
Msg(User("jskj", "骏升科技", R.drawable.avatar_jskj), "下班了", "18:00"),
Msg(User.Me, "拜拜", "18:00"),
)
),
Chat(
friend = User("yinzhicheng", "尹志成", R.drawable.avatar_yinzhicheng),
mutableStateListOf(
Msg(User("yinzhicheng", "尹志成", R.drawable.avatar_yinzhicheng), "你好", "8:00"),
Msg(User.Me, "Hello", "8:00"),
Msg(User("yinzhicheng", "尹志成", R.drawable.avatar_yinzhicheng), "请用compose写一个简单的微信界面", "12:00").apply { read = false },
)
),
)
)
val contacts by mutableStateOf(
listOf(
User("jskj", "骏升科技", R.drawable.avatar_jskj),
User("yinzhicheng", "尹志成", R.drawable.avatar_yinzhicheng)
)
)
var theme by mutableStateOf(WeChatTheme.Theme.Light)
var currentChat: Chat? by mutableStateOf(null)
var chatting by mutableStateOf(false)
fun startChat(chat: Chat) {
chatting = true
currentChat = chat
}
fun endChat(): Boolean {
if (chatting) {
chatting = false
return true
}
return false
}
fun boom(chat: Chat) {
chat.msgs.add(Msg(User.Me, "\uD83D\uDCA3", "15:10").apply { read = true })
}
}

View File

@ -0,0 +1,12 @@
package com.example.wechat.data
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.setValue
class Chat(var friend: User, var msgs: MutableList<Msg>) {
}
class Msg(val from: User, val text: String, val time: String) {
var read: Boolean by mutableStateOf(true)
}

View File

@ -0,0 +1,14 @@
package com.example.wechat.data
import androidx.annotation.DrawableRes
import com.example.wechat.R
class User(
val id: String,
val name: String,
@DrawableRes val avatar: Int
) {
companion object {
val Me: User = User("YZC1361450845", "🔱", R.drawable.avatar_me)
}
}

View File

@ -0,0 +1,97 @@
package com.example.wechat.ui
import androidx.compose.foundation.Image
import androidx.compose.foundation.background
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.LazyItemScope
import androidx.compose.foundation.lazy.itemsIndexed
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.draw.drawWithContent
import androidx.compose.ui.geometry.Offset
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.lifecycle.viewmodel.compose.viewModel
import com.example.wechat.WeViewModel
import com.example.wechat.data.Chat
import com.example.wechat.ui.theme.WeChatTheme
@Composable
fun ChatList(chats: List<Chat>) {
// ListView
// RecyclerView
// onDraw()
Column(
Modifier
.background(WeChatTheme.colors.background)
.fillMaxSize()
) {
WeTopBar(title = "微信")
LazyColumn(Modifier.background(WeChatTheme.colors.listItem)) {
itemsIndexed(chats) { index, chat ->
ChatListItem(chat)
if (index < chats.lastIndex) {
Divider(
startIndent = 68.dp,
color = WeChatTheme.colors.chatListDivider,
thickness = 0.8f.dp
)
}
}
}
}
}
internal fun LazyItemScope.Divider(startIndent: Dp, color: Color, thickness: Dp) {
TODO("Not yet implemented")
}
@Composable
private fun ChatListItem(chat: Chat) {
val viewModel: WeViewModel = viewModel()
Row(
Modifier
.clickable {
viewModel.startChat(chat)
}
.fillMaxWidth()
) {
Image(
painterResource(chat.friend.avatar), chat.friend.name,
Modifier
.padding(8.dp)
.size(48.dp)
.unread(!chat.msgs.last().read, WeChatTheme.colors.badge)
.clip(RoundedCornerShape(4.dp))
)
Column(
Modifier
.weight(1f)
.align(Alignment.CenterVertically)
) {
Text(chat.friend.name, fontSize = 17.sp, color = WeChatTheme.colors.textPrimary)
Text(chat.msgs.last().text, fontSize = 14.sp, color = WeChatTheme.colors.textSecondary)
}
Text(
chat.msgs.last().time,
Modifier.padding(8.dp, 8.dp, 12.dp, 8.dp),
fontSize = 11.sp, color = WeChatTheme.colors.textSecondary
)
}
}
fun Modifier.unread(show: Boolean, color: Color): Modifier = this.drawWithContent {
drawContent()
if (show) {
drawCircle(color, 5.dp.toPx(), Offset(size.width - 1.dp.toPx(), 1.dp.toPx()))
}
}

View File

@ -0,0 +1,284 @@
package com.example.wechat.ui
import androidx.compose.animation.core.Animatable
import androidx.compose.animation.core.animateFloatAsState
import androidx.compose.animation.core.spring
import androidx.compose.foundation.Image
import androidx.compose.foundation.background
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.foundation.text.BasicTextField
import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.alpha
import androidx.compose.ui.draw.clip
import androidx.compose.ui.draw.drawBehind
import androidx.compose.ui.geometry.RoundRect
import androidx.compose.ui.graphics.Path
import androidx.compose.ui.graphics.SolidColor
import androidx.compose.ui.graphics.TransformOrigin
import androidx.compose.ui.graphics.graphicsLayer
import androidx.compose.ui.layout.layout
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.lifecycle.viewmodel.compose.viewModel
import com.example.wechat.R
import com.example.wechat.WeViewModel
import com.example.wechat.data.Msg
import com.example.wechat.data.User
import com.example.wechat.ui.theme.WeChatTheme
import kotlinx.coroutines.delay
import kotlin.math.roundToInt
@Composable
fun ChatPage(modifier: Modifier = Modifier) {
val viewModel: WeViewModel = viewModel()
val offsetPercentX by animateFloatAsState(if (viewModel.chatting) 0f else 1f, label = "")
val chat = viewModel.currentChat
if (chat != null) {
Column(
modifier
.offsetPercent(offsetPercentX)
.background(WeChatTheme.colors.background)
.fillMaxSize()
) {
WeTopBar(chat.friend.name) {
viewModel.endChat()
}
var shakingTime by remember {
mutableStateOf(0)
}
Box(
Modifier
.background(WeChatTheme.colors.chatPage)
.weight(1f)
) {
Box(
Modifier
.alpha(WeChatTheme.colors.chatPageBgAlpha)
.fillMaxSize()
) {
Image(
painterResource(R.drawable.ic_bg_newyear_left), null,
Modifier
.align(Alignment.CenterStart)
.padding(bottom = 100.dp)
)
Image(
painterResource(R.drawable.ic_bg_newyear_top), null,
Modifier
.align(Alignment.TopEnd)
.padding(horizontal = 24.dp)
)
Image(
painterResource(R.drawable.ic_bg_newyear_right), null,
Modifier
.align(Alignment.BottomEnd)
.padding(vertical = 200.dp)
)
}
val shakingOffset = remember {
Animatable(0f)
}
LaunchedEffect(key1 = shakingTime) {
if (shakingTime != 0) {
shakingOffset.animateTo(
0f,
animationSpec = spring(0.3f, 600f),
initialVelocity = -2000f
)
}
}
LazyColumn(
Modifier
.fillMaxSize()
.offset(shakingOffset.value.dp, shakingOffset.value.dp)
) {
items(chat.msgs.size) { index ->
val msg = chat.msgs[index]
MessageItem(msg, shakingTime, chat.msgs.size - index - 1)
}
}
}
ChatBottomBar(onBombClicked = {
viewModel.boom(chat)
shakingTime++
})
}
}
}
@Composable
fun MessageItem(msg: Msg, shakingTime: Int, shakingLevel: Int) {
val shakingAngleBubble = remember { Animatable(0f) }
LaunchedEffect(key1 = shakingTime, block = {
if (shakingTime != 0) {
delay(shakingLevel.toLong() * 30)
shakingAngleBubble.animateTo(
0f,
animationSpec = spring(0.4f, 500f),
initialVelocity = 1200f / (1 + shakingLevel * 0.4f)
)
}
})
if (msg.from == User.Me) {
Row(
Modifier
.fillMaxWidth()
.padding(8.dp),
horizontalArrangement = Arrangement.End
) {
val bubbleColor = WeChatTheme.colors.bubbleMe
Text(
msg.text,
Modifier
.graphicsLayer(
rotationZ = shakingAngleBubble.value,
transformOrigin = TransformOrigin(1f, 0f)
)
.drawBehind {
val bubble = Path().apply {
val rect = RoundRect(
10.dp.toPx(),
0f,
size.width - 10.dp.toPx(),
size.height,
4.dp.toPx(),
4.dp.toPx()
)
addRoundRect(rect)
moveTo(size.width - 10.dp.toPx(), 15.dp.toPx())
lineTo(size.width - 5.dp.toPx(), 20.dp.toPx())
lineTo(size.width - 10.dp.toPx(), 25.dp.toPx())
close()
}
drawPath(bubble, bubbleColor)
}
.padding(20.dp, 10.dp),
color = WeChatTheme.colors.textPrimaryMe)
Image(
painterResource(msg.from.avatar),
contentDescription = msg.from.name,
Modifier
.graphicsLayer(
rotationZ = shakingAngleBubble.value * 0.6f,
transformOrigin = TransformOrigin(1f, 0f)
)
.size(40.dp)
.clip(RoundedCornerShape(4.dp))
)
}
} else {
Row(
Modifier
.fillMaxWidth()
.padding(8.dp)
) {
Image(
painterResource(msg.from.avatar),
contentDescription = msg.from.name,
Modifier
.graphicsLayer(
rotationZ = -shakingAngleBubble.value * 0.6f,
transformOrigin = TransformOrigin(0f, 0f)
)
.size(40.dp)
.clip(RoundedCornerShape(4.dp))
)
val bubbleColor = WeChatTheme.colors.bubbleOthers
Text(
msg.text,
Modifier
.graphicsLayer(
rotationZ = -shakingAngleBubble.value,
transformOrigin = TransformOrigin(0f, 0f)
)
.drawBehind {
val bubble = Path().apply {
val rect = RoundRect(
10.dp.toPx(),
0f,
size.width - 10.dp.toPx(),
size.height,
4.dp.toPx(),
4.dp.toPx()
)
addRoundRect(rect)
moveTo(10.dp.toPx(), 15.dp.toPx())
lineTo(5.dp.toPx(), 20.dp.toPx())
lineTo(10.dp.toPx(), 25.dp.toPx())
close()
}
drawPath(bubble, bubbleColor)
}
.padding(20.dp, 10.dp),
color = WeChatTheme.colors.textPrimary)
}
}
}
@Composable
fun ChatBottomBar(onBombClicked: () -> Unit) {
var editingText by remember { mutableStateOf("") }
Row(
Modifier
.fillMaxWidth()
.background(WeChatTheme.colors.bottomBar)
.padding(4.dp, 0.dp)
) {
Icon(
painterResource(R.drawable.ic_voice),
contentDescription = null,
Modifier
.align(Alignment.CenterVertically)
.padding(4.dp)
.size(28.dp),
tint = WeChatTheme.colors.icon
)
BasicTextField(
editingText, { editingText = it },
Modifier
.weight(1f)
.padding(4.dp, 8.dp)
.height(40.dp)
.clip(MaterialTheme.shapes.small)
.background(WeChatTheme.colors.textFieldBackground)
.padding(start = 8.dp, top = 10.dp, end = 8.dp),
cursorBrush = SolidColor(WeChatTheme.colors.textPrimary)
)
Text(
"\uD83D\uDCA3",
Modifier
.clickable(onClick = onBombClicked)
.padding(4.dp)
.align(Alignment.CenterVertically),
fontSize = 24.sp
)
Icon(
painterResource(R.drawable.ic_add),
contentDescription = null,
Modifier
.align(Alignment.CenterVertically)
.padding(4.dp)
.size(28.dp),
tint = WeChatTheme.colors.icon
)
}
}
fun Modifier.offsetPercent(offsetPercentX: Float = 0f, offsetPercentY: Float = 0f) =
this.layout { measurable, constraints ->
val placeable = measurable.measure(constraints)
layout(placeable.width, placeable.height) {
val offsetX = (offsetPercentX * placeable.width).roundToInt()
val offsetY = (offsetPercentY * placeable.height).roundToInt()
placeable.placeRelative(offsetX, offsetY)
}
}

View File

@ -0,0 +1,143 @@
package com.example.wechat.ui
import androidx.compose.foundation.Image
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.itemsIndexed
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.lifecycle.viewmodel.compose.viewModel
import com.example.wechat.R
import com.example.wechat.WeViewModel
import com.example.wechat.data.User
import com.example.wechat.ui.theme.WeChatTheme
@Composable
fun ContactListTopBar() {
WeTopBar(title = "通讯录")
}
@Preview(showBackground = true)
@Composable
fun ContactListTopBarPreview() {
ContactListTopBar()
}
@Composable
fun ContactListItem(
contact: User,
modifier: Modifier = Modifier,
) {
Row(
Modifier
.fillMaxWidth()
) {
Image(
painterResource(contact.avatar), "avatar", Modifier
.padding(12.dp, 8.dp, 8.dp, 8.dp)
.size(36.dp)
.clip(RoundedCornerShape(4.dp))
)
Text(
contact.name,
Modifier
.weight(1f)
.align(Alignment.CenterVertically),
fontSize = 17.sp,
color = WeChatTheme.colors.textPrimary
)
}
}
@Composable
fun ContactList(viewModel: WeViewModel = viewModel()) {
Column(Modifier.fillMaxSize()) {
ContactListTopBar()
Box(
Modifier
.background(WeChatTheme.colors.background)
.fillMaxSize()
) {
ContactList(viewModel.contacts)
}
}
}
@Composable
fun ContactList(contacts: List<User>) {
LazyColumn(
Modifier
.background(WeChatTheme.colors.listItem)
.fillMaxWidth()
) {
val buttons = listOf(
User("contact_add", "新的朋友", R.drawable.ic_contact_add),
User("contact_chat", "仅聊天", R.drawable.ic_contact_chat),
User("contact_group", "群聊", R.drawable.ic_contact_group),
User("contact_tag", "标签", R.drawable.ic_contact_tag),
User("contact_official", "公众号", R.drawable.ic_contact_official),
)
itemsIndexed(buttons) { index, contact ->
ContactListItem(contact)
if (index < buttons.size - 1) {
Divider(
startIndent = 56.dp,
color = WeChatTheme.colors.chatListDivider,
thickness = 0.8f.dp
)
}
}
item {
Text(
"朋友",
Modifier
.background(WeChatTheme.colors.background)
.fillMaxWidth()
.padding(12.dp, 8.dp),
fontSize = 14.sp,
color = WeChatTheme.colors.onBackground
)
}
itemsIndexed(contacts) { index, contact ->
ContactListItem(contact)
if (index < contacts.size - 1) {
Divider(
startIndent = 56.dp,
color = WeChatTheme.colors.chatListDivider,
thickness = 0.8f.dp
)
}
}
}
}
@Preview(showBackground = true)
@Composable
fun ContactListItemPreview() {
WeChatTheme {
Box {
ContactListItem(
User("jskj", "骏升科技", R.drawable.avatar_jskj)
)
}
}
}
@Preview(showBackground = true)
@Composable
fun ContactListPreview() {
val contacts = listOf<User>(
User("jskj", "骏升科技", R.drawable.avatar_jskj),
User("yinzhicheng", "尹志成", R.drawable.avatar_yinzhicheng),
)
ContactList(contacts)
}

View File

@ -0,0 +1,163 @@
package com.example.wechat.ui
import androidx.annotation.DrawableRes
import androidx.compose.foundation.Image
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.Icon
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.example.wechat.R
import com.example.wechat.ui.theme.WeChatTheme
@Composable
fun DiscoveryListTopBar() {
WeTopBar(title = "发现")
}
@Preview(showBackground = true)
@Composable
fun DiscoveryListTopBarPreview() {
DiscoveryListTopBar()
}
@Composable
fun DiscoveryListItem(
@DrawableRes icon: Int,
title: String,
modifier: Modifier = Modifier,
badge: @Composable (() -> Unit)? = null,
endBadge: @Composable (() -> Unit)? = null
) {
Row(
Modifier
.fillMaxWidth(),
verticalAlignment = Alignment.CenterVertically
) {
Image(
painterResource(icon), "title", Modifier
.padding(12.dp, 8.dp, 8.dp, 8.dp)
.size(36.dp)
.padding(8.dp)
)
Text(
title,
fontSize = 17.sp,
color = WeChatTheme.colors.textPrimary
)
badge?.invoke()
Spacer(Modifier.weight(1f))
endBadge?.invoke()
Icon(
painterResource(R.drawable.ic_arrow_more), contentDescription = "更多",
Modifier
.padding(0.dp, 0.dp, 12.dp, 0.dp)
.size(16.dp),
tint = WeChatTheme.colors.more
)
}
}
@Composable
fun DiscoveryList() {
Column(Modifier.fillMaxSize()) {
DiscoveryListTopBar()
Box(
Modifier
.background(WeChatTheme.colors.background)
.fillMaxSize()
) {
Column(
Modifier
.background(WeChatTheme.colors.listItem)
.fillMaxWidth()
) {
DiscoveryListItem(R.drawable.ic_moments, "朋友圈", badge = {
Box(
Modifier
.padding(8.dp)
.clip(RoundedCornerShape(50))
.size(18.dp)
.background(WeChatTheme.colors.badge)
) {
Text(
"3",
Modifier.align(Alignment.Center),
fontSize = 12.sp,
color = WeChatTheme.colors.onBadge
)
}
}, endBadge = {
Image(
painterResource(R.drawable.avatar_jskj), "avatar", Modifier
.padding(8.dp, 0.dp)
.size(32.dp)
.unread(false, WeChatTheme.colors.badge)
.clip(RoundedCornerShape(4.dp))
)
})
Spacer(
Modifier
.background(WeChatTheme.colors.background)
.fillMaxWidth()
.height(8.dp)
)
DiscoveryListItem(R.drawable.ic_channels, "视频号", endBadge = {
Image(
painterResource(R.drawable.avatar_yinzhicheng), "avatar", Modifier
.padding(8.dp, 0.dp)
.size(32.dp)
.unread(false, WeChatTheme.colors.badge)
.clip(RoundedCornerShape(4.dp))
)
Text(
"赞过", Modifier.padding(0.dp, 0.dp, 4.dp, 0.dp),
fontSize = 14.sp, color = WeChatTheme.colors.textSecondary
)
})
Spacer(
Modifier
.background(WeChatTheme.colors.background)
.fillMaxWidth()
.height(8.dp)
)
DiscoveryListItem(R.drawable.ic_ilook, "看一看")
Divider(
startIndent = 56.dp,
color = WeChatTheme.colors.chatListDivider,
thickness = 0.8f.dp
)
DiscoveryListItem(R.drawable.ic_isearch, "搜一搜")
Spacer(
Modifier
.background(WeChatTheme.colors.background)
.fillMaxWidth()
.height(8.dp)
)
DiscoveryListItem(R.drawable.ic_nearby, "直播和附近")
}
}
}
}
fun ColumnScope.Divider(startIndent: Dp, color: Color, thickness: Dp) {
TODO("Not yet implemented")
}
@Preview(showBackground = true)
@Composable
fun DiscoveryListPreview() {
WeChatTheme {
DiscoveryList()
}
}

View File

@ -0,0 +1,36 @@
package com.example.wechat.ui
import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.pager.HorizontalPager
import androidx.compose.foundation.pager.rememberPagerState
import androidx.compose.runtime.Composable
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.Modifier
import com.example.wechat.WeViewModel
import kotlinx.coroutines.launch
@OptIn(ExperimentalFoundationApi::class)
@Composable
fun Home(viewModel: WeViewModel) {
Column {
val pagerState = rememberPagerState{4}
HorizontalPager(
modifier = Modifier.weight(1f),
state = pagerState
) { page ->
when (page) {
0 -> ChatList(viewModel.chats)
1 -> ContactList()
2 -> DiscoveryList()
3 -> MeList()
}
}
val scope = rememberCoroutineScope()
WeBottomBar(pagerState.currentPage) { page ->
scope.launch {
pagerState.animateScrollToPage(page)
}
}
}
}

View File

@ -0,0 +1,180 @@
package com.example.wechat.ui
import androidx.annotation.DrawableRes
import androidx.compose.foundation.Image
import androidx.compose.foundation.background
import androidx.compose.foundation.border
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.Icon
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.example.wechat.data.User
import com.example.wechat.ui.theme.WeChatTheme
import com.example.wechat.R
@Composable
fun MeListTopBar() {
Row(
Modifier
.background(WeChatTheme.colors.listItem)
.fillMaxWidth()
.height(224.dp)
) {
Image(
painterResource(id = R.drawable.avatar_me), contentDescription = "Me",
Modifier
.align(Alignment.CenterVertically)
.padding(start = 24.dp)
.clip(RoundedCornerShape(6.dp))
.size(64.dp)
)
Column(
Modifier
.weight(1f)
.padding(start = 12.dp)
) {
Text(
User.Me.name,
Modifier.padding(top = 64.dp),
fontSize = 22.sp,
fontWeight = FontWeight.Bold,
color = WeChatTheme.colors.textPrimary
)
Text(
"微信号:${User.Me.id}",
Modifier.padding(top = 16.dp),
fontSize = 14.sp,
color = WeChatTheme.colors.textSecondary
)
Text(
"+ 状态",
Modifier
.padding(top = 16.dp)
.border(1.dp, WeChatTheme.colors.onBackground, RoundedCornerShape(50))
.padding(8.dp, 2.dp),
fontSize = 16.sp,
color = WeChatTheme.colors.onBackground
)
}
Icon(
painterResource(id = R.drawable.ic_qrcode), contentDescription = "qrcode",
Modifier
.align(Alignment.CenterVertically)
.padding(end = 20.dp)
.size(14.dp),
tint = WeChatTheme.colors.onBackground
)
Icon(
painterResource(R.drawable.ic_arrow_more), contentDescription = "更多",
Modifier
.align(Alignment.CenterVertically)
.padding(end = 16.dp)
.size(16.dp),
tint = WeChatTheme.colors.more
)
}
}
@Preview(showBackground = true)
@Composable
fun MeListTopBarPreview() {
MeListTopBar()
}
@Composable
fun MeListItem(
@DrawableRes icon: Int,
title: String,
modifier: Modifier = Modifier,
badge: @Composable (() -> Unit)? = null,
endBadge: @Composable (() -> Unit)? = null
) {
Row(
Modifier
.fillMaxWidth(),
verticalAlignment = Alignment.CenterVertically
) {
Image(
painterResource(icon), "title", Modifier
.padding(12.dp, 8.dp, 8.dp, 8.dp)
.size(36.dp)
.padding(8.dp)
)
Text(
title,
fontSize = 17.sp,
color = WeChatTheme.colors.textPrimary
)
badge?.invoke()
Spacer(Modifier.weight(1f))
endBadge?.invoke()
Icon(
painterResource(R.drawable.ic_arrow_more), contentDescription = "更多",
Modifier
.padding(0.dp, 0.dp, 12.dp, 0.dp)
.size(16.dp),
tint = WeChatTheme.colors.more
)
}
}
@Composable
fun MeList() {
Box(
Modifier
.background(WeChatTheme.colors.background)
.fillMaxSize()
) {
Column(
Modifier
.background(WeChatTheme.colors.listItem)
.fillMaxWidth()
) {
MeListTopBar()
Spacer(
Modifier
.background(WeChatTheme.colors.background)
.fillMaxWidth()
.height(8.dp)
)
MeListItem(R.drawable.ic_pay, "支付")
Spacer(
Modifier
.background(WeChatTheme.colors.background)
.fillMaxWidth()
.height(8.dp)
)
MeListItem(R.drawable.ic_collections, "收藏")
Divider(startIndent = 56.dp, color = WeChatTheme.colors.chatListDivider, thickness = 0.8f.dp)
MeListItem(R.drawable.ic_photos, "朋友圈")
Divider(startIndent = 56.dp, color = WeChatTheme.colors.chatListDivider, thickness = 0.8f.dp)
MeListItem(R.drawable.ic_cards, "卡包")
Divider(startIndent = 56.dp, color = WeChatTheme.colors.chatListDivider, thickness = 0.8f.dp)
MeListItem(R.drawable.ic_stickers, "表情")
Spacer(
Modifier
.background(WeChatTheme.colors.background)
.fillMaxWidth()
.height(8.dp)
)
MeListItem(R.drawable.ic_settings, "设置")
}
}
}
@Preview(showBackground = true)
@Composable
fun MeListPreview() {
WeChatTheme {
MeList()
}
}

View File

@ -0,0 +1,105 @@
package com.example.wechat.ui
import androidx.annotation.DrawableRes
import androidx.compose.foundation.background
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.material3.Icon
import androidx.compose.material3.Text
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.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.example.wechat.R
import com.example.wechat.ui.theme.WeChatTheme
@Composable
fun WeBottomBar(selected: Int,onSelectedChanged: (Int) -> Unit){
Row(Modifier.background(WeChatTheme.colors.bottomBar)) {
TabItem(
if(selected==0) R.drawable.ic_chat_filled else R.drawable.ic_chat_outlined,"聊天",
if(selected==0) WeChatTheme.colors.iconCurrent else WeChatTheme.colors.icon,
Modifier.weight(1f)
.clickable {
onSelectedChanged(0)
}
)
TabItem(if(selected==1) R.drawable.ic_contacts_filled else R.drawable.ic_contacts_outlined,"通讯录",
if(selected==1) WeChatTheme.colors.iconCurrent else WeChatTheme.colors.icon,
Modifier.weight(1f)
.clickable {
onSelectedChanged(1)
}
)
TabItem(if(selected==2) R.drawable.ic_discovery_filled else R.drawable.ic_discovery_outlined,"朋友圈",
if(selected==2) WeChatTheme.colors.iconCurrent else WeChatTheme.colors.icon,
Modifier.weight(1f)
.clickable {
onSelectedChanged(2)
}
)
TabItem(if(selected==3) R.drawable.ic_me_filled else R.drawable.ic_me_outlined,"",
if(selected==3) WeChatTheme.colors.iconCurrent else WeChatTheme.colors.icon,
Modifier.weight(1f)
.clickable {
onSelectedChanged(3)
}
)
}
}
@Composable
fun TabItem(@DrawableRes iconId :Int, title: String, tint: Color,modifier: Modifier=Modifier){
Column(
modifier.padding(vertical = 8.dp),
horizontalAlignment = Alignment.CenterHorizontally
) {
Icon(painterResource(iconId),title, Modifier.size(24.dp), tint = tint)
Text(title, fontSize = 11.sp, color = tint)
}
}
@Preview(showBackground = true)
@Composable
fun WeBottomBarPreview(){
WeChatTheme(WeChatTheme.Theme.Light){
var selectedTab by remember{ mutableStateOf(0)}
WeBottomBar(selectedTab){ selectedTab=it }
}
}
@Preview(showBackground = true)
@Composable
fun WeBottomBarPreviewDark() {
WeChatTheme(WeChatTheme.Theme.Dark) {
var selectedTab by remember { mutableStateOf(0) }
WeBottomBar(selectedTab) { selectedTab = it }
}
}
@Preview(showBackground = true)
@Composable
fun WeBottomBarPreviewNewYear() {
WeChatTheme(WeChatTheme.Theme.NewYear) {
var selectedTab by remember { mutableStateOf(0) }
WeBottomBar(selectedTab) { selectedTab = it }
}
}
@Preview(showBackground = true)
@Composable
fun TabItemPreview(){
TabItem(iconId= R.drawable.ic_chat_outlined,title= "聊天", tint = WeChatTheme.colors.icon)
}

View File

@ -0,0 +1,62 @@
package com.example.wechat.ui
import androidx.compose.foundation.background
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.*
import androidx.compose.material3.Icon
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.unit.dp
import androidx.lifecycle.viewmodel.compose.viewModel
import com.example.wechat.R
import com.example.wechat.WeViewModel
import com.example.wechat.ui.theme.WeChatTheme
@Composable
fun WeTopBar(title: String, onBack: (() -> Unit)? = null) {
Box(
Modifier
.background(WeChatTheme.colors.background)
.fillMaxWidth()
) {
Row(
Modifier
.height(48.dp)
) {
if (onBack != null) {
Icon(
painterResource(R.drawable.ic_back),
null,
Modifier
.clickable(onClick = onBack)
.align(Alignment.CenterVertically)
.size(36.dp)
.padding(8.dp),
tint = WeChatTheme.colors.icon
)
}
Spacer(Modifier.weight(1f))
val viewModel: WeViewModel = viewModel()
Icon(
painterResource(R.drawable.ic_palette),
"切换主题",
Modifier
.clickable {
viewModel.theme = when (viewModel.theme) {
WeChatTheme.Theme.Light -> WeChatTheme.Theme.Dark
WeChatTheme.Theme.Dark -> WeChatTheme.Theme.NewYear
WeChatTheme.Theme.NewYear -> WeChatTheme.Theme.Light
}
}
.align(Alignment.CenterVertically)
.size(36.dp)
.padding(8.dp),
tint = WeChatTheme.colors.icon
)
}
Text(title, Modifier.align(Alignment.Center), color = WeChatTheme.colors.textPrimary)
}
}

View File

@ -0,0 +1,41 @@
package com.example.wechat.ui.theme
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.colorspace.ColorSpaces
val Purple200 = Color(0xFFBB86FC)
val Purple500 = Color(0xFF6200EE)
val Purple700 = Color(0xFF3700B3)
val Teal200 = Color(0xFF03DAC5)
val white = Color(0xFFFFFFFF).convert(ColorSpaces.CieXyz)
val white1 = Color(0xFFF7F7F7).convert(ColorSpaces.CieXyz)
val white2 = Color(0xFFEDEDED).convert(ColorSpaces.CieXyz)
val white3 = Color(0xFFE5E5E5).convert(ColorSpaces.CieXyz)
val white4 = Color(0xFFD5D5D5).convert(ColorSpaces.CieXyz)
val white5 = Color(0xFFCCCCCC).convert(ColorSpaces.CieXyz)
val black = Color(0xFF000000).convert(ColorSpaces.CieXyz)
val black1 = Color(0xFF1E1E1E).convert(ColorSpaces.CieXyz)
val black2 = Color(0xFF111111).convert(ColorSpaces.CieXyz)
val black3 = Color(0xFF191919).convert(ColorSpaces.CieXyz)
val black4 = Color(0xFF252525).convert(ColorSpaces.CieXyz)
val black5 = Color(0xFF2C2C2C).convert(ColorSpaces.CieXyz)
val black6 = Color(0xFF07130A).convert(ColorSpaces.CieXyz)
val black7 = Color(0xFF292929).convert(ColorSpaces.CieXyz)
val grey1 = Color(0xFF888888).convert(ColorSpaces.CieXyz)
val grey2 = Color(0xFFCCC7BF).convert(ColorSpaces.CieXyz)
val grey3 = Color(0xFF767676).convert(ColorSpaces.CieXyz)
val grey4 = Color(0xFFB2B2B2).convert(ColorSpaces.CieXyz)
val grey5 = Color(0xFF5E5E5E).convert(ColorSpaces.CieXyz)
val green1 = Color(0xFFB0EB6E).convert(ColorSpaces.CieXyz)
val green2 = Color(0xFF6DB476).convert(ColorSpaces.CieXyz)
val green3 = Color(0xFF67BF63).convert(ColorSpaces.CieXyz)
val red1 = Color(0xFFDF5554).convert(ColorSpaces.CieXyz)
val red2 = Color(0xFFDD302E).convert(ColorSpaces.CieXyz)
val red3 = Color(0xFFF77B7A).convert(ColorSpaces.CieXyz)
val red4 = Color(0xFFD42220).convert(ColorSpaces.CieXyz)
val red5 = Color(0xFFC51614).convert(ColorSpaces.CieXyz)
val red6 = Color(0xFFF74D4B).convert(ColorSpaces.CieXyz)
val red7 = Color(0xFFDC514E).convert(ColorSpaces.CieXyz)
val red8 = Color(0xFFCBC7BF).convert(ColorSpaces.CieXyz)
val yellow1 = Color(0xFFF6CA23).convert(ColorSpaces.CieXyz)

View File

@ -0,0 +1,199 @@
package com.example.wechat.ui.theme
import androidx.compose.animation.animateColorAsState
import androidx.compose.animation.core.TweenSpec
import androidx.compose.animation.core.animateFloatAsState
import androidx.compose.foundation.isSystemInDarkTheme
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.MaterialTheme.shapes
import androidx.compose.runtime.*
import androidx.compose.ui.graphics.Color
private val LightColorPalette = WeChatColors(
bottomBar = white1,
background = white2,
listItem = white,
divider = white3,
chatPage = white2,
textPrimary = black3,
textPrimaryMe = black3,
textSecondary = grey1,
onBackground = grey3,
icon = black,
iconCurrent = green3,
badge = red1,
onBadge = white,
bubbleMe = green1,
bubbleOthers = white,
textFieldBackground = white,
more = grey4,
chatPageBgAlpha = 0f,
)
private val DarkColorPalette = WeChatColors(
bottomBar = black1,
background = black2,
listItem = black3,
divider = black4,
chatPage = black2,
textPrimary = white4,
textPrimaryMe = black6,
textSecondary = grey1,
onBackground = grey1,
icon = white5,
iconCurrent = green3,
badge = red1,
onBadge = white,
bubbleMe = green2,
bubbleOthers = black5,
textFieldBackground = black7,
more = grey5,
chatPageBgAlpha = 0f,
)
private val NewYearColorPalette = WeChatColors(
bottomBar = red4,
background = red5,
listItem = red2,
divider = red3,
chatPage = red5,
textPrimary = white,
textPrimaryMe = black6,
textSecondary = grey2,
onBackground = grey2,
icon = white5,
iconCurrent = green3,
badge = yellow1,
onBadge = black3,
bubbleMe = green2,
bubbleOthers = red6,
textFieldBackground = red7,
more = red8,
chatPageBgAlpha = 1f,
)
private val LocalWeComposeColors = compositionLocalOf {
LightColorPalette
}
object WeChatTheme {
val colors: WeChatColors
@Composable
get() = LocalWeComposeColors.current
enum class Theme {
Light, Dark, NewYear
}
}
@Stable
class WeChatColors(
bottomBar: Color,
background: Color,
listItem: Color,
divider: Color,
chatPage: Color,
textPrimary: Color,
textPrimaryMe: Color,
textSecondary: Color,
onBackground: Color,
icon: Color,
iconCurrent: Color,
badge: Color,
onBadge: Color,
bubbleMe: Color,
bubbleOthers: Color,
textFieldBackground: Color,
more: Color,
chatPageBgAlpha: Float,
) {
var bottomBar: Color by mutableStateOf(bottomBar)
private set
var background: Color by mutableStateOf(background)
private set
var listItem: Color by mutableStateOf(listItem)
private set
var chatListDivider: Color by mutableStateOf(divider)
private set
var chatPage: Color by mutableStateOf(chatPage)
private set
var textPrimary: Color by mutableStateOf(textPrimary)
private set
var textPrimaryMe: Color by mutableStateOf(textPrimaryMe)
private set
var textSecondary: Color by mutableStateOf(textSecondary)
private set
var onBackground: Color by mutableStateOf(onBackground)
private set
var icon: Color by mutableStateOf(icon)
private set
var iconCurrent: Color by mutableStateOf(iconCurrent)
private set
var badge: Color by mutableStateOf(badge)
private set
var onBadge: Color by mutableStateOf(onBadge)
private set
var bubbleMe: Color by mutableStateOf(bubbleMe)
private set
var bubbleOthers: Color by mutableStateOf(bubbleOthers)
private set
var textFieldBackground: Color by mutableStateOf(textFieldBackground)
private set
var more: Color by mutableStateOf(more)
private set
var chatPageBgAlpha: Float by mutableStateOf(chatPageBgAlpha)
private set
}
@Composable
fun WeChatTheme(theme: WeChatTheme.Theme = WeChatTheme.Theme.Light, content: @Composable() () -> Unit) {
val targetColors = when (theme) {
WeChatTheme.Theme.Light -> LightColorPalette
WeChatTheme.Theme.Dark -> DarkColorPalette
WeChatTheme.Theme.NewYear -> NewYearColorPalette
}
val bottomBar = animateColorAsState(targetColors.bottomBar, TweenSpec(600))
val background = animateColorAsState(targetColors.background, TweenSpec(600))
val listItem = animateColorAsState(targetColors.listItem, TweenSpec(600))
val chatListDivider = animateColorAsState(targetColors.chatListDivider, TweenSpec(600))
val chatPage = animateColorAsState(targetColors.chatPage, TweenSpec(600))
val textPrimary = animateColorAsState(targetColors.textPrimary, TweenSpec(600))
val textPrimaryMe = animateColorAsState(targetColors.textPrimaryMe, TweenSpec(600))
val textSecondary = animateColorAsState(targetColors.textSecondary, TweenSpec(600))
val onBackground = animateColorAsState(targetColors.onBackground, TweenSpec(600))
val icon = animateColorAsState(targetColors.icon, TweenSpec(600), label = "")
val iconCurrent = animateColorAsState(targetColors.iconCurrent, TweenSpec(600))
val badge = animateColorAsState(targetColors.badge, TweenSpec(600))
val onBadge = animateColorAsState(targetColors.onBadge, TweenSpec(600))
val bubbleMe = animateColorAsState(targetColors.bubbleMe, TweenSpec(600))
val bubbleOthers = animateColorAsState(targetColors.bubbleOthers, TweenSpec(600))
val textFieldBackground = animateColorAsState(targetColors.textFieldBackground, TweenSpec(600))
val more = animateColorAsState(targetColors.more, TweenSpec(600))
val chatPageBgAlpha = animateFloatAsState(targetColors.chatPageBgAlpha, TweenSpec(600))
val colors = WeChatColors(
bottomBar = bottomBar.value,
background = background.value,
listItem = listItem.value,
divider = chatListDivider.value,
chatPage = chatPage.value,
textPrimary = textPrimary.value,
textPrimaryMe = textPrimaryMe.value,
textSecondary = textSecondary.value,
onBackground = onBackground.value,
icon = icon.value,
iconCurrent = iconCurrent.value,
badge = badge.value,
onBadge = onBadge.value,
bubbleMe = bubbleMe.value,
bubbleOthers = bubbleOthers.value,
textFieldBackground = textFieldBackground.value,
more = more.value,
chatPageBgAlpha = chatPageBgAlpha.value,
)
CompositionLocalProvider(LocalWeComposeColors provides colors) {
MaterialTheme(
shapes = shapes,
content = content
)
}
}

View File

@ -0,0 +1,34 @@
package com.example.wechat.ui.theme
import androidx.compose.material3.Typography
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.font.FontFamily
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.sp
// Set of Material typography styles to start with
val Typography = Typography(
bodyLarge = TextStyle(
fontFamily = FontFamily.Default,
fontWeight = FontWeight.Normal,
fontSize = 16.sp,
lineHeight = 24.sp,
letterSpacing = 0.5.sp
)
/* Other default text styles to override
titleLarge = TextStyle(
fontFamily = FontFamily.Default,
fontWeight = FontWeight.Normal,
fontSize = 22.sp,
lineHeight = 28.sp,
letterSpacing = 0.sp
),
labelSmall = TextStyle(
fontFamily = FontFamily.Default,
fontWeight = FontWeight.Medium,
fontSize = 11.sp,
lineHeight = 16.sp,
letterSpacing = 0.5.sp
)
*/
)

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

View File

@ -0,0 +1,12 @@
<vector android:height="32dp" android:viewportHeight="165"
android:viewportWidth="165" android:width="32dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#000000" android:fillType="nonZero"
android:pathData="M79.967,12.11C41.726,13.238 11.475,44.858 12.039,83.112C12.603,121.365 43.774,152.08 82.031,152.08C120.289,152.08 151.46,121.365 152.024,83.112C152.588,44.858 122.336,13.238 84.095,12.11L82.031,12.078L79.967,12.11ZM84.287,0.11C128.527,1.31 164.031,37.55 164.031,82.078C164.031,127.366 127.319,164.078 82.031,164.078C36.743,164.078 0.031,127.366 0.031,82.078C0.031,37.542 35.527,1.302 79.775,0.11L82.031,0.078L84.287,0.11Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#000000" android:fillType="nonZero"
android:pathData="M82.031,42.438C85.343,42.438 88.031,45.766 88.031,49.878L88.031,114.278C88.031,118.39 85.343,121.718 82.031,121.718C78.719,121.718 76.031,118.39 76.031,114.278L76.031,49.878C76.031,45.766 78.719,42.438 82.031,42.438Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#000000" android:fillType="nonZero"
android:pathData="M42.391,82.078C42.391,78.766 45.719,76.078 49.831,76.078L114.231,76.078C118.343,76.078 121.671,78.766 121.671,82.078C121.671,85.39 118.343,88.078 114.231,88.078L49.831,88.078C45.719,88.078 42.391,85.39 42.391,82.078Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
</vector>

View File

@ -0,0 +1,4 @@
<vector android:height="32dp" android:viewportHeight="1024"
android:viewportWidth="1024" android:width="32dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FF000000" android:pathData="M268.37,908.63l60.59,60.07 456.7,-460.37L328.7,55.04l-60.08,60.59 396.37,393.22z"/>
</vector>

View File

@ -0,0 +1,16 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="26dp"
android:height="44dp"
android:viewportWidth="26"
android:viewportHeight="44">
<path
android:pathData="M2.0836,23.088L23.2968,1.8748"
android:strokeWidth="4"
android:fillColor="#00000000"
android:strokeColor="#000000"/>
<path
android:pathData="M2.4142,20.5858L23.6274,41.799"
android:strokeWidth="4"
android:fillColor="#00000000"
android:strokeColor="#000000"/>
</vector>

View File

@ -0,0 +1,21 @@
<vector android:height="68.5dp" android:viewportHeight="98"
android:viewportWidth="206" android:width="143.98979dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#DCB784" android:fillType="nonZero"
android:pathData="M50,76.2L50,73.8C52,73.8 53.7,72.2 53.7,70.1C53.7,68 52.1,66.4 50,66.4L50,64C53.4,64 56.1,66.7 56.1,70.1C56.1,73.5 53.3,76.2 50,76.2Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#DCB784" android:fillType="nonZero"
android:pathData="M37.7,86C34.3,86 31.6,83.3 31.6,79.9C31.6,76.5 34.3,73.8 37.7,73.8L37.7,76.2C35.7,76.2 34,77.8 34,79.9C34,82 35.6,83.6 37.7,83.6L37.7,86Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#DCB784" android:fillType="nonZero"
android:pathData="M0,64h50v2.4h-50z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#DCB784" android:fillType="nonZero"
android:pathData="M37.7,83.6h140.8v2.4h-140.8z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#DCB784" android:fillType="nonZero"
android:pathData="M37.7,73.8h12.2v2.4h-12.2z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#F7CA23" android:fillType="nonZero"
android:pathData="M195.2,32.6C198.6,16.9 188.4,6.7 172.7,10.1C164,-3.3 149.6,-3.4 140.9,10.1C125.2,6.7 115,16.9 118.4,32.6C104.9,41.3 104.9,55.7 118.4,64.4C115,80.1 125.2,90.3 140.9,86.9C149.6,100.4 164,100.4 172.7,86.9C188.4,90.3 198.6,80.1 195.2,64.4C208.7,55.7 208.7,41.3 195.2,32.6ZM166.7,36.3L176,27C176.7,26.3 177.7,26.3 178.4,27C179.1,27.7 179.1,28.7 178.4,29.4L169.1,38.7C168.8,39 168.3,39.2 167.9,39.2C167.5,39.2 167,39 166.7,38.7C166,38 166,36.9 166.7,36.3ZM126.4,48.5C126.4,47.6 127.2,46.8 128.1,46.8L141.2,46.8C142.1,46.8 142.9,47.5 142.9,48.5C142.9,49.4 142.1,50.2 141.2,50.2L128.1,50.2C127.2,50.2 126.4,49.4 126.4,48.5ZM146.9,60.7L137.6,70C137.3,70.3 136.8,70.5 136.4,70.5C136,70.5 135.5,70.3 135.2,70C134.5,69.3 134.5,68.3 135.2,67.6L144.5,58.3C145.2,57.6 146.2,57.6 146.9,58.3C147.6,59 147.6,60.1 146.9,60.7ZM146.9,38.6C146.6,38.9 146.1,39.1 145.7,39.1C145.3,39.1 144.8,38.9 144.5,38.6L135.2,29.3C134.5,28.6 134.5,27.6 135.2,26.9C135.9,26.2 136.9,26.2 137.6,26.9L146.9,36.2C147.6,36.9 147.6,38 146.9,38.6ZM158.5,77.2C158.5,78.1 157.7,78.9 156.8,78.9C155.9,78.9 155.1,78.2 155.1,77.2L155.1,64.1C155.1,63.2 155.9,62.4 156.8,62.4C157.7,62.4 158.5,63.1 158.5,64.1L158.5,77.2ZM158.5,32.9C158.5,33.8 157.7,34.6 156.8,34.6C155.9,34.6 155.1,33.9 155.1,32.9L155.1,19.8C155.1,18.9 155.9,18.1 156.8,18.1C157.7,18.1 158.5,18.8 158.5,19.8L158.5,32.9ZM178.3,70C178,70.3 177.5,70.5 177.1,70.5C176.7,70.5 176.2,70.3 175.9,70L166.6,60.7C165.9,60 165.9,59 166.6,58.3C167.3,57.6 168.3,57.6 169,58.3L178.3,67.6C178.9,68.3 178.9,69.3 178.3,70ZM185.5,50.2L172.4,50.2C171.5,50.2 170.7,49.5 170.7,48.5C170.7,47.6 171.5,46.8 172.4,46.8L185.5,46.8C186.4,46.8 187.2,47.5 187.2,48.5C187.2,49.4 186.4,50.2 185.5,50.2Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
</vector>

View File

@ -0,0 +1,69 @@
<vector android:height="119.603935dp" android:viewportHeight="171"
android:viewportWidth="178" android:width="124.5dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#DCB784" android:fillType="nonZero"
android:pathData="M144.6,161.2L144.6,158.8C142.6,158.8 140.9,157.2 140.9,155.1C140.9,153.1 142.5,151.4 144.6,151.4L144.6,149C141.2,149 138.5,151.7 138.5,155.1C138.5,158.5 141.2,161.2 144.6,161.2Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#DCB784" android:fillType="nonZero"
android:pathData="M156.8,171C160.2,171 162.9,168.3 162.9,164.9C162.9,161.5 160.2,158.8 156.8,158.8L156.8,161.2C158.8,161.2 160.5,162.8 160.5,164.9C160.5,166.9 158.9,168.6 156.8,168.6L156.8,171Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#DCB784" android:fillType="nonZero"
android:pathData="M144.6,149h33v2.4h-33z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#DCB784" android:fillType="nonZero"
android:pathData="M16,168.6h140.8v2.4h-140.8z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#DCB784" android:fillType="nonZero"
android:pathData="M144.6,158.8h12.2v2.4h-12.2z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#FFE5C1" android:fillType="nonZero"
android:pathData="M43.3,15.1L43.3,23.4C43.3,24.5 44.2,25.3 45.2,25.3C46.3,25.3 47.1,24.4 47.1,23.4L47.1,15.1L57,6.6C57.8,5.9 57.9,4.7 57.2,3.9C56.5,3.1 55.3,3 54.5,3.7L47.1,10L47.1,1.9C47.1,0.8 46.2,-0 45.2,-0C44.1,-0 43.3,0.9 43.3,1.9L43.3,10L35.9,3.7C35.1,3 33.9,3.1 33.2,3.9C32.5,4.7 32.6,5.9 33.4,6.6L43.3,15.1Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#FFE5C1" android:fillType="nonZero"
android:pathData="M9.7,26.4C9.7,26.4 9.8,26.4 9.9,26.4L22.9,25.4L28.8,31.3C29.2,31.7 29.7,31.9 30.2,31.9C30.7,31.9 31.2,31.7 31.6,31.3C32.4,30.5 32.4,29.3 31.6,28.6L25.7,22.7L26.7,9.7C26.8,8.6 26,7.7 24.9,7.6C23.8,7.5 22.9,8.3 22.8,9.4L22,19.1L16.3,13.4C15.5,12.6 14.3,12.6 13.6,13.4C12.8,14.2 12.8,15.4 13.6,16.1L19.3,21.8L9.6,22.6C8.5,22.7 7.8,23.6 7.8,24.7C7.8,25.7 8.7,26.4 9.7,26.4Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#FFE5C1" android:fillType="nonZero"
android:pathData="M24,47.2C25.1,47.2 25.9,46.3 25.9,45.3C25.9,44.2 25,43.4 24,43.4L15.7,43.4L7.2,33.5C6.5,32.7 5.3,32.6 4.5,33.3C3.7,34 3.6,35.2 4.3,36L10.6,43.4L2.5,43.4C1.4,43.4 0.6,44.3 0.6,45.3C0.6,46.4 1.5,47.2 2.5,47.2L10.6,47.2L4.3,54.6C3.6,55.4 3.7,56.6 4.5,57.3C4.9,57.6 5.3,57.8 5.7,57.8C6.2,57.8 6.8,57.6 7.2,57.1L15.7,47.2L24,47.2Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#FFE5C1" android:fillType="nonZero"
android:pathData="M29.2,59.2L23.3,65.1L10.3,64.1C9.2,64 8.3,64.8 8.2,65.9C8.1,67 8.9,67.9 10,68L19.7,68.8L14,74.5C13.2,75.3 13.2,76.5 14,77.2C14.4,77.6 14.9,77.8 15.4,77.8C15.9,77.8 16.4,77.6 16.8,77.2L22.5,71.5L23.3,81.2C23.4,82.2 24.2,83 25.2,83C25.2,83 25.3,83 25.4,83C26.5,82.9 27.2,82 27.2,80.9L26.2,67.9L32.1,62C32.9,61.2 32.9,60 32.1,59.3C31.1,58.4 29.9,58.4 29.2,59.2Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#FFE5C1" android:fillType="nonZero"
android:pathData="M47.8,74.9L47.8,66.6C47.8,65.5 46.9,64.7 45.9,64.7C44.8,64.7 44,65.6 44,66.6L44,74.9L34.1,83.4C33.3,84.1 33.2,85.3 33.9,86.1C34.6,86.9 35.8,87 36.6,86.3L44,80L44,88.1C44,89.2 44.9,90 45.9,90C47,90 47.8,89.1 47.8,88.1L47.8,80L55.2,86.3C55.6,86.6 56,86.8 56.4,86.8C56.9,86.8 57.5,86.6 57.9,86.1C58.6,85.3 58.5,84.1 57.7,83.4L47.8,74.9Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#FFE5C1" android:fillType="nonZero"
android:pathData="M81.3,63.6L68.3,64.6L62.4,58.7C61.7,57.9 60.4,57.9 59.7,58.7C58.9,59.5 58.9,60.7 59.7,61.4L65.6,67.3L64.6,80.3C64.5,81.4 65.3,82.3 66.4,82.4C66.5,82.4 66.5,82.4 66.6,82.4C67.6,82.4 68.4,81.6 68.5,80.6L69.3,70.9L75,76.6C75.4,77 75.9,77.2 76.4,77.2C76.9,77.2 77.4,77 77.8,76.6C78.6,75.8 78.6,74.6 77.8,73.9L72.1,68.2L81.8,67.4C82.9,67.3 83.6,66.4 83.6,65.3C83.3,64.3 82.4,63.5 81.3,63.6Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#FFE5C1" android:fillType="nonZero"
android:pathData="M88.7,42.8L80.6,42.8L86.9,35.4C87.6,34.6 87.5,33.4 86.7,32.7C85.9,32 84.7,32.1 84,32.9L75.5,42.8L67.2,42.8C66.1,42.8 65.3,43.7 65.3,44.7C65.3,45.8 66.2,46.6 67.2,46.6L75.5,46.6L84,56.5C84.4,56.9 84.9,57.2 85.5,57.2C85.9,57.2 86.4,57 86.7,56.7C87.5,56 87.6,54.8 86.9,54L80.6,46.6L88.7,46.6C89.8,46.6 90.6,45.7 90.6,44.7C90.6,43.6 89.7,42.8 88.7,42.8Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#FFE5C1" android:fillType="nonZero"
android:pathData="M60.6,31.4C61.1,31.4 61.6,31.2 62,30.8L67.9,24.9L80.9,25.9C81,25.9 81,25.9 81.1,25.9C82.1,25.9 82.9,25.1 83,24.1C83.1,23 82.3,22.1 81.2,22L71.5,21.2L77.2,15.5C78,14.7 78,13.5 77.2,12.8C76.5,12 75.2,12 74.5,12.8L68.8,18.5L68,9C67.9,7.9 67,7.2 65.9,7.2C64.8,7.3 64.1,8.2 64.1,9.3L65.1,22.3L59.2,28.2C58.4,29 58.4,30.2 59.2,30.9C59.7,31.2 60.2,31.4 60.6,31.4Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#FFE5C1" android:fillType="nonZero"
android:pathData="M26.8,34.7L22.1,32.6C21.1,32.2 20,32.6 19.6,33.6C19.2,34.6 19.6,35.7 20.6,36.1L25.3,38.2C25.6,38.3 25.8,38.4 26.1,38.4C26.8,38.4 27.5,38 27.9,37.3C28.2,36.3 27.8,35.2 26.8,34.7Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#FFE5C1" android:fillType="nonZero"
android:pathData="M25.1,51L20.3,52.8C19.3,53.2 18.8,54.3 19.2,55.3C19.5,56.1 20.2,56.5 21,56.5C21.2,56.5 21.5,56.5 21.7,56.4L26.5,54.6C27.5,54.2 28,53.1 27.6,52.1C27.2,51.1 26.1,50.6 25.1,51Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#FFE5C1" android:fillType="nonZero"
android:pathData="M34.2,71C34.5,71.1 34.7,71.2 35,71.2C35.7,71.2 36.4,70.8 36.8,70.1L38.9,65.4C39.3,64.4 38.9,63.3 37.9,62.9C36.9,62.5 35.8,62.9 35.4,63.9L33.3,68.6C32.8,69.4 33.2,70.5 34.2,71Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#FFE5C1" android:fillType="nonZero"
android:pathData="M53.4,70.3C53.7,71.1 54.4,71.5 55.2,71.5C55.4,71.5 55.7,71.5 55.9,71.4C56.9,71 57.4,69.9 57,68.9L55.2,64.1C54.8,63.1 53.7,62.6 52.7,63C51.7,63.4 51.2,64.5 51.6,65.5L53.4,70.3Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#FFE5C1" android:fillType="nonZero"
android:pathData="M63.4,52.7C63,53.7 63.4,54.8 64.4,55.2L69.1,57.3C69.4,57.4 69.6,57.5 69.9,57.5C70.6,57.5 71.3,57.1 71.7,56.4C72.1,55.4 71.7,54.3 70.7,53.9L66,51.8C64.9,51.3 63.8,51.8 63.4,52.7Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#FFE5C1" android:fillType="nonZero"
android:pathData="M66.1,39L70.9,37.2C71.9,36.8 72.4,35.7 72,34.7C71.6,33.7 70.5,33.2 69.5,33.6L64.7,35.4C63.7,35.8 63.2,36.9 63.6,37.9C63.9,38.7 64.6,39.1 65.4,39.1C65.6,39.1 65.9,39.1 66.1,39Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#FFE5C1" android:fillType="nonZero"
android:pathData="M57,19C56,18.6 54.9,19 54.5,20L52.4,24.7C52,25.7 52.4,26.8 53.4,27.2C53.7,27.3 53.9,27.4 54.2,27.4C54.9,27.4 55.6,27 56,26.3L58.1,21.6C58.4,20.6 57.9,19.5 57,19Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#FFE5C1" android:fillType="nonZero"
android:pathData="M39.6,24.5L37.8,19.7C37.4,18.7 36.3,18.2 35.3,18.6C34.3,19 33.8,20.1 34.2,21.1L36,25.9C36.3,26.7 37,27.1 37.8,27.1C38,27.1 38.3,27.1 38.5,27C39.5,26.6 40,25.5 39.6,24.5Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#FFE5C1" android:fillType="nonZero"
android:pathData="M45.8,54C50.6,54 54.4,50.1 54.4,45.4C54.4,40.6 50.5,36.8 45.8,36.8C41,36.8 37.2,40.7 37.2,45.4C37.2,50.1 41.1,54 45.8,54ZM45.8,40.5C48.4,40.5 50.6,42.7 50.6,45.3C50.6,47.9 48.4,50.1 45.8,50.1C43.2,50.1 41,47.9 41,45.3C41,42.7 43.2,40.5 45.8,40.5Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
</vector>

View File

@ -0,0 +1,120 @@
<vector android:height="233.62234dp" android:viewportHeight="334"
android:viewportWidth="188" android:width="131.5dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#DBB683" android:fillType="nonZero"
android:pathData="M97.5,112.7L43.7,112.7C41.8,112.7 40.2,111.1 40.2,109.2L40.2,109.2C40.2,107.3 41.8,105.7 43.7,105.7L97.5,105.7C99.4,105.7 101,107.3 101,109.2L101,109.2C101,111.1 99.5,112.7 97.5,112.7Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#DBB683" android:fillType="nonZero"
android:pathData="M97.5,235.6L43.7,235.6C41.8,235.6 40.2,234 40.2,232.1L40.2,232.1C40.2,230.2 41.8,228.6 43.7,228.6L97.5,228.6C99.4,228.6 101,230.2 101,232.1L101,232.1C101,234 99.5,235.6 97.5,235.6Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#FF2E19" android:fillType="nonZero"
android:pathData="M28.3,169.7C28.3,192.4 35.6,213 47.4,225L44.7,225C18.6,216.3 0.2,194.8 0.2,169.8C0.2,145.2 17.9,124.1 43.2,115.1L46.9,115.1C35.4,127.1 28.3,147.4 28.3,169.7Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#FF2E19" android:fillType="nonZero"
android:pathData="M68.2,115L68.2,225L53.7,225C40.9,214.6 32.5,193.1 32.5,169.7C32.5,146.5 40.4,125.6 53,115L68.2,115Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#FF2E19" android:fillType="nonZero"
android:pathData="M108.8,169.7C108.8,193 100.4,214.5 87.6,225L73.1,225L73.1,115L88.3,115C100.9,125.6 108.8,146.5 108.8,169.7Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#FF2E19" android:fillType="nonZero"
android:pathData="M141,169.7C141,194.8 122.6,216.2 96.5,224.9L93.8,224.9C105.6,212.9 112.9,192.4 112.9,169.6C112.9,147.4 105.8,127 94.3,114.9L98,114.9C123.3,124 141,145.1 141,169.7Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#DBB683" android:fillType="nonZero"
android:pathData="M44.5,263.8L44.5,263.8C44,263.8 43.6,263.4 43.6,262.9L43.6,240.9C43.6,240.4 44,240 44.5,240L44.5,240C45,240 45.4,240.4 45.4,240.9L45.4,262.9C45.4,263.4 45,263.8 44.5,263.8Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#DBB683" android:fillType="nonZero"
android:pathData="M48.4,263.8L48.4,263.8C47.9,263.8 47.5,263.4 47.5,262.9L47.5,240.9C47.5,240.4 47.9,240 48.4,240L48.4,240C48.9,240 49.3,240.4 49.3,240.9L49.3,262.9C49.3,263.4 48.9,263.8 48.4,263.8Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#DBB683" android:fillType="nonZero"
android:pathData="M52.2,263.8L52.2,263.8C51.7,263.8 51.3,263.4 51.3,262.9L51.3,240.9C51.3,240.4 51.7,240 52.2,240L52.2,240C52.7,240 53.1,240.4 53.1,240.9L53.1,262.9C53.1,263.4 52.7,263.8 52.2,263.8Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#DBB683" android:fillType="nonZero"
android:pathData="M56.1,263.8L56.1,263.8C55.6,263.8 55.2,263.4 55.2,262.9L55.2,240.9C55.2,240.4 55.6,240 56.1,240L56.1,240C56.6,240 57,240.4 57,240.9L57,262.9C57,263.4 56.6,263.8 56.1,263.8Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#DBB683" android:fillType="nonZero"
android:pathData="M60,263.8L60,263.8C59.5,263.8 59.1,263.4 59.1,262.9L59.1,240.9C59.1,240.4 59.5,240 60,240L60,240C60.5,240 60.9,240.4 60.9,240.9L60.9,262.9C60.9,263.4 60.5,263.8 60,263.8Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#DBB683" android:fillType="nonZero"
android:pathData="M63.8,263.8L63.8,263.8C63.3,263.8 62.9,263.4 62.9,262.9L62.9,240.9C62.9,240.4 63.3,240 63.8,240L63.8,240C64.3,240 64.7,240.4 64.7,240.9L64.7,262.9C64.8,263.4 64.3,263.8 63.8,263.8Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#DBB683" android:fillType="nonZero"
android:pathData="M67.7,263.8L67.7,263.8C67.2,263.8 66.8,263.4 66.8,262.9L66.8,240.9C66.8,240.4 67.2,240 67.7,240L67.7,240C68.2,240 68.6,240.4 68.6,240.9L68.6,262.9C68.6,263.4 68.2,263.8 67.7,263.8Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#DBB683" android:fillType="nonZero"
android:pathData="M71.6,263.8L71.6,263.8C71.1,263.8 70.7,263.4 70.7,262.9L70.7,240.9C70.7,240.4 71.1,240 71.6,240L71.6,240C72.1,240 72.5,240.4 72.5,240.9L72.5,262.9C72.5,263.4 72.1,263.8 71.6,263.8Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#DBB683" android:fillType="nonZero"
android:pathData="M75.5,263.8L75.5,263.8C75,263.8 74.6,263.4 74.6,262.9L74.6,240.9C74.6,240.4 75,240 75.5,240L75.5,240C76,240 76.4,240.4 76.4,240.9L76.4,262.9C76.4,263.4 76,263.8 75.5,263.8Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#DBB683" android:fillType="nonZero"
android:pathData="M79.3,263.8L79.3,263.8C78.8,263.8 78.4,263.4 78.4,262.9L78.4,240.9C78.4,240.4 78.8,240 79.3,240L79.3,240C79.8,240 80.2,240.4 80.2,240.9L80.2,262.9C80.2,263.4 79.8,263.8 79.3,263.8Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#DBB683" android:fillType="nonZero"
android:pathData="M83.2,263.8L83.2,263.8C82.7,263.8 82.3,263.4 82.3,262.9L82.3,240.9C82.3,240.4 82.7,240 83.2,240L83.2,240C83.7,240 84.1,240.4 84.1,240.9L84.1,262.9C84.1,263.4 83.7,263.8 83.2,263.8Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#DBB683" android:fillType="nonZero"
android:pathData="M87.1,263.8L87.1,263.8C86.6,263.8 86.2,263.4 86.2,262.9L86.2,240.9C86.2,240.4 86.6,240 87.1,240L87.1,240C87.6,240 88,240.4 88,240.9L88,262.9C88,263.4 87.6,263.8 87.1,263.8Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#DBB683" android:fillType="nonZero"
android:pathData="M90.9,263.8L90.9,263.8C90.4,263.8 90,263.4 90,262.9L90,240.9C90,240.4 90.4,240 90.9,240L90.9,240C91.4,240 91.8,240.4 91.8,240.9L91.8,262.9C91.8,263.4 91.4,263.8 90.9,263.8Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#DBB683" android:fillType="nonZero"
android:pathData="M94.8,263.8L94.8,263.8C94.3,263.8 93.9,263.4 93.9,262.9L93.9,240.9C93.9,240.4 94.3,240 94.8,240L94.8,240C95.3,240 95.7,240.4 95.7,240.9L95.7,262.9C95.7,263.4 95.3,263.8 94.8,263.8Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#DBB683" android:fillType="nonZero"
android:pathData="M98.7,263.8L98.7,263.8C98.2,263.8 97.8,263.4 97.8,262.9L97.8,240.9C97.8,240.4 98.2,240 98.7,240L98.7,240C99.2,240 99.6,240.4 99.6,240.9L99.6,262.9C99.6,263.4 99.2,263.8 98.7,263.8Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#DBB683" android:fillType="nonZero"
android:pathData="M68.6,0h4.5v109.2h-4.5z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#FFE5C1" android:fillType="nonZero"
android:pathData="M162.9,294.9L162.9,299.2C162.9,299.8 163.3,300.2 163.9,300.2C164.5,300.2 164.9,299.8 164.9,299.2L164.9,294.9L170.1,290.5C170.5,290.1 170.6,289.5 170.2,289.1C169.8,288.7 169.2,288.6 168.8,289L164.9,292.3L164.9,288C164.9,287.4 164.5,287 163.9,287C163.3,287 162.9,287.4 162.9,288L162.9,292.2L159,288.9C158.6,288.5 157.9,288.6 157.6,289C157.2,289.4 157.3,290.1 157.7,290.4L162.9,294.9Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#FFE5C1" android:fillType="nonZero"
android:pathData="M145.3,300.8C145.4,300.8 145.4,300.8 145.3,300.8L152.2,300.3L155.3,303.4C155.5,303.6 155.8,303.7 156,303.7C156.2,303.7 156.5,303.6 156.7,303.4C157.1,303 157.1,302.4 156.7,302L153.6,298.9L154.1,292.1C154.1,291.5 153.7,291.1 153.2,291C152.6,291 152.2,291.4 152.1,291.9L151.7,297L148.7,294C148.3,293.6 147.7,293.6 147.3,294C146.9,294.4 146.9,295 147.3,295.4L150.3,298.4L145.2,298.8C144.6,298.8 144.2,299.3 144.3,299.9C144.4,300.4 144.8,300.8 145.3,300.8Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#FFE5C1" android:fillType="nonZero"
android:pathData="M152.8,311.7C153.4,311.7 153.8,311.3 153.8,310.7C153.8,310.1 153.4,309.7 152.8,309.7L148.5,309.7L144.1,304.5C143.7,304.1 143.1,304 142.7,304.4C142.3,304.8 142.2,305.4 142.6,305.8L145.9,309.7L141.7,309.7C141.1,309.7 140.7,310.1 140.7,310.7C140.7,311.3 141.1,311.7 141.7,311.7L145.9,311.7L142.6,315.6C142.2,316 142.3,316.7 142.7,317C142.9,317.2 143.1,317.2 143.4,317.2C143.7,317.2 144,317.1 144.2,316.8L148.6,311.6L152.8,311.6L152.8,311.7Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#FFE5C1" android:fillType="nonZero"
android:pathData="M155.5,317.9L152.4,321L145.6,320.5C145,320.5 144.6,320.9 144.5,321.4C144.5,322 144.9,322.4 145.4,322.5L150.5,322.9L147.5,325.9C147.1,326.3 147.1,326.9 147.5,327.3C147.7,327.5 148,327.6 148.2,327.6C148.5,327.6 148.7,327.5 148.9,327.3L151.9,324.3L152.3,329.4C152.3,329.9 152.8,330.3 153.3,330.3C153.3,330.3 153.4,330.3 153.4,330.3C154,330.3 154.4,329.8 154.3,329.2L153.8,322.4L156.9,319.3C157.3,318.9 157.3,318.3 156.9,317.9C156.5,317.5 155.9,317.5 155.5,317.9Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#FFE5C1" android:fillType="nonZero"
android:pathData="M165.3,326.1L165.3,321.8C165.3,321.2 164.9,320.8 164.3,320.8C163.7,320.8 163.3,321.2 163.3,321.8L163.3,326.1L158.1,330.5C157.7,330.9 157.6,331.5 158,331.9C158.4,332.3 159,332.4 159.4,332L163.3,328.7L163.3,332.9C163.3,333.5 163.7,333.9 164.3,333.9C164.9,333.9 165.3,333.5 165.3,332.9L165.3,328.7L169.2,332C169.4,332.2 169.6,332.2 169.9,332.2C170.2,332.2 170.5,332.1 170.7,331.8C171.1,331.4 171,330.7 170.6,330.4L165.3,326.1Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#FFE5C1" android:fillType="nonZero"
android:pathData="M182.8,320.2L176,320.7L172.9,317.6C172.5,317.2 171.9,317.2 171.5,317.6C171.1,318 171.1,318.6 171.5,319L174.6,322.1L174.1,328.9C174.1,329.5 174.5,329.9 175,330C175,330 175.1,330 175.1,330C175.6,330 176.1,329.6 176.1,329.1L176.5,324L179.5,327C179.7,327.2 180,327.3 180.2,327.3C180.5,327.3 180.7,327.2 180.9,327C181.3,326.6 181.3,326 180.9,325.6L177.9,322.6L183,322.2C183.6,322.2 184,321.7 183.9,321.1C183.8,320.6 183.3,320.2 182.8,320.2Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#FFE5C1" android:fillType="nonZero"
android:pathData="M186.6,309.3L182.4,309.3L185.7,305.4C186.1,305 186,304.3 185.6,304C185.2,303.6 184.5,303.7 184.2,304.1L179.8,309.3L175.5,309.3C174.9,309.3 174.5,309.7 174.5,310.3C174.5,310.9 174.9,311.3 175.5,311.3L179.8,311.3L184.2,316.5C184.4,316.7 184.7,316.9 185,316.9C185.2,316.9 185.5,316.8 185.7,316.7C186.1,316.3 186.2,315.7 185.8,315.3L182.5,311.4L186.7,311.4C187.3,311.4 187.7,311 187.7,310.4C187.6,309.8 187.1,309.3 186.6,309.3Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#FFE5C1" android:fillType="nonZero"
android:pathData="M171.9,303.4C172.2,303.4 172.4,303.3 172.6,303.1L175.7,300L182.5,300.5C182.5,300.5 182.6,300.5 182.6,300.5C183.1,300.5 183.6,300.1 183.6,299.6C183.6,299 183.2,298.6 182.7,298.5L177.6,298.1L180.6,295.1C181,294.7 181,294.1 180.6,293.7C180.2,293.3 179.6,293.3 179.2,293.7L176.2,296.7L175.8,291.6C175.8,291 175.3,290.6 174.7,290.7C174.1,290.7 173.7,291.2 173.8,291.8L174.3,298.6L171.2,301.7C170.8,302.1 170.8,302.7 171.2,303.1C171.4,303.3 171.7,303.4 171.9,303.4Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#FFE5C1" android:fillType="nonZero"
android:pathData="M154.3,305.1L151.9,304C151.4,303.8 150.8,304 150.6,304.5C150.4,305 150.6,305.6 151.1,305.8L153.5,306.9C153.6,307 153.8,307 153.9,307C154.3,307 154.7,306.8 154.8,306.4C155,306 154.8,305.4 154.3,305.1Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#FFE5C1" android:fillType="nonZero"
android:pathData="M153.4,313.6L150.9,314.6C150.4,314.8 150.1,315.4 150.3,315.9C150.5,316.3 150.8,316.5 151.2,316.5C151.3,316.5 151.4,316.5 151.6,316.4L154.1,315.4C154.6,315.2 154.9,314.6 154.7,314.1C154.5,313.7 153.9,313.4 153.4,313.6Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#FFE5C1" android:fillType="nonZero"
android:pathData="M158.1,324.1C158.2,324.2 158.4,324.2 158.5,324.2C158.9,324.2 159.3,324 159.4,323.6L160.5,321.2C160.7,320.7 160.5,320.1 160,319.9C159.5,319.7 158.9,319.9 158.7,320.4L157.6,322.8C157.4,323.2 157.6,323.8 158.1,324.1Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#FFE5C1" android:fillType="nonZero"
android:pathData="M168.2,323.7C168.4,324.1 168.7,324.3 169.1,324.3C169.2,324.3 169.3,324.3 169.5,324.2C170,324 170.3,323.4 170.1,322.9L169.1,320.4C168.9,319.9 168.3,319.6 167.8,319.8C167.3,320 167,320.6 167.2,321.1L168.2,323.7Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#FFE5C1" android:fillType="nonZero"
android:pathData="M173.4,314.5C173.2,315 173.4,315.6 173.9,315.8L176.3,316.9C176.4,317 176.6,317 176.7,317C177.1,317 177.5,316.8 177.6,316.4C177.8,315.9 177.6,315.3 177.1,315.1L174.7,314C174.2,313.8 173.6,314 173.4,314.5Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#FFE5C1" android:fillType="nonZero"
android:pathData="M174.8,307.4L177.3,306.4C177.8,306.2 178.1,305.6 177.9,305.1C177.7,304.6 177.1,304.3 176.6,304.5L174.1,305.5C173.6,305.7 173.3,306.3 173.5,306.8C173.7,307.2 174,307.4 174.4,307.4C174.6,307.4 174.7,307.4 174.8,307.4Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#FFE5C1" android:fillType="nonZero"
android:pathData="M170,296.9C169.5,296.7 168.9,296.9 168.7,297.4L167.6,299.8C167.4,300.3 167.6,300.9 168.1,301.1C168.2,301.2 168.4,301.2 168.5,301.2C168.9,301.2 169.3,301 169.4,300.6L170.5,298.2C170.8,297.8 170.5,297.2 170,296.9Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#FFE5C1" android:fillType="nonZero"
android:pathData="M161,299.8L160,297.3C159.8,296.8 159.2,296.5 158.7,296.7C158.2,296.9 157.9,297.5 158.1,298L159.1,300.5C159.3,300.9 159.6,301.1 160,301.1C160.1,301.1 160.2,301.1 160.4,301C160.9,300.9 161.1,300.3 161,299.8Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#FFE5C1" android:fillType="nonZero"
android:pathData="M164.2,315.2C166.7,315.2 168.7,313.2 168.7,310.7C168.7,308.2 166.7,306.2 164.2,306.2C161.7,306.2 159.7,308.2 159.7,310.7C159.7,313.2 161.7,315.2 164.2,315.2ZM164.2,308.2C165.6,308.2 166.7,309.3 166.7,310.7C166.7,312.1 165.6,313.2 164.2,313.2C162.8,313.2 161.7,312.1 161.7,310.7C161.7,309.3 162.8,308.2 164.2,308.2Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
</vector>

View File

@ -0,0 +1,5 @@
<vector android:height="29.288136dp" android:viewportHeight="54"
android:viewportWidth="59" android:width="32dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#13bc79" android:pathData="M43.83,2.72C46.37,2.4 48.98,1.82 51.49,2.62C51.6,6.57 51.64,10.53 51.47,14.48C50.69,14.37 49.13,14.14 48.35,14.02C48.33,11.19 48.31,8.36 48.29,5.53C37.42,6.87 26.61,8.76 15.7,9.67C11.67,9.12 7.65,8.47 3.57,8.34C16.99,6.44 30.41,4.61 43.83,2.72Z"/>
<path android:fillColor="#2185e2" android:pathData="M2.23,11.98C2.21,10.69 2.15,8.97 3.57,8.34C7.65,8.47 11.67,9.12 15.7,9.67C26.54,11.41 37.44,12.8 48.35,14.02C49.13,14.14 50.69,14.37 51.47,14.48C52.48,14.79 53.35,15.42 54.29,15.89C54.28,26.32 54.44,36.77 54.23,47.2C53.62,49.46 51.01,48.77 49.3,48.65C34.49,46.59 19.64,44.78 4.83,42.72C2.88,42.81 2.09,40.68 2.27,39.05C2.24,30.03 2.33,21 2.23,11.98M5.51,12.05C5.49,21.17 5.49,30.29 5.52,39.41C20.62,41.61 35.78,43.37 50.9,45.5C50.91,36.26 50.97,27.03 50.86,17.79C35.72,16.07 20.67,13.63 5.51,12.05Z"/>
</vector>

View File

@ -0,0 +1,4 @@
<vector android:height="28.8dp" android:viewportHeight="54"
android:viewportWidth="60" android:width="32dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#f2a24d" android:pathData="M2.76,2.83C4.96,-0.06 9.29,1.22 11.58,3.35C18.82,9.36 23.4,17.78 28.48,25.54C28.73,25.55 29.24,25.56 29.49,25.57C34.74,17.69 39.31,8.92 46.92,3.01C49.1,1.02 53.19,0.21 55.22,2.8C58.21,6.11 57.8,10.92 57.67,15.05C57.18,25.33 54.75,35.47 50.85,44.98C49.66,47.88 47.88,50.49 45.72,52.75C41.91,53.47 39.4,50.24 37.18,47.72C34.09,43.93 31.81,39.58 29.43,35.34C29.22,35.36 28.8,35.4 28.59,35.42C25.12,41.17 22.1,47.53 16.73,51.8C15.54,52.94 13.78,52.57 12.3,52.8C7.44,48.07 5.81,41.34 3.69,35.15C1.73,28.31 0.26,21.2 0.88,14.05C1.27,10.32 -0.35,5.76 2.76,2.83M5.19,5.12C4.27,7.97 3.5,10.95 3.87,13.97C4.78,24.81 7.34,35.5 11.32,45.62C12.11,46.89 12.64,49.43 14.64,48.68C18.9,45.11 21.57,40.05 24.37,35.34C25.46,33.22 27.47,30.73 25.64,28.4C21.89,21.99 17.83,15.7 13.04,10.01C10.96,7.71 8.62,4.89 5.19,5.12M46.47,8.36C41.38,13.78 37.48,20.16 33.41,26.35C32.46,28.08 30.55,30.05 31.74,32.14C34.16,36.65 36.95,40.99 39.92,45.16C41.26,46.56 42.45,48.94 44.69,48.73C46.1,47.35 46.77,45.44 47.48,43.65C49.8,36.87 52.05,30.02 53.02,22.89C53.65,17 55.33,10.84 52.82,5.15C50.19,4.84 48.15,6.59 46.47,8.36Z"/>
</vector>

View File

@ -0,0 +1,6 @@
<vector android:height="30dp" android:viewportHeight="186"
android:viewportWidth="199" android:width="32.096775dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#000000" android:fillType="nonZero"
android:pathData="M99.507,6C150.849,6 193,41.025 193,84.465C193,127.818 150.822,162.824 99.5,162.824C94.264,162.824 89.181,162.458 84.319,161.73C83.113,161.583 81.889,161.812 80.839,162.383L52.386,178.926C50.048,180.287 47.101,180.359 44.69,179.115C42.278,177.871 40.783,175.507 40.784,172.941L40.784,148.021C40.818,146.415 40.054,144.883 38.714,143.87C17.969,128.98 6,107.266 6,84.359C6,41.007 48.178,6 99.507,6Z"
android:strokeColor="#000000" android:strokeWidth="12"/>
</vector>

View File

@ -0,0 +1,6 @@
<vector android:height="30dp" android:viewportHeight="186"
android:viewportWidth="199" android:width="32.096775dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#00000000" android:fillType="nonZero"
android:pathData="M99.507,6C150.849,6 193,41.025 193,84.465C193,127.818 150.822,162.824 99.5,162.824C94.264,162.824 89.181,162.458 84.319,161.73C83.113,161.583 81.889,161.812 80.839,162.383L52.386,178.926C50.048,180.287 47.101,180.359 44.69,179.115C42.278,177.871 40.783,175.507 40.784,172.941L40.784,148.021C40.818,146.415 40.054,144.883 38.714,143.87C17.969,128.98 6,107.266 6,84.359C6,41.007 48.178,6 99.507,6Z"
android:strokeColor="#000000" android:strokeWidth="12"/>
</vector>

View File

@ -0,0 +1,12 @@
<vector android:height="32dp" android:viewportHeight="62"
android:viewportWidth="56" android:width="28.903225dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#2A89E5" android:fillType="nonZero"
android:pathData="M25.04,0.82C27.11,-0.41 29.77,-0.12 31.69,1.25C39.09,5.68 46.68,9.78 53.94,14.41C52.26,14.1 50.9,15.04 49.52,15.83C42.32,11.76 35.24,7.43 28.01,3.39C20.73,7.45 13.55,11.7 6.39,15.98C13.45,20.28 20.77,24.13 27.78,28.51C27.76,29 27.73,29.98 27.71,30.48C27.35,30.75 26.61,31.31 26.25,31.59C18.81,27.54 11.54,23.21 4.23,18.93C2.97,18.41 0.85,17.86 1.32,15.99C2.06,14.91 2.73,13.68 3.98,13.12C10.98,8.99 18.01,4.91 25.04,0.82Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#E9585B" android:fillType="nonZero"
android:pathData="M49.52,15.83C50.9,15.04 52.26,14.1 53.94,14.41C54.76,15.77 55.16,17.38 55.12,18.96C55.1,26.67 55.11,34.37 55.11,42.07C55.12,44.64 53.96,47.39 51.47,48.45C44.1,52.52 37.04,57.27 29.52,60.95C29.76,59.49 29.99,58.03 30.34,56.6C37.23,52.23 44.7,48.67 51.33,43.95C51.73,35.78 51.36,27.58 51.52,19.4C44.08,23.17 36.97,27.57 29.81,31.84C29.29,31.5 28.24,30.82 27.71,30.48C27.73,29.98 27.76,29 27.78,28.51C35.08,24.4 42.48,20.34 49.52,15.83Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#F7C23E" android:fillType="nonZero"
android:pathData="M0.81,20.08C2.12,18.95 0.69,17.34 1.32,15.99C0.85,17.86 2.97,18.41 4.23,18.93C4.99,27.3 4.04,35.77 4.74,44.13C10.7,47.97 16.98,51.27 23.01,55C23.88,55.59 24.84,55.84 25.9,55.74C26.74,47.85 26.04,39.61 26.25,31.59C26.61,31.31 27.35,30.75 27.71,30.48C28.24,30.82 29.29,31.5 29.81,31.84C29.68,39.25 29.76,46.67 29.76,54.08C29.91,54.71 30.19,55.97 30.34,56.6C29.99,58.03 29.76,59.49 29.52,60.95L29.04,61.46C26.99,61.81 25.22,60.58 23.55,59.6C17.01,55.78 10.44,52 3.91,48.15C2.01,47.09 1.32,45.06 0.73,43.11C0.79,35.43 0.63,27.75 0.81,20.08Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
</vector>

View File

@ -0,0 +1,7 @@
<vector android:height="40dp" android:viewportHeight="833"
android:viewportWidth="833" android:width="40dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#ea9518" android:pathData="M130.75,0L702.18,0C735.9,1.94 768.72,16.54 792.48,40.58C816.48,64.32 831.03,97.09 833,130.76L833,702.22C831.21,732.09 819.67,761.31 800.19,784.06C776.02,812.86 739.76,830.89 702.24,833L130.81,833C97.12,831.05 64.31,816.48 40.56,792.46C16.54,768.72 1.97,735.93 0,702.24L0,130.79C2.1,93.28 20.11,57.01 48.9,32.85C71.65,13.35 100.87,1.8 130.75,0M388.35,175.22C383.6,177.56 378.14,176.3 373.07,177.14C359.91,178.73 345.99,180.12 334.58,187.49C324.76,193.38 315.56,200.51 308.18,209.31C299.16,219.77 293.03,232.51 289.51,245.81C284.38,265.05 284.14,285.14 284.05,304.9C283.27,308.57 283.25,312.34 283.94,316.02C285.34,324.55 282.97,333.28 284.96,341.74C286,346.64 286.47,351.66 287.92,356.47C289.81,362.51 290.55,368.83 292.19,374.95C293.31,381.09 294.76,387.36 298.46,392.54C308.67,407.85 321.79,421.23 330.17,437.75C336.59,450.7 340.67,465.4 338.48,479.92C336.51,491.14 328.67,500.31 319.6,506.75C307.37,515.47 293.23,520.93 279.27,526.22C258.61,533.93 237.4,540.5 217.82,550.81C200.66,559.69 185.28,572.63 175.07,589.17C170.57,596.84 165.93,604.95 165.4,614.04C164.61,626.14 170.81,638.44 181.04,644.96C186.92,648.87 194,650.67 201.02,650.66C278.35,650.7 355.69,650.65 433.02,650.68C441.54,651.34 446.66,640.05 443,633.17C434.39,618.03 428.56,601.28 426.11,584.03C420.97,549.03 429.67,512.14 450.4,483.42C454.9,477.39 458.8,470.46 459.37,462.82C461.39,448.91 467.53,435.87 475.62,424.49C483.99,412.12 494.01,400.97 502.78,388.9C506.95,381.16 508.56,372.39 510.9,364C512.35,356.64 512.88,349.12 513.86,341.69C515.21,331.84 513.75,321.93 514.39,312.05C514.63,309.36 513.86,306.77 513.53,304.14C512.99,274.85 507.51,245.36 495.58,218.51C492.31,210.68 486.22,204.44 479.29,199.73C465.59,187.23 447.58,181 429.77,177.1C423.93,175.62 417.86,175.85 411.98,174.64C406.35,173.98 400.68,174.95 395.04,174.62C392.8,174.64 390.41,174.11 388.35,175.22M559.09,460.15C528.15,461.4 498.31,477.4 480.08,502.42C469.01,517.35 462.11,535.31 460.3,553.8C458.28,573.58 462.22,593.9 471.35,611.56C479.5,627.44 491.86,641.1 506.77,650.91C522.5,661.3 541.09,667.12 559.9,667.93C578.84,668.56 597.97,663.99 614.49,654.67C631.43,645.14 645.64,630.81 654.97,613.75C672.11,582.96 671.81,543.4 654.19,512.88C644.31,495.38 629.21,480.9 611.38,471.65C595.34,463.38 577.12,459.33 559.09,460.15Z"/>
<path android:fillColor="#ea9518" android:pathData="M555.01,502.05C560.03,497.55 568.57,497.88 573.23,502.77C575.64,505.18 577.02,508.58 576.84,512.01C576.82,525.01 576.82,538 576.83,551C590.24,551.04 603.65,550.93 617.05,551.04C624.05,551.23 629.65,558.26 628.85,565.1C628.66,571.69 622.59,577.35 616.03,577.29C603,577.36 589.96,577.35 576.93,577.28C576.65,590.57 576.97,603.87 576.78,617.16C576.56,624.87 568.38,630.91 560.93,629.01C554.87,627.98 550.36,622.2 550.41,616.13C550.36,603.21 550.37,590.29 550.42,577.37C537.29,577.19 524.15,577.53 511.02,577.21C503.13,577.15 496.68,568.76 498.75,561.13C499.94,555.04 505.84,550.59 512,550.73C524.79,550.58 537.59,550.71 550.39,550.68C550.39,538.45 550.4,526.22 550.38,513.99C550.27,509.63 551.46,504.89 555.01,502.05Z"/>
<path android:fillColor="#ffffff" android:pathData="M388.35,175.22C390.41,174.11 392.8,174.64 395.04,174.62C400.68,174.95 406.35,173.98 411.98,174.64C417.86,175.85 423.93,175.62 429.77,177.1C447.58,181 465.59,187.23 479.29,199.73C486.22,204.44 492.31,210.68 495.58,218.51C507.51,245.36 512.99,274.85 513.53,304.14C513.86,306.77 514.63,309.36 514.39,312.05C513.75,321.93 515.21,331.84 513.86,341.69C512.88,349.12 512.35,356.64 510.9,364C508.56,372.39 506.95,381.16 502.78,388.9C494.01,400.97 483.99,412.12 475.62,424.49C467.53,435.87 461.39,448.91 459.37,462.82C458.8,470.46 454.9,477.39 450.4,483.42C429.67,512.14 420.97,549.03 426.11,584.03C428.56,601.28 434.39,618.03 443,633.17C446.66,640.05 441.54,651.34 433.02,650.68C355.69,650.65 278.35,650.7 201.02,650.66C194,650.67 186.92,648.87 181.04,644.96C170.81,638.44 164.61,626.14 165.4,614.04C165.93,604.95 170.57,596.84 175.07,589.17C185.28,572.63 200.66,559.69 217.82,550.81C237.4,540.5 258.61,533.93 279.27,526.22C293.23,520.93 307.37,515.47 319.6,506.75C328.67,500.31 336.51,491.14 338.48,479.92C340.67,465.4 336.59,450.7 330.17,437.75C321.79,421.23 308.67,407.85 298.46,392.54C294.76,387.36 293.31,381.09 292.19,374.95C290.55,368.83 289.81,362.51 287.92,356.47C286.47,351.66 286,346.64 284.96,341.74C282.97,333.28 285.34,324.55 283.94,316.02C283.25,312.34 283.27,308.57 284.05,304.9C284.14,285.14 284.38,265.05 289.51,245.81C293.03,232.51 299.16,219.77 308.18,209.31C315.56,200.51 324.76,193.38 334.58,187.49C345.99,180.12 359.91,178.73 373.07,177.14C378.14,176.3 383.6,177.56 388.35,175.22Z"/>
<path android:fillColor="#ffffff" android:pathData="M559.09,460.15C577.12,459.33 595.34,463.38 611.38,471.65C629.21,480.9 644.31,495.38 654.19,512.88C671.81,543.4 672.11,582.96 654.97,613.75C645.64,630.81 631.43,645.14 614.49,654.67C597.97,663.99 578.84,668.56 559.9,667.93C541.09,667.12 522.5,661.3 506.77,650.91C491.86,641.1 479.5,627.44 471.35,611.56C462.22,593.9 458.28,573.58 460.3,553.8C462.11,535.31 469.01,517.35 480.08,502.42C498.31,477.4 528.15,461.4 559.09,460.15M555.01,502.05C551.46,504.89 550.27,509.63 550.38,513.99C550.4,526.22 550.39,538.45 550.39,550.68C537.59,550.71 524.79,550.58 512,550.73C505.84,550.59 499.94,555.04 498.75,561.13C496.68,568.76 503.13,577.15 511.02,577.21C524.15,577.53 537.29,577.19 550.42,577.37C550.37,590.29 550.36,603.21 550.41,616.13C550.36,622.2 554.87,627.98 560.93,629.01C568.38,630.91 576.56,624.87 576.78,617.16C576.97,603.87 576.65,590.57 576.93,577.28C589.96,577.35 603,577.36 616.03,577.29C622.59,577.35 628.66,571.69 628.85,565.1C629.65,558.26 624.05,551.23 617.05,551.04C603.65,550.93 590.24,551.04 576.83,551C576.82,538 576.82,525.01 576.84,512.01C577.02,508.58 575.64,505.18 573.23,502.77C568.57,497.88 560.03,497.55 555.01,502.05Z"/>
</vector>

View File

@ -0,0 +1,7 @@
<vector android:height="40dp" android:viewportHeight="450"
android:viewportWidth="450" android:width="40dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#fa9d3b" android:pathData="M30.89,0L419,0C419,0.34 419,1.01 419,1.35C426.41,3.2 433.14,7.14 438.8,12.19C443.66,17.85 447.06,24.73 448.68,32C449.01,32 449.67,32 450,32L450,418.21C447.57,421.36 446.92,425.4 445.02,428.84C441.49,436.02 435.56,441.81 428.35,445.27C424.99,446.97 421.19,447.76 418.1,450L31.82,450C26.95,447.45 21.46,446.17 16.94,442.97C12.15,439.89 8.39,435.51 5.18,430.87C2.61,427.2 2.84,422.27 0.13,418.7C0.1,418.64 0.03,418.53 0,418.48L0,31C0.35,31 1.04,31 1.38,31C3.52,20.98 9.27,11.32 18.46,6.34C22.32,3.65 27.32,3.13 30.89,0M121.52,130.47C100.41,147.87 85.31,172.73 80.68,199.78C76.44,223.96 81.03,249.49 93.16,270.81C101.97,286.44 114.38,299.79 128.27,311.05C127.08,325.01 123.23,338.95 125.25,353.02C125.52,355.28 127.88,356.59 130,356.52C133.43,356.4 136.53,354.77 139.61,353.45C152.67,348.01 165.01,341.02 177.99,335.4C194.03,339.36 210.53,341.68 227.08,341.52C255.74,341.46 284.59,334.07 309.01,318.87C324.01,309.78 337.69,298.27 348.23,284.2C362.74,265.01 371.14,241.09 370.78,216.97C370.93,193.2 362.25,169.82 347.99,150.97C337.47,136.85 323.63,125.53 308.7,116.34C279.88,98.85 245.37,91.63 211.89,94.22C179.04,96.68 146.62,108.9 121.52,130.47Z"/>
<path android:fillColor="#fa9d3b" android:pathData="M216.44,138.55C232.61,134.03 251.55,143.63 256.45,159.91C259.86,173.58 259.76,188.41 254.74,201.68C251.93,209.03 246.94,215.22 243.23,222.09C241.57,225.31 241.08,230.27 244.45,232.56C260.94,244.55 281.42,249.31 298.04,261.08C304.28,265.54 304.87,274.02 304.05,281.01C303.74,284.95 299.37,286.89 295.93,287.32C278.95,288.25 261.96,287.26 244.97,287.5C214.32,287.8 183.65,288.08 153.01,287.15C147.83,287.16 145.39,281.48 145.48,277.02C145.53,271.21 146.99,264.52 152.11,261.05C168.62,249.19 189.11,244.54 205.54,232.57C208.3,230.87 208.02,227.15 207.42,224.4C204.77,215.24 196.73,208.75 194.4,199.44C190.64,185.89 189.45,170.91 194.56,157.54C198.11,148.04 206.75,141.08 216.44,138.55Z"/>
<path android:fillColor="#ffffff" android:pathData="M121.52,130.47C146.62,108.9 179.04,96.68 211.89,94.22C245.37,91.63 279.88,98.85 308.7,116.34C323.63,125.53 337.47,136.85 347.99,150.97C362.25,169.82 370.93,193.2 370.78,216.97C371.14,241.09 362.74,265.01 348.23,284.2C337.69,298.27 324.01,309.78 309.01,318.87C284.59,334.07 255.74,341.46 227.08,341.52C210.53,341.68 194.03,339.36 177.99,335.4C165.01,341.02 152.67,348.01 139.61,353.45C136.53,354.77 133.43,356.4 130,356.52C127.88,356.59 125.52,355.28 125.25,353.02C123.23,338.95 127.08,325.01 128.27,311.05C114.38,299.79 101.97,286.44 93.16,270.81C81.03,249.49 76.44,223.96 80.68,199.78C85.31,172.73 100.41,147.87 121.52,130.47M216.44,138.55C206.75,141.08 198.11,148.04 194.56,157.54C189.45,170.91 190.64,185.89 194.4,199.44C196.73,208.75 204.77,215.24 207.42,224.4C208.02,227.15 208.3,230.87 205.54,232.57C189.11,244.54 168.62,249.19 152.11,261.05C146.99,264.52 145.53,271.21 145.48,277.02C145.39,281.48 147.83,287.16 153.01,287.15C183.65,288.08 214.32,287.8 244.97,287.5C261.96,287.26 278.95,288.25 295.93,287.32C299.37,286.89 303.74,284.95 304.05,281.01C304.87,274.02 304.28,265.54 298.04,261.08C281.42,249.31 260.94,244.55 244.45,232.56C241.08,230.27 241.57,225.31 243.23,222.09C246.94,215.22 251.93,209.03 254.74,201.68C259.76,188.41 259.86,173.58 256.45,159.91C251.55,143.63 232.61,134.03 216.44,138.55Z"/>
<path android:fillColor="#ffffff" android:pathData="M0,418.48C0.03,418.53 0.1,418.64 0.13,418.7L0,418.63L0,418.48Z"/>
</vector>

View File

@ -0,0 +1,6 @@
<vector android:height="40dp" android:viewportHeight="1024"
android:viewportWidth="1024" android:width="40dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#09BB07" android:pathData="M870.4,1024H153.6a153.6,153.6 0,0 1,-153.6 -153.6V153.6a153.6,153.6 0,0 1,153.6 -153.6h716.8a153.6,153.6 0,0 1,153.6 153.6v716.8a153.6,153.6 0,0 1,-153.6 153.6"/>
<path android:fillColor="#FFFFFF" android:pathData="M779.01,597.68a7366.99,7366.99 0,0 0,-106.88 -75.62c-0.97,-1.64 -3.28,-8.81 -1.64,-23.14 0.31,-3.25 3.25,-6.84 8.14,-13.06 6.53,-7.81 14.98,-18.87 20.53,-35.17 5.22,-16.64 18.89,-88.06 -14.98,-135.27 -11.62,-16.08 -33.46,-34.94 -72.09,-38.14 42.65,67.84 28.13,160.1 18.43,191.05 -8.7,25.65 -21.58,43.01 -31.85,55.3 -1.36,1.77 -2.56,3.17 -3.48,4.4l-0.08,2.05c28.03,19.46 87.83,61.85 124.29,88.17a99.76,99.76 0,0 1,42.06 81.41v7.68c23.42,-5.94 40.91,-27.14 40.35,-52.28v-13.36c0,-17.61 -8.45,-33.89 -22.78,-44.03"/>
<path android:fillColor="#FFFFFF" android:pathData="M662.07,784.79H290.38a68.35,68.35 0,0 1,-68.25 -68.25v-16.87c0,-22.2 10.7,-42.75 28.8,-55.5 43.16,-30.44 117.17,-83.05 134.86,-95.39 1.2,-2.05 4.1,-11.08 2.05,-29.18 -0.44,-3.71 -4.1,-8.63 -10.29,-16.46 -7.81,-10.24 -18.92,-23.81 -25.86,-44.39 -7.01,-20.97 -24.29,-111 18.87,-170.62 16.05,-22.22 47.28,-48.9 105.27,-48.9 57.96,0 89.19,26.68 105.24,48.9 42.75,59.65 25.5,149.66 18.94,170.62 -7.01,20.56 -17.72,34.56 -25.93,44.39 -6.14,7.83 -9.86,12.34 -10.24,16.46 -2.1,18.1 0.77,27.14 2.05,29.18 17.66,11.93 92.06,64.56 134.81,95.39a67.66,67.66 0,0 1,28.8 55.5v16.9c0.82,37.38 -30.03,68.22 -67.43,68.22"/>
</vector>

View File

@ -0,0 +1,12 @@
<vector android:height="39.148937dp" android:viewportHeight="46"
android:viewportWidth="47" android:width="40dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FFFFFF" android:fillType="nonZero"
android:pathData="M19.82,14.88C21.51,11.95 26.24,12.26 27.64,15.31C28.99,18.61 27.42,22 25.86,24.9C27.86,28.36 35.18,27.63 34.31,33C27.14,33 19.98,33.07 12.81,32.95C13.09,31.63 12.65,29.8 14.27,29.23C16.73,27.86 19.36,26.77 21.69,25.17C19.65,22.27 17.78,18.27 19.82,14.88M23.25,27.31C22.38,28.1 21.96,30.19 23.32,30.72C25.39,31.05 25.01,27.08 23.25,27.31Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#2781D7" android:fillType="nonZero"
android:pathData="M4.39,0.59C16.23,0.05 28.14,0.53 40.01,0.35C42.87,-0.05 46.45,1.69 46.06,5.03C46.12,17.02 46.13,29.02 46.06,41.02C46.33,43.72 43.64,45.7 41.12,45.5C29.4,45.54 17.67,45.56 5.95,45.49C3.46,45.69 0.98,43.67 1.03,41.1C0.93,29.4 1.05,17.69 0.98,5.99C0.69,3.68 1.99,1.1 4.39,0.59M19.82,14.88C17.78,18.27 19.65,22.27 21.69,25.17C19.36,26.77 16.73,27.86 14.27,29.23C12.65,29.8 13.09,31.63 12.81,32.95C19.98,33.07 27.14,33 34.31,33C35.18,27.63 27.86,28.36 25.86,24.9C27.42,22 28.99,18.61 27.64,15.31C26.24,12.26 21.51,11.95 19.82,14.88Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#2781D7" android:fillType="nonZero"
android:pathData="M23.25,27.31C25.01,27.08 25.39,31.05 23.32,30.72C21.96,30.19 22.38,28.1 23.25,27.31Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
</vector>

View File

@ -0,0 +1,12 @@
<vector android:height="40dp" android:viewportHeight="122"
android:viewportWidth="122" android:width="40dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FFFFFF" android:fillType="nonZero"
android:pathData="M64.22,34.27C70.47,33.68 76.8,34.17 83.08,34.02C84.71,34.15 87.56,33.83 87.73,36.13C88.2,42.74 87.91,49.4 87.91,56.03C88.08,58.18 86.25,59.54 84.94,60.94C76.41,69.38 67.95,77.91 59.46,86.41C58.28,87.76 56.18,88.99 54.64,87.38C48.02,81.01 41.61,74.42 35.11,67.93C33.14,66.41 33.79,63.88 35.45,62.44C43.54,54.21 51.8,46.13 59.91,37.91C61.26,36.6 62.49,35.09 64.22,34.27M70.45,45.33C67.69,47.04 68.05,51.96 71.19,53.06C73.97,54.38 77.66,52.19 77.4,49C77.69,45.44 73.2,43.35 70.45,45.33Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#2781D7" android:fillType="nonZero"
android:pathData="M10.3,1.4C12.51,0.98 14.76,0.95 17,0.92C47.01,0.98 77.02,0.92 107.04,0.96C110.77,0.93 114.81,1.69 117.47,4.53C120.39,7.14 121.09,11.23 121.02,14.96C121.05,45.31 121.01,75.66 121.04,106.02C121.06,109.61 120.9,113.56 118.4,116.42C115.77,119.93 111.24,121.17 107.03,121.04C76.69,121.08 46.33,121.03 15.99,121.07C11.95,121.1 7.43,120.62 4.54,117.47C1.64,114.83 0.87,110.79 0.97,107.04C0.99,76 0.94,44.97 1,13.94C0.58,8.21 4.58,2.48 10.3,1.4M64.22,34.27C62.49,35.09 61.26,36.6 59.91,37.91C51.8,46.13 43.54,54.21 35.45,62.44C33.79,63.88 33.14,66.41 35.11,67.93C41.61,74.42 48.02,81.01 54.64,87.38C56.18,88.99 58.28,87.76 59.46,86.41C67.95,77.91 76.41,69.38 84.94,60.94C86.25,59.54 88.08,58.18 87.91,56.03C87.91,49.4 88.2,42.74 87.73,36.13C87.56,33.83 84.71,34.15 83.08,34.02C76.8,34.17 70.47,33.68 64.22,34.27Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#2781D7" android:fillType="nonZero"
android:pathData="M70.45,45.33C73.2,43.35 77.69,45.44 77.4,49C77.66,52.19 73.97,54.38 71.19,53.06C68.05,51.96 67.69,47.04 70.45,45.33Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
</vector>

View File

@ -0,0 +1,6 @@
<vector android:height="26dp" android:viewportHeight="163"
android:viewportWidth="200" android:width="31.90184dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#000000" android:fillType="nonZero"
android:pathData="M105.723,7.148C112.5,11.641 117.93,17.676 122.109,25.82C126.914,35.098 129.199,45.02 128.887,55.449C128.672,62.441 126.172,68.691 124.082,73.281C121.465,78.906 118.242,84.023 115.117,88.73C114.59,89.57 113.965,90.391 113.457,91.23C112.207,93.105 110.957,94.883 110.02,96.758C108.867,98.848 108.457,100.938 108.77,102.91C110.742,104.57 113.359,105.625 115.859,106.563L129.004,111.563C136.309,114.375 143.613,117.09 150.918,120.02C158.945,123.145 164.16,129.102 166.035,137.031C166.973,140.996 166.973,145.176 166.035,149.023C164.883,153.926 161.445,160.195 151.543,162.383C149.766,162.793 147.891,162.91 145.605,162.91C145.595,162.88 111.88,162.865 79.516,162.858L75.79,162.857C73.932,162.857 72.082,162.857 70.249,162.856L64.802,162.855C64.204,162.855 63.608,162.855 63.015,162.855L57.757,162.854C57.182,162.854 56.611,162.854 56.044,162.854L49.432,162.853C48.899,162.853 48.37,162.853 47.847,162.853L37.669,162.852C37.228,162.852 36.793,162.852 36.365,162.852L20.918,162.852L20.918,162.852C15.293,162.852 10.703,161.504 6.934,158.574C2.754,155.332 0.469,150.957 0.254,145.742L0.254,145.02C0.156,142.09 0.039,138.867 1.094,135.527C3.184,128.633 7.871,123.633 14.863,120.508C24.98,116.016 35.098,111.641 45.215,107.266L46.25,106.855C47.5,106.328 48.867,105.82 50.215,105.293C51.563,104.766 53.027,104.258 54.395,103.633C55.859,103.008 56.27,102.695 56.27,102.598C56.27,102.598 56.484,101.973 56.367,99.57C56.367,98.535 55.957,97.383 55.117,96.133L53.457,93.418C50.645,88.828 47.617,84.141 44.902,79.336C41.973,74.219 39.902,68.809 38.535,62.949C37.5,58.359 37.188,53.457 37.813,47.832C38.438,41.367 40.117,35.098 42.617,29.375C48.047,17.168 55.762,8.926 66.191,4.023C79.551,-2.129 93.105,-1.094 105.723,7.148ZM171.445,54.375L192.832,54.375C193.77,54.375 194.805,54.473 195.762,54.688C198.164,55.313 199.512,57.305 199.414,59.902C199.316,62.402 197.852,64.277 195.234,64.902C194.395,65.117 193.457,65.215 192.52,65.215L150.059,65.215C148.906,65.215 147.871,65.117 146.816,64.805C144.316,63.965 143.164,62.09 143.379,59.277C143.477,56.973 145.156,55.215 147.559,54.688C148.398,54.473 149.336,54.473 150.176,54.473C157.148,54.375 164.258,54.375 171.445,54.375L171.445,54.375ZM175.938,90.254C170.41,90.254 164.883,90.352 159.238,90.254C157.891,90.254 156.426,89.941 155.176,89.414C153.086,88.477 152.148,86.172 152.676,83.574C153.086,81.484 154.863,79.922 157.266,79.512C157.988,79.414 158.73,79.414 159.453,79.414L192.734,79.414C193.77,79.414 194.922,79.512 195.977,79.824C198.164,80.449 199.414,82.441 199.316,84.941C199.219,87.441 197.969,89.316 195.664,89.941C194.727,90.254 193.691,90.352 192.637,90.352C187.09,90.254 181.563,90.254 175.938,90.254L175.938,90.254ZM183.867,115.73L170.313,115.73C168.535,115.73 166.875,115.418 165.508,114.266C163.73,112.703 163.418,110.711 164.16,108.523C164.883,106.219 166.66,105.281 168.75,104.969C169.375,104.871 170.098,104.871 170.84,104.871L192.637,104.871C193.789,104.871 195.039,105.086 196.191,105.398C198.281,106.121 199.316,107.801 199.316,110.203C199.316,112.508 198.281,114.383 196.289,115.105C195.137,115.516 193.887,115.73 192.734,115.73C189.082,115.828 187.617,115.73 183.867,115.73L183.867,115.73Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
</vector>

View File

@ -0,0 +1,6 @@
<vector android:height="26dp" android:viewportHeight="163"
android:viewportWidth="200" android:width="31.90184dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#000000" android:fillType="nonZero"
android:pathData="M20.918,162.852C15.293,162.852 10.703,161.504 6.934,158.574C2.754,155.332 0.469,150.957 0.254,145.742L0.254,145.02C0.156,142.09 0.039,138.867 1.094,135.527C3.184,128.633 7.871,123.633 14.863,120.508C24.98,116.016 35.098,111.641 45.215,107.266L46.25,106.855C47.5,106.328 48.867,105.82 50.215,105.293C51.563,104.766 53.027,104.258 54.395,103.633C55.859,103.008 56.27,102.695 56.27,102.598C56.27,102.598 56.484,101.973 56.367,99.57C56.367,98.535 55.957,97.383 55.117,96.133L53.457,93.418C50.645,88.828 47.617,84.141 44.902,79.336C41.973,74.219 39.902,68.809 38.535,62.949C37.5,58.359 37.188,53.457 37.813,47.832C38.438,41.367 40.117,35.098 42.617,29.375C48.047,17.168 55.762,8.926 66.191,4.023C79.551,-2.129 93.105,-1.094 105.723,7.148C112.5,11.641 117.93,17.676 122.109,25.82C126.914,35.098 129.199,45.02 128.887,55.449C128.672,62.441 126.172,68.691 124.082,73.281C121.465,78.906 118.242,84.023 115.117,88.73C114.59,89.57 113.965,90.391 113.457,91.23C112.207,93.105 110.957,94.883 110.02,96.758C108.867,98.848 108.457,100.938 108.77,102.91C110.742,104.57 113.359,105.625 115.859,106.563L129.004,111.563C136.309,114.375 143.613,117.09 150.918,120.02C158.945,123.145 164.16,129.102 166.035,137.031C166.973,140.996 166.973,145.176 166.035,149.023C164.883,153.926 161.445,160.195 151.543,162.383C149.766,162.793 147.891,162.91 145.605,162.91C145.586,162.852 20.918,162.852 20.918,162.852L20.918,162.852ZM83.301,11.074C79.238,11.074 75.059,12.109 70.879,14.102C63.047,17.754 57.109,24.316 52.832,34.141C50.742,38.828 49.492,43.945 48.965,49.375C48.555,53.965 48.652,57.715 49.492,61.172C50.645,65.977 52.422,70.566 54.707,74.844C57.207,79.336 60.02,83.926 62.734,88.301L64.395,91.016C66.055,93.73 66.895,96.328 67.012,99.043C67.227,106.035 65.449,109.258 59.609,111.973C58.145,112.695 56.582,113.223 55.02,113.848C53.867,114.258 52.715,114.688 51.68,115.195L50.645,115.605C40.938,119.883 31.25,124.16 21.543,128.535C17.363,130.41 14.766,133.34 13.516,137.305C12.988,139.082 13.105,141.27 13.203,143.555L13.203,144.277C13.301,146.582 14.141,148.34 16.016,149.707C17.891,151.172 20.293,151.895 23.535,151.895L23.535,156.699L23.535,151.895L143.086,151.895C144.648,151.895 145.801,151.797 146.738,151.582C151.738,150.43 152.988,147.832 153.418,145.645C153.945,143.125 153.945,140.547 153.418,138.027C152.383,133.223 149.551,130 144.648,128.125C137.656,125.313 130.664,122.598 123.789,119.883C119.512,118.223 115.332,116.641 111.055,114.98C108.027,113.73 104.492,112.266 101.348,109.668C99.785,108.418 98.73,106.426 98.32,104.551C97.48,100.371 98.223,96.094 100.41,92.031C101.563,89.844 102.91,87.754 104.277,85.781C104.805,85.059 105.313,84.219 105.84,83.477C108.652,79.102 111.582,74.395 113.77,69.492C115.43,65.742 117.422,60.84 117.52,55.625C117.734,47.07 115.957,38.828 112.09,31.113C108.75,24.648 104.688,19.844 99.57,16.406C94.141,12.852 88.73,11.074 83.301,11.074L83.301,11.074ZM171.445,54.375L192.832,54.375C193.77,54.375 194.805,54.473 195.762,54.688C198.164,55.313 199.512,57.305 199.414,59.902C199.316,62.402 197.852,64.277 195.234,64.902C194.395,65.117 193.457,65.215 192.52,65.215L150.059,65.215C148.906,65.215 147.871,65.117 146.816,64.805C144.316,63.965 143.164,62.09 143.379,59.277C143.477,56.973 145.156,55.215 147.559,54.688C148.398,54.473 149.336,54.473 150.176,54.473C157.148,54.375 164.258,54.375 171.445,54.375L171.445,54.375ZM175.938,90.254C170.41,90.254 164.883,90.352 159.238,90.254C157.891,90.254 156.426,89.941 155.176,89.414C153.086,88.477 152.148,86.172 152.676,83.574C153.086,81.484 154.863,79.922 157.266,79.512C157.988,79.414 158.73,79.414 159.453,79.414L192.734,79.414C193.77,79.414 194.922,79.512 195.977,79.824C198.164,80.449 199.414,82.441 199.316,84.941C199.219,87.441 197.969,89.316 195.664,89.941C194.727,90.254 193.691,90.352 192.637,90.352C187.09,90.254 181.563,90.254 175.938,90.254L175.938,90.254ZM183.867,115.73L170.313,115.73C168.535,115.73 166.875,115.418 165.508,114.266C163.73,112.703 163.418,110.711 164.16,108.523C164.883,106.219 166.66,105.281 168.75,104.969C169.375,104.871 170.098,104.871 170.84,104.871L192.637,104.871C193.789,104.871 195.039,105.086 196.191,105.398C198.281,106.121 199.316,107.801 199.316,110.203C199.316,112.508 198.281,114.383 196.289,115.105C195.137,115.516 193.887,115.73 192.734,115.73C189.082,115.828 187.617,115.73 183.867,115.73L183.867,115.73Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
</vector>

View File

@ -0,0 +1,6 @@
<vector android:height="32dp" android:viewportHeight="136"
android:viewportWidth="136" android:width="32dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#231815" android:fillType="nonZero"
android:pathData="M67.969,0.098C30.526,0.098 0.068,30.557 0.068,67.999C0.068,105.442 30.526,135.901 67.969,135.901C105.411,135.901 135.87,105.442 135.87,67.999C135.87,30.557 105.411,0.098 67.969,0.098ZM76.179,72.735L45.773,106.456L59.768,63.264L90.173,29.543L76.179,72.735Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
</vector>

View File

@ -0,0 +1,9 @@
<vector android:height="32dp" android:viewportHeight="136"
android:viewportWidth="136" android:width="32dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#231815" android:fillType="nonZero"
android:pathData="M67.969,0.098C30.526,0.098 0.068,30.557 0.068,67.999C0.068,105.442 30.526,135.901 67.969,135.901C105.411,135.901 135.87,105.442 135.87,67.999C135.87,30.557 105.411,0.098 67.969,0.098ZM67.969,127.082C35.394,127.082 8.886,100.574 8.886,67.999C8.886,35.424 35.394,8.917 67.969,8.917C100.544,8.917 127.052,35.416 127.052,67.999C127.052,100.583 100.544,127.082 67.969,127.082Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#231815" android:fillType="nonZero"
android:pathData="M45.764,106.456l30.414,-33.721l13.986,-43.201l-30.406,33.73z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
</vector>

View File

@ -0,0 +1,6 @@
<vector android:height="32dp" android:viewportHeight="43"
android:viewportWidth="38" android:width="28.27907dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FCC207" android:fillType="nonZero"
android:pathData="M10.9,6.91C13.36,5.02 15.05,2.2 17.84,0.75C21.56,0.14 23.48,4.1 25.97,6.1C28.97,9.39 34.86,7.57 37.37,11.45C38.12,14.08 36.74,16.7 36.12,19.22C34.17,23.96 39.9,28.95 36.33,33.42C33.61,34.15 30.85,34.76 28.17,35.63C24.24,37.11 22.57,43 17.89,42.44C14.82,40.87 13.07,37.62 10.11,35.88C7.23,34.58 3.8,34.66 1.11,32.92C-0.84,30.17 1.16,26.75 1.54,23.8C2.84,19.44 -0.81,15.16 0.69,10.88C3.34,8.09 7.81,8.93 10.9,6.91M13.26,8.17C15.09,9.17 16.8,10.72 18.98,10.84C21.02,10.56 22.66,9.16 24.41,8.2C22.64,6.42 20.83,4.68 19,2.97C16.95,4.55 15.03,6.29 13.26,8.17M2.27,12.52C2.98,14.93 3.72,17.32 4.55,19.69C6.23,18.7 8.01,17.84 9.51,16.57C9.94,14.49 9.75,12.34 9.78,10.23C7.22,10.77 4.67,11.43 2.27,12.52M27.73,10.31C27.73,12.28 27.73,14.25 27.71,16.22C29.46,17.54 31.39,18.61 33.5,19.24C34.02,17 34.67,14.79 35.51,12.65C33.07,11.43 30.43,10.67 27.73,10.31M12.55,10.96C12.4,13.25 12.75,15.66 11.93,17.84C10.76,19.29 8.9,19.92 7.36,20.89C7.31,21.22 7.2,21.89 7.15,22.22C8.84,23.35 11.16,23.99 12.16,25.91C12.6,28.06 12.48,30.26 12.53,32.44C14.61,31.33 16.6,29.78 19,29.49C21.18,30.09 23.16,31.22 25.24,32.08C25.42,29.78 24.97,27.29 25.92,25.13C27.46,23.75 29.38,22.91 31.17,21.92C29.53,20.35 27.61,19.12 25.6,18.07C25.4,15.73 25.29,13.38 25.24,11.03C23.18,11.91 21.25,13.25 19.01,13.64C16.63,13.52 14.66,11.92 12.55,10.96M4.02,23.99C3.49,26.36 2.98,28.74 2.52,31.12C4.92,31.79 7.34,32.41 9.78,32.89C9.77,30.73 9.72,28.57 9.69,26.41C7.88,25.42 6,24.56 4.02,23.99M27.72,26.81C27.73,28.81 27.73,30.81 27.73,32.81C30.24,32.47 32.69,31.85 35.08,31.05C34.63,28.61 34.12,26.19 33.5,23.78C31.5,24.63 29.57,25.65 27.72,26.81M13.76,34.6C15.09,36.68 16.74,40.1 19.66,39.58C21.42,38.24 22.81,36.49 24.31,34.89C22.59,33.94 20.98,32.67 19.02,32.25C17.08,32.48 15.48,33.77 13.76,34.6Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
</vector>

View File

@ -0,0 +1,18 @@
<vector android:height="30dp" android:viewportHeight="148"
android:viewportWidth="157" android:width="31.824324dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#D6204B" android:fillType="nonZero"
android:pathData="M62.42,1.34C67.71,-1.56 75.13,2.07 76.15,8.01C76.93,10.93 75.93,13.92 74.65,16.54C69.76,26.35 64.95,36.21 60.08,46.03C58.61,48.94 56.23,51.7 52.87,52.32C45.58,54.65 38.16,46.02 41.27,39.08C45.86,28.91 51.24,19.08 56.08,9.02C57.48,5.98 59.33,2.91 62.42,1.34Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#D6204B" android:fillType="nonZero"
android:pathData="M142.44,27.6C147.51,25.43 153.84,28.02 155.73,33.22C158.05,38.51 154.59,44.86 149.17,46.4C129.97,52.88 110.7,59.19 91.5,65.68C88.12,66.78 83.92,67.58 80.97,65.05C76.06,62.12 74.97,54.25 79.29,50.37C80.87,48.7 82.9,47.55 85.09,46.87C104.21,40.46 123.31,33.99 142.44,27.6Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#D6204B" android:fillType="nonZero"
android:pathData="M7.21,52.27C12.3,50.28 17.73,53.27 21.59,56.49C25.85,60.54 24.85,67.87 20.44,71.36C14.95,75.27 7.46,72.27 3.25,67.86C-1.33,63.1 1.07,54.39 7.21,52.27Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#D6204B" android:fillType="nonZero"
android:pathData="M63.35,80.68C66,79.28 69.25,79.04 71.95,80.47C75.44,82.34 78.11,85.35 81.04,87.95C96.36,101.64 111.57,115.46 126.88,129.15C129.93,131.98 131.82,136.42 130.38,140.53C128.51,146.72 119.78,149.81 114.93,145.11C97.12,129.24 79.38,113.29 61.63,97.35C56.31,93.19 56.98,83.44 63.35,80.68Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#D6204B" android:fillType="nonZero"
android:pathData="M17.14,95C20.36,91.09 23,85.93 28.26,84.52C29.55,84.61 30.85,84.68 32.14,84.75C36.54,85.72 39.6,89.49 40.2,93.88C40.02,96.85 38.91,99.69 36.97,101.95C33.35,106.39 29.96,111.01 26.33,115.45C24.56,117.69 21.8,118.61 19.11,119.18C14.01,118.82 9.63,115.19 8.71,110.08C9.08,103.96 13.82,99.7 17.14,95Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
</vector>

View File

@ -0,0 +1,170 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<path
android:fillColor="#3DDC84"
android:pathData="M0,0h108v108h-108z" />
<path
android:fillColor="#00000000"
android:pathData="M9,0L9,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,0L19,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M29,0L29,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M39,0L39,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M49,0L49,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M59,0L59,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M69,0L69,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M79,0L79,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M89,0L89,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M99,0L99,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,9L108,9"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,19L108,19"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,29L108,29"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,39L108,39"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,49L108,49"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,59L108,59"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,69L108,69"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,79L108,79"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,89L108,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,99L108,99"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,29L89,29"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,39L89,39"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,49L89,49"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,59L89,59"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,69L89,69"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,79L89,79"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M29,19L29,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M39,19L39,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M49,19L49,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M59,19L59,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M69,19L69,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M79,19L79,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
</vector>

View File

@ -0,0 +1,30 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<path android:pathData="M31,63.928c0,0 6.4,-11 12.1,-13.1c7.2,-2.6 26,-1.4 26,-1.4l38.1,38.1L107,108.928l-32,-1L31,63.928z">
<aapt:attr name="android:fillColor">
<gradient
android:endX="85.84757"
android:endY="92.4963"
android:startX="42.9492"
android:startY="49.59793"
android:type="linear">
<item
android:color="#44000000"
android:offset="0.0" />
<item
android:color="#00000000"
android:offset="1.0" />
</gradient>
</aapt:attr>
</path>
<path
android:fillColor="#FFFFFF"
android:fillType="nonZero"
android:pathData="M65.3,45.828l3.8,-6.6c0.2,-0.4 0.1,-0.9 -0.3,-1.1c-0.4,-0.2 -0.9,-0.1 -1.1,0.3l-3.9,6.7c-6.3,-2.8 -13.4,-2.8 -19.7,0l-3.9,-6.7c-0.2,-0.4 -0.7,-0.5 -1.1,-0.3C38.8,38.328 38.7,38.828 38.9,39.228l3.8,6.6C36.2,49.428 31.7,56.028 31,63.928h46C76.3,56.028 71.8,49.428 65.3,45.828zM43.4,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2c-0.3,-0.7 -0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C45.3,56.528 44.5,57.328 43.4,57.328L43.4,57.328zM64.6,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2s-0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C66.5,56.528 65.6,57.328 64.6,57.328L64.6,57.328z"
android:strokeWidth="1"
android:strokeColor="#00000000" />
</vector>

View File

@ -0,0 +1,4 @@
<vector android:height="31.96878dp" android:viewportHeight="1024"
android:viewportWidth="1025" android:width="32dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FF000000" android:pathData="M2.33,1010.04c-2.33,-11.64 -2.33,-41.89 0,-74.47 6.98,-58.18 30.25,-100.07 65.16,-125.67 25.6,-18.62 58.18,-27.93 86.11,-34.91 13.96,-2.33 27.93,-6.98 39.56,-9.31 69.82,-16.29 141.96,-32.58 195.49,-102.4 4.65,-4.65 32.58,-46.55 -41.89,-137.31 -32.58,-39.56 -53.53,-93.09 -62.84,-160.58 -9.31,-69.82 -2.33,-134.98 4.65,-176.87 9.31,-48.87 37.24,-93.09 79.13,-125.67 41.89,-32.58 93.09,-48.87 144.29,-48.87s102.4,16.29 144.29,48.87c41.89,32.58 69.82,76.8 79.13,128 6.98,41.89 13.96,107.05 4.65,176.87 -9.31,65.16 -30.25,118.69 -62.84,160.58 -74.47,90.76 -44.22,132.65 -41.89,137.31 53.53,72.15 125.67,88.44 195.49,102.4 13.96,2.33 27.93,6.98 41.89,9.31 25.6,6.98 58.18,16.29 83.78,34.91 76.8,53.53 69.82,169.89 67.49,197.82H2.33z"/>
</vector>

View File

@ -0,0 +1,4 @@
<vector android:height="31.96878dp" android:viewportHeight="1024"
android:viewportWidth="1025" android:width="32dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FF000000" android:pathData="M2.33,1010.04c-2.33,-11.64 -2.33,-41.89 0,-74.47 6.98,-58.18 30.25,-100.07 65.16,-125.67 25.6,-18.62 58.18,-27.93 86.11,-34.91 13.96,-2.33 27.93,-6.98 39.56,-9.31 69.82,-16.29 141.96,-32.58 195.49,-102.4 4.65,-4.65 32.58,-46.55 -41.89,-137.31 -32.58,-39.56 -53.53,-93.09 -62.84,-160.58 -9.31,-69.82 -2.33,-134.98 4.65,-176.87 9.31,-48.87 37.24,-93.09 79.13,-125.67 41.89,-32.58 93.09,-48.87 144.29,-48.87s102.4,16.29 144.29,48.87c41.89,32.58 69.82,76.8 79.13,128 6.98,41.89 13.96,107.05 4.65,176.87 -9.31,65.16 -30.25,118.69 -62.84,160.58 -74.47,90.76 -44.22,132.65 -41.89,137.31 53.53,72.15 125.67,88.44 195.49,102.4 13.96,2.33 27.93,6.98 41.89,9.31 25.6,6.98 58.18,16.29 83.78,34.91 76.8,53.53 69.82,169.89 67.49,197.82H2.33zM512,44.22c-44.22,0 -88.44,13.96 -125.67,41.89 -18.62,13.96 -32.58,30.25 -44.22,46.55 -11.64,18.62 -18.62,39.56 -23.27,60.51 -6.98,39.56 -13.96,102.4 -4.65,167.56 9.31,60.51 27.93,109.38 55.85,144.29 34.91,44.22 55.85,83.78 55.85,118.69 2.33,30.25 -9.31,48.87 -16.29,55.85 -60.51,81.45 -141.96,97.75 -214.11,114.04 -13.96,2.33 -25.6,6.98 -39.56,9.31 -23.27,6.98 -51.2,16.29 -74.47,30.25 -16.29,11.64 -27.93,25.6 -37.24,46.55 -6.98,16.29 -13.96,37.24 -16.29,58.18 -2.33,9.31 -2.33,18.62 -2.33,30.25v9.31h961.16v-9.31c0,-11.64 0,-20.95 -2.33,-32.58 -6.98,-46.55 -23.27,-81.45 -53.53,-102.4 -20.95,-16.29 -48.87,-23.27 -74.47,-30.25 -13.96,-2.33 -25.6,-6.98 -41.89,-9.31 -72.15,-16.29 -153.6,-34.91 -214.11,-114.04 -4.65,-6.98 -16.29,-25.6 -16.29,-55.85 2.33,-34.91 20.95,-76.8 55.85,-118.69 30.25,-34.91 48.87,-83.78 55.85,-144.29 9.31,-65.16 2.33,-125.67 -4.65,-167.56 -4.65,-20.95 -11.64,-41.89 -23.27,-60.51s-25.6,-34.91 -44.22,-46.55c-23.27,-25.6 -67.49,-41.89 -111.71,-41.89z"/>
</vector>

View File

@ -0,0 +1,33 @@
<vector android:height="31.5dp" android:viewportHeight="60"
android:viewportWidth="61" android:width="32.025dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#F15654" android:fillType="nonZero"
android:pathData="M17.85,2.98C24.55,-0.15 32.33,-0.89 39.45,1.18C39.5,2.03 39.62,3.74 39.67,4.59C34.45,3.72 29.08,3.16 23.89,4.55C28.83,10.45 34.62,15.58 39.72,21.35C39.59,23.25 39.55,25.16 39.67,27.06C38.56,25.19 37.18,23.49 35.79,21.82C34.36,20.06 32.77,18.43 30.85,17.2C26.98,13.52 23.33,9.62 19.43,5.96C18.89,4.98 18.36,3.98 17.85,2.98Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#6769E0" android:fillType="nonZero"
android:pathData="M39.45,1.18C47.49,3.58 54.19,9.42 58,16.86C56.99,17.5 55.97,18.14 54.98,18.83C52.45,13.83 48.64,9.35 43.48,6.96C43.59,14.75 43.36,22.55 43.63,30.34C42.41,31.92 40.87,33.2 39.28,34.39C39.8,31.99 39.92,29.51 39.67,27.06C39.55,25.16 39.59,23.25 39.72,21.35C40.09,15.77 40.15,10.16 39.67,4.59C39.62,3.74 39.5,2.03 39.45,1.18Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#F1A049" android:fillType="nonZero"
android:pathData="M2.5,21.1C4.48,13.11 10.68,6.69 17.85,2.98C18.36,3.98 18.89,4.98 19.43,5.96C14.99,8.95 10.29,12.24 8.22,17.4C15.76,17.49 23.32,17.76 30.85,17.2C32.77,18.43 34.36,20.06 35.79,21.82C32.66,21.19 29.46,21.27 26.34,21.86C26.42,21.39 26.57,20.45 26.65,19.97C25.11,20.34 23.58,20.7 22.05,21.08C16.62,21.5 11.15,20.84 5.73,21.52C5.34,21.24 4.57,20.7 4.18,20.42C3.76,20.59 2.92,20.93 2.5,21.1Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#2D80CE" android:fillType="nonZero"
android:pathData="M54.98,18.83C55.97,18.14 56.99,17.5 58,16.86C61.26,23.85 61.99,32.04 59.5,39.4C58.62,39.29 56.85,39.07 55.97,38.96C57.47,33.7 57.8,28.15 56.49,22.81C50.38,27.52 45.39,33.54 39.85,38.9C37.8,38.75 35.74,38.7 33.69,38.7C35.82,37.65 37.54,35.99 39.28,34.39C40.87,33.2 42.41,31.92 43.63,30.34C47.11,26.22 51.03,22.48 54.98,18.83Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#FBC30C" android:fillType="nonZero"
android:pathData="M4.18,20.42C4.57,20.7 5.34,21.24 5.73,21.52C4.71,26.62 4.07,31.92 5.63,36.99C11.37,31.98 16.71,26.52 22.05,21.08C23.58,20.7 25.11,20.34 26.65,19.97C26.57,20.45 26.42,21.39 26.34,21.86C25.08,23.43 23.83,25.01 22.58,26.58C21.31,27.63 19.32,28.18 18.89,29.97C18.22,37.7 19.04,45.43 18.83,53.16C18.48,53.04 17.79,52.81 17.45,52.69L17.17,52.26C18.96,49.13 18.01,45.43 18.39,42.02C18.73,38.27 18.23,34.51 18.28,30.75C14.03,33.79 10.62,37.79 7.05,41.56C6.35,42.05 4.96,43.04 4.27,43.54C0.82,36.73 -0.21,28.3 2.5,21.1C2.92,20.93 3.76,20.59 4.18,20.42Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#93CF0F" android:fillType="nonZero"
android:pathData="M18.89,29.97C19.32,28.18 21.31,27.63 22.58,26.58C22.45,27.09 22.19,28.1 22.06,28.61C20.58,32.24 21.29,36.2 21.22,40.01C21.15,44.66 21.42,49.32 21.1,53.96C21.18,55.48 20.31,56.69 19.37,57.78C12.97,54.84 7.4,49.91 4.27,43.54C4.96,43.04 6.35,42.05 7.05,41.56C9.63,45.76 12.81,49.8 17.17,52.26L17.45,52.69C17.79,52.81 18.48,53.04 18.83,53.16C19.04,45.43 18.22,37.7 18.89,29.97Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#83C842" android:fillType="nonZero"
android:pathData="M21.22,40.01C21.29,36.2 20.58,32.24 22.06,28.61C22.3,30.29 22.55,31.97 22.75,33.66C22.63,35.41 22.44,37.16 22.33,38.92C22.19,44.33 22.12,49.76 22.45,55.17C22.51,56.4 22.58,57.63 22.65,58.87C21.56,58.49 20.47,58.13 19.37,57.78C20.31,56.69 21.18,55.48 21.1,53.96C21.42,49.32 21.15,44.66 21.22,40.01Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#09C177" android:fillType="nonZero"
android:pathData="M22.33,38.92C22.44,37.16 22.63,35.41 22.75,33.66C23.66,34.98 24.64,36.26 25.67,37.49C27.18,39.36 28.88,41.06 30.72,42.59C34.73,46.14 38.49,49.99 42.09,53.94C42.87,54.91 43.6,55.91 44.34,56.9C37.64,60.12 29.82,60.91 22.65,58.87C22.58,57.63 22.51,56.4 22.45,55.17C27.59,56.43 32.97,56.82 38.14,55.44C33.54,49.35 27.44,44.58 22.33,38.92Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#1BABF6" android:fillType="nonZero"
android:pathData="M25.67,37.49C28.15,38.77 30.96,38.81 33.69,38.7C35.74,38.7 37.8,38.75 39.85,38.9L40.42,38.94C45.09,40.81 50.84,40.9 55.5,38.94L55.97,38.96C56.85,39.07 58.62,39.29 59.5,39.4C57.05,46.97 51.35,53.23 44.34,56.9C43.6,55.91 42.87,54.91 42.09,53.94C47.12,51.48 51.43,47.56 53.96,42.53C46.21,42.49 38.47,42.43 30.72,42.59C28.88,41.06 27.18,39.36 25.67,37.49Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#3CA0D3" android:fillType="nonZero"
android:pathData="M40.42,38.94C45.44,38.78 50.47,38.74 55.5,38.94C50.84,40.9 45.09,40.81 40.42,38.94Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
</vector>

View File

@ -0,0 +1,7 @@
<vector android:height="31.5dp" android:viewportHeight="63"
android:viewportWidth="64" android:width="32dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#2d88dd" android:pathData="M2.24,25.91C2.48,15.67 8.73,5.75 18.02,1.37C18.47,2.51 18.93,3.65 19.39,4.79C12.66,8.18 7.67,14.82 6.38,22.26C4.34,31.8 8.65,42.31 16.81,47.66C16.35,48.81 15.75,49.9 15.13,50.98C6.78,45.71 1.72,35.74 2.24,25.91Z"/>
<path android:fillColor="#2d88dd" android:pathData="M43.95,1.4C53.31,5.69 59.48,15.73 59.76,25.95C60.26,35.77 55.21,45.6 46.99,50.97C46.35,49.95 45.71,48.93 45.04,47.93C50.6,43.95 54.84,37.88 55.75,31.02C57.63,20.64 52.07,9.46 42.61,4.77C43.08,3.65 43.52,2.53 43.95,1.4Z"/>
<path android:fillColor="#2d88dd" android:pathData="M27.34,12.47C32.96,9.48 40.38,14.66 39.55,20.96C39.33,27.51 30.84,31.2 25.81,27.11C20.74,23.54 21.62,14.91 27.34,12.47M26.14,19.97C25.81,22.93 28.52,24.79 31.03,25.47C34.75,24.91 37.54,20.35 34.76,17.22C32.29,13.61 26.18,15.76 26.14,19.97Z"/>
<path android:fillColor="#2d88dd" android:pathData="M25.46,31.64C28.91,31.3 32.4,31.41 35.86,31.55C38.95,31.73 40.78,35.32 39.87,38.1C38.64,45.17 38.02,52.35 36.38,59.35C32.89,60.43 29.11,60.43 25.63,59.36C23.96,52.37 23.36,45.19 22.13,38.12C21.35,35.54 22.72,32.32 25.46,31.64M25.64,36.02C26.55,42.84 27.61,49.64 28.69,56.43C30.23,56.43 31.76,56.43 33.3,56.44C34.23,49.35 35.97,42.31 36.11,35.17C32.74,35.61 28.39,34.04 25.64,36.02Z"/>
</vector>

View File

@ -0,0 +1,21 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FF000000"
android:pathData="M12,22C6.49,22 2,17.51 2,12S6.49,2 12,2s10,4.04 10,9c0,3.31 -2.69,6 -6,6h-1.77c-0.28,0 -0.5,0.22 -0.5,0.5 0,0.12 0.05,0.23 0.13,0.33 0.41,0.47 0.64,1.06 0.64,1.67 0,1.38 -1.12,2.5 -2.5,2.5zM12,4c-4.41,0 -8,3.59 -8,8s3.59,8 8,8c0.28,0 0.5,-0.22 0.5,-0.5 0,-0.16 -0.08,-0.28 -0.14,-0.35 -0.41,-0.46 -0.63,-1.05 -0.63,-1.65 0,-1.38 1.12,-2.5 2.5,-2.5L16,15c2.21,0 4,-1.79 4,-4 0,-3.86 -3.59,-7 -8,-7z"/>
<path
android:fillColor="#FF000000"
android:pathData="M6.5,11.5m-1.5,0a1.5,1.5 0,1 1,3 0a1.5,1.5 0,1 1,-3 0"/>
<path
android:fillColor="#FF000000"
android:pathData="M9.5,7.5m-1.5,0a1.5,1.5 0,1 1,3 0a1.5,1.5 0,1 1,-3 0"/>
<path
android:fillColor="#FF000000"
android:pathData="M14.5,7.5m-1.5,0a1.5,1.5 0,1 1,3 0a1.5,1.5 0,1 1,-3 0"/>
<path
android:fillColor="#FF000000"
android:pathData="M17.5,11.5m-1.5,0a1.5,1.5 0,1 1,3 0a1.5,1.5 0,1 1,-3 0"/>
</vector>

View File

@ -0,0 +1,9 @@
<vector android:height="27dp" android:viewportHeight="133"
android:viewportWidth="157" android:width="31.87218dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#67BF63" android:fillType="nonZero"
android:pathData="M62.86,2.02C78.46,-0.49 94.8,0.68 109.67,6.18C126.66,11.76 142.18,23.28 150.53,39.34C155.73,49.6 157.64,61.77 154.82,73.01C151.34,89.66 138.98,103.2 124.61,111.61C112.22,118.62 98.18,122.86 83.92,123.4C72.38,124.58 60.89,122.22 49.72,119.61C37.1,122.73 24.86,127.32 12.8,132.11C16.85,123.4 20.24,114.29 22.01,104.83C15.78,99.02 9.6,92.89 5.96,85.06C-0.86,72.06 -1.34,55.92 4.64,42.51C7.59,34.83 13,28.41 18.85,22.76C30.7,11.19 46.77,4.88 62.86,2.02M56.8,12.58C46.91,14.8 37.86,19.68 29.59,25.42C17.08,34.68 8.18,50.13 9.85,66.01C10.91,78.63 18.32,90.06 28.14,97.77C30.03,99.15 31.41,101.33 31.27,103.74C31.12,108.24 29.96,112.72 28.14,116.83C35.32,113.69 42.91,111.13 50.74,110.31C70.15,116.08 91.66,116.21 110.54,108.4C123.49,102.96 135.76,94.12 142.15,81.29C146.85,73.26 147.87,63.5 146.29,54.45C145.15,47.91 141.74,42.08 138.23,36.56C129.63,25.32 116.96,17.82 103.61,13.59C88.47,9.14 72.12,8.89 56.8,12.58Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#67BF63" android:fillType="nonZero"
android:pathData="M112.28,49.3C119.84,46.65 127.9,45.62 135.49,42.99C110.78,58.39 86.31,74.2 61.67,89.71C60.39,90.48 58.94,91 57.44,91C53.58,89.75 51.5,85.95 48.81,83.2C41.41,75.17 34.2,66.98 26.72,59.04C29.65,59.39 33.11,58.22 35.56,60.32C42.14,65.44 48.69,70.61 55.23,75.79C56.53,76.78 57.91,77.81 59.59,77.99C62.54,77.75 64.92,75.78 67.46,74.46C82.41,66.1 97.28,57.58 112.28,49.3Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
</vector>

View File

@ -0,0 +1,9 @@
<vector android:height="27dp" android:viewportHeight="145"
android:viewportWidth="173" android:width="32.213795dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#1296DB" android:fillType="nonZero"
android:pathData="M111.133,132.852C109.863,132.852 108.594,132.363 107.637,131.387L47.91,70.156L47.871,70.117C47.598,69.824 47.285,69.766 47.07,69.766C46.855,69.746 46.543,69.824 46.27,70.117L20.039,97.656C18.184,99.609 15.098,99.688 13.145,97.832C11.191,95.977 11.113,92.891 12.969,90.938L39.18,63.418C41.211,61.27 44.082,60.039 47.07,60.039L47.09,60.039C50.059,60.039 52.93,61.289 54.961,63.438L114.629,124.59C116.504,126.523 116.465,129.609 114.551,131.504C113.594,132.402 112.363,132.852 111.133,132.852L111.133,132.852ZM155.977,118.438C154.688,118.438 153.398,117.93 152.441,116.934L124.629,87.793C124.355,87.5 124.043,87.441 123.828,87.441C123.613,87.441 123.301,87.5 123.027,87.773L105.762,106.523C103.926,108.516 100.84,108.633 98.867,106.816C96.875,104.98 96.758,101.895 98.574,99.922L115.879,81.113C117.93,78.945 120.801,77.695 123.789,77.676L123.809,77.676C126.777,77.676 129.648,78.906 131.699,81.074L159.492,110.176C161.348,112.129 161.289,115.215 159.336,117.07C158.398,117.988 157.188,118.438 155.977,118.438L155.977,118.438Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#1296DB" android:fillType="nonZero"
android:pathData="M157.656,144.863L14.648,144.863C6.563,144.863 0,138.301 0,130.215L0,14.805C0,6.719 6.563,0.156 14.648,0.156L157.637,0.156C165.723,0.156 172.285,6.719 172.285,14.805L172.285,130.215C172.305,138.301 165.723,144.863 157.656,144.863ZM14.648,9.922C11.953,9.922 9.766,12.109 9.766,14.805L9.766,130.215C9.766,132.91 11.953,135.098 14.648,135.098L157.637,135.098C160.332,135.098 162.52,132.91 162.52,130.215L162.52,14.805C162.52,12.109 160.332,9.922 157.637,9.922L14.648,9.922Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
</vector>

View File

@ -0,0 +1,15 @@
<vector android:height="24dp" android:viewportHeight="162"
android:viewportWidth="162" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#000000" android:fillType="nonZero"
android:pathData="M86.504,150L98.027,150L98.027,161.523L86.504,161.523L86.504,150ZM63.438,63.496L63.438,0.078L0.02,0.078L0.02,63.516L11.543,63.516L11.543,75.039L23.066,75.039L23.066,63.516L63.438,63.516L63.438,63.496ZM11.543,51.973L11.543,11.602L51.914,11.602L51.914,51.973L11.543,51.973Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#000000" android:fillType="nonZero"
android:pathData="M23.086,23.125L40.391,23.125L40.391,40.43L23.086,40.43L23.086,23.125L23.086,23.125ZM98.047,0.078L98.047,63.516L161.484,63.516L161.484,0.078L98.047,0.078ZM149.941,51.973L109.57,51.973L109.57,11.602L149.941,11.602L149.941,51.973Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#000000" android:fillType="nonZero"
android:pathData="M121.113,23.125L138.418,23.125L138.418,40.43L121.113,40.43L121.113,23.125ZM23.086,121.152L40.391,121.152L40.391,138.457L23.086,138.457L23.086,121.152L23.086,121.152ZM0.02,75.039L11.543,75.039L11.543,86.563L0.02,86.563L0.02,75.039L0.02,75.039ZM23.086,75.039L34.629,75.039L34.629,86.563L23.086,86.563L23.086,75.039L23.086,75.039Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#000000" android:fillType="nonZero"
android:pathData="M34.609,98.086L0.02,98.086L0.02,161.523L63.457,161.523L63.457,98.086L46.152,98.086L46.152,86.563L34.629,86.563L34.629,98.086L34.609,98.086ZM51.914,109.629L51.914,150L11.543,150L11.543,109.629L51.914,109.629L51.914,109.629ZM74.98,5.84L86.504,5.84L86.504,23.145L74.98,23.145L74.98,5.84ZM74.98,34.668L86.504,34.668L86.504,46.191L74.98,46.191L74.98,34.668ZM109.57,75.039L86.504,75.039L86.504,57.734L74.98,57.734L74.98,75.039L46.152,75.039L46.152,86.563L98.047,86.563L98.047,98.086L109.57,98.086L109.57,75.039L109.57,75.039ZM109.57,98.086L121.113,98.086L121.113,109.609L109.57,109.609L109.57,98.086ZM74.98,98.086L86.504,98.086L86.504,115.391L74.98,115.391L74.98,98.086ZM74.98,126.934L86.504,126.934L86.504,150L74.98,150L74.98,126.934L74.98,126.934ZM98.047,115.391L109.57,115.391L109.57,150L98.047,150L98.047,115.391ZM132.637,98.086L161.465,98.086L161.465,109.609L132.637,109.609L132.637,98.086ZM149.941,75.039L161.465,75.039L161.465,86.563L149.941,86.563L149.941,75.039ZM121.113,75.039L144.18,75.039L144.18,86.563L121.113,86.563L121.113,75.039ZM121.113,115.391L132.637,115.391L132.637,126.914L121.113,126.914L121.113,115.391ZM149.941,126.934L144.18,126.934L144.18,138.457L155.703,138.457L155.703,126.934L161.465,126.934L161.465,115.41L149.941,115.41L149.941,126.934ZM121.113,138.457L132.637,138.457L132.637,150L121.113,150L121.113,138.457ZM132.637,150L161.465,150L161.465,161.523L132.637,161.523L132.637,150Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
</vector>

View File

@ -0,0 +1,5 @@
<vector android:height="32dp" android:viewportHeight="1024"
android:viewportWidth="1024" android:width="32dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#1195db" android:pathData="M512.5,680.5c-92.6,0 -168,-75.4 -168,-168s75.4,-168 168,-168 168,75.4 168,168 -75.4,168 -168,168zM512.5,392.5c-66.2,0 -120,53.8 -120,120s53.8,120 120,120 120,-53.8 120,-120 -53.8,-120 -120,-120z"/>
<path android:fillColor="#1195db" android:pathData="M576.5,1016.5h-128c-12.1,0 -22.3,-9 -23.8,-21l-15.2,-121.4c-27.9,-7.9 -54.6,-19 -79.9,-33.1l-96.5,75.1c-9.6,7.4 -23.1,6.6 -31.7,-2l-90.5,-90.5c-8.6,-8.6 -9.4,-22.2 -2,-31.7l75.1,-96.5c-14.1,-25.3 -25.2,-52 -33.1,-79.9L29.5,600.3c-12,-1.5 -21,-11.7 -21,-23.8v-128c0,-12.1 9,-22.3 21,-23.8L151,409.5c7.9,-27.8 19,-54.6 33,-79.9l-75.1,-96.5c-7.4,-9.6 -6.6,-23.1 2,-31.7l90.5,-90.5c8.6,-8.6 22.2,-9.4 31.7,-2l96.5,75.1c25.3,-14.1 52,-25.2 79.9,-33.1l15.2,-121.4c1.5,-12 11.7,-21 23.8,-21h128c12.1,0 22.3,9 23.8,21L615.5,151c27.8,7.9 54.6,19 79.9,33l96.5,-75.1c9.6,-7.4 23.1,-6.6 31.7,2l90.5,90.5c8.6,8.6 9.4,22.2 2,31.7L841,329.6c14.1,25.3 25.2,52 33.1,79.9l121.4,15.2c12,1.5 21,11.7 21,23.8v128c0,12.1 -9,22.3 -21,23.8l-121.4,15.2c-7.9,27.8 -19,54.6 -33.1,79.9l75.1,96.5c7.4,9.6 6.6,23.1 -2,31.7l-90.5,90.5c-8.6,8.6 -22.2,9.4 -31.7,2L695.4,841c-25.3,14.1 -52,25.2 -79.9,33.1l-15.2,121.4c-1.5,12 -11.7,21 -23.8,21zM469.7,968.5h85.6L569.9,852c1.2,-10 8.5,-18.1 18.3,-20.4 34.2,-8 66.6,-21.5 96.5,-39.9 8.5,-5.3 19.4,-4.7 27.4,1.5l92.7,72.1 60.5,-60.5 -72.1,-92.7c-6.2,-7.9 -6.7,-18.8 -1.5,-27.3 18.4,-29.9 31.9,-62.3 40,-96.5 2.3,-9.8 10.4,-17.1 20.4,-18.3l116.4,-14.7v-85.6L852,455.1c-10,-1.2 -18.1,-8.5 -20.4,-18.3 -8,-34.2 -21.5,-66.6 -39.9,-96.5 -5.3,-8.5 -4.7,-19.4 1.5,-27.4l72.1,-92.7 -60.5,-60.5 -92.7,72.1c-7.9,6.2 -18.8,6.7 -27.3,1.5 -29.9,-18.4 -62.3,-31.8 -96.5,-39.9 -9.8,-2.3 -17.1,-10.4 -18.3,-20.4L555.3,56.5h-85.6l-14.6,116.6c-1.2,10 -8.5,18.1 -18.3,20.4 -34.2,8 -66.6,21.5 -96.5,39.9 -8.5,5.3 -19.4,4.7 -27.4,-1.5l-92.7,-72.1 -60.5,60.5 72.1,92.7c6.2,7.9 6.7,18.8 1.5,27.3 -18.4,29.9 -31.8,62.3 -39.9,96.5 -2.3,9.8 -10.4,17.1 -20.4,18.3L56.5,469.7v85.6l116.6,14.6c10,1.2 18.1,8.5 20.4,18.3 8,34.2 21.5,66.6 39.9,96.5 5.3,8.5 4.7,19.4 -1.5,27.4l-72.1,92.7 60.5,60.5 92.7,-72.1c7.9,-6.2 18.8,-6.7 27.3,-1.5 29.9,18.4 62.3,31.9 96.5,40 9.8,2.3 17.1,10.4 18.3,20.4l14.6,116.4zM992.5,576.5z"/>
</vector>

View File

@ -0,0 +1,9 @@
<vector android:height="32dp" android:viewportHeight="176"
android:viewportWidth="176" android:width="32dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#EFB336" android:fillType="nonZero"
android:pathData="M106.27,112.695L99.238,112.695L106.27,112.695ZM168.457,53.555C164.043,43.125 157.715,33.73 149.668,25.684C141.621,17.637 132.246,11.309 121.797,6.895C110.977,2.324 99.512,0 87.656,0C75.82,0 64.336,2.324 53.516,6.895C43.086,11.309 33.691,17.617 25.645,25.684C17.598,33.73 11.27,43.105 6.855,53.555C2.324,64.375 0,75.859 0,87.695C0,99.531 2.324,111.016 6.895,121.836C11.309,132.266 17.617,141.66 25.684,149.707C33.73,157.754 43.105,164.082 53.555,168.496C64.375,173.066 75.84,175.391 87.695,175.391C99.531,175.391 111.016,173.066 121.836,168.496C132.266,164.082 141.66,157.754 149.707,149.707C157.754,141.66 164.082,132.285 168.496,121.836C173.066,111.016 175.391,99.551 175.391,87.695C175.391,75.84 173.027,64.375 168.457,53.555ZM87.676,162.715C46.309,162.715 12.656,129.063 12.656,87.695C12.656,46.328 46.309,12.676 87.676,12.676C129.043,12.676 162.695,46.328 162.695,87.695C162.695,129.063 129.043,162.715 87.676,162.715Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#EFB336" android:fillType="nonZero"
android:pathData="M57.109,74.102C63.164,74.102 68.086,69.199 68.086,63.125C68.086,57.07 63.184,52.148 57.109,52.148C51.055,52.148 46.133,57.051 46.133,63.125C46.133,69.199 51.055,74.102 57.109,74.102ZM118.281,74.102C124.336,74.102 129.258,69.199 129.258,63.125C129.258,57.07 124.355,52.148 118.281,52.148C112.227,52.148 107.305,57.051 107.305,63.125C107.324,69.199 112.227,74.102 118.281,74.102ZM135.742,95.273C135.742,93.457 134.258,91.992 132.422,91.992L42.969,91.992C41.152,91.992 39.668,93.457 39.648,95.273L39.648,95.313C39.648,98.457 39.961,101.523 40.527,104.492C44.805,126.641 64.297,143.359 87.695,143.359C111.094,143.359 130.586,126.641 134.863,104.492C135.43,101.523 135.742,98.457 135.742,95.313L135.742,95.273ZM87.695,131.055C71.133,131.055 57.207,119.785 53.145,104.492L122.246,104.492C118.184,119.785 104.258,131.055 87.695,131.055L87.695,131.055Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
</vector>

View File

@ -0,0 +1,7 @@
<vector android:height="32dp" android:viewportHeight="1024"
android:viewportWidth="1024" android:width="32dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FF000000" android:pathData="M593.02,234.5l-46.17,46.23c0.11,0.09 0.15,0.15 0.28,0.23 127.55,127.66 127.55,334.68 0,462.34l46.12,46.25c153.05,-153.19 153.05,-401.62 0,-554.82C593.17,234.67 593.13,234.56 593.02,234.5z"/>
<path android:fillColor="#FF000000" android:pathData="M500.89,327.19c-0.04,-0.09 -0.13,-0.15 -0.23,-0.21l-46.17,46.23c0.04,0.09 0.13,0.15 0.23,0.26 76.48,76.57 76.48,200.79 0,277.4l46.14,46.23C603.01,595.01 603.01,429.33 500.89,327.19z"/>
<path android:fillColor="#FF000000" android:pathData="M408.32,419.43l-92.39,92.46 92.63,92.71c51.01,-51.11 51.01,-133.89 0,-184.94C408.47,419.58 408.36,419.52 408.32,419.43z"/>
<path android:fillColor="#FF000000" android:pathData="M512,0C229.7,0 0,229.7 0,512c0,282.28 229.7,512 512,512 282.28,0 512,-229.72 512,-512C1024,229.7 794.28,0 512,0zM512,981.29C253.23,981.29 42.69,770.77 42.69,512S253.23,42.69 512,42.69 981.29,253.23 981.29,512 770.77,981.29 512,981.29z"/>
</vector>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background" />
<foreground android:drawable="@drawable/ic_launcher_foreground" />
<monochrome android:drawable="@drawable/ic_launcher_foreground" />
</adaptive-icon>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background" />
<foreground android:drawable="@drawable/ic_launcher_foreground" />
<monochrome android:drawable="@drawable/ic_launcher_foreground" />
</adaptive-icon>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 982 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="purple_200">#FFBB86FC</color>
<color name="purple_500">#FF6200EE</color>
<color name="purple_700">#FF3700B3</color>
<color name="teal_200">#FF03DAC5</color>
<color name="teal_700">#FF018786</color>
<color name="black">#FF000000</color>
<color name="white">#FFFFFFFF</color>
</resources>

View File

@ -0,0 +1,3 @@
<resources>
<string name="app_name">WeChat</string>
</resources>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.WeChat" parent="android:Theme.Material.Light.NoActionBar" />
</resources>

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?><!--
Sample backup rules file; uncomment and customize as necessary.
See https://developer.android.com/guide/topics/data/autobackup
for details.
Note: This file is ignored for devices older that API 31
See https://developer.android.com/about/versions/12/backup-restore
-->
<full-backup-content>
<!--
<include domain="sharedpref" path="."/>
<exclude domain="sharedpref" path="device.xml"/>
-->
</full-backup-content>

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?><!--
Sample data extraction rules file; uncomment and customize as necessary.
See https://developer.android.com/about/versions/12/backup-restore#xml-changes
for details.
-->
<data-extraction-rules>
<cloud-backup>
<!-- TODO: Use <include> and <exclude> to control what is backed up.
<include .../>
<exclude .../>
-->
</cloud-backup>
<!--
<device-transfer>
<include .../>
<exclude .../>
</device-transfer>
-->
</data-extraction-rules>

View File

@ -0,0 +1,17 @@
package com.example.wechat
import org.junit.Test
import org.junit.Assert.*
/**
* Example local unit test, which will execute on the development machine (host).
*
* See [testing documentation](http://d.android.com/tools/testing).
*/
class ExampleUnitTest {
@Test
fun addition_isCorrect() {
assertEquals(4, 2 + 2)
}
}

5
build.gradle.kts 100644
View File

@ -0,0 +1,5 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
plugins {
id("com.android.application") version "8.2.0" apply false
id("org.jetbrains.kotlin.android") version "1.9.0" apply false
}

23
gradle.properties 100644
View File

@ -0,0 +1,23 @@
# Project-wide Gradle settings.
# IDE (e.g. Android Studio) users:
# Gradle settings configured through the IDE *will override*
# any settings specified in this file.
# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
# AndroidX package structure to make it clearer which packages are bundled with the
# Android operating system, and which are packaged with your app's APK
# https://developer.android.com/topic/libraries/support-library/androidx-rn
android.useAndroidX=true
# Kotlin code style for this project: "official" or "obsolete":
kotlin.code.style=official
# Enables namespacing of each library's R class so that its R class includes only the
# resources declared in the library itself and none from the library's dependencies,
# thereby reducing the size of the R class for that library
android.nonTransitiveRClass=true

BIN
gradle/wrapper/gradle-wrapper.jar vendored 100644

Binary file not shown.

View File

@ -0,0 +1,6 @@
#Mon Dec 25 14:56:36 HKT 2023
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

185
gradlew vendored 100644
View File

@ -0,0 +1,185 @@
#!/usr/bin/env sh
#
# Copyright 2015 the original author or authors.
#
# 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
#
# https://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.
#
##############################################################################
##
## Gradle start up script for UN*X
##
##############################################################################
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`"/$link"
fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >/dev/null
APP_HOME="`pwd -P`"
cd "$SAVED" >/dev/null
APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
warn () {
echo "$*"
}
die () {
echo
echo "$*"
echo
exit 1
}
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
nonstop=false
case "`uname`" in
CYGWIN* )
cygwin=true
;;
Darwin* )
darwin=true
;;
MINGW* )
msys=true
;;
NONSTOP* )
nonstop=true
;;
esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
JAVACMD="java"
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ] ; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
MAX_FD="$MAX_FD_LIMIT"
fi
ulimit -n $MAX_FD
if [ $? -ne 0 ] ; then
warn "Could not set maximum file descriptor limit: $MAX_FD"
fi
else
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
fi
fi
# For Darwin, add options to specify how the application appears in the dock
if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
# For Cygwin or MSYS, switch paths to Windows format before running java
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
JAVACMD=`cygpath --unix "$JAVACMD"`
# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
SEP=""
for dir in $ROOTDIRSRAW ; do
ROOTDIRS="$ROOTDIRS$SEP$dir"
SEP="|"
done
OURCYGPATTERN="(^($ROOTDIRS))"
# Add a user-defined pattern to the cygpath arguments
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
fi
# Now convert the arguments - kludge to limit ourselves to /bin/sh
i=0
for arg in "$@" ; do
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
else
eval `echo args$i`="\"$arg\""
fi
i=`expr $i + 1`
done
case $i in
0) set -- ;;
1) set -- "$args0" ;;
2) set -- "$args0" "$args1" ;;
3) set -- "$args0" "$args1" "$args2" ;;
4) set -- "$args0" "$args1" "$args2" "$args3" ;;
5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac
fi
# Escape application args
save () {
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
echo " "
}
APP_ARGS=`save "$@"`
# Collect all arguments for the java command, following the shell quoting and substitution rules
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
exec "$JAVACMD" "$@"

89
gradlew.bat vendored 100644
View File

@ -0,0 +1,89 @@
@rem
@rem Copyright 2015 the original author or authors.
@rem
@rem Licensed under the Apache License, Version 2.0 (the "License");
@rem you may not use this file except in compliance with the License.
@rem You may obtain a copy of the License at
@rem
@rem https://www.apache.org/licenses/LICENSE-2.0
@rem
@rem Unless required by applicable law or agreed to in writing, software
@rem distributed under the License is distributed on an "AS IS" BASIS,
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@rem See the License for the specific language governing permissions and
@rem limitations under the License.
@rem
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@rem
@rem ##########################################################################
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto execute
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto execute
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:execute
@rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
:end
@rem End local scope for the variables with windows NT shell
if "%ERRORLEVEL%"=="0" goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
exit /b 1
:mainEnd
if "%OS%"=="Windows_NT" endlocal
:omega

View File

@ -0,0 +1,18 @@
pluginManagement {
repositories {
google()
mavenCentral()
gradlePluginPortal()
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
}
}
rootProject.name = "WeChat"
include(":app")