compose微信界面
|
@ -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
|
|
@ -0,0 +1,3 @@
|
|||
# 默认忽略的文件
|
||||
/shelf/
|
||||
/workspace.xml
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="CompilerConfiguration">
|
||||
<bytecodeTargetLevel target="17" />
|
||||
</component>
|
||||
</project>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -0,0 +1 @@
|
|||
/build
|
|
@ -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")
|
||||
}
|
|
@ -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
|
|
@ -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)
|
||||
}
|
||||
}
|
|
@ -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>
|
|
@ -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()
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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 })
|
||||
}
|
||||
}
|
|
@ -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)
|
||||
}
|
|
@ -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)
|
||||
}
|
||||
}
|
|
@ -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()))
|
||||
}
|
||||
}
|
|
@ -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)
|
||||
}
|
||||
}
|
|
@ -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)
|
||||
}
|
|
@ -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()
|
||||
}
|
||||
}
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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()
|
||||
}
|
||||
}
|
|
@ -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)
|
||||
}
|
|
@ -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)
|
||||
}
|
||||
}
|
|
@ -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)
|
|
@ -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
|
||||
)
|
||||
}
|
||||
}
|
|
@ -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
|
||||
)
|
||||
*/
|
||||
)
|
After Width: | Height: | Size: 20 KiB |
After Width: | Height: | Size: 81 KiB |
After Width: | Height: | Size: 60 KiB |
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 2.8 KiB |
After Width: | Height: | Size: 982 B |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 3.8 KiB |
After Width: | Height: | Size: 2.8 KiB |
After Width: | Height: | Size: 5.8 KiB |
After Width: | Height: | Size: 3.8 KiB |
After Width: | Height: | Size: 7.6 KiB |
|
@ -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>
|
|
@ -0,0 +1,3 @@
|
|||
<resources>
|
||||
<string name="app_name">WeChat</string>
|
||||
</resources>
|
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
<style name="Theme.WeChat" parent="android:Theme.Material.Light.NoActionBar" />
|
||||
</resources>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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)
|
||||
}
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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
|
|
@ -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
|
|
@ -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" "$@"
|
|
@ -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
|
|
@ -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")
|
||||
|