Commit dae1df1c by fengchen

lib_Autonomous 是当前开发项目独有的lib 用来放资源文件 自定义view 一些只有这个项目用到的一些公用的方法

lib_base 用来存放 一些图片选择 号码选择 扫一扫 这种通用的Activity
lic_common 用来存放公用的工具
lib_common_view 用来存放公共的view 以及 一些Activity 这类的
lib_net 网络框架

第三方现在都放在lib_common 里   还有一些没放,根据需要自己添加

集成关系 是 lib_common -> lib_commonview ->lib_net ->
 lib_base - >lib_Autonomous
parents

Too many changes to show.

To preserve performance only 1000 of 1000+ files are displayed.

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
apply plugin: 'WMRouter'
apply plugin: 'android-aspectjx'
String package_name = "com.yumeng.hibro"
android {
compileSdkVersion compile_sdk_version
defaultConfig {
applicationId package_name
multiDexEnabled true
minSdkVersion min_sdk_version
targetSdkVersion target_sdk_version
versionCode version_code
versionName version_name
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
flavorDimensions "versionCode"
productFlavors {
dev {
applicationIdSuffix ".dev"
manifestPlaceholders.put("PACKAGE_NAME", "${package_name}.dev")
}
alpha {
applicationIdSuffix ".alpha"
manifestPlaceholders.put("PACKAGE_NAME", "${package_name}.alpha")
}
ga {
manifestPlaceholders.put("PACKAGE_NAME", "${package_name}")
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = '1.8'
}
}
androidExtensions {
experimental = true
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
implementation "com.sankuai.waimai.router:router:${wmrouter_version}"
kapt "com.sankuai.waimai.router:compiler:${wmrouter_version}"
implementation val.lib_Autonomous
if (!isModule.toBoolean()) {
// implementation val.module_home
// implementation val.module_mine
// implementation val.module_news
}
}
# 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
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.yumeng.hibro">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity"
android:theme="@style/Theme.AppCompat.Light.NoActionBar"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".TestSecondActivity"
android:theme="@style/Theme.AppCompat.Light.NoActionBar"
/>
<activity android:name=".TestthreeActivity"
android:theme="@style/Theme.AppCompat.Light.NoActionBar"
/>
</application>
</manifest>
\ No newline at end of file
package com.yumeng.hibro
import android.Manifest
import android.content.Intent
import android.os.Bundle
import androidx.lifecycle.Observer
import com.yumeng.hibro.model.TestEventModelp
import com.yumeng.hibro.model.TestEventModels
import com.yumeng.hibro.viewModel.MainViewModel
import com.yumeng.libbase.activity.EditContentActivity
import com.yumeng.libbase.activity.matisse.matisse.GlideEngine
import com.yumeng.libbase.activity.matisse.matisse.Matisse
import com.yumeng.libbase.activity.matisse.matisse.MimeType
import com.yumeng.libbase.activity.telphone.TelephoneCodeActivity
import com.yumeng.libbase.helper.DialogHelper
import com.yumeng.libbaseProject.activity.BaseImVMActivity
import com.yumeng.libbaseProject.eventBus.MessageChatEvent
import com.yumeng.libcommon.event.MessageEvent
import com.yumeng.libcommon.ext.doAsync
import com.yumeng.libcommon.ext.putData
import com.yumeng.libcommon.ext.startKtxActivity
import com.yumeng.libcommon.ext.startKtxActivityForResult
import com.yumeng.libcommon.helper.Preference
import com.yumeng.libcommon.rxManager.RxPermissions
import com.yumeng.libcommon.utils.LogUtils
import com.yumeng.tillo.QRCodeScanActivity
import kotlinx.android.synthetic.main.activity_main.*
import org.greenrobot.eventbus.EventBus
class MainActivity : BaseImVMActivity<MainViewModel>() {
companion object {
private const val REQUEST_CODE_CHOOSE = 23
private const val BASE_REQUEST_CODE = 24
}
override fun providerVMClass(): Class<MainViewModel>? = MainViewModel::class.java
override fun getLayoutResId() = R.layout.activity_main
override fun initData() {
mViewModel.getTest()
}
override fun initView() {
getNet.setOnClickListener {
mViewModel.getTest()
}
scan.setOnClickListener {
RxPermissions(this).request(Manifest.permission.CAMERA)
.subscribe { aBoolean ->
if (aBoolean) {
QRCodeScanActivity.start(this, true)
}
}
}
pick.setOnClickListener {
RxPermissions(this).request(
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE
)
?.subscribe { aBoolean ->
//权限已经开启 enableCrop:是否裁剪
if (aBoolean == true) {
Matisse.from(this)
.choose(MimeType.ofAll(), false)
.countable(false)
.maxOriginalSize(10 * 1024 * 1024)//最大设置10M每张
.originalEnable(true)
.theme(R.style.Matisse_Zhihu)
.maxSelectable(9)
.imageEngine(GlideEngine())
.forResult(REQUEST_CODE_CHOOSE)
}
}
}
pickDialog.setOnClickListener {
DialogHelper.showPhotoDialog(this, object : DialogHelper.OnPhotoCallback {
override fun onSuccess(path: String) {
LogUtils.d("test", "path:$path")
}
override fun onFailure() {
}
})
}
phonePick.setOnClickListener {
startKtxActivityForResult<TelephoneCodeActivity>(BASE_REQUEST_CODE)
}
editContent.setOnClickListener {
startKtxActivityForResult<EditContentActivity>(extra = Bundle().apply {
putString(EditContentActivity.TITLE_KEY, "ceshi")
putString(EditContentActivity.RESULT_KEY, "ceshi1")
}, requestCode = BASE_REQUEST_CODE)
}
saveShareData.setOnClickListener {
//第一种方式
Preference<String>().putValue(Preference.USER_JSON, "555555")
//第二种方式
var userId by Preference(Preference.USER_ID, "")
userId = "22"
//第三种方式
Preference("").putValue(Preference.TOKEN, "12344444")
//第四种
1123123.putData("tttt")
}
getShareData.setOnClickListener {
val userInfo by Preference(Preference.USER_JSON, "")
val userId by Preference(Preference.USER_ID, "")
val token by Preference(Preference.TOKEN, "")
val tttt by Preference("tttt", 0)
val tttt2 = Preference<Long>().getValue("tttt", 0)
LogUtils.e("test", "userInfo :$userInfo")
LogUtils.e("test", "userId :$userId")
LogUtils.e("test", "token :$token")
LogUtils.e("test", "tttt :$tttt")
LogUtils.e("test", "tttt2 :$tttt2")
}
sendEvent.setOnClickListener {
EventBus.getDefault().post(MessageChatEvent("111111","22222").apply {
putValue("a","aaaaa")
putValue("b","bbbbb")
putValue("c",TestEventModels("lili","25"))
// putValue("d", TestEventModelp("bibi","26"))
})
}
jumpSecond.setOnClickListener {
startKtxActivity<TestSecondActivity>()
}
jumpThree.setOnClickListener {
startKtxActivity<TestthreeActivity>()
}
}
override fun startObserve() {
super.startObserve()
mViewModel.uiState.observe(this, Observer {
it.showError?.let { error ->
LogUtils.e("test", "showError :$error")
}
it.showLoading?.let { loading ->
LogUtils.e("test", "showError :$loading")
}
it.showSuccess?.let { success ->
LogUtils.e("test", "showError :$success")
}
})
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
}
override fun onMessageEvent(event: MessageEvent) {
super.onMessageEvent(event)
val message = event as MessageChatEvent
val content = "msg:${message.target} ${message.behavior} ${message.getData(
"a",
""
)} ${message.getData("b", "")}"
val content2 = "name:${message.getData("c",TestEventModels()).name} age: ${message.getData("c",TestEventModels()).age}"
// val content3 = "name:${message.getData("d",TestEventModelp()).nameP} age: ${message.getData("d",TestEventModelp()).ageP}"
LogUtils.e("test", "showEvent :$content $content2 ")//$content3
}
}
\ No newline at end of file
package com.yumeng.hibro
import android.app.Activity
import android.os.Bundle
import android.os.PersistableBundle
import com.yumeng.hibro.viewModel.MainViewModel
import com.yumeng.libbaseProject.activity.BaseImVMActivity
import com.yumeng.libcommon.event.MessageEvent
import com.yumeng.libcommon.manage.ActivityManage
import com.yumeng.libcommon.utils.LogUtils
import com.yumeng.libcommonview.activity.CommonToolbarActivity
import kotlinx.android.synthetic.main.activity_second.*
class TestSecondActivity : CommonToolbarActivity(){
override fun onCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) {
super.onCreate(savedInstanceState, persistentState)
setContentView(R.layout.activity_second)
}
override fun initView() {
super.initView()
twoCheck.setOnClickListener {
val main =ActivityManage.existActivity(MainActivity::class.java)
val two = ActivityManage.existActivity(TestSecondActivity::class.java)
val three = ActivityManage.existActivity(TestthreeActivity::class.java)
LogUtils.e("test","main:$main two$two three$three")
ActivityManage.recreateAllActivity()
}
}
}
\ No newline at end of file
package com.yumeng.hibro
import android.os.Bundle
import android.os.PersistableBundle
import com.yumeng.hibro.viewModel.MainViewModel
import com.yumeng.libbaseProject.activity.BaseImVMActivity
import com.yumeng.libcommon.event.MessageEvent
import com.yumeng.libcommon.manage.ActivityManage
import com.yumeng.libcommon.utils.LogUtils
import com.yumeng.libcommonview.activity.CommonToolbarActivity
import kotlinx.android.synthetic.main.activity_three.*
class TestthreeActivity : CommonToolbarActivity() {
override fun onCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) {
super.onCreate(savedInstanceState, persistentState)
setContentView(R.layout.activity_three)
}
override fun initView() {
super.initView()
threeCheck.setOnClickListener {
val main =ActivityManage.existActivity(MainActivity::class.java)
val two = ActivityManage.existActivity(TestSecondActivity::class.java)
val three = ActivityManage.existActivity(TestthreeActivity::class.java)
LogUtils.e("test","main:$main two$two three$three")
ActivityManage.finishAllActivity()
}
}
}
\ No newline at end of file
package com.yumeng.hibro.model
import android.os.Parcelable
import kotlinx.android.parcel.Parcelize
import java.io.Serializable
@Parcelize
data class TestEventModelp(
var nameP: String? = null,
var ageP: String? = null
) : Parcelable
\ No newline at end of file
package com.yumeng.hibro.model
import java.io.Serializable
data class TestEventModels(
var name: String? = null,
var age: String? = null
) : Serializable
\ No newline at end of file
package com.yumeng.hibro.viewModel
import android.util.Log
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.viewModelScope
import com.yumeng.libbaseProject.service.ResponseModel.TestResponse
import com.yumeng.libbaseProject.service.repository.NewsDetailRepository
import com.yumeng.libcommon.utils.LogUtils
import com.yumeng.libcommonview.viewmodel.BaseViewModel
import com.yumeng.libcore.IResult
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
class MainViewModel :BaseViewModel(){
data class MainUiModel(
val showLoading: Boolean,
val showError: String?,
val showSuccess:List<TestResponse>?
)
private val _uiState = MutableLiveData<MainUiModel>()
val uiState: LiveData<MainUiModel>
get() = _uiState
private fun emitUiState(
showLoading: Boolean = false,
showError: String? = null,
showSuccess:List<TestResponse>?=null
) {
val uiModel =
MainUiModel(showLoading, showError, showSuccess)
_uiState.value = uiModel
}
private val repository by lazy { NewsDetailRepository() }
fun getTest() {
viewModelScope.launch {
withContext(Dispatchers.Main) {
emitUiState(showLoading = true)
}
val result = repository.getArticles("0")
withContext(Dispatchers.Main) {
if (result is IResult.Success) {
val data = result.data
if (data?.records?.size == 0) {
emitUiState(showError = "123123")
return@withContext
}
emitUiState(
showSuccess = data?.records
)
} else if (result is IResult.Error) {
LogUtils.e("test","result:${result.toString()}")
emitUiState(showError = result.exception.message)
}
}
}
}
}
\ No newline at end of file
<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:fillType="evenOdd"
android:pathData="M32,64C32,64 38.39,52.99 44.13,50.95C51.37,48.37 70.14,49.57 70.14,49.57L108.26,87.69L108,109.01L75.97,107.97L32,64Z"
android:strokeWidth="1"
android:strokeColor="#00000000">
<aapt:attr name="android:fillColor">
<gradient
android:endX="78.5885"
android:endY="90.9159"
android:startX="48.7653"
android:startY="61.0927"
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="M66.94,46.02L66.94,46.02C72.44,50.07 76,56.61 76,64L32,64C32,56.61 35.56,50.11 40.98,46.06L36.18,41.19C35.45,40.45 35.45,39.3 36.18,38.56C36.91,37.81 38.05,37.81 38.78,38.56L44.25,44.05C47.18,42.57 50.48,41.71 54,41.71C57.48,41.71 60.78,42.57 63.68,44.05L69.11,38.56C69.84,37.81 70.98,37.81 71.71,38.56C72.44,39.3 72.44,40.45 71.71,41.19L66.94,46.02ZM62.94,56.92C64.08,56.92 65,56.01 65,54.88C65,53.76 64.08,52.85 62.94,52.85C61.8,52.85 60.88,53.76 60.88,54.88C60.88,56.01 61.8,56.92 62.94,56.92ZM45.06,56.92C46.2,56.92 47.13,56.01 47.13,54.88C47.13,53.76 46.2,52.85 45.06,52.85C43.92,52.85 43,53.76 43,54.88C43,56.01 43.92,56.92 45.06,56.92Z"
android:strokeWidth="1"
android:strokeColor="#00000000" />
</vector>
<?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="#008577"
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>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/scan"
android:text="扫一扫"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/pick"
android:text="图片选取"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/pickDialog"
android:text="图片对话框"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/phonePick"
android:text="号码选择"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/editContent"
android:text="内容编辑"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/saveShareData"
android:text="share存"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/getShareData"
android:text="Share取"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/getNet"
android:text="网络请求"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/sendEvent"
android:text="EventBus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/jumpSecond"
android:text="跳转Second"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/jumpThree"
android:text="跳转Three"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/twoCheck"
android:text="Second"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/threeCheck"
android:text="Three"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
\ No newline at end of file
<?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" />
</adaptive-icon>
\ No newline at end of file
<?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" />
</adaptive-icon>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#008577</color>
<color name="colorPrimaryDark">#00574B</color>
<color name="colorAccent">#D81B60</color>
</resources>
<resources>
<string name="app_name">ProjectFrame</string>
</resources>
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
</resources>
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
ext.kotlin_version = '1.3.61'
ext.wmrouter_version = '1.2.0'
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.3'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "com.sankuai.waimai.router:plugin:$wmrouter_version"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
classpath 'com.hujiang.aspectjx:gradle-android-plugin-aspectjx:2.0.4'
}
}
allprojects {
repositories {
google()
jcenter()
maven { url "https://jitpack.io" }
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
ext {
//SDK
min_sdk_version = 21
target_sdk_version = 28
compile_sdk_version = 28
//版本
version_code = 1
version_name = "1.0.0"
//cloud 专用
junit_version = '4.12'
test_runner_version = '1.2.0-alpha03'
test_espresso_core_version = '3.2.0-alpha03'
retrofit_version = '2.4.0'
rx_java_version = '2.2.8'
rx_android_version = '2.1.1'
minify_enabled = true
zip_align_enabled = true
shrinking_enabled = true
val = [
lib_common : project(':lib_common'),//通用lib
lib_common_view : project(':lib_common_view'),//界面 和 一些view
lib_net : project(':lib_net'),//网络请求
lib_base : project(':lib_base'),//一些通用的Activity
lib_Autonomous : project(':lib_Autonomous'),//项目独有
lib_emoji : project(':lib_emoji'),
lib_websocket : project(':lib_websocket'),
kotlin_stdlib :"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version",//
androidxCoreKtx :'androidx.core:core-ktx:1.1.0',//
constraintlayout : "androidx.constraintlayout:constraintlayout:1.1.3",//
appcompat :'androidx.appcompat:appcompat:1.1.0',//
material : 'com.google.android.material:material:1.2.0-alpha02',//解决编译错误
circleimageview : 'de.hdodenhof:circleimageview:3.0.1',//圆形头像
smartRefreshLayoutCore : 'com.scwang.smart:refresh-layout-kernel:2.0.0-alpha-1', //核心必须依赖
smartRefreshLayoutHeader : 'com.scwang.smart:refresh-header-classics:2.0.0-alpha-1',//
XTabLayout : 'com.androidkun:XTabLayout:1.1.4',//Tab的效果
GSYVideoPlayer :'com.shuyu:GSYVideoPlayer:7.1.1',//视频播放器
materialishProgress :'com.pnikosis:materialish-progress:1.7',//加载Progress
glide : 'com.github.bumptech.glide:glide:4.10.0',//
glideCompiler :"com.github.bumptech.glide:compiler:4.10.0",//
glideAnnotations :"com.github.bumptech.glide:annotations:4.10.0",//
glideOkhttp3 :'com.github.bumptech.glide:okhttp3-integration:4.10.0',//
picasso :"com.squareup.picasso:picasso:2.71828",//图片加载
eventbus : 'org.greenrobot:eventbus:3.1.1',//eventBus
richtext : 'com.zzhoujay.richtext:richtext:3.0.8',//富文本
dialogsCore :'com.afollestad.material-dialogs:core:3.1.1',//Dialog
dialogsInput :'com.afollestad.material-dialogs:input:3.1.1',//Dialog
immersionbar :'com.gyf.immersionbar:immersionbar:3.0.0',//沉浸式状态导航栏
immersionbarComponents :'com.gyf.immersionbar:immersionbar-components:3.0.0',//
immersionbarKtx :'com.gyf.immersionbar:immersionbar-ktx:3.0.0',//
skeleton :'com.ethanhua:skeleton:1.1.2',//骨架加载预览
shimmerlayout : 'io.supercharge:shimmerlayout:2.1.0',//骨架加载预览
ExpandableTextView :'com.github.MZCretin:ExpandableTextView:v1.6.1',//展开可回收TextView
ucrop :'com.github.yalantis:ucrop:2.2.2',//图像裁剪
ktxCoroutinesCore :'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.2',//
loggingInterceptor :'com.squareup.okhttp3:logging-interceptor:3.10.0',//
retrofit :'com.squareup.retrofit2:retrofit:2.6.2',//
retrofitGson :'com.squareup.retrofit2:converter-gson:2.6.2',//
rxjava :"io.reactivex.rxjava2:rxjava:${rx_java_version}",//
rxjavaRxandroid :"io.reactivex.rxjava2:rxandroid:${rx_android_version}",//
retrofitConverters :"com.squareup.retrofit2:retrofit-converters:$retrofit_version",//
retrofitAdapter : "com.squareup.retrofit2:adapter-rxjava2:$retrofit_version",//
PersistentCookieJar : 'com.github.franmontiel:PersistentCookieJar:v1.0.1',//持久化cookie的方式
BaseRecyclerViewAdapterHelper:'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.47',//一个Adapter
fastjson :'com.alibaba:fastjson:1.2.59',//fastjson
litepalKtx :'org.litepal.android:kotlin:3.0.0',//litepal// 支持kotlin语言
// litepal :"org.litepal.android:core:2.0.0",//
PermissionsKt :'com.github.sembozdemir:PermissionsKt:1.0.0',//运行时权限,可能跟rxjava 重复
lifecycleViewMode :"androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0-rc02",//生命周期监听 viewMode
lifecycleExtensions : 'androidx.lifecycle:lifecycle-extensions:2.2.0-rc02',//生命周期监听
recyclerview : 'androidx.recyclerview:recyclerview:1.1.0-rc01',//
jpinyin : "com.github.SilenceDut:jpinyin:v1.0",//汉字转拼音的Java开源类库
PickerView :"com.contrarywind:Android-PickerView:4.1.7",//纵向选择view
wheelview :"com.contrarywind:wheelview:4.0.9",// 纵向选择view
skinSupport :'skin.support:skin-support:4.0.4',//换肤
skinAppCompat :'skin.support:skin-support-appcompat:4.0.4',//换肤
skinDesign :'skin.support:skin-support-design:4.0.4',//换肤
skinCardView :'skin.support:skin-support-cardview:4.0.4',//换肤
skinConstraintLayout : 'skin.support:skin-support-constraint-layout:4.0.4',//
imagezoom :"it.sephiroth.android.library.imagezoom:library:1.0.4",//ImageViewTouch 只支持图片放大和缩小位置不会变动
Zxing :"cn.bingoogolapple:bga-qrcode-zxing:1.3.6",// zxing 二维码
googleMapService :'com.google.android.gms:play-services-maps:17.0.0',//谷歌地图map
googleMapLocation :'com.google.android.gms:play-services-location:17.0.0',//谷歌地图定位
places : 'com.google.android.libraries.places:places:1.1.0',//谷歌地图place
stream :'com.annimon:stream:1.1.8',//数据列表的一些操作 for 过滤啊 mapto啊
badgeview :'cn.bingoogolapple:bga-badgeview-api:1.1.8',//
badgeviewCompiler :"cn.bingoogolapple:bga-badgeview-compiler:1.1.8",//
signalProtocol :'org.whispersystems:signal-protocol-android:2.7.0',//会话加密 应该是用于端对端加密
workRuntime :"androidx.work:work-runtime-ktx:2.0.0",//可以让异步循环变得很容易,即使app退出或者重新启动,这些任务仍会运行
androidXmultidex : 'androidx.multidex:multidex:2.0.1',//
webrtc : "org.webrtc:google-webrtc:1.0.30039",//webRtc
DragPhotoView : "com.github.githubwing:DragPhotoView:1.0.1",//高仿微信可拖拽返回的PhotoView 这个应该没用了
dragclosehelper : 'com.github.bauer-bao:dragclosehelper:0.0.9',//图片可拖拽
subsampling : 'com.davemorrissey.labs:subsampling-scale-image-view:3.10.0',//加载长图
WebSocket : 'org.java-websocket:Java-WebSocket:1.4.1'//webSoceket
// lib_cloud_storage: project(':lib_cloud_storage'),
// module_news: project(':module_news'),
]
}
# 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=-Xmx1536m
# 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
# Automatically convert third-party libraries to use AndroidX
android.enableJetifier=true
kotlin.code.style=official
isModule=false
apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
String devUrl = "192.168.1.236:22002/"// 测试url
String alphaUrl = "test.tlifang.com/news/app"// 发布测试使用
String gaUrl = "192.168.1.95:22002"// 正式环境
android {
compileSdkVersion compile_sdk_version
// sourceSets.main {
// jniLibs.srcDir 'libs'
// jni.srcDirs = [] //disable automatic ndk-build call
// res.srcDirs = ['src/main/res', 'src/main/res-blue']
// }
defaultConfig {
minSdkVersion min_sdk_version
targetSdkVersion target_sdk_version
versionCode version_code
versionName version_name
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles 'consumer-rules.pro'
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
targetCompatibility JavaVersion.VERSION_1_8
sourceCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = '1.8'
}
packagingOptions {
exclude 'META-INF/rxjava.properties'
}
flavorDimensions "versionCode"
productFlavors {
dev {
buildConfigField "String", "BASE_URL", "\"http://$devUrl/\""//
}
alpha {
buildConfigField "String", "BASE_URL", "\"https://$alphaUrl/\""
}
ga {
buildConfigField "String", "BASE_URL", "\"http://$gaUrl/\""
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
implementation "com.sankuai.waimai.router:router:${wmrouter_version}"
kapt "com.sankuai.waimai.router:compiler:${wmrouter_version}"
api val.lib_base
}
# 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
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.yumeng.libbaseProject">
<application
android:name=".application.MyApplication"
>
</application>
</manifest>
package com.yumeng.libbaseProject.Contants;
import android.Manifest;
import com.yumeng.libcommon.utils.FileUtil;
import com.yumeng.libcommon.utils.FileUtils;
import java.io.File;
/**
* Created by Administrator on 2018/3/21.
*/
public class Constants {
// public static final String FileUrl = BuildConfig.FileUrl;//文件正式
// public static final String BaseUrl = BuildConfig.BASE_URL;//基本正式
// public static final String GroupUrl = BuildConfig.GroupUrl;//群聊正式
// public static final String FriendUrl = BuildConfig.FriendUrl;//好友正式
// public static final String RTCUrl = BuildConfig.RTCUrl;//rtc push正式
// public static final String SOCKETUrl = BuildConfig.SOCKETUrl;//socket正式
// public static final String ChatUrl = BuildConfig.ChatUrl;//单聊正式
// public static final String MpushUrl = BuildConfig.MpushUrl;//mpush正式
// public static final String SINGLE_URL = BuildConfig.SINGLE_URL;
// public static final String GROUP_URL = BuildConfig.GROUP_URL;
// public static final String COMMON_SOCKET_URL = BuildConfig.COMMON_SOCKET_URL;
// public static final String FeedUrl = BuildConfig.FEED; // 动态
public static final String APP_FIRST_IN = "app_first_inf";
public static final String WEB_LOGIN = "web_login";
public static final String APP_USER_INFO = "app_user_info";
public static final String APPNAME = "tillo";
public static final String CHANNEL_ID = "hyphenate_chatuidemo_notification";
public static final String MUTE_CHANNEL_ID = "mute_yumeng_notification";
public static final String VIDEO_CHANNEL = "video_notification";
public static final String CONTACT_JSON = "contact_json";
// http://180.178.124.2:3333
public static final String ROOM_ID_LIST = "chatUserBean";
//EventBus 数据分发 标识
public static final String MESSAGE_EVENT_UPDATE_HEAD = "updateHead";//更新好友列表
public static final String MESSAGE_EVENT_HAS_MESSAGE = "updateMessage";//收到新消息
public static final String MESSAGE_EVENT_UPDATE_LOGIN_STATUS = "updateWebLoginStatus";//Web status
public static final String MESSAGE_EVENT_HAS_MESSAGE_LIST = "updateMessageList";//收到新消息
public static final String MESSAGE_EVENT_GROUP_HAS_MESSAGE = "updateMessage";//群收到新消息
public static final String MESSAGE_EVENT_OTHER_ALERT_GROUP_NAME = "otherAlertGroupName";//其他人修改群名称
public static final String MESSAGE_EVENT_UPDATE_GROUP_MANAGER = "updateGroupManager";//更新群管理
public static final String MESSAGE_EVENT_DELETE_MEMBER = "deleteMember";//删除群成员
public static final String MESSAGE_EVENT_UPDATE_MEMBER = "updateMember";//更新群成员
public static final String MESSAGE_EVENT_UPDATE_SILENCED = "updateSilenced";//更新禁言状态
public static final String MESSAGE_EVENT_ADD_NEW_MEMBER = "addNewMember";//添加新成员
public static final String MESSAGE_EVENT_MEMBER_LEAVE = "memberLeave";//群成员离开
public static final String MESSAGE_EVENT_FRIEND_AGREE = "agreeWithYou";//更新好友列表
public static final String MESSAGE_EVENT_NEW_FRIEND_REQUEST = "newFriendRequest";//新的好友请求
public static final String MESSAGE_EVENT_FRIEND_DOT_HIDE = "friendDotHide";//红点消失
public static final String MESSAGE_EVENT_UPDATE_GROUP = "updateGroupList";//更新群列表
public static final String MESSAGE_EVENT_UPDATE_GROUP_SESSION = "updateGroupSession";//更新群会话列表
public static final String MESSAGE_EVENT_INIT_CONVERSATION = "updateConversationList";//更新会话列表
public static final String MESSAGE_EVENT_UPDATE_PUSH_MESSAGE_STATUS = "toastSendMessage";//更新发消息状态
public static final String MESSAGE_EVENT_UPDATE_OFFLINE_MESSAGE = "updateSingleOfflineMessage";//更新离线消息
public static final String MESSAGE_EVENT_UPDATE_GROUP_OFFLINE_MESSAGE = "updateGroupOfflineMessage";//更新群离线消息
public static final String MESSAGE_EVENT_ALERT_GROUP_NAME = "alertGroupName";
public static final String MESSAGE_EVENT_UPDATE_CHAT_MESSAGE = "updateChatMessage";
public static final String MESSAGE_EVENT_CLEAR_OFFLINE = "clearOffline";//清除未读消息数
public static final String MESSAGE_EVENT_CLEAR_RECODER = "clearRecoder";//清除聊天记录
public static final String MESSAGE_EVENT_CLEAR_GROUP_RECODER = "clearGroupRecoder";//清除群记录
public static final String MESSAGE_EVENT_DISBAND_GROUP = "disband_group";//解散群
public static final String MESSAGE_EVENT_JOIN_VOICE = "joinVoice";//对方同意加入房间
public static final String MESSAGE_EVENT_RECONNECT = "reconnect";//重连
public static final String MESSAGE_EVENT_FINISH_VOICE = "finishVoice";//对方拒绝加入房间
public static final String MESSAGE_EVENT_FINISH_RTC = "finishVoiceRTC";//RTC情况下的单点登录
public static final String MESSAGE_EVENT_START_FLOATING_WINDOW = "startFloatingWindow";//启动悬浮窗
public static final String MESSAGE_EVENT_CANCEL_VOICE = "cancelFinishVoice";//对方拒绝加入房间
public static final String MESSAGE_EVENT_BUSY_VOICE = "busyFinishVoice";//对方繁忙
public static final String MESSAGE_UPDATE_FRIEND_NAME = "updateFriendName";//更新好友备注
public static final String MESSAGE_UPDATE_CONVERSATION = "updateConversation";//更新会话
public static final String MESSAGE_UPDATE_TMP_CHAT_BOX = "updateConversation";//更新会话
public static final String MESSAGE_UPDATE_CONVERSATION_REFRESH = "updateConversationRefresh";//更新会话是否开启刷新
public static final String MESSAGE_DELETE_CONVERSATION = "deleteConversation";//更新会话
public static final String MESSAGE_DOWNLOAD_COMPLETE = "download_complete";//下载完成
public static final String MESSAGE_DOWNLOAD_PROGRESS = "download_progress";//下载进度
public static final String MESSAGE_DOWNLOAD_COMPLETE_FAVORITE = "download_complete_favorite";//下载完成
public static final String MESSAGE_DOWNLOAD_FAIL = "download_fail";//下载失败
public static final String MESSAGE_DISCONNECT_ERROR = "disconnectError";//未连接到socket
public static final String MESSAGE_CONNECT_SUCCESS = "connectSuccess";//连接成功
public static final String MESSAGE_CONNECTING = "connecting";//连接中
public static final String MESSAGE_EVENT_GROUP_INVITE = "groupInvite";//邀请入群
public static final String MESSAGE_UPDATE_OFFLINE_MESSAGE = "updateOfflineMessage";//更新离线消息
public static final String MESSAGE_UPDATE_VIDEO_FAIL = "update_video_fail";//视频下载失败
public static final String MESSAGE_START_REFRESH = "messageStartRefresh";//开始刷新
public static final String MESSAGE_FINISH_REFRESH = "messageEndRefresh";//结束刷新
public static final String MESSAGE_GET_ROOM_ID = "getRoomId"; //获取roomId
public static final String MESSAGE_EVENT_RECOMMEND_LIST = "recommendList";//推荐联系人列表
public static final String MESSAGE_EVENT_RECOMMEND_UPLOAD_SUCCESS = "recommendUpLoadSuccess";//本地联系人上传成功
public static final String MESSAGE_EVENT_UPDATE_TMP_BOX = "deleteTmpListItem";//添加好友后要删除对应临时消息列表
public static final String TARGET_CHAT_FRAGMENT = "chatFragment";
public static final String TARGET_TMP_CHAT_BOX_ACTIVITY = "TmpChatBoxActivity";
public static final String TARGET_INDEX_ACTIVITY = "indexActivity";
public static final String TARGET_VERIFY_INFO_ACTIVITY = "VerifyInfoActivity";
public static final String TARGET_GROUP_FRAGMENT = "groupFragment";
public static final String UPLOAD_TAG = "UPLOAD_TAG";
public static final String DOWNLOAD_TAG = "DOWNLOAD_TAG";
public static final String TARGET_CHAT_ACTIVITY = "chatActivity";
public static final String TARGET_UPDATE_FRIEND = "friendActivity";
public static final String TARGET_VIDEO_ACTIVITY = "videoActivity";
public static final String TARGET_GROUP_CHAT_ACTIVITY = "GroupChatActivity";
public static final String TARGET_VIDEO_VIEW_ACTIVITY = "VideoViewActivity";
public static final String TARGET_FAVORITE_IMAGE_ACTIVITY = "FavoriteImgActivity";
public static final String TARGET_FAVORITE_VIDEO_ACTIVITY = "FavoriteVideoActivity";
public static final String TARGET_FILE_OPEN_ACTIVITY = "FileOpenActivity";
public static final String TARGET_GROUP_SETTING_ACTIVITY = "GroupSettingActivity";
public static final String TARGET_MAIN_ACTIVITY = "mainActivity";
public static final String TARGET_FORWARD_ACTIVITY = "forwardActivity";
public static final String TARGET_POST_TREND_ACTIVITY = "PostTrendsActivity";
public static final String TARGET_PREVIEW_TRENDS_IMAGE_ACTIVITY = "PreviewTrendsImageActivity";
public static final String TARGET_TRENDS_REPLY_INPUT_FRAGMENT = "trendsReplyInputFragment";
public static final String TARGET_TRENDS_MORE_ACTION_FRAGMENT = "trendsMoreActionFragment";
public static final String TARGET_TRENDS_TIME_LINE_FRAGMENT = "trendsTimeLineFragment";
public static final String TARGET_RECOMMEND_ACTIVITY = "ReCommendActivity";
public static final String TARGET_TMP_CHAT_BOX = "tmp_chat_box";
public static final String[] MANDATORY_PERMISSIONS = {Manifest.permission.MODIFY_AUDIO_SETTINGS,
Manifest.permission.RECORD_AUDIO, Manifest.permission.CAMERA};
public static final String[] AUDIO_PERMISSIONS = {Manifest.permission.MODIFY_AUDIO_SETTINGS,
Manifest.permission.RECORD_AUDIO, Manifest.permission.CAMERA};
public static final String[] WRITE_READ = {Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE};
public static final long[] VIBRATION_PATTERN = new long[]{0, 180, 80, 120};
/**
* 接口地址
*/
//获取短信验证码
public static final String getSMS = "/getSmsCode";
public static final String rebind = "/rebind";
//注册
public static final String register = "/register";
//登陆
public static final String login = "/login";
//退出登陆
public static final String logout = "/logout";
//获取用户信息
public static final String getUserInfo = "/getUserInfo";
//修改用户信息
public static final String alertUserInfo = "/api/user/info";
//上传头像
public static final String uploadImage = "/api/user/avatar/upload";
//忘记密码
public static final String forgetPassword = "/forget";
//投诉好友
public static final String complaintFriend = "/complaintFriend";
//问题反馈
public static final String feedback = "/feedback";
//获取黑名单列表
public static final String getBlackList = "/blacklist";
//更新黑名单状态
public static final String updateBlackList = "/blacklist/status";
//拉取房间设置列表
public static final String getRoomSetting = "/room/setting-list";
//删除好友请求
public static final String friendRequest = "/friendRequest";
//拒绝登录
public static final String qrLoginReject = "/appScanQrLoginReject";
//扫码成功
public static final String qrScan = "/qrScanSucceed";
//扫码登录
public static final String qrLoginAgree = "/appScanQrLoginAgree";
//检测网页版用户登录状态
public static final String checkUserLoginStatus = "/checkWebLoginStatus";
//web强制下线
public static final String webLoginExit = "/webLoginExit";
/**
* 聊天接口
*/
public static final String searchUser = "/searchFriend?";
//修改ID
public static final String uid = "/uid?";
public static final String searchFriendV1214 = "/searchFriendV1214";
public static final String encryptGroupPush = "/encryptGroupPush";
//解散群
public static final String dissolved = "/dissolved";
//发送添加好友请求
public static final String addFriendRequest = "/addFriend";
//拉取好友请求列表
public static final String getFriendRequest = "/searchRequest?";
//操作好友请求
public static final String passFriendRequest = "/passFriend";
//获取用户隐私
public static final String privacySetting = "/privacy-setting";
//获取好友列表
public static final String getFriendList = "/friends";
//修改好友备注
public static final String alertRemark = "/updateFriend";
//下载音频文件
public static final String downloadFile = "/getFile";
//修改个人资料
public static final String alertPersonInfo = "/updateInfo";
//创建群
public static final String createGroup = "/createGroup";
//获取管理员列表
public static final String managerGroup = "/group-member/admin-list/";
//获取群成员禁言名单
public static final String membersMutes = "/group-operate/forbid-list/";
//添加管理员
public static final String postManagerGroup = "/group-member/admin-add";
//群禁言操作
public static final String postMembersMutes = "/group-operate/forbid-setting";
//移除管理员
public static final String deleteManagerGroup = "/group-member/admin-remove";
//获取成员列表
public static final String getMemberList = "/getGroupMember";
//添加群成员
public static final String addGroupMember = "/addGroupMember";
//修改群名称
public static final String alertGroupName = "/updateGroupName";
//拉取会话列表
public static final String getChatSessionList = "/getOfflineSession";
public static final String getOfflineMessageListV129 = "/getOfflineMsgV129";
//同步自己发送的离线记录
public static final String appGetMySendOffline = "/appMySendOffline";
//获取群离线消息
public static final String getGroupOfflineMessageListV129 = "/pullGroupMsgV129";
//删除联系人
public static final String deleteLinkman = "/deleteFriend";
//删除群成员
public static final String deleteGroupMember = "/delGroupMember";
//退群
public static final String quitGroup = "/exitGroup";
//保存设备token
public static final String saveDeviceToken = "/saveDeviceToken";
//获取群列表
public static final String getGroupList = "/getGroupList";
//获取好友信息
public static final String getFriendInfo = "/friendInfo";
//房间 置顶、免打扰设置
public static final String roomSetting = "/room/setting";
//获取未读好友
public static final String readFlag = "/request/flag";
//修改群头像
public static final String updateGroupAvatar = "/updateGroupAvatar";
//批量获取群内用户公钥
public static final String getGroupUserKeys = "/getGroupUserKeys";
//获取最新版本
public static final String newVersion = "/newVersion";
//查看发起人是否还在发起中
public static final String initiating = "/initiating";
//RTC push
public static final String RTC_PUSH = "/push";
//对方
public static final String HangUp = "/hang";
//获取群二维码接口
public static final String getGroupQRCode = "/group/qrcode";
//保存密钥接口
public static final String saveUserPublicKey = "/saveUserPublicKey";
//补充一次性公钥
public static final String incrementOneTimeKey = "/incrementOneTimeKey";
//预发起加密聊天
public static final String beforeEndToEndChat = "/beforeEndToEndChat";
//查询一次性公钥的剩余数量
public static final String getOneTimeKeyCount = "/getOneTimeKeyCount";
//修改群昵称
public static final String updateName = "/updateName";
//群聊邀请开关
public static final String inviteSwitch = "/group/invite/switch";
//群主转让
public static final String transferGroup = "/transferGroup";
//查看群信息
public static final String groupInfo = "/groupInfo";
//通知开关
public static final String Notice = "/notice";
//新版本上传单文件
public static final String uploadSingleFile = "/uploadSingleFile";
//新版本上传图片
public static final String uploadImageFile = "/uploadImageFile";
//新版本上传媒体文件
public static final String uploadMediaFile = "/uploadMediaFile";
//新版本下载接口
public static final String download = "/download";
//云存储删除接口
public static final String delete = "/operation/delete";
//新版本获取自定义图片接口
public static final String getCustomImage = "/getCustomImage";
//消息回执
public static final String msgAck = "/msgAck";
//消息回执
public static final String msgAckV129 = "/msgAckV129";
//我的所有收藏
public static final String chatFavorite = "/chatFavoriteV1211";
//设置群不可互加好友
public static final String settingForbidAdd = "/roomInfo/settingForbidAdd";
//获取目录文章
public static final String article = "/article";
//备份数据上传接口
public static final String backUp="/chat-backup";
//动态相关
public static final String info = "/info";
//查询时间轴
public static final String timeline = "/info/timeline";
//相册
public static final String photos = "/info/photos";
//查询feedinfo
public static final String detail = "/info/detail";
//动态可见性设置
public static final String setPrivate = "/info/visible";
//点赞
public static final String like = "/info/like";
//回复相关
public static final String comment = "/info/comment";
//获取置顶
public static final String commentOverHear = "/info/comment/overheadComment";
//评论相关
public static final String commentReply = "/info/comment/reply";
//获取我的通知列表
public static final String notification = "/info/notification";
//清空通知列表
public static final String notificationClearList = "/info/notification/list";
//清空通知列表
public static final String notificationUnread = "/info/notification/unread";
//清空通知列表
public static final String publicInfo = "/public/info";
public static final String VIDEO_TYPE = "video";
public static final String AUDIO_TYPE = "audio";
public static final String LANGUAGE_TYPE = "language";
public static final String IGNORING_BATTERY = "ignoring_battery";
public static final String START_PERMISSION = "start_permission";
public static final String DOWNLOAD_FILE_TAG = "download_file_tag";
public static final String FILE_PATH = FileUtils.getSDPath() + File.separator + "Aillo" + File.separator + "download" + File.separator;
public static final String MEDIA_FILE_PATH = FileUtils.getSDPath() + File.separator + "Aillo" + File.separator + "Media" + File.separator;
public static final String GLIDE_FILE_PATH = FileUtils.getSDPath() + File.separator + "Aillo" + File.separator + "Media" + File.separator + ".com.yumeng.aillo" + File.separator;
public static final String BACK_UP_BASE_PATH = FileUtils.getSDPath() + File.separator + "Aillo" + File.separator + ".BackUp";
public static final String BACK_UP_FILE_PATH = BACK_UP_BASE_PATH + File.separator+".backUp"+File.separator;
public static final String IMAGE_FILE_PATH = MEDIA_FILE_PATH + ".Aillo";
public static final String IMAGE_FILE_ALBUM_PATH = MEDIA_FILE_PATH + "Aillo";//可见的图片保存地址
public static final String SENT_IMAGE_FILE_PATH = MEDIA_FILE_PATH + ".Aillo" + File.separator + ".Sent";
public static final String AUDIO_FILE_PATH = MEDIA_FILE_PATH + ".Aillo Audio";
public static final String DOCUMENT_FILE_PATH = MEDIA_FILE_PATH + ".Aillo Documents";
public static final String DOCUMENT_FILE_ALBUM_PATH = MEDIA_FILE_PATH + "Aillo Documents";//可见的文件保存地址
public static final String SENT_DOCUMENT_FILE_PATH = MEDIA_FILE_PATH + ".Aillo Documents" + File.separator + ".Sent";
public static final String VIDEO_FILE_PATH = MEDIA_FILE_PATH + ".Aillo Video";
public static final String VIDEO_FILE_ALBUM_PATH = MEDIA_FILE_PATH + "Aillo Video";//可见的视频保存地址
public static final String SENT_VIDEO_FILE_PATH = MEDIA_FILE_PATH + ".Aillo Video" + File.separator + ".Sent";
public static final String CHECK_INIT = "check_init";
public static final String CHECK_INIT_REGISTER = "first_register";
public static final String BASE_IMAGE_URL = "https://file.aillo.cc/file/reduceImage?id=";
public static final long VERIFICATION_DURATION = 60000;
public static final long VERIFICATION_DURATION_INTERVAL = 1000;
public static final String SINGLE_CHAT = "single";
public static final String HISTORY_TYPE = "type";
public static final String HISTORY_MESSAGE = "message";
public static final String AUTHORIZATION = "Authorization";
public static final String HISTORY_KEYWORDS = "keywords";
public static final String FRIEND_INFO_KEY = "friendInfoList";
public static final String IS_CLEAR_RECORD = "is_clear_record";
public static final String MESSAGE_LIST_KEY = "messageList";
public static final String GROUP_INFO_KEY = "groupInfoList";
public static final String HOME_FLOAT_PERMISSION = "homeFloatPermission";
public static final String CHAT_DRAFT = "chatDraft";
public static final String RESULT_KEY = "result";
public static final String SINGLE = "singleChat";
public static final String STRANGER = "stranger";
public static final String GROUP = "groupChat";
public static final String ISTMP = "isTmp";
public static final String QR_CODE_FIRST_GET = "qr_code_first_get";
public static final String CHAT_DRAFT_LIST = "chatDraftList";
public static final String ROOM_ID_KEY = "roomId";
public static final int TOKEN_EXPIRED_STATUS = 401;
public static final int BANNED_STATUS = -10005;
public static final int HOME_FLOAT_PERMISSION_CODE = 1006;
public static final int OTHER_LOGIN_STATUS = -10000;
// public static final String NOTIFICATION_ALL_TOGGLE = "notificationAllToggle_" + AppSharePre.getId();
// public static final String NOTIFICATION_RTC_TOGGLE = "notificationRtcToggle_" + AppSharePre.getId();
// public static final String NOTIFICATION_CONVERSATION_TOGGLE = "notificationConversationToggle_" + AppSharePre.getId();
public static final String PUSH_PUBLIC_KEY = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC/V/CXu9bNjIuOYi9jRw2Jn8x59caK4W0TqB5usmIkN0w9GJlOkjTZl6ED+YycZ/+1yzIqF33ES7QfWiY7PgxJYkETEk5WBzh5mQ6zd1Byw6ctMcZJmCDWkDSLC1Y3fx0EkSRJdDeUyUpSXrw9eC4wj0ryVpSQVW0ovLcYvSqxSQIDAQAB";
public static final int DELETE_FRIEND_CODE = 3002;//对方删除你好友
public static final int BLACK_LIST_CODE = -10001;//黑名单
public static final int FORBID_SPEAK_CODE = -10009;//禁言
public static final int END_TO_END_CODE = 9998;//端对端加密
public static final int GROUP_BAN_CODE = 30002;//封禁
public static final int COMMENT_HAS_DELETE = 7001;//评论已删除
public static final String INSERT_TREND ="insertTrend";
public static final String INSERT_REPLY ="insertReply";
public static final String INSERT_SUB_REPLY ="insertSubReply";
public static final String UPDATE_LIKE ="updateLike";
public static final String UPDATE_COMMENT_NUM ="updateCommentNum";
public static final String DELETE_TREND ="deleteTrend";
public static final String UPDATE_PRIVACY_TYPE ="unpdatePrivacyType";
public static final String TMP_STORAGE = "tmpStorage";
public static final String REFRESH = "refresh";
public static final String LOADMORE = "loadMore";
}
package com.yumeng.libbaseProject.activity
import android.content.DialogInterface
import android.content.Intent
import android.net.Uri
import android.os.Bundle
import android.provider.Settings
import androidx.appcompat.app.AlertDialog
import androidx.core.content.ContextCompat
import androidx.lifecycle.LifecycleObserver
import androidx.lifecycle.Observer
import androidx.lifecycle.ViewModelProvider
import com.yumeng.libbase.helper.DialogHelper
import com.yumeng.libbaseProject.Contants.Constants
import com.yumeng.libbaseProject.R
import com.yumeng.libbaseProject.eventBus.MessageChatEvent
import com.yumeng.libcommon.helper.Preference
import com.yumeng.libcommon.utils.OSUtils
import com.yumeng.libcommonview.activity.CommonToolbarActivity
import com.yumeng.libcommonview.base.BaseVMActivity
import com.yumeng.libcommonview.viewmodel.BaseViewModel
import org.greenrobot.eventbus.EventBus
//
abstract class BaseImVMActivity<VM : BaseViewModel> : BaseVMActivity<VM>() {
private var alertDialog: AlertDialog? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
OSUtils.isFloatPermission(this)
}
override fun onPause() {
super.onPause()
if (alertDialog != null && alertDialog!!.isShowing) {
alertDialog!!.dismiss()
}
}
override fun onStart() {
super.onStart()
//TODO
// AccountHelper.reconnection()
// CommonInterface.checkInitiating(this, AppSharePre.getPersonalInfo(), false, null)
}
override fun onResume() {
super.onResume()
var isFloating by Preference(Constants.HOME_FLOAT_PERMISSION,false)
if (isFloating) {
isFloating = false
if (OSUtils.isFloatPermission(this)) {
EventBus.getDefault().post(MessageChatEvent(Constants.TARGET_VIDEO_ACTIVITY, Constants.MESSAGE_EVENT_START_FLOATING_WINDOW))
} else {
showPermissionDialog()
}
}
}
private fun showPermissionDialog() {
//TODO
// alertDialog = DialogHelper.showSimpleDialog(this, getString(R.string.you_cant_minimize_a_video_call_as_authorized), getString(R.string.enable), DialogInterface.OnClickListener{ dialog, which -> startActivityForResult(
// Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION, Uri.parse("package:$packageName")), Constants.HOME_FLOAT_PERMISSION_CODE) })
// alertDialog?.show()
}
override fun onNewIntent(intent: Intent) {
super.onNewIntent(intent)
val isHome = intent.getBooleanExtra(Constants.HOME_FLOAT_PERMISSION, false)
if (isHome) {
showPermissionDialog()
}
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == Constants.HOME_FLOAT_PERMISSION_CODE) {
if (OSUtils.isFloatPermission(this)) {
EventBus.getDefault().post(MessageChatEvent(Constants.TARGET_VIDEO_ACTIVITY, Constants.MESSAGE_EVENT_START_FLOATING_WINDOW))
}
}
}
override fun onDestroy() {
mViewModel.let {
lifecycle.removeObserver(it)
}
super.onDestroy()
}
}
\ No newline at end of file
package com.yumeng.libbaseProject.application
import android.content.Context
import android.provider.Settings
import android.util.Log
import com.danikula.videocache.HttpProxyCacheServer
import com.vanniktech.emoji.EmojiManager
import com.vanniktech.emoji.ios.IosEmojiProvider
import com.yumeng.libbaseProject.model.UserInfo
import com.yumeng.libbaseProject.router.RouterManger
import com.yumeng.libcommon.helper.Preference
import com.yumeng.libcommon.utils.LogUtils
import com.yumeng.libcommon.utils.MyActivityLifeCycleCallbacks
import com.yumeng.libcommonview.theme.Theme
import org.litepal.LitePal.use
import org.litepal.LitePalDB
import skin.support.SkinCompatManager
import skin.support.app.SkinAppCompatViewInflater
import skin.support.app.SkinCardViewInflater
import skin.support.constraint.app.SkinConstraintViewInflater
import skin.support.design.app.SkinMaterialViewInflater
import kotlin.properties.Delegates
open class MyApplication : BaseApplication() {
companion object {
var CONTEXT: Context by Delegates.notNull()
var CURRENT_USER: UserInfo? = null
var instance: MyApplication? = null
fun isForeground(): Boolean {
return MyActivityLifeCycleCallbacks.isApplicationInForeground()
}
fun isLogin(context: Context, toDo: () -> Unit) {
val userInfo by Preference(
Preference.USER_JSON,
""
)
Log.e("UserInfo", "${userInfo.toString()}")
if (!userInfo.isNullOrEmpty()) {
toDo()
} else {
RouterManger.startLoginActivity(context)
}
}
fun isLogin(): Boolean {
val userInfo by Preference(
Preference.USER_JSON,
""
)
return !userInfo.isNullOrEmpty()
}
}
override fun onCreate() {
super.onCreate()
instance = this
CONTEXT = this
initSkin()
registerNetWorkChangedReceiver()
// if (CURRENT_USER != null && !existMainActivity())
// initDataBase(CURRENT_USER?.getId())
// notifier = EaseNotifier(this)
setMessageChannel(0)
setMuteChannel()
listenForScreenTurningOff()
EmojiManager.install(IosEmojiProvider())
}
//初始化数据库
fun initDataBase(dbName: String?) {
val litePalDB = LitePalDB.fromDefault(dbName)
use(litePalDB)
}
//手机开屏
private fun listenForScreenTurningOff() {
// val screenStateFilter = IntentFilter(Intent.ACTION_SCREEN_ON)
// registerReceiver(object : BroadcastReceiver() {
// override fun onReceive(context: Context, intent: Intent) {
// if (intent.action != null && intent.action == Intent.ACTION_SCREEN_ON) {
// val activity: Activity = MyApplication.getCurrentActivity()
// if (activity !is LoginActivity) {
// notifyForeground()
// }
// }
// }
// }, screenStateFilter)
}
private fun initSkin() {
Theme.Companion.init(this)
SkinCompatManager.withoutActivity(this)
.addInflater(SkinAppCompatViewInflater()) // 基础控件换肤
.addInflater(SkinMaterialViewInflater()) // material design
.addInflater(SkinConstraintViewInflater()) // ConstraintLayout
.addInflater(SkinCardViewInflater()) // CardView v7
.setSkinStatusBarColorEnable(true) // 关闭状态栏换肤
// .setSkinWindowBackgroundEnable(false) // 关闭windowBackground换肤
// .setSkinAllActivityEnable(false) // true: 默认所有的Activity都换肤; false: 只有实现SkinCompatSupportable接口的Activity换肤
.loadSkin()
}
//注册网络监听广播
fun registerNetWorkChangedReceiver() {
// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { //实例化IntentFilter对象
// val filter = IntentFilter()
// filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION)
// mPushReceiver = MPushReceiver()
// //注册广播接收
// registerReceiver(mPushReceiver, filter)
// }
}
private fun notifyForeground() { // 前台
// AccountHelper.INSTANCE.reconnection()
}
fun bindUser() {
// if (!TextUtils.isEmpty(CURRENT_USER?.getId())) {
// MPush.I.bindAccount(CURRENT_USER?.getId(), "mpush:" + (Math.random() * 10).toInt())
// }
}
fun startPush() {
// userInfo = AppSharePre.getPersonalInfo()
// if (userInfo != null) {
// initPush(CURRENT_USER?.getId())
// MPush.I.checkInit(this).startPush()
// bindUser()
// }
}
/**
* mPush相关
*/
fun initPush(userId: String?) { //公钥有服务端提供和私钥对应
// val cc: ClientConfig = ClientConfig.build()
// .setPublicKey(Constants.PUSH_PUBLIC_KEY)
// .setAllotServer(Constants.MpushUrl)
// .setDeviceId(getDeviceId())
// .setClientVersion(BuildConfig.VERSION_NAME)
// .setEnableHttpProxy(true)
// .setUserId(userId)
// MPush.I.checkInit(applicationContext).setClientConfig(cc)
}
private fun getDeviceId(): String? {
val ANDROID_ID = Settings.System.getString(
contentResolver,
Settings.Secure.ANDROID_ID
)
LogUtils.e("TAG_deviceId", ANDROID_ID)
return ANDROID_ID
}
//设置消息渠道 type:0为普通消息渠道 1为rtc渠道
fun setMessageChannel(type: Int) {
// val notificationManager =
// MyApplication.context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
// if (Build.VERSION.SDK_INT >= 26) { // Create the notification channel for Android 8.0
// @SuppressLint("WrongConstant") val channel = NotificationChannel(
// if (type == 0) Constants.CHANNEL_ID else Constants.VIDEO_CHANNEL,
// if (type == 0) getString(R.string.message_channel) else getString(R.string.video_channel),
// NotificationManager.IMPORTANCE_HIGH
// )
// channel.vibrationPattern = Constants.VIBRATION_PATTERN
// channel.lockscreenVisibility = Notification.VISIBILITY_PUBLIC
// if (type == 1) {
// channel.setSound(
// Uri.parse("android.resource://" + this.packageName.toString() + "/" + R.raw.ic_incoming_telegram),
// Notification.AUDIO_ATTRIBUTES_DEFAULT
// )
// }
// notificationManager.createNotificationChannel(channel)
// }
}
//设置静音渠道
fun setMuteChannel() {
// val notificationManager =
// MyApplication.context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
// if (Build.VERSION.SDK_INT >= 26) { // Create the notification channel for Android 8.0
// @SuppressLint("WrongConstant") val channel = NotificationChannel(
// Constants.MUTE_CHANNEL_ID
// , getString(R.string.silent_channel), NotificationManager.IMPORTANCE_LOW
// )
// channel.vibrationPattern = Constants.VIBRATION_PATTERN
// channel.lockscreenVisibility = Notification.VISIBILITY_PUBLIC
// channel.setSound(null, null)
// notificationManager.createNotificationChannel(channel)
// }
}
private var proxy: HttpProxyCacheServer? = null
fun getProxy(context: Context): HttpProxyCacheServer? {
val app = context.applicationContext as MyApplication
return if (app.proxy == null) app.newProxy().also { app.proxy = it } else app.proxy
}
private fun newProxy(): HttpProxyCacheServer {
return HttpProxyCacheServer(this)
}
}
\ No newline at end of file
package com.yumeng.libbaseProject.eventBus
import com.yumeng.libcommon.event.MessageEvent
//如果需要 自定义一些自己的参数 可以这么写
//但是 在 onMessageEvent 一定要把 MessageEvent 转成 自定义的Model
// val message = event as MessageChatEvent
class MessageChatEvent : MessageEvent {
var target: String? = null//接收对象
var behavior: String? = null//行为
var includeMe: Boolean? = false
var leaveUser: Long? = 0
var groupName: String? = null
var roomId: String? = null
var num: Int? = 0//离线消息数
constructor(target: String?, behavior: String?) {
this.target = target
this.behavior = behavior
}
constructor(target: String?, behavior: String?, includeMe: Boolean?) {
this.target = target
this.behavior = behavior
this.includeMe = includeMe
}
constructor(target: String?, behavior: String?, leaveUser: Long?) {
this.target = target
this.behavior = behavior
this.leaveUser = leaveUser
}
constructor(target: String?, behavior: String?, groupName: String?, roomId: String?) {
this.target = target
this.behavior = behavior
this.groupName = groupName
this.roomId = roomId
}
constructor(target: String?, behavior: String?, num: Int?, roomId: String?) {
this.target = target
this.behavior = behavior
this.roomId = roomId
this.num = num
}
}
\ No newline at end of file
package com.yumeng.libbaseProject.ext
import com.yumeng.libbaseProject.utils.DataUtils
fun Long.toMessageDate():String{
return DataUtils.formatTimeBase(this)
}
\ No newline at end of file
package com.yumeng.libbaseProject.helper.measure
import android.view.View
import com.yumeng.libcommon.context.AppContextWrapper
import com.yumeng.libcommon.helper.DensityHelper
import com.yumeng.libcommon.utils.ScreenUtils
object MeasureHelper {
fun calculatePopWindowPos(anchorView: View?, contentView: View?): IntArray {
val windowPos = IntArray(2)
val anchorLoc = IntArray(2)
// 获取锚点View在屏幕上的左上角坐标位置
anchorView?.getLocationOnScreen(anchorLoc)
val screenWidth = ScreenUtils.getScreenWidthPoint(contentView?.context)
contentView?.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED)
// 计算contentView的高宽
val windowHeight = contentView?.measuredHeight
val windowWidth = contentView?.measuredWidth
// 判断需要向上弹出还是向下弹出显示
windowPos[0] = screenWidth - windowWidth!!
windowPos[1] = anchorLoc[1] - windowHeight!!
return windowPos
}
fun calculatePopWindowPos2(anchorView: View?, contentView: View?): IntArray {
val windowPos = IntArray(2)
val anchorLoc = IntArray(2)
// 获取锚点View在屏幕上的左上角坐标位置
anchorView?.getLocationOnScreen(anchorLoc)
val anchorHeight = anchorView?.height?:0
// 获取屏幕的高宽
val screenHeight = ScreenUtils.getScreenHeightPoint(contentView?.context)
val screenWidth = ScreenUtils.getScreenWidthPoint(contentView?.context)
contentView?.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED)
// 计算contentView的高宽
val windowHeight = contentView?.measuredHeight
val windowWidth = contentView?.measuredWidth
// 判断需要向上弹出还是向下弹出显示
val isNeedShowUp = screenHeight - anchorLoc[1] - anchorHeight < windowHeight ?: 0
if (isNeedShowUp) {
windowPos[0] = screenWidth - windowWidth!!
windowPos[1] = anchorLoc[1] - windowHeight!!
} else {
windowPos[0] = screenWidth - windowWidth!!
windowPos[1] = anchorLoc[1] + anchorHeight
}
return windowPos
}
fun getImageLayoutParams(width: Int, height: Int): MeasureModel {
val mContext = AppContextWrapper.getApplicationContext()
var measuredWidth = width.toDouble()
var measuredHeight = height.toDouble()
val minWidth =
DensityHelper.dp2px(mContext, 80f)
val maxWidth =
DensityHelper.dp2px(mContext, 180f)
val minHeight =
DensityHelper.dp2px(mContext, 80f)
val maxHeight =
DensityHelper.dp2px(mContext, 180f)
val widthInBounds = measuredWidth >= minWidth && measuredWidth <= maxWidth
val heightInBounds = measuredHeight >= minHeight && measuredHeight <= maxHeight
if (!widthInBounds || !heightInBounds) {
val minWidthRatio = measuredWidth / minWidth
val maxWidthRatio = measuredWidth / maxWidth
val minHeightRatio = measuredHeight / minHeight
val maxHeightRatio = measuredHeight / maxHeight
if (maxWidthRatio > 1 || maxHeightRatio > 1) {
if (maxWidthRatio >= maxHeightRatio) {
measuredWidth /= maxWidthRatio
measuredHeight /= maxWidthRatio
} else {
measuredWidth /= maxHeightRatio
measuredHeight /= maxHeightRatio
}
measuredWidth = Math.max(measuredWidth, minWidth.toDouble())
measuredHeight = Math.max(measuredHeight, minHeight.toDouble())
} else if (minWidthRatio < 1 || minHeightRatio < 1) {
if (minWidthRatio <= minHeightRatio) {
measuredWidth /= minWidthRatio
measuredHeight /= minWidthRatio
} else {
measuredWidth /= minHeightRatio
measuredHeight /= minHeightRatio
}
measuredWidth = Math.min(measuredWidth, maxWidth.toDouble())
measuredHeight = Math.min(measuredHeight, maxHeight.toDouble())
}
}
val measureModel = MeasureModel()
measureModel.width = measuredWidth.toInt()
measureModel.height = measuredHeight.toInt()
return measureModel
}
}
\ No newline at end of file
package com.yumeng.libbaseProject.helper.measure;
import com.google.gson.annotations.Expose;
import java.io.Serializable;
public class MeasureModel implements Serializable {
private int width;
private int height;
private String frameUrl;
private int status;//1成功 2失败
@Expose(serialize = false, deserialize = false)
private long duration;
public long getDuration() {
return duration;
}
public void setDuration(long duration) {
this.duration = duration;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public int getWidth() {
return width;
}
public void setWidth(int width) {
this.width = width;
}
public int getHeight() {
return height;
}
public void setHeight(int height) {
this.height = height;
}
public String getFrameUrl() {
return frameUrl;
}
public void setFrameUrl(String frameUrl) {
this.frameUrl = frameUrl;
}
public boolean isScale() {
return (float)height / width > 3;
}
}
package com.yumeng.libbaseProject.listener;
/**
* Created by YoKey on 16/10/9.
*/
public interface IndexableEntity {
String getFieldIndexBy();
void setFieldIndexBy(String indexField);
void setFieldPinyinIndexBy(String pinyin);
}
package com.yumeng.libbaseProject.manager;
import android.content.Context;
import android.os.SystemClock;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Chronometer;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.yumeng.libbaseProject.R;
import com.yumeng.libbaseProject.helper.measure.MeasureHelper;
import com.yumeng.libcommon.utils.ViewUtils;
import com.yumeng.libcommonview.theme.Theme;
import com.yumeng.libcommonview.view.CommonPopupWindow;
import com.yumeng.libcommonview.view.recordWaveView.RecordWaveView;
public class DialogManager {
private CommonPopupWindow window;
private Context mContext;
private RecordWaveView recordWaveView;
private Chronometer time;
private TextView tvTips;
private View anchor;
private LinearLayout llBg;
public DialogManager(Context context) {
mContext = context;
}
public void setAnchor(View anchor) {
this.anchor = anchor;
window = new CommonPopupWindow(mContext, R.layout.dialog_audio, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT) {
@Override
protected void initView() {
View view = getContentView();
recordWaveView = ViewUtils.findViewsById(view, R.id.recordWaveView);
time = ViewUtils.findViewsById(view, R.id.time);
tvTips = ViewUtils.findViewsById(view, R.id.tips);
llBg = ViewUtils.findViewsById(view, R.id.llBg);
}
@Override
protected void initEvent() {
}
};
}
public void showRecordingDialog() {
recordWaveView.setNormalData();
setBasicColor();
int windowsPos[] = MeasureHelper.INSTANCE.calculatePopWindowPos(anchor,window.getContentView());
window.showAtLocation(anchor, Gravity.NO_GRAVITY, windowsPos[0], windowsPos[1]);
time.setBase(SystemClock.elapsedRealtime());
time.start();
}
public void dimissDialog() {
window.getPopupWindow().dismiss();
recordWaveView.stop();
}
public void setVolume(int volume) {
// vlVoice.setVolume(volume);
recordWaveView.setVolume(volume);
}
public void stopTime() {
time.stop();
}
public Chronometer getTime() {
return time;
}
public void updateTips(String tips) {
tvTips.setText(tips);
}
public void setBgSelector(boolean selector){
llBg.setSelected(selector);
if(selector){
recordWaveView.setmWaveColor(mContext.getResources().getColor(R.color.white));
time.setTextColor(mContext.getResources().getColor(R.color.white));
}else{
setBasicColor();
}
}
private void setBasicColor() {
time.setTextColor(Theme.Companion.getThemeColor());
recordWaveView.setmWaveColor(Theme.Companion.getThemeColor());
// switch (Theme.Companion.getThemePosition()){
// case 1:
// time.setTextColor(mContext.getResources().getColor(R.color.basic_theme_colors_blue));
// recordWaveView.setmWaveColor(mContext.getResources().getColor(R.color.basic_theme_colors_blue));
// break;
// default:
// time.setTextColor(mContext.getResources().getColor(R.color.basic_theme_colors));
// recordWaveView.setmWaveColor(mContext.getResources().getColor(R.color.basic_theme_colors));
// break;
// }
}
}
\ No newline at end of file
package com.yumeng.libbaseProject.model;
import com.yumeng.libbaseProject.listener.IndexableEntity;
import java.io.Serializable;
/**
* Created by yumeng on 2018/4/27.
*/
public class NationCodeBean implements Serializable, IndexableEntity {
private String name;
private String cn_name;
private String dial_code;
private String code;
private String headWord;
private String price;
private String pinyin;
public String getCn_name() {
return cn_name;
}
public void setCn_name(String cn_name) {
this.cn_name = cn_name;
}
public String getPrice() {
return price;
}
public void setPrice(String price) {
this.price = price;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDial_code() {
return dial_code;
}
public void setDial_code(String dial_code) {
this.dial_code = dial_code;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getHeadWord() {
return name.substring(0, 1).toUpperCase();
}
public void setHeadWord(String headWord) {
this.headWord = headWord;
}
@Override
public String getFieldIndexBy() {
return name;
}
@Override
public void setFieldIndexBy(String indexField) {
this.pinyin = indexField;
}
@Override
public void setFieldPinyinIndexBy(String pinyin) {
this.pinyin = pinyin;
}
}
package com.yumeng.libbaseProject.model;
import java.io.Serializable;
/**
* Created by Administrator on 2018/3/21.
*/
public class UserInfo implements Serializable {
private String token;//用户token
private int expires_in;//过期时间
private String refreshToken;
private String token_type;
private String id;
private String avatar;//头像
private String mobile;
private String name;
private String introduce;
private String uid;
private String sex;
private String address;//家庭住址
private String region;//地区
private String country;//国家
private String dialCode;
private boolean authenticatedFlag;
private long dynamicNum;
private long fansNum;
private long focusNum;
private boolean uidModifyFlag;
public String getUid() {
return uid;
}
public boolean isUidModifyFlag() {
return uidModifyFlag;
}
public void setUidModifyFlag(boolean uidModifyFlag) {
this.uidModifyFlag = uidModifyFlag;
}
public void setUid(String uid) {
this.uid = uid;
}
public boolean isAuthenticatedFlag() {
return authenticatedFlag;
}
public void setAuthenticatedFlag(boolean authenticatedFlag) {
this.authenticatedFlag = authenticatedFlag;
}
public long getDynamicNum() {
return dynamicNum;
}
public void setDynamicNum(long dynamicNum) {
this.dynamicNum = dynamicNum;
}
public long getFansNum() {
return fansNum;
}
public void setFansNum(long fansNum) {
this.fansNum = fansNum;
}
public long getFocusNum() {
return focusNum;
}
public void setFocusNum(long focusNum) {
this.focusNum = focusNum;
}
public String getDialCode() {
return dialCode;
}
public void setDialCode(String dialCode) {
this.dialCode = dialCode;
}
public String getRegion() {
return region;
}
public void setRegion(String region) {
this.region = region;
}
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}
public String getAvatar() {
return avatar;
}
public void setAvatar(String avatar) {
this.avatar = avatar;
}
public String getToken() {
return token;
}
public void setToken(String token) {
this.token = token;
}
public int getExpires_in() {
return expires_in;
}
public void setExpires_in(int expires_in) {
this.expires_in = expires_in;
}
public String getRefreshToken() {
return refreshToken;
}
public void setRefreshToken(String refreshToken) {
this.refreshToken = refreshToken;
}
public String getToken_type() {
return token_type;
}
public void setToken_type(String token_type) {
this.token_type = token_type;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getIntroduce() {
return introduce;
}
public void setIntroduce(String introduce) {
this.introduce = introduce;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public boolean isMale() {
return sex.equals("0");
}
}
package com.yumeng.libbaseProject.router
import android.content.Context
import com.sankuai.waimai.router.Router
object RouterManger {
fun startLoginActivity(context: Context?) {
Router.startUri(context, RouterScheme.LoginActivityPath)
}
}
\ No newline at end of file
package com.yumeng.libbaseProject.router
object RouterScheme {
const val LoginActivityPath = "/login"
const val MainActivity = "/main"
const val NewsAuthorHomeActivity = "/author_home"
}
\ No newline at end of file
package com.yumeng.libbaseProject.service.ResponseModel;
import android.text.TextUtils;
import com.alibaba.fastjson.JSON;
import com.chad.library.adapter.base.entity.MultiItemEntity;
import com.yumeng.libbase.helper.DataHelper;
import org.jetbrains.annotations.Nullable;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
//多布局item bean
public class TestResponse implements MultiItemEntity, Serializable {
public static final int ITEM_INFO_CENTER_PIC_NEWS = 0; //推荐 中间一个大图
public static final int ITEM_INFO_PIC_RIGHT_NEWS = 1; //推荐 文字加右边一个小图
public static final int ITEM_INFO_THREE_PICS_NEWS = 2; //推荐 3个小图加文字
public static final int ITEM_INFO_CENTER_VIDEO_NEWS = 3; //视频
public static final int ITEM_INFO_FOCUS_CENTER_VIDEO_NEWS = 4; //关心 中间一个大图
public static final int ITEM_INFO_FOCUS_PIC_RIGHT_NEWS = 5; //关心 文字加右边一个小图
public static final int ITEM_INFO_FOCUS_THREE_PICS_NEWS = 6; //关心 3个小图加文字
private String id; //文章id
private String authId; //作者id
private String title; //文章标题
private String type; //文章类型0表示图文,1表示音视频
private String comments; //评论数
private String collections; //收藏数
private String shares; //分享数
private String video; //音视频
private String coverimg; //封面图
private String userId; //关注者id (待删除)
private String authName; //作者名称
private long createDate; //创建日期
private boolean hadFocus; //是否关注
private String avatar; //
private boolean hadUpvote;//是否点赞
private String upvote;//点赞数量
private String content;
private List<String> coverimgList; //
private Boolean isTop = false;
private boolean catalogFollow = false;//后续可以请求服务端关注和推荐|其他栏目接口新增该类似字段,以免需要一次for循环
public boolean isCatalogFollow() {
return catalogFollow;
}
public void setCatalogFollow(boolean catalogFollow) {
this.catalogFollow = catalogFollow;
}
@Override
public int hashCode() {
int result = 1;
if (TextUtils.isEmpty(id)) {
result = 31 * result + authId.hashCode();
} else {
result = 31 * result + id.hashCode();
}
result = 31 * result + Long.valueOf(createDate).hashCode();
return result;
}
@Override
public boolean equals(@Nullable Object obj) {
if (!(obj instanceof TestResponse)) {
return false;
}
TestResponse other = (TestResponse) obj;
if (TextUtils.isEmpty(id)) {
return authId.equals(other.getAuthId()) && createDate == other.createDate;
} else {
return id.equals(other.getId()) && createDate == other.createDate;
}
}
@Override
public String toString() {
return "InformationMultiItemBean{" +
", id='" + id + '\'' +
", authId='" + authId + '\'' +
", title='" + title + '\'' +
", type='" + type + '\'' +
", comments='" + comments + '\'' +
", collections='" + collections + '\'' +
", shares='" + shares + '\'' +
", video='" + video + '\'' +
", coverimg='" + coverimg + '\'' +
", userId='" + userId + '\'' +
", authName='" + authName + '\'' +
", createDate=" + createDate +
", hadFocus=" + hadFocus +
", avatar='" + avatar + '\'' +
", coverimgList=" + coverimgList +
", upvote=" + upvote +
", hadUpvote=" + hadUpvote +
'}';
}
@Override
public int getItemType() {
return 1;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getAuthId() {
return authId;
}
public void setAuthId(String authId) {
this.authId = authId;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getComments() {
if (TextUtils.isEmpty(comments)) {
return "0";
}
return comments;
}
public void setComments(String comments) {
this.comments = comments;
}
public String getCollections() {
return collections;
}
public void setCollections(String collections) {
this.collections = collections;
}
public String getShares() {
return shares;
}
public void setShares(String shares) {
this.shares = shares;
}
public String getVideo() {
return video;
}
public void setVideo(String video) {
this.video = video;
}
public String getCoverimg() {
return coverimg;
}
public void setCoverimg(String coverimg) {
this.coverimg = coverimg;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getAuthName() {
return authName;
}
public void setAuthName(String authName) {
this.authName = authName;
}
public long getCreateDate() {
return createDate;
}
public void setCreateDate(long createDate) {
this.createDate = createDate;
}
public boolean isHadFocus() {
return hadFocus;
}
public void setHadFocus(boolean hadFocus) {
this.hadFocus = hadFocus;
}
public String getAvatar() {
return avatar;
}
public void setAvatar(String avatar) {
this.avatar = avatar;
}
public List<String> getCoverImgList() {
if (coverimgList == null) {
if (coverimg != null) {
coverimgList = JSON.parseArray(coverimg, String.class);
} else {
coverimgList = new ArrayList<>();
}
}
return coverimgList;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public boolean isHadUpvote() {
return hadUpvote;
}
public void setHadUpvote(boolean hadUpvote) {
this.hadUpvote = hadUpvote;
}
public String getUpvote() {
if (upvote == null) {
return "0";
}
return upvote;
}
public boolean isVideo() {
return type != null && !type.equals("0");
}
public void setUpvote(String upvote) {
this.upvote = upvote;
}
public void setCoverimgList(List<String> coverimgList) {
this.coverimgList = coverimgList;
}
public Boolean getTop() {
return isTop;
}
public void setTop(Boolean top) {
isTop = top;
}
}
package com.yumeng.libbaseProject.service
import com.yumeng.libbaseProject.service.ResponseModel.TestResponse
import com.yumeng.libcore.response.BaseResponse
import com.yumeng.libcore.response.BaseResponseDataList
import com.yumeng.libcore.service.Api
import okhttp3.RequestBody
import retrofit2.http.*
interface Service {
companion object {
const val BASE_DOMAIN_NAME = "base_domain_name"
}
/**
* 获取文章关注列表
* TODO
*/
@Headers(Api.URL_NAME + BASE_DOMAIN_NAME)
@GET("article/articleMobile")
suspend fun getArticles(
@Query("pageNo") pageNo: Int,
@Query("catalogId") catalogId: String,
@Query("lastTime") lastTime: Long,
@Query("pageSize") pageSize: Int = 30
): BaseResponse<BaseResponseDataList<TestResponse>>
//
// /**
// * 获取文章栏目
// * TODO
// */
// @Headers(Api.URL_NAME + BASE_DOMAIN_NAME)
// @GET("article/articleMobile")
// suspend fun getArticles(
// @Query("pageNo") pageNo: Int,
// @Query("catalogId") catalogId: String,
// @Query("lastTime") lastTime: Long,
// @Query("pageSize") pageSize: Int = 30
// ): BaseResponse<NewsResponse>
//
// /**
// * 按搜索获取文章栏目
// * TODO
// */
// @Headers(Api.URL_NAME + BASE_DOMAIN_NAME)
// @GET("article/search")
// suspend fun getSearchArticles(
// @Query("pageNo") pageNo: Int,
// @Query("keyword") keyword: String,
// @Query("lastTime") lastTime: Long,
// @Query("pageSize") pageSize: Int = 30
// ): BaseResponse<NewsResponse>
//
// /**
// * 获取推荐顶置接口
// * TODO
// */
// @Headers(Api.URL_NAME + BASE_DOMAIN_NAME)
// @GET("article/tops")
// suspend fun getArticleTop(): BaseResponse<List<InformationMultiItemBean>>
//
// /**
// * 获取文章目录
// * TODO
// */
// @Headers(Api.URL_NAME + BASE_DOMAIN_NAME)
// @GET("catalog")
// suspend fun getCatalog(
// @Query("type") catalogType: Int = 1
// ): BaseResponse<List<ChannelBean>>
//
// /**
// * 获取消息红点提示
// * TODO
// */
// @Headers(Api.URL_NAME + BASE_DOMAIN_NAME)
// @GET("articleNotice/newFlag")
// suspend fun getNoticeNewFlag(): BaseResponse<NewsNoticeFlagResponse>
//
// /**
// * 设置目录顺序
// * TODO
// */
// @Headers(Api.URL_NAME + BASE_DOMAIN_NAME)
// @PUT("catalog")
// suspend fun setCatalog(
// @Body body: RequestBody
// ): BaseResponse<String>
//
// /**
// * 清空资讯通知列表
// * TODO
// */
// @Headers(Api.URL_NAME + BASE_DOMAIN_NAME)
// @DELETE("articleNotice/clear")
// suspend fun clearMessageNotice(): BaseResponse<String>
//
// /**
// * 获取资讯通知列表
// * TODO
// */
// @Headers(Api.URL_NAME + BASE_DOMAIN_NAME)
// @GET("articleNotice/list")
// suspend fun getMessagesNotice(
// @Query("pageNo") pageNo: Int,
// @Query("pageSize") pageSize: Int = 30
// ): BaseResponse<MessageNoticeListResponse>
//
// /**
// * 获取文章详情
// * TODO
// */
// @Headers(Api.URL_NAME + BASE_DOMAIN_NAME)
// @GET("article/{id}")
// suspend fun getNewsDetail(
// @Path("id") id: String
// ): BaseResponse<InformationMultiItemBean>
//
// /**
// * 获取文章评论列表
// * TODO
// */
// @Headers(Api.URL_NAME + BASE_DOMAIN_NAME)
// @GET("comment/{id}")
// suspend fun getNewsDetailComments(
// @Path("id") id: String,
// @Query("pageNo") pageNo: Int,
// @Query("pageSize") pageSize: Int = 30
// ): BaseResponse<NewsCommentListResponse>
//
// /**
// * 获取文章评论列表
// * TODO
// */
// @Headers(Api.URL_NAME + BASE_DOMAIN_NAME)
// @GET("reply/{commentId}")
// suspend fun getSubComments(
// @Path("commentId") id: String,
// @Query("pageNo") pageNo: Int,
// @Query("pageSize") pageSize: Int = 30
// ): BaseResponse<NewsCommentSubListResponse>
//
// /**
// * 关注自媒体
// * TODO
// */
// @Headers(Api.URL_NAME + BASE_DOMAIN_NAME)
// @POST("userFocus")
// suspend fun following(
// @Body body: RequestBody
// ): BaseResponse<FollowingResponse>
//
//
// /**
// * 发送一级评论
// * TODO
// */
// @Headers(Api.URL_NAME + BASE_DOMAIN_NAME)
// @POST("comment")
// suspend fun addComment(
// @Body body: RequestBody
// ): BaseResponse<NewsCommentBean>
//
// /**
// * 发送二级评论
// * TODO 这个需要搞
// */
// @Headers(Api.URL_NAME + BASE_DOMAIN_NAME)
// @POST("reply")
// suspend fun addSubComment(
// @Body body: RequestBody
// ): BaseResponse<NewsSubCommentBean>
//
//
// /**
// * 评论点赞/取消点赞
// * TODO
// */
// @Headers(Api.URL_NAME + BASE_DOMAIN_NAME)
// @POST("comment/upvote")
// suspend fun thumbsUp(
// @Body body: RequestBody
// ): BaseResponse<ThumbsUpResponse>
//
// /**
// * 二级评论点赞/取消点赞
// * TODO
// */
// @Headers(Api.URL_NAME + BASE_DOMAIN_NAME)
// @POST("reply/upvote")
// suspend fun replyThumbsUp(
// @Body body: RequestBody
// ): BaseResponse<ThumbsUpResponse>
//
// /**
// * 文章点赞
// * TODO
// */
// @Headers(Api.URL_NAME + BASE_DOMAIN_NAME)
// @POST("article/upvote")
// suspend fun articleThumbsUp(
// @Body body: RequestBody
// ): BaseResponse<ThumbsUpResponse>
//
// /**
// * 文章、投诉|收藏等
// * TODO
// */
// @Headers(Api.URL_NAME + BASE_DOMAIN_NAME)
// @POST("article/operate")
// suspend fun operateArticle(
// @Body body: RequestBody
// ): BaseResponse<Any>
//
//
// /**
// * 获取关注列表
// * TODO
// */
// @Headers(Api.URL_NAME + BASE_DOMAIN_NAME)
// @GET("userFocus")
// suspend fun getFollowings(
// @Query("pageNo") pageNo: Int,
// @Query("pageSize") pageSize: Int = 30
// ): BaseResponse<NewsResponse>
//
// /**
// * 获取粉丝列表
// * TODO
// */
// @Headers(Api.URL_NAME + BASE_DOMAIN_NAME)
// @GET("userFocus/fans")
// suspend fun getFans(
// @Query("pageNo") pageNo: Int,
// @Query("pageSize") pageSize: Int = 30
// ): BaseResponse<NewsResponse>
//
// /**
// * 获取关注列表
// * TODO
// */
// @Headers(Api.URL_NAME + BASE_DOMAIN_NAME)
// @GET("userFocus/search")
// suspend fun searchFollowings(
// @Query("keyword") keyword : String
// ): BaseResponse<NewsResponse>
}
\ No newline at end of file
package com.yumeng.libbaseProject.service.http
import com.yumeng.libbaseProject.BuildConfig
import okhttp3.OkHttpClient
import okhttp3.logging.HttpLoggingInterceptor
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
import java.util.concurrent.TimeUnit
abstract class BaseRetrofitClient {
companion object {
private const val TIME_OUT = 5L
}
private val client: OkHttpClient
get() {
// val builder = RetrofitUrlManager.getInstance().with(OkHttpClient.Builder())
val builder = OkHttpClient.Builder()
.readTimeout(TIME_OUT, TimeUnit.SECONDS)
.connectTimeout(TIME_OUT, TimeUnit.SECONDS)
val logging = HttpLoggingInterceptor()
if (BuildConfig.DEBUG) {
logging.level = HttpLoggingInterceptor.Level.BODY
} else {
logging.level = HttpLoggingInterceptor.Level.BASIC
}
builder.addInterceptor(BaseUrlInterceptor())
builder.addInterceptor(logging)
handleBuilder(builder)
return builder.build()
}
protected abstract fun handleBuilder(builder: OkHttpClient.Builder)
private val mRetrofit: Retrofit by lazy {
Retrofit.Builder()
.client(client)
.addConverterFactory(GsonConverterFactory.create())
// .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
// .addCallAdapterFactory(CoroutineCallAdapterFactory.invoke())
.baseUrl(BuildConfig.BASE_URL)
.build()
}
fun <S> getService(serviceClass: Class<S>): S {
return mRetrofit.create(serviceClass)
}
}
\ No newline at end of file
package com.yumeng.libbaseProject.service.http
import android.util.Log
import com.yumeng.libbaseProject.BuildConfig
import com.yumeng.libbaseProject.service.Service
import com.yumeng.libcore.service.Api
import okhttp3.HttpUrl
import okhttp3.Interceptor
import okhttp3.Response
class BaseUrlInterceptor : Interceptor {
override fun intercept(chain: Interceptor.Chain): Response {
//获取request
val request = chain.request()
//从request中获取原有的HttpUrl实例oldHttpUrl
val oldHttpUrl = request.url()
//获取request的创建者builder
val builder = request.newBuilder()
//从request中获取headers,通过给定的键url_name
val headerValues:List<String>? = request.headers(Api.URL_NAME_UNIT)
if (headerValues != null && headerValues.isNotEmpty()) {
//如果有这个header,先将配置的header删除,因此header仅用作app和okhttp之间使用
builder.removeHeader(Api.URL_NAME_UNIT)
//匹配获得新的BaseUrl
val newBaseUrl = when (headerValues[0]) {
Service.BASE_DOMAIN_NAME -> {
HttpUrl.parse(BuildConfig.BASE_URL)
}
// UserService.USER_DOMAIN_NAME -> {
// HttpUrl.parse(BuildConfig.BASE_URL)
// }
else -> oldHttpUrl
}
Log.e("BaseUrlInterceptor","newBaseUrl:-> $newBaseUrl")
//重建新的HttpUrl,修改需要修改的url部分
newBaseUrl?.apply {
val newFullUrl = oldHttpUrl.newBuilder()
.scheme(newBaseUrl.scheme())//更换网络协议
.host(newBaseUrl.host())//更换主机名
.port(newBaseUrl.port())//更换端口
.build()
return chain.proceed(builder.url(newFullUrl).build());
}
}
return chain.proceed(request);
}
}
\ No newline at end of file
package com.yumeng.libbaseProject.service.http
import com.franmontiel.persistentcookiejar.PersistentCookieJar
import com.franmontiel.persistentcookiejar.cache.SetCookieCache
import com.franmontiel.persistentcookiejar.persistence.SharedPrefsCookiePersistor
import com.yumeng.libbaseProject.BuildConfig
import com.yumeng.libbaseProject.Contants.Constants
import com.yumeng.libbaseProject.application.MyApplication
import com.yumeng.libbaseProject.model.UserInfo
import com.yumeng.libbaseProject.service.Service
import com.yumeng.libcommon.context.AppContextWrapper
import com.yumeng.libcore.utils.NetWorkUtils
import okhttp3.Cache
import okhttp3.CacheControl
import okhttp3.OkHttpClient
import java.io.File
object Net : BaseRetrofitClient() {
val service by lazy {
getService(Service::class.java)
}
private val cookieJar by lazy {
PersistentCookieJar(
SetCookieCache(),
SharedPrefsCookiePersistor(AppContextWrapper.getApplicationContext())
)
}
private val userInfo: UserInfo? get() = MyApplication.CURRENT_USER
override fun handleBuilder(builder: OkHttpClient.Builder) {
val httpCacheDirectory =
File(AppContextWrapper.getApplicationContext().cacheDir, "responses")
val cacheSize = 10 * 1024 * 1024L // 10 MiB
val cache = Cache(httpCacheDirectory, cacheSize)
builder.cache(cache)
.cookieJar(cookieJar)
.addInterceptor { chain ->
var request = chain.request()
if (!NetWorkUtils.isNetworkAvailable(AppContextWrapper.getApplicationContext())) {
request = request.newBuilder()
.cacheControl(CacheControl.FORCE_CACHE)
.build()
}
val authorizedUrlBuilder = request.url()
.newBuilder()
.scheme(request.url().scheme())
.host(request.url().host())
val build = request.newBuilder()
.method(request.method(), request.body())
.url(authorizedUrlBuilder.build())
// .addHeader("platform", "1")
// .addHeader("deviceId", "a855cb900e112b06")
.addHeader("versionNo", BuildConfig.VERSION_NAME)
.addHeader("versionCode", BuildConfig.VERSION_CODE.toString())
// .addHeader(Constants.LANGUAGE_TYPE, "zh_simple")
userInfo?.token?.let {
build.addHeader(Constants.AUTHORIZATION, it)
}
val response = chain.proceed(build.build())
if (!NetWorkUtils.isNetworkAvailable(AppContextWrapper.getApplicationContext())) {
val maxAge = 60 * 60
response.newBuilder()
.removeHeader("Pragma")
.header("Cache-Control", "public, max-age=$maxAge")
.build()
} else {
val maxStale = 60 * 60 * 24 * 28 // tolerate 4-weeks stale
response.newBuilder()
.removeHeader("Pragma")
.header("Cache-Control", "public, only-if-cached, max-stale=$maxStale")
.build()
}
response
}
}
}
\ No newline at end of file
package com.yumeng.libbaseProject.service.repository
import com.yumeng.libbaseProject.service.ResponseModel.TestResponse
import com.yumeng.libbaseProject.service.http.Net
import com.yumeng.libcore.IResult
import com.yumeng.libcore.base.BaseRepository
import com.yumeng.libcore.response.BaseResponseDataList
class NewsDetailRepository : BaseRepository() {
//获取文章详情
suspend fun getArticles(id: String): IResult<BaseResponseDataList<TestResponse>> {
return safeApiCall(
call = { executeResponse(Net.service.getArticles(pageNo = 1,catalogId = id,lastTime = 0L)) },
errorMessage = ""
)
}
//
// //评论点赞
// suspend fun thumbsUp(commentId: String): IResult<ThumbsUpResponse> {
// return safeApiCall(
// call = { executeResponse(
// Net.service.thumbsUp(
// RequestBodyHelper.createJsonBody(
// CommentThumpsUpRequestModel(commentId)
// )
// )
// )},
// errorMessage = ""
// )
// }
}
\ No newline at end of file
package com.yumeng.libbaseProject.themeUtils
import android.content.Context
import android.graphics.drawable.Drawable
import androidx.core.content.ContextCompat
import com.yumeng.libbaseProject.R
import com.yumeng.libcommonview.theme.Theme
object ThemeCommon {
fun getThemeCircleDrawable(context: Context): Drawable? {
return when (Theme.themePosition) {
0 -> {
ContextCompat.getDrawable(context, R.drawable.shape_circle)
}
else -> {
ContextCompat.getDrawable(context, R.drawable.shape_circle)
}
}
}
fun getFileAssistantSmall(): Int {
return when (Theme.themePosition) {
0 -> {
R.mipmap.ic_file_assistant
}
else -> {
R.mipmap.ic_file_assistant
}
}
}
fun getSystemNotification(): Int {
return when (Theme.themePosition) {
0 -> {
R.drawable.ic_chat_system_not
}
else -> {
R.drawable.ic_chat_system_not
}
}
}
fun getTmpChatBoxDrable(): Int {
return when (Theme.themePosition) {
0 -> {
R.drawable.ic_tmp_chat
}
else -> {
R.drawable.ic_tmp_chat
}
}
}
}
\ No newline at end of file
package com.yumeng.libbaseProject.utils;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.annotation.TargetApi;
import android.os.Build;
import android.util.TypedValue;
import android.view.View;
import android.view.ViewAnimationUtils;
import androidx.core.view.ViewCompat;
import androidx.core.view.ViewPropertyAnimatorListener;
/**
* @author Miguel Catalan Bañuls
*/
public class AnimationUtil {
public static int ANIMATION_DURATION_SHORT = 150;
public static int ANIMATION_DURATION_MEDIUM = 400;
public static int ANIMATION_DURATION_LONG = 800;
public interface AnimationListener {
/**
* @return true to override parent. Else execute Parent method
*/
boolean onAnimationStart(View view);
boolean onAnimationEnd(View view);
boolean onAnimationCancel(View view);
}
public static void crossFadeViews(View showView, View hideView) {
crossFadeViews(showView, hideView, ANIMATION_DURATION_SHORT);
}
public static void crossFadeViews(View showView, final View hideView, int duration) {
fadeInView(showView, duration);
fadeOutView(hideView, duration);
}
public static void fadeInView(View view) {
fadeInView(view, ANIMATION_DURATION_SHORT);
}
public static void fadeInView(View view, int duration) {
fadeInView(view, duration, null);
}
public static void fadeInView(View view, int duration, final AnimationListener listener) {
view.setVisibility(View.VISIBLE);
view.setAlpha(0f);
ViewPropertyAnimatorListener vpListener = null;
if (listener != null) {
vpListener = new ViewPropertyAnimatorListener() {
@Override
public void onAnimationStart(View view) {
if (!listener.onAnimationStart(view)) {
view.setDrawingCacheEnabled(true);
}
}
@Override
public void onAnimationEnd(View view) {
if (!listener.onAnimationEnd(view)) {
view.setDrawingCacheEnabled(false);
}
}
@Override
public void onAnimationCancel(View view) {
}
};
}
ViewCompat.animate(view).alpha(1f).setDuration(duration).setListener(vpListener);
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public static void reveal(final View view, final AnimationListener listener) {
int cx = view.getWidth() - (int) TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP, 24, view.getResources().getDisplayMetrics());
int cy = view.getHeight() / 2;
int finalRadius = Math.max(view.getWidth(), view.getHeight());
Animator anim = ViewAnimationUtils.createCircularReveal(view, cx, cy, 0, finalRadius);
view.setVisibility(View.VISIBLE);
anim.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationStart(Animator animation) {
listener.onAnimationStart(view);
}
@Override
public void onAnimationEnd(Animator animation) {
listener.onAnimationEnd(view);
}
@Override
public void onAnimationCancel(Animator animation) {
listener.onAnimationCancel(view);
}
@Override
public void onAnimationRepeat(Animator animation) {
}
});
anim.start();
}
public static void fadeOutView(View view) {
fadeOutView(view, ANIMATION_DURATION_SHORT);
}
public static void fadeOutView(View view, int duration) {
fadeOutView(view, duration, null);
}
public static void fadeOutView(View view, int duration, final AnimationListener listener) {
ViewCompat.animate(view).alpha(0f).setDuration(duration).setListener(new ViewPropertyAnimatorListener() {
@Override
public void onAnimationStart(View view) {
if (listener == null || !listener.onAnimationStart(view)) {
view.setDrawingCacheEnabled(true);
}
}
@Override
public void onAnimationEnd(View view) {
if (listener == null || !listener.onAnimationEnd(view)) {
view.setVisibility(View.GONE);
view.setDrawingCacheEnabled(false);
}
}
@Override
public void onAnimationCancel(View view) {
}
});
}
}
\ No newline at end of file
package com.yumeng.libbaseProject.utils;
import android.content.Context;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.TextUtils;
import android.text.style.ForegroundColorSpan;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
import com.alibaba.fastjson.JSON;
import com.annimon.stream.Stream;
import com.yumeng.libbaseProject.R;
import com.yumeng.libbaseProject.model.NationCodeBean;
import com.yumeng.libcommon.context.AppContextWrapper;
import com.yumeng.libcommon.utils.language.AppLanguageUtils;
import com.yumeng.libcommon.utils.language.ConstantLanguages;
import com.yumeng.libcommonview.theme.Theme;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Locale;
public class DataUtils {
private static final int SECOND_MILLIS = 1000;
private static final int MINUTE_MILLIS = 60 * SECOND_MILLIS;
private static final int HOUR_MILLIS = 60 * MINUTE_MILLIS;
private static final int DAY_MILLIS = 24 * HOUR_MILLIS;
public static String getTodayDateTime() {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss",
Locale.getDefault());
return format.format(new Date());
}
/**
* 掉此方法输入所要转换的时间输入例如("2014年06月14日16时09分00秒")返回时间戳
*
* @param time
* @return
*/
public String data(String time) {
SimpleDateFormat sdr = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒",
Locale.CHINA);
Date date;
String times = null;
try {
date = sdr.parse(time);
long l = date.getTime();
String stf = String.valueOf(l);
times = stf.substring(0, 10);
} catch (Exception e) {
e.printStackTrace();
}
return times;
}
public static String getTodayDateTimes() {
SimpleDateFormat format = new SimpleDateFormat("MM月dd日",
Locale.getDefault());
return format.format(new Date());
}
/**
* 获取当前时间
*
* @return
*/
public static String getCurrentTime_Today() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");
return sdf.format(new Date());
}
/**
* 调此方法输入所要转换的时间输入例如("2014-06-14-16-09-00")返回时间戳
*
* @param time
* @return
*/
public static String dataOne(String time) {
SimpleDateFormat sdr = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss",
Locale.CHINA);
Date date;
String times = null;
try {
date = sdr.parse(time);
long l = date.getTime();
String stf = String.valueOf(l);
times = stf.substring(0, 10);
} catch (Exception e) {
e.printStackTrace();
}
return times;
}
public static String getTimestamp(String time, String type) {
SimpleDateFormat sdr = new SimpleDateFormat(type, Locale.CHINA);
Date date;
String times = null;
try {
date = sdr.parse(time);
long l = date.getTime();
String stf = String.valueOf(l);
times = stf.substring(0, 10);
} catch (Exception e) {
e.printStackTrace();
}
return times;
}
/**
* 调用此方法输入所要转换的时间戳输入例如(1402733340)输出("2014年06月14日16时09分00秒")
*
* @param time
* @return
*/
public static String times(String time) {
SimpleDateFormat sdr = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");
@SuppressWarnings("unused")
long lcc = Long.valueOf(time);
int i = Integer.parseInt(time);
String times = sdr.format(new Date(i * 1000L));
return times;
}
/**
* 调用此方法输入所要转换的时间戳输入例如(1402733340)输出("2014-06-14 16:09:00")
*
* @param time
* @return
*/
public static String timedate(String time) {
SimpleDateFormat sdr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@SuppressWarnings("unused")
long lcc = Long.valueOf(time);
int i = Integer.parseInt(time);
String times = sdr.format(new Date(i * 1000L));
return times;
}
/**
* 调用此方法输入所要转换的时间戳输入例如(1402733340)输出("2014年06月14日16:09")
*
* @param time
* @return
*/
public static String timet(String time) {
SimpleDateFormat sdr = new SimpleDateFormat("yyyy年MM月dd日 HH:mm");
@SuppressWarnings("unused")
long lcc = Long.valueOf(time);
int i = Integer.parseInt(time);
String times = sdr.format(new Date(i * 1000L));
return times;
}
/**
* 调用此方法输入所要转换的时间戳输入例如(1402733340)输出("2014年06月14日16:09")
*
* @param time
* @return
*/
public static String timet2(String time) {
SimpleDateFormat sdr = new SimpleDateFormat("yyyy-MM-dd HH:mm");
@SuppressWarnings("unused")
long lcc = Long.valueOf(time);
int i = Integer.parseInt(time);
String times = sdr.format(new Date(i * 1000L));
return times;
}
/**
* @param time 斜杠分开
* @return
*/
public static String timeslash(String time) {
SimpleDateFormat sdr = new SimpleDateFormat("yyyy/MM/dd,HH:mm");
@SuppressWarnings("unused")
long lcc = Long.valueOf(time);
int i = Integer.parseInt(time);
String times = sdr.format(new Date(i * 1000L));
return times;
}
/**
* @param time 斜杠分开
* @return
*/
public static String timeslashData(String time) {
SimpleDateFormat sdr = new SimpleDateFormat("yyyy/MM/dd");
@SuppressWarnings("unused")
long lcc = Long.valueOf(time);
// int i = Integer.parseInt(time);
String times = sdr.format(new Date(lcc * 1000L));
return times;
}
/**
* @param time 斜杠分开
* @return
*/
public static String timeMinute(String time) {
SimpleDateFormat sdr = new SimpleDateFormat("HH:mm");
@SuppressWarnings("unused")
long lcc = Long.valueOf(time);
//int i = Integer.parseInt(time);
String times = sdr.format(new Date(lcc * 1000L));
return times;
}
public static String tim(String time) {
SimpleDateFormat sdr = new SimpleDateFormat("yyyyMMdd HH:mm");
@SuppressWarnings("unused")
long lcc = Long.valueOf(time);
int i = Integer.parseInt(time);
String times = sdr.format(new Date(i * 1000L));
return times;
}
public static String time(String time) {
SimpleDateFormat sdr = new SimpleDateFormat("yyyy-MM-dd HH:mm");
@SuppressWarnings("unused")
long lcc = Long.valueOf(time);
int i = Integer.parseInt(time);
String times = sdr.format(new Date(i * 1000L));
return times;
}
// 调用此方法输入所要转换的时间戳例如(1402733340)输出("2014年06月14日16时09分00秒")
public static String times(long timeStamp) {
SimpleDateFormat sdr = new SimpleDateFormat("MM月dd日 # HH:mm");
return sdr.format(new Date(timeStamp)).replaceAll("#",
getWeek(timeStamp));
}
// 调用此方法输入所要转换的时间戳例如(1402733340)输出("06月14日")
public static String times2(long timeStamp) {
SimpleDateFormat sdr = new SimpleDateFormat("MM-dd");
return sdr.format(new Date(timeStamp)).replaceAll("#",
getWeek(timeStamp));
}
// 调用此方法输入所要转换的时间戳例如(1402733340)输出("06月14日")
public static String times4(long timeStamp) {
SimpleDateFormat sdr = new SimpleDateFormat("yyyy-MM-dd HH:mm");
return sdr.format(new Date(timeStamp)).replaceAll("#",
getWeek(timeStamp));
}
public static String times3(long timeStamp) {
SimpleDateFormat sdr = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
return sdr.format(new Date(timeStamp)).replaceAll("#",
getWeek(timeStamp));
}
public static String times5(long timeStamp) {
SimpleDateFormat sdr = new SimpleDateFormat("yyyy-MM-dd");
return sdr.format(new Date(timeStamp)).replaceAll("#",
getWeek(timeStamp));
}
// 调用此方法输入所要转换的时间戳例如(1402733340)输出("06月14日")
public static String times6(long timeStamp) {
SimpleDateFormat sdr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return sdr.format(new Date(timeStamp)).replaceAll("#",
getWeek(timeStamp));
}
public static String times7(long timeStamp) {
SimpleDateFormat sdr = new SimpleDateFormat("HH:mm");
return sdr.format(new Date(timeStamp)).replaceAll("#",
getWeek(timeStamp));
}
// 调用此方法输入所要转换的时间戳例如(1402733340)输出("2020-12-12")
public static String time8(long time) {
SimpleDateFormat sdr = new SimpleDateFormat("yyyy-MM-dd");
return sdr.format(new Date(time));
}
public static String time9(long time) {
SimpleDateFormat sdr = new SimpleDateFormat("yyyy-MM");
return sdr.format(new Date(time));
}
public static String time10(long time) {
SimpleDateFormat sdr = new SimpleDateFormat("yyyy");
return sdr.format(new Date(time));
}
public static String time11(long time) {
SimpleDateFormat sdr = new SimpleDateFormat("MM");
return sdr.format(new Date(time));
}
//时间相关
public static String formatTimeBase(long ts) {
long temp = ts / 1000;
String s = "";
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(temp * 1000);
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH);
int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);
int hour = cal.get(Calendar.HOUR_OF_DAY);
int minute = cal.get(Calendar.MINUTE);
int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);
int apm = cal.get(Calendar.AM_PM);
Context context= AppContextWrapper.Companion.getApplicationContext();
String weeks[] = {context.getString(R.string.sunday), context.getString(R.string.Monday), context.getString(R.string.Tuesday), context.getString(R.string.Wednesday), context.getString(R.string.Thursday), context.getString(R.string.Friday), context.getString(R.string.Saturday)};
if (isToday(ts)) {
s = String.format("%02d:%02d", hour, minute);
// if(apm==0){
// s=context.getString(R.string.am_zh)+s+context.getString(R.string.am_en);
// }else{
// s=context.getString(R.string.pm_zh)+s+context.getString(R.string.pm_en);
// }
} else if (isYesterday(ts)) {
s = String.format(context.getString(R.string.yesterday) + " %02d:%02d", hour, minute);
} else if (isInWeek(ts)) {
s = String.format("%s %02d:%02d", weeks[dayOfWeek - 1], hour, minute);
} else if (isInYear(ts)) {
s = String.format("%02d-%02d %02d:%02d", month + 1, dayOfMonth, hour, minute);
} else {
s = String.format("%d-%02d-%02d %02d:%02d", year, month + 1, dayOfMonth, hour, minute);
}
return s;
}
public static String formatTimeBase2(long ts) {
long temp = ts / 1000;
String s = "";
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(temp * 1000);
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH);
int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);
int hour = cal.get(Calendar.HOUR_OF_DAY);
int minute = cal.get(Calendar.MINUTE);
int apm = cal.get(Calendar.AM_PM);
Context context= AppContextWrapper.Companion.getApplicationContext();
String weeks[] = {context.getString(R.string.sunday), context.getString(R.string.Monday), context.getString(R.string.Tuesday), context.getString(R.string.Wednesday), context.getString(R.string.Thursday), context.getString(R.string.Friday), context.getString(R.string.Saturday)};
if (isToday(ts)) {
s = String.format("%02d:%02d", hour, minute);
if(apm==0){
s=context.getString(R.string.am_zh)+s+context.getString(R.string.am_en);
}else{
s=context.getString(R.string.pm_zh)+s+context.getString(R.string.pm_en);
}
} else if (isYesterday(ts)) {
s = String.format(context.getString(R.string.yesterday));
} else {
String other = AppLanguageUtils.getSupportLanguage(AppLanguageUtils.getSaveLanguage());
if(other.equals(ConstantLanguages.SIMPLIFIED_CHINESE)){
s = String.format("%d/%02d/%02d", year, month + 1, dayOfMonth);
}else{
s=String.format("%02d/%02d/%d",dayOfMonth,month+1,year);
}
}
return s;
}
public static int now() {
Date date = new Date();
long t = date.getTime();
return (int) (t / 1000);
}
public static boolean isToday(long ts) {
int now = now();
return isSameDay(now, ts/1000);
}
public static boolean isYesterday(long ts) {
int now = now();
int yesterday = now - 24 * 60 * 60;
return isSameDay(ts/1000, yesterday);
}
private static boolean isInYear(long ts) {
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(ts);
int year = cal.get(Calendar.YEAR);
cal.setTime(new Date());
int y = cal.get(Calendar.YEAR);
return (year == y);
}
private static boolean isInWeek(long ts) {
// int now = now();
//6天前
// long day6 = now - 6 * 24 * 60 * 60;
Calendar todayCal = Calendar.getInstance();
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(ts);
return todayCal.get(Calendar.WEEK_OF_YEAR) == cal.get(Calendar.WEEK_OF_YEAR);
// cal.set(Calendar.HOUR_OF_DAY, 0);
// cal.set(Calendar.MINUTE, 0);
// long zero = cal.getTimeInMillis();
// return (ts >= zero);
}
private static boolean isSameDay(long ts1, long ts2) {
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(ts1 * 1000);
int year1 = cal.get(Calendar.YEAR);
int month1 = cal.get(Calendar.MONTH);
int day1 = cal.get(Calendar.DAY_OF_MONTH);
cal.setTimeInMillis(ts2 * 1000);
int year2 = cal.get(Calendar.YEAR);
int month2 = cal.get(Calendar.MONTH);
int day2 = cal.get(Calendar.DAY_OF_MONTH);
return ((year1 == year2) && (month1 == month2) && (day1 == day2));
}
private static String getWeek(long timeStamp) {
int mydate = 0;
String week = null;
Calendar cd = Calendar.getInstance();
cd.setTime(new Date(timeStamp));
mydate = cd.get(Calendar.DAY_OF_WEEK);
Context context= AppContextWrapper.Companion.getApplicationContext();
// 获取指定日期转换成星期几
if (mydate == 1) {
week = context.getString(R.string.sunday);
} else if (mydate == 2) {
week =context.getString(R.string.Monday);
} else if (mydate == 3) {
week =context.getString(R.string.Tuesday);
} else if (mydate == 4) {
week = context.getString(R.string.Wednesday);
} else if (mydate == 5) {
week = context.getString(R.string.Thursday);
} else if (mydate == 6) {
week = context.getString(R.string.Friday);
} else if (mydate == 7) {
week = context.getString(R.string.Saturday);
}
return week;
}
// 并用分割符把时间分成时间数组
/**
* 调用此方法输入所要转换的时间戳输入例如(1402733340)输出("2014-06-14-16-09-00")
*
* @param time
* @return
*/
public String timesOne(String time) {
SimpleDateFormat sdr = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");
@SuppressWarnings("unused")
long lcc = Long.valueOf(time);
int i = Integer.parseInt(time);
String times = sdr.format(new Date(i * 1000L));
return times;
}
public static String timesTwo(String time) {
SimpleDateFormat sdr = new SimpleDateFormat("yyyy-MM-dd");
@SuppressWarnings("unused")
long lcc = Long.valueOf(time);
int i = Integer.parseInt(time);
String times = sdr.format(new Date(i * 1000L));
return times;
}
/**
* 并用分割符把时间分成时间数组
*
* @param time
* @return
*/
public static String[] timestamp(String time) {
SimpleDateFormat sdr = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");
@SuppressWarnings("unused")
long lcc = Long.valueOf(time);
int i = Integer.parseInt(time);
String times = sdr.format(new Date(i * 1000L));
String[] fenge = times.split("[年月日时分秒]");
return fenge;
}
/**
* 根据传递的类型格式化时间
*
* @param str
* @param type 例如:yy-MM-dd
* @return
*/
public static String getDateTimeByMillisecond(String str, String type) {
Date date = new Date(Long.valueOf(str));
SimpleDateFormat format = new SimpleDateFormat(type);
String time = format.format(date);
return time;
}
/**
* 分割符把时间分成时间数组
*
* @param time
* @return
*/
public String[] division(String time) {
String[] fenge = time.split("[年月日时分秒]");
return fenge;
}
/**
* 输入时间戳变星期
*
* @param time
* @return
*/
public static String changeweek(String time) {
SimpleDateFormat sdr = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");
long lcc = Long.valueOf(time);
int i = Integer.parseInt(time);
String times = sdr.format(new Date(i * 1000L));
Date date = null;
int mydate = 0;
String week = null;
try {
date = sdr.parse(times);
Calendar cd = Calendar.getInstance();
cd.setTime(date);
mydate = cd.get(Calendar.DAY_OF_WEEK);
// 获取指定日期转换成星期几
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (mydate == 1) {
week = "星期日";
} else if (mydate == 2) {
week = "星期一";
} else if (mydate == 3) {
week = "星期二";
} else if (mydate == 4) {
week = "星期三";
} else if (mydate == 5) {
week = "星期四";
} else if (mydate == 6) {
week = "星期五";
} else if (mydate == 7) {
week = "星期六";
}
return week;
}
/**
* 获取日期和星期 例如:2014-11-13 11:00 星期一
*
* @param time
* @param type
* @return
*/
public static String getDateAndWeek(String time, String type) {
return getDateTimeByMillisecond(time + "000", type) + " "
+ changeweekOne(time);
}
/**
* 输入时间戳变星期
*
* @param time
* @return
*/
public static String changeweekOne(String time) {
SimpleDateFormat sdr = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");
long lcc = Long.valueOf(time);
int i = Integer.parseInt(time);
String times = sdr.format(new Date(i * 1000L));
Date date = null;
int mydate = 0;
String week = null;
try {
date = sdr.parse(times);
Calendar cd = Calendar.getInstance();
cd.setTime(date);
mydate = cd.get(Calendar.DAY_OF_WEEK);
// 获取指定日期转换成星期几
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (mydate == 1) {
week = "星期日";
} else if (mydate == 2) {
week = "星期一";
} else if (mydate == 3) {
week = "星期二";
} else if (mydate == 4) {
week = "星期三";
} else if (mydate == 5) {
week = "星期四";
} else if (mydate == 6) {
week = "星期五";
} else if (mydate == 7) {
week = "星期六";
}
return week;
}
/**
* 获取当前时间
*
* @return
*/
public static String getCurrentTime() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
return sdf.format(new Date());
}
/**
* 输入日期如(2014年06月14日16时09分00秒)返回(星期数)
*
* @param time
* @return
*/
public String week(String time) {
Date date = null;
SimpleDateFormat sdr = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");
int mydate = 0;
String week = null;
try {
date = sdr.parse(time);
Calendar cd = Calendar.getInstance();
cd.setTime(date);
mydate = cd.get(Calendar.DAY_OF_WEEK);
// 获取指定日期转换成星期几
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (mydate == 1) {
week = "星期日";
} else if (mydate == 2) {
week = "星期一";
} else if (mydate == 3) {
week = "星期二";
} else if (mydate == 4) {
week = "星期三";
} else if (mydate == 5) {
week = "星期四";
} else if (mydate == 6) {
week = "星期五";
} else if (mydate == 7) {
week = "星期六";
}
return week;
}
//今天是时间,昨天显示昨天,前天开始显示日期
public static String transformToDate(long ts){
String dateStr = "";
Context context= AppContextWrapper.Companion.getApplicationContext();
if(isToday(ts)){
dateStr =new SimpleDateFormat("HH:mm").format(ts);
}else if(isYesterday(ts)){
dateStr =String.format(context.getString(R.string.yesterday));
}else{
dateStr = new SimpleDateFormat("yyyy-MM-dd").format(ts);
}
return dateStr;
}
public static String transformToDate2(long ts){
String dateStr = "";
Context context= AppContextWrapper.Companion.getApplicationContext();
if(isToday(ts)){
dateStr = String.format(context.getString(R.string.today));
}else if(isYesterday(ts)){
dateStr =String.format(context.getString(R.string.yesterday));
}else{
dateStr = new SimpleDateFormat("yyyy-MM-dd").format(ts);
}
return dateStr;
}
//判断是否同一天
public static boolean isTheSameDay(Long date1, Long date2){
if(time8(date1).equals(time8(date2))){
return true;
}
return false;
}
/**
* 输入日期如(2014-06-14-16-09-00)返回(星期数)
*
* @param time
* @return
*/
public String weekOne(String time) {
Date date = null;
SimpleDateFormat sdr = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");
int mydate = 0;
String week = null;
try {
date = sdr.parse(time);
Calendar cd = Calendar.getInstance();
cd.setTime(date);
mydate = cd.get(Calendar.DAY_OF_WEEK);
// 获取指定日期转换成星期几
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (mydate == 1) {
week = "星期日";
} else if (mydate == 2) {
week = "星期一";
} else if (mydate == 3) {
week = "星期二";
} else if (mydate == 4) {
week = "星期三";
} else if (mydate == 5) {
week = "星期四";
} else if (mydate == 6) {
week = "星期五";
} else if (mydate == 7) {
week = "星期六";
}
return week;
}
public static String formatTime(Object timeTemp) {
int timeParam = 0;
if (timeTemp instanceof Integer) {
timeParam = (Integer) timeTemp;
}
if (timeTemp instanceof String) {
timeParam = Integer.valueOf((String) timeTemp);
}
int second = timeParam % 60;
int minuteTemp = timeParam / 60;
if (minuteTemp > 0) {
int minute = minuteTemp % 60;
int hour = minuteTemp / 60;
if (hour > 0) {
return (hour > 10 ? (hour + "") : ("0" + hour)) + ":" + (minute > 10 ? (minute + "") : ("0" + minute))
+ ":" + (second > 10 ? (second + "") : ("0" + second));
} else {
return "00:" + (minute > 10 ? (minute + "") : ("0" + minute)) + ":"
+ (second > 10 ? (second + "") : ("0" + second));
}
} else {
return "00:00:" + (second > 10 ? (second + "") : ("0" + second));
}
}
public static String getTimeAgo(long time) {
if (time < 1000000000000L) {
// if timestamp given in seconds, convert to millis
time *= 1000;
}
long now = System.currentTimeMillis();
if (time > now || time <= 0) {
return "未知时间";
}
final long diff = now - time;
if (diff < MINUTE_MILLIS) {
return "刚刚";
} else if (diff < 2 * MINUTE_MILLIS) {
return "1分钟前";
} else if (diff < 50 * MINUTE_MILLIS) {
return diff / MINUTE_MILLIS + "分钟前";
} else if (diff < 90 * MINUTE_MILLIS) {
return "1小时前";
} else if (diff < 24 * HOUR_MILLIS) {
return diff / HOUR_MILLIS + "小时前";
} else if (diff < 48 * HOUR_MILLIS) {
return "昨天";
} else {
return diff / DAY_MILLIS + "天前";
}
}
//如果是當前月顯示本月,如果是今年的月份,则显示月份,不然年份也显示了
public static String dealTimeStr(Long ts){
Long nowTs = Calendar.getInstance().getTimeInMillis();
String timeStr = DataUtils.time9(ts);
String nowTimeStr = DataUtils.time9(nowTs);
if(timeStr.equals(nowTimeStr)){
return "本月";
}
String timeYear = DataUtils.time10(ts);
String nowTimeYeat = DataUtils.time10(nowTs);
if(timeYear.equals(nowTimeYeat)){
return DataUtils.time11(ts)+"月";
}else{
return timeStr;
}
}
public static Spanned getHighlightedSpan(@NonNull Locale locale,
@Nullable String value,
@Nullable String highlight)
{
if (TextUtils.isEmpty(value)) {
return new SpannableString("");
}
value = value.replaceAll("\n", " ");
if (TextUtils.isEmpty(highlight)) {
return new SpannableString(value);
}
String normalizedValue = value.toLowerCase(locale);
String normalizedTest = highlight.toLowerCase(locale);
List<String> testTokens = Stream.of(normalizedTest.split(" ")).filter(s -> s.trim().length() > 0).toList();
Spannable spanned = new SpannableString(value);
int searchStartIndex = 0;
for (String token : testTokens) {
if (searchStartIndex >= spanned.length()) {
break;
}
int start = normalizedValue.indexOf(token, searchStartIndex);
if (start >= 0) {
int end = Math.min(start + token.length(), spanned.length());
spanned.setSpan(getGreenSpan(), start, end, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
searchStartIndex = end;
}
}
return spanned;
}
private static ForegroundColorSpan getGreenSpan(){
int color;
if(Theme.Companion.getThemePosition()==1){
color=R.color.basic_theme_colors_blue;
}else{
color=R.color.basic_theme_colors;
}
return new ForegroundColorSpan(ContextCompat.getColor(AppContextWrapper.Companion.getApplicationContext(),color));
}
public static List<NationCodeBean> loadData() {
String nationStr = "[\n" +
" {\n" +
" \"cn_name\": \"中国\",\n" +
" \"name\": \"China\",\n" +
" \"dial_code\": \"86\",\n" +
" \"price\": \"0.045\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"加拿大\",\n" +
" \"name\": \"Canada\",\n" +
" \"dial_code\": \"1\",\n" +
" \"price\": \"0.045\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"美国\",\n" +
" \"name\": \"United States\",\n" +
" \"dial_code\": \"1\",\n" +
" \"price\": \"0.057\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"哈萨克\",\n" +
" \"name\": \"Kazakhstan\",\n" +
" \"dial_code\": \"7\",\n" +
" \"price\": \"0.301\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"俄罗斯\",\n" +
" \"name\": \"Russian Federation\",\n" +
" \"dial_code\": \"7\",\n" +
" \"price\": \"0.193\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"埃及\",\n" +
" \"name\": \"Egypt\",\n" +
" \"dial_code\": \"20\",\n" +
" \"price\": \"0.502\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"南非\",\n" +
" \"name\": \"South Africa\",\n" +
" \"dial_code\": \"27\",\n" +
" \"price\": \"0.177\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"希腊\",\n" +
" \"name\": \"Greece\",\n" +
" \"dial_code\": \"30\",\n" +
" \"price\": \"0.453\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"荷兰\",\n" +
" \"name\": \"Netherlands\",\n" +
" \"dial_code\": \"31\",\n" +
" \"price\": \"0.607\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"比利时\",\n" +
" \"name\": \"Belgium\",\n" +
" \"dial_code\": \"32\",\n" +
" \"price\": \"0.709\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"法国\",\n" +
" \"name\": \"France\",\n" +
" \"dial_code\": \"33\",\n" +
" \"price\": \"0.374\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"西班牙\",\n" +
" \"name\": \"Spain\",\n" +
" \"dial_code\": \"34\",\n" +
" \"price\": \"0.405\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"匈牙利\",\n" +
" \"name\": \"Hungary\",\n" +
" \"dial_code\": \"36\",\n" +
" \"price\": \"0.597\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"意大利\",\n" +
" \"name\": \"Italy\",\n" +
" \"dial_code\": \"39\",\n" +
" \"price\": \"0.405\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"罗马尼亚\",\n" +
" \"name\": \"Romania\",\n" +
" \"dial_code\": \"40\",\n" +
" \"price\": \"0.598\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"瑞士\",\n" +
" \"name\": \"Switzerland\",\n" +
" \"dial_code\": \"41\",\n" +
" \"price\": \"0.426\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"奥地利\",\n" +
" \"name\": \"Austria\",\n" +
" \"dial_code\": \"43\",\n" +
" \"price\": \"0.506\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"英国\",\n" +
" \"name\": \"United Kingdom\",\n" +
" \"dial_code\": \"44\",\n" +
" \"price\": \"0.263\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"丹麦\",\n" +
" \"name\": \"Denmark\",\n" +
" \"dial_code\": \"45\",\n" +
" \"price\": \"0.184\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"瑞典\",\n" +
" \"name\": \"Sweden\",\n" +
" \"dial_code\": \"46\",\n" +
" \"price\": \"0.365\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"挪威\",\n" +
" \"name\": \"Norway\",\n" +
" \"dial_code\": \"47\",\n" +
" \"price\": \"0.395\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"波兰\",\n" +
" \"name\": \"Poland\",\n" +
" \"dial_code\": \"48\",\n" +
" \"price\": \"0.233\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"德国\",\n" +
" \"name\": \"Germany\",\n" +
" \"dial_code\": \"49\",\n" +
" \"price\": \"0.506\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"秘鲁\",\n" +
" \"name\": \"Peru\",\n" +
" \"dial_code\": \"51\",\n" +
" \"price\": \"0.317\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"墨西哥\",\n" +
" \"name\": \"Mexico\",\n" +
" \"dial_code\": \"52\",\n" +
" \"price\": \"0.354\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"古巴\",\n" +
" \"name\": \"Cuba\",\n" +
" \"dial_code\": \"53\",\n" +
" \"price\": \"0.317\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"阿根廷\",\n" +
" \"name\": \"Argentina\",\n" +
" \"dial_code\": \"54\",\n" +
" \"price\": \"0.486\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"巴西\",\n" +
" \"name\": \"Brazil\",\n" +
" \"dial_code\": \"55\",\n" +
" \"price\": \"0.426\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"智利\",\n" +
" \"name\": \"Chile\",\n" +
" \"dial_code\": \"56\",\n" +
" \"price\": \"0.365\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"哥伦比亚\",\n" +
" \"name\": \"Colombia\",\n" +
" \"dial_code\": \"57\",\n" +
" \"price\": \"0.512\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"委内瑞拉\",\n" +
" \"name\": \"Venezuela, Bolivarian Republic of\",\n" +
" \"dial_code\": \"58\",\n" +
" \"price\": \"0.415\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"马来西亚\",\n" +
" \"name\": \"Malaysia\",\n" +
" \"dial_code\": \"60\",\n" +
" \"price\": \"0.248\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"澳洲\",\n" +
" \"name\": \"Australia\",\n" +
" \"dial_code\": \"61\",\n" +
" \"price\": \"0.426\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"印度尼西亚\",\n" +
" \"name\": \"Indonesia\",\n" +
" \"dial_code\": \"62\",\n" +
" \"price\": \"0.193\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"菲律宾\",\n" +
" \"name\": \"Philippines\",\n" +
" \"dial_code\": \"63\",\n" +
" \"price\": \"0.162\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"新西兰\",\n" +
" \"name\": \"New Zealand\",\n" +
" \"dial_code\": \"64\",\n" +
" \"price\": \"0.76\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"新加坡\",\n" +
" \"name\": \"Singapore\",\n" +
" \"dial_code\": \"65\",\n" +
" \"price\": \"0.253\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"泰国\",\n" +
" \"name\": \"Thailand\",\n" +
" \"dial_code\": \"66\",\n" +
" \"price\": \"0.152\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"日本\",\n" +
" \"name\": \"Japan\",\n" +
" \"dial_code\": \"81\",\n" +
" \"price\": \"0.455\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"韩国\",\n" +
" \"name\": \"Korea, Republic of\",\n" +
" \"dial_code\": \"82\",\n" +
" \"price\": \"0.121\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"越南\",\n" +
" \"name\": \"Vietnam\",\n" +
" \"dial_code\": \"84\",\n" +
" \"price\": \"0.405\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"土耳其\",\n" +
" \"name\": \"Turkey\",\n" +
" \"dial_code\": \"90\",\n" +
" \"price\": \"0.152\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"印度\",\n" +
" \"name\": \"India\",\n" +
" \"dial_code\": \"91\",\n" +
" \"price\": \"0.051\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"巴基斯坦\",\n" +
" \"name\": \"Pakistan\",\n" +
" \"dial_code\": \"92\",\n" +
" \"price\": \"0.182\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"阿富汗\",\n" +
" \"name\": \"Afghanistan\",\n" +
" \"dial_code\": \"93\",\n" +
" \"price\": \"0.628\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"斯里兰卡\",\n" +
" \"name\": \"Sri Lanka\",\n" +
" \"dial_code\": \"94\",\n" +
" \"price\": \"0.49\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"缅甸\",\n" +
" \"name\": \"Myanmar\",\n" +
" \"dial_code\": \"95\",\n" +
" \"price\": \"0.921\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"伊朗\",\n" +
" \"name\": \"Iran, Islamic Republic of\",\n" +
" \"dial_code\": \"98\",\n" +
" \"price\": \"0.253\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"南苏丹\",\n" +
" \"name\": \"South Sudan\",\n" +
" \"dial_code\": \"211\",\n" +
" \"price\": \"0.314\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"摩洛哥\",\n" +
" \"name\": \"Morocco\",\n" +
" \"dial_code\": \"212\",\n" +
" \"price\": \"0.634\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"阿尔及利亚\",\n" +
" \"name\": \"Algeria\",\n" +
" \"dial_code\": \"213\",\n" +
" \"price\": \"0.556\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"突尼斯\",\n" +
" \"name\": \"Tunisia\",\n" +
" \"dial_code\": \"216\",\n" +
" \"price\": \"0.517\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"利比亚\",\n" +
" \"name\": \"Libya\",\n" +
" \"dial_code\": \"218\",\n" +
" \"price\": \"0.486\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"冈比亚\",\n" +
" \"name\": \"Gambia\",\n" +
" \"dial_code\": \"220\",\n" +
" \"price\": \"0.131\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"塞内加尔\",\n" +
" \"name\": \"Senegal\",\n" +
" \"dial_code\": \"221\",\n" +
" \"price\": \"0.385\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"毛里塔尼亚\",\n" +
" \"name\": \"Mauritania\",\n" +
" \"dial_code\": \"222\",\n" +
" \"price\": \"0.709\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"马里共和国\",\n" +
" \"name\": \"Mali\",\n" +
" \"dial_code\": \"223\",\n" +
" \"price\": \"0.765\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"几内亚\",\n" +
" \"name\": \"Guinea\",\n" +
" \"dial_code\": \"224\",\n" +
" \"price\": \"0.905\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"科特迪瓦\",\n" +
" \"name\": \"Côte d'Ivoire\",\n" +
" \"dial_code\": \"225\",\n" +
" \"price\": \"0.709\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"布基纳法索\",\n" +
" \"name\": \"Burkina Faso\",\n" +
" \"dial_code\": \"226\",\n" +
" \"price\": \"0.282\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"尼日\",\n" +
" \"name\": \"Niger\",\n" +
" \"dial_code\": \"227\",\n" +
" \"price\": \"0.584\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"多哥\",\n" +
" \"name\": \"Togo\",\n" +
" \"dial_code\": \"228\",\n" +
" \"price\": \"0.282\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"贝宁\",\n" +
" \"name\": \"Benin\",\n" +
" \"dial_code\": \"229\",\n" +
" \"price\": \"0.493\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"毛里求斯\",\n" +
" \"name\": \"Mauritius\",\n" +
" \"dial_code\": \"230\",\n" +
" \"price\": \"0.359\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"利比里亚\",\n" +
" \"name\": \"Liberia\",\n" +
" \"dial_code\": \"231\",\n" +
" \"price\": \"0.569\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"狮子山共和国\",\n" +
" \"name\": \"Sierra Leone\",\n" +
" \"dial_code\": \"232\",\n" +
" \"price\": \"0.244\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"加纳\",\n" +
" \"name\": \"Ghana\",\n" +
" \"dial_code\": \"233\",\n" +
" \"price\": \"0.405\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"尼日利亚\",\n" +
" \"name\": \"Nigeria\",\n" +
" \"dial_code\": \"234\",\n" +
" \"price\": \"0.122\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"查德\",\n" +
" \"name\": \"Chad\",\n" +
" \"dial_code\": \"235\",\n" +
" \"price\": \"0.264\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"中非共和国\",\n" +
" \"name\": \"Central African Republic\",\n" +
" \"dial_code\": \"236\",\n" +
" \"price\": \"0.138\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"喀麦隆\",\n" +
" \"name\": \"Cameroon\",\n" +
" \"dial_code\": \"237\",\n" +
" \"price\": \"0.616\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"佛得角\",\n" +
" \"name\": \"Cape Verde\",\n" +
" \"dial_code\": \"238\",\n" +
" \"price\": \"0.633\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"圣多美普林西比\",\n" +
" \"name\": \"Sao Tome and Principe\",\n" +
" \"dial_code\": \"239\",\n" +
" \"price\": \"1.063\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"赤道几内亚\",\n" +
" \"name\": \"Equatorial Guinea\",\n" +
" \"dial_code\": \"240\",\n" +
" \"price\": \"0.087\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"加蓬\",\n" +
" \"name\": \"Gabon\",\n" +
" \"dial_code\": \"241\",\n" +
" \"price\": \"0.44\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"刚果共和国\",\n" +
" \"name\": \"Congo\",\n" +
" \"dial_code\": \"242\",\n" +
" \"price\": \"0.433\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"刚果民主共和国\",\n" +
" \"name\": \"Congo, the Democratic Republic of the\",\n" +
" \"dial_code\": \"243\",\n" +
" \"price\": \"0.294\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"安哥拉\",\n" +
" \"name\": \"Angola\",\n" +
" \"dial_code\": \"244\",\n" +
" \"price\": \"0.303\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"几内亚比绍\",\n" +
" \"name\": \"Guinea \",\n" +
" \"dial_code\": \"245\",\n" +
" \"price\": \"1.229\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"阿森松岛\",\n" +
" \"name\": \"Ascension island\",\n" +
" \"dial_code\": \"247\",\n" +
" \"price\": \"1.013\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"塞舌尔\",\n" +
" \"name\": \"Seychelles\",\n" +
" \"dial_code\": \"248\",\n" +
" \"price\": \"0.264\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"苏丹\",\n" +
" \"name\": \"Sudan\",\n" +
" \"dial_code\": \"249\",\n" +
" \"price\": \"0.362\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"卢旺达\",\n" +
" \"name\": \"Rwanda\",\n" +
" \"dial_code\": \"250\",\n" +
" \"price\": \"0.434\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"埃塞俄比亚\",\n" +
" \"name\": \"Ethiopia\",\n" +
" \"dial_code\": \"251\",\n" +
" \"price\": \"0.577\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"索马里\",\n" +
" \"name\": \"Somalia\",\n" +
" \"dial_code\": \"252\",\n" +
" \"price\": \"0.544\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"吉布提\",\n" +
" \"name\": \"Djibouti\",\n" +
" \"dial_code\": \"253\",\n" +
" \"price\": \"0.856\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"肯尼亚\",\n" +
" \"name\": \"Kenya\",\n" +
" \"dial_code\": \"254\",\n" +
" \"price\": \"0.285\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"坦桑尼亚\",\n" +
" \"name\": \"Tanzania, United Republic of\",\n" +
" \"dial_code\": \"255\",\n" +
" \"price\": \"0.418\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"乌干达\",\n" +
" \"name\": \"Uganda\",\n" +
" \"dial_code\": \"256\",\n" +
" \"price\": \"0.44\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"布隆迪\",\n" +
" \"name\": \"Burundi\",\n" +
" \"dial_code\": \"257\",\n" +
" \"price\": \"0.709\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"莫桑比克\",\n" +
" \"name\": \"Mozambique\",\n" +
" \"dial_code\": \"258\",\n" +
" \"price\": \"0.138\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"赞比亚\",\n" +
" \"name\": \"Zambia\",\n" +
" \"dial_code\": \"260\",\n" +
" \"price\": \"0.335\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"马达加斯加\",\n" +
" \"name\": \"Madagascar\",\n" +
" \"dial_code\": \"261\",\n" +
" \"price\": \"0.264\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"留尼汪 (法国)\",\n" +
" \"name\": \"Réunion\",\n" +
" \"dial_code\": \"262\",\n" +
" \"price\": \"1.367\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"津巴布韦\",\n" +
" \"name\": \"Republic of Zimbabwe\",\n" +
" \"dial_code\": \"263\",\n" +
" \"price\": \"0.506\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"纳米比亚\",\n" +
" \"name\": \"Namibia\",\n" +
" \"dial_code\": \"264\",\n" +
" \"price\": \"0.324\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"马拉维\",\n" +
" \"name\": \"Malawi\",\n" +
" \"dial_code\": \"265\",\n" +
" \"price\": \"0.385\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"莱索托\",\n" +
" \"name\": \"Lesotho\",\n" +
" \"dial_code\": \"266\",\n" +
" \"price\": \"0.709\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"博茨瓦纳\",\n" +
" \"name\": \"Botswana\",\n" +
" \"dial_code\": \"267\",\n" +
" \"price\": \"0.601\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"斯威士兰\",\n" +
" \"name\": \"Swaziland\",\n" +
" \"dial_code\": \"268\",\n" +
" \"price\": \"0.239\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"科摩罗\",\n" +
" \"name\": \"Comoros\",\n" +
" \"dial_code\": \"269\",\n" +
" \"price\": \"0.146\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"马约特\",\n" +
" \"name\": \"Mayotte\",\n" +
" \"dial_code\": \"269\",\n" +
" \"price\": \"1.62\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"阿鲁巴 (荷兰王国)\",\n" +
" \"name\": \"Aruba\",\n" +
" \"dial_code\": \"297\",\n" +
" \"price\": \"0.405\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"法罗群岛 (丹麦)\",\n" +
" \"name\": \"Faroe Islands\",\n" +
" \"dial_code\": \"298\",\n" +
" \"price\": \"0.132\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"格陵兰 (丹麦)\",\n" +
" \"name\": \"Greenland\",\n" +
" \"dial_code\": \"299\",\n" +
" \"price\": \"0.105\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"直布罗陀 (英国)\",\n" +
" \"name\": \"Gibraltar\",\n" +
" \"dial_code\": \"350\",\n" +
" \"price\": \"0.117\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"葡萄牙\",\n" +
" \"name\": \"Portugal\",\n" +
" \"dial_code\": \"351\",\n" +
" \"price\": \"0.406\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"卢森堡\",\n" +
" \"name\": \"Luxembourg\",\n" +
" \"dial_code\": \"352\",\n" +
" \"price\": \"0.13\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"马其顿\",\n" +
" \"name\": \"Macedonia, the former Yugoslav Republic of\",\n" +
" \"dial_code\": \"389\",\n" +
" \"price\": \"0.506\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"爱尔兰共和国\",\n" +
" \"name\": \"Ireland\",\n" +
" \"dial_code\": \"353\",\n" +
" \"price\": \"0.365\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"冰岛\",\n" +
" \"name\": \"Iceland\",\n" +
" \"dial_code\": \"354\",\n" +
" \"price\": \"0.229\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"阿尔巴尼亚\",\n" +
" \"name\": \"Albania\",\n" +
" \"dial_code\": \"355\",\n" +
" \"price\": \"0.703\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"马耳他\",\n" +
" \"name\": \"Malta\",\n" +
" \"dial_code\": \"356\",\n" +
" \"price\": \"0.244\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"塞浦路斯\",\n" +
" \"name\": \"Cyprus\",\n" +
" \"dial_code\": \"357\",\n" +
" \"price\": \"0.566\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"芬兰\",\n" +
" \"name\": \"Finland\",\n" +
" \"dial_code\": \"358\",\n" +
" \"price\": \"0.669\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"保加利亚\",\n" +
" \"name\": \"Bulgaria\",\n" +
" \"dial_code\": \"359\",\n" +
" \"price\": \"0.659\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"立陶宛\",\n" +
" \"name\": \"Lithuania\",\n" +
" \"dial_code\": \"370\",\n" +
" \"price\": \"0.202\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"拉脱维亚\",\n" +
" \"name\": \"Latvia\",\n" +
" \"dial_code\": \"371\",\n" +
" \"price\": \"0.37\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"爱沙尼亚\",\n" +
" \"name\": \"Estonia\",\n" +
" \"dial_code\": \"372\",\n" +
" \"price\": \"0.686\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"摩尔多瓦\",\n" +
" \"name\": \"Moldova, Republic of\",\n" +
" \"dial_code\": \"373\",\n" +
" \"price\": \"0.405\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"亚美尼亚\",\n" +
" \"name\": \"Armenia\",\n" +
" \"dial_code\": \"374\",\n" +
" \"price\": \"0.709\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"白俄罗斯\",\n" +
" \"name\": \"Belarus\",\n" +
" \"dial_code\": \"375\",\n" +
" \"price\": \"0.487\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"安道尔\",\n" +
" \"name\": \"Andorra\",\n" +
" \"dial_code\": \"376\",\n" +
" \"price\": \"0.118\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"摩纳哥\",\n" +
" \"name\": \"Monaco\",\n" +
" \"dial_code\": \"377\",\n" +
" \"price\": \"0.76\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"圣马力诺\",\n" +
" \"name\": \"San Marino\",\n" +
" \"dial_code\": \"378\",\n" +
" \"price\": \"0.607\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"乌克兰\",\n" +
" \"name\": \"Ukraine\",\n" +
" \"dial_code\": \"380\",\n" +
" \"price\": \"0.506\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"塞尔维亚共和国\",\n" +
" \"name\": \"Serbia\",\n" +
" \"dial_code\": \"381\",\n" +
" \"price\": \"0.185\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"黑山共和国\",\n" +
" \"name\": \"Montenegro\",\n" +
" \"dial_code\": \"382\",\n" +
" \"price\": \"0.206\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"克罗地亚\",\n" +
" \"name\": \"Croatia\",\n" +
" \"dial_code\": \"385\",\n" +
" \"price\": \"0.337\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"斯洛文尼亚\",\n" +
" \"name\": \"Slovenia\",\n" +
" \"dial_code\": \"386\",\n" +
" \"price\": \"0.226\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"波斯尼亚与赫塞哥维纳\",\n" +
" \"name\": \"Bosnia and Herzegovina\",\n" +
" \"dial_code\": \"387\",\n" +
" \"price\": \"0.535\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"捷克\",\n" +
" \"name\": \"Czech Republic\",\n" +
" \"dial_code\": \"420\",\n" +
" \"price\": \"0.295\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"斯洛伐克\",\n" +
" \"name\": \"Slovakia\",\n" +
" \"dial_code\": \"421\",\n" +
" \"price\": \"0.505\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"列支敦士登\",\n" +
" \"name\": \"Liechtenstein\",\n" +
" \"dial_code\": \"423\",\n" +
" \"price\": \"0.246\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"伯利兹\",\n" +
" \"name\": \"Belize\",\n" +
" \"dial_code\": \"501\",\n" +
" \"price\": \"0.1\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"危地马拉\",\n" +
" \"name\": \"Guatemala\",\n" +
" \"dial_code\": \"502\",\n" +
" \"price\": \"0.405\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"萨尔瓦多\",\n" +
" \"name\": \"El Salvador\",\n" +
" \"dial_code\": \"503\",\n" +
" \"price\": \"0.352\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"洪都拉斯\",\n" +
" \"name\": \"Honduras\",\n" +
" \"dial_code\": \"504\",\n" +
" \"price\": \"0.414\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"尼加拉瓜\",\n" +
" \"name\": \"Nicaragua\",\n" +
" \"dial_code\": \"505\",\n" +
" \"price\": \"0.515\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"哥斯达黎加\",\n" +
" \"name\": \"Costa Rica\",\n" +
" \"dial_code\": \"506\",\n" +
" \"price\": \"0.387\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"巴拿马\",\n" +
" \"name\": \"Panama\",\n" +
" \"dial_code\": \"507\",\n" +
" \"price\": \"0.487\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"圣皮耶与密克隆群岛 (法国)\",\n" +
" \"name\": \"Saint Pierre and Miquelon\",\n" +
" \"dial_code\": \"508\",\n" +
" \"price\": \"0.506\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"海地\",\n" +
" \"name\": \"Haiti\",\n" +
" \"dial_code\": \"509\",\n" +
" \"price\": \"0.567\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"瓜德罗普岛\",\n" +
" \"name\": \"Guadeloupe\",\n" +
" \"dial_code\": \"590\",\n" +
" \"price\": \"1.282\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"圣马丁岛(荷兰部分)\",\n" +
" \"name\": \"Sint Maarten(Dutch)\",\n" +
" \"dial_code\": \"590\",\n" +
" \"price\": \"0.405\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"玻利维亚\",\n" +
" \"name\": \"Bolivia, Plurinational\",\n" +
" \"dial_code\": \"591\",\n" +
" \"price\": \"0.383\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"圭亚那\",\n" +
" \"name\": \"Guyana\",\n" +
" \"dial_code\": \"592\",\n" +
" \"price\": \"0.382\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"厄瓜多尔\",\n" +
" \"name\": \"Ecuador\",\n" +
" \"dial_code\": \"593\",\n" +
" \"price\": \"0.601\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"法属圭亚那 (法国)\",\n" +
" \"name\": \"French Guiana\",\n" +
" \"dial_code\": \"594\",\n" +
" \"price\": \"1.246\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"巴拉圭\",\n" +
" \"name\": \"Paraguay\",\n" +
" \"dial_code\": \"595\",\n" +
" \"price\": \"0.185\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"马提尼克 (法国)\",\n" +
" \"name\": \"Martinique\",\n" +
" \"dial_code\": \"596\",\n" +
" \"price\": \"1.013\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"苏里南\",\n" +
" \"name\": \"Suriname\",\n" +
" \"dial_code\": \"597\",\n" +
" \"price\": \"0.162\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"乌拉圭\",\n" +
" \"name\": \"Uruguay\",\n" +
" \"dial_code\": \"598\",\n" +
" \"price\": \"0.607\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"博内尔岛,圣尤斯特歇斯和\",\n" +
" \"name\": \"Bonaire Sint Eustat\",\n" +
" \"dial_code\": \"599\",\n" +
" \"price\": \"0.405\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"库拉索 (荷兰王国)\",\n" +
" \"name\": \"Curacao\",\n" +
" \"dial_code\": \"599\",\n" +
" \"price\": \"0.405\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"东帝汶\",\n" +
" \"name\": \"Timor \",\n" +
" \"dial_code\": \"670\",\n" +
" \"price\": \"0.703\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"文莱\",\n" +
" \"name\": \"Brunei Darussalam\",\n" +
" \"dial_code\": \"673\",\n" +
" \"price\": \"0.156\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"巴布亚新几内亚\",\n" +
" \"name\": \"Papua New Guinea\",\n" +
" \"dial_code\": \"675\",\n" +
" \"price\": \"0.365\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"东加\",\n" +
" \"name\": \"Tonga\",\n" +
" \"dial_code\": \"676\",\n" +
" \"price\": \"0.405\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"所罗门群岛\",\n" +
" \"name\": \"Solomon Islands\",\n" +
" \"dial_code\": \"677\",\n" +
" \"price\": \"0.65\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"瓦努阿图\",\n" +
" \"name\": \"Vanuatu\",\n" +
" \"dial_code\": \"678\",\n" +
" \"price\": \"0.405\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"斐济\",\n" +
" \"name\": \"Fiji\",\n" +
" \"dial_code\": \"679\",\n" +
" \"price\": \"0.405\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"帕劳\",\n" +
" \"name\": \"Palau\",\n" +
" \"dial_code\": \"680\",\n" +
" \"price\": \"0.569\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"库克群岛 (新西兰)\",\n" +
" \"name\": \"Cook Islands\",\n" +
" \"dial_code\": \"682\",\n" +
" \"price\": \"0.212\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"萨摩亚\",\n" +
" \"name\": \"Samoa\",\n" +
" \"dial_code\": \"685\",\n" +
" \"price\": \"0.446\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"基里巴斯\",\n" +
" \"name\": \"Kiribati\",\n" +
" \"dial_code\": \"686\",\n" +
" \"price\": \"0.219\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"新喀里多尼亚 (法国)\",\n" +
" \"name\": \"New Caledonia\",\n" +
" \"dial_code\": \"687\",\n" +
" \"price\": \"1.154\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"法属波利尼西亚 (法国)\",\n" +
" \"name\": \"French Polynesia\",\n" +
" \"dial_code\": \"689\",\n" +
" \"price\": \"1.39\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"香港 (中华人民共和国)\",\n" +
" \"name\": \"Hong Kong\",\n" +
" \"dial_code\": \"852\",\n" +
" \"price\": \"0.273\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"澳门 (中华人民共和国)\",\n" +
" \"name\": \"Macao\",\n" +
" \"dial_code\": \"853\",\n" +
" \"price\": \"0.152\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"柬埔寨\",\n" +
" \"name\": \"Cambodia\",\n" +
" \"dial_code\": \"855\",\n" +
" \"price\": \"0.416\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"老挝\",\n" +
" \"name\": \"Lao People's Democratic Republic\",\n" +
" \"dial_code\": \"856\",\n" +
" \"price\": \"0.405\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"孟加拉国\",\n" +
" \"name\": \"Bangladesh\",\n" +
" \"dial_code\": \"880\",\n" +
" \"price\": \"0.568\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"台湾\",\n" +
" \"name\": \"Taiwan, Province of China\",\n" +
" \"dial_code\": \"886\",\n" +
" \"price\": \"0.202\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"巴勒斯坦\",\n" +
" \"name\": \"Palestine, State of\",\n" +
" \"dial_code\": \"930\",\n" +
" \"price\": \"0.569\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"马尔代夫\",\n" +
" \"name\": \"Maldives\",\n" +
" \"dial_code\": \"960\",\n" +
" \"price\": \"0.105\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"黎巴嫩\",\n" +
" \"name\": \"Lebanon\",\n" +
" \"dial_code\": \"961\",\n" +
" \"price\": \"0.334\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"约旦\",\n" +
" \"name\": \"Jordan\",\n" +
" \"dial_code\": \"962\",\n" +
" \"price\": \"0.488\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"叙利亚\",\n" +
" \"name\": \"Syrian Arab Republic\",\n" +
" \"dial_code\": \"963\",\n" +
" \"price\": \"0.502\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"伊拉克\",\n" +
" \"name\": \"Iraq\",\n" +
" \"dial_code\": \"964\",\n" +
" \"price\": \"0.506\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"科威特\",\n" +
" \"name\": \"Kuwait\",\n" +
" \"dial_code\": \"965\",\n" +
" \"price\": \"0.247\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"沙特阿拉伯\",\n" +
" \"name\": \"Saudi Arabia\",\n" +
" \"dial_code\": \"966\",\n" +
" \"price\": \"0.193\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"也门\",\n" +
" \"name\": \"Yemen\",\n" +
" \"dial_code\": \"967\",\n" +
" \"price\": \"0.506\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"阿曼\",\n" +
" \"name\": \"Oman\",\n" +
" \"dial_code\": \"968\",\n" +
" \"price\": \"0.701\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"阿拉伯联合酋长国\",\n" +
" \"name\": \"United Arab Emirates\",\n" +
" \"dial_code\": \"971\",\n" +
" \"price\": \"0.233\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"以色列\",\n" +
" \"name\": \"Israel\",\n" +
" \"dial_code\": \"972\",\n" +
" \"price\": \"0.569\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"巴林\",\n" +
" \"name\": \"Bahrain\",\n" +
" \"dial_code\": \"973\",\n" +
" \"price\": \"0.177\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"卡达\",\n" +
" \"name\": \"Qatar\",\n" +
" \"dial_code\": \"974\",\n" +
" \"price\": \"0.283\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"不丹\",\n" +
" \"name\": \"Bhutan\",\n" +
" \"dial_code\": \"975\",\n" +
" \"price\": \"0.378\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"蒙古国\",\n" +
" \"name\": \"Mongolia\",\n" +
" \"dial_code\": \"976\",\n" +
" \"price\": \"0.395\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"尼泊尔\",\n" +
" \"name\": \"Nepal\",\n" +
" \"dial_code\": \"977\",\n" +
" \"price\": \"0.352\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"塔吉克\",\n" +
" \"name\": \"Tajikistan\",\n" +
" \"dial_code\": \"992\",\n" +
" \"price\": \"0.539\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"土库曼\",\n" +
" \"name\": \"Turkmenistan\",\n" +
" \"dial_code\": \"993\",\n" +
" \"price\": \"0.709\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"阿塞拜疆\",\n" +
" \"name\": \"Azerbaijan\",\n" +
" \"dial_code\": \"994\",\n" +
" \"price\": \"1.071\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"乔治亚\",\n" +
" \"name\": \"Georgia\",\n" +
" \"dial_code\": \"995\",\n" +
" \"price\": \"0.179\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"吉尔吉斯\",\n" +
" \"name\": \"Kyrgyzstan\",\n" +
" \"dial_code\": \"996\",\n" +
" \"price\": \"0.324\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"乌兹别克\",\n" +
" \"name\": \"Uzbekistan\",\n" +
" \"dial_code\": \"998\",\n" +
" \"price\": \"0.361\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"巴哈马\",\n" +
" \"name\": \"Bahamas\",\n" +
" \"dial_code\": \"1242\",\n" +
" \"price\": \"0.276\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"巴巴多斯\",\n" +
" \"name\": \"Barbados\",\n" +
" \"dial_code\": \"1246\",\n" +
" \"price\": \"0.405\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"安圭拉\",\n" +
" \"name\": \"Anguilla\",\n" +
" \"dial_code\": \"1264\",\n" +
" \"price\": \"0.405\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"安提瓜和巴布达\",\n" +
" \"name\": \"Antigua and Barbuda\",\n" +
" \"dial_code\": \"1268\",\n" +
" \"price\": \"0.369\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"英属维尔京群岛 (英国)\",\n" +
" \"name\": \"Virgin Islands, U.S.\",\n" +
" \"dial_code\": \"1284\",\n" +
" \"price\": \"0.405\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"美属维尔京群岛 (美国)\",\n" +
" \"name\": \"United States Virgin Islands\",\n" +
" \"dial_code\": \"1340\",\n" +
" \"price\": \"0.182\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"开曼群岛 (英国)\",\n" +
" \"name\": \"Cayman Islands\",\n" +
" \"dial_code\": \"1345\",\n" +
" \"price\": \"0.405\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"百慕大 (英国)\",\n" +
" \"name\": \"Bermuda\",\n" +
" \"dial_code\": \"1441\",\n" +
" \"price\": \"0.405\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"格林纳达\",\n" +
" \"name\": \"Grenada\",\n" +
" \"dial_code\": \"1473\",\n" +
" \"price\": \"0.405\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"土克凯可群岛 (英国)\",\n" +
" \"name\": \"Turks and Caicos Islands\",\n" +
" \"dial_code\": \"1649\",\n" +
" \"price\": \"0.279\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"蒙塞拉特岛 (英国)\",\n" +
" \"name\": \"Montserrat\",\n" +
" \"dial_code\": \"1664\",\n" +
" \"price\": \"0.412\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"关岛 (美国)\",\n" +
" \"name\": \"Guam\",\n" +
" \"dial_code\": \"1671\",\n" +
" \"price\": \"0.354\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"美属萨摩亚 (美国)\",\n" +
" \"name\": \"American Samoa\",\n" +
" \"dial_code\": \"1684\",\n" +
" \"price\": \"0.63\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"圣卢西亚\",\n" +
" \"name\": \"Saint Lucia\",\n" +
" \"dial_code\": \"1758\",\n" +
" \"price\": \"0.405\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"多米尼克\",\n" +
" \"name\": \"Dominica\",\n" +
" \"dial_code\": \"1767\",\n" +
" \"price\": \"0.405\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"圣文森及格林纳丁\",\n" +
" \"name\": \"Saint Vincent and the Grenadines\",\n" +
" \"dial_code\": \"1784\",\n" +
" \"price\": \"0.405\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"波多黎各 (美国)\",\n" +
" \"name\": \"Puerto Rico\",\n" +
" \"dial_code\": \"1787\",\n" +
" \"price\": \"0.081\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"多米尼加共和国\",\n" +
" \"name\": \"Dominican Republic\",\n" +
" \"dial_code\": \"1809\",\n" +
" \"price\": \"0.439\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"特立尼达和多巴哥\",\n" +
" \"name\": \"Trinidad and Tobago\",\n" +
" \"dial_code\": \"1868\",\n" +
" \"price\": \"0.28\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"圣克里斯多福与尼维斯\",\n" +
" \"name\": \"Saint Kitts and Nevis\",\n" +
" \"dial_code\": \"1869\",\n" +
" \"price\": \"0.405\"\n" +
" },\n" +
" {\n" +
" \"cn_name\": \"牙买加\",\n" +
" \"name\": \"Jamaica\",\n" +
" \"dial_code\": \"1876\",\n" +
" \"price\": \"0.405\"\n" +
" }\n" +
"]";
return JSON.parseArray(nationStr, NationCodeBean.class);
}
}
\ No newline at end of file
package com.yumeng.libbaseProject.view;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.EditText;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.yumeng.libcommon.utils.ServiceUtil;
public class InputAwareLayout extends KeyboardAwareLinearLayout implements KeyboardAwareLinearLayout.OnKeyboardShownListener {
private InputView current;
public InputAwareLayout(Context context) {
this(context, null);
}
public InputAwareLayout(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public InputAwareLayout(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
addOnKeyboardShownListener(this);
}
@Override
public void onKeyboardShown() {
hideAttachedInput(true);
}
public void show(@NonNull final EditText imeTarget, @NonNull final InputView input) {
if (isKeyboardOpen()) {
hideSoftkey(imeTarget, new Runnable() {
@Override
public void run() {
hideAttachedInput(true);
input.show(getKeyboardHeight(), true);
current = input;
}
});
} else {
if (current != null) current.hide(true);
input.show(getKeyboardHeight(), current != null);
current = input;
}
}
public InputView getCurrentInput() {
return current;
}
public void hideCurrentInput(EditText imeTarget) {
if (isKeyboardOpen()) hideSoftkey(imeTarget, null);
else hideAttachedInput(false);
}
public void hideAttachedInput(boolean instant) {
if (current != null) current.hide(instant);
current = null;
}
public boolean isInputOpen() {
return (isKeyboardOpen() || (current != null && current.isShowing()));
}
public void showSoftkey(final EditText inputTarget) {
postOnKeyboardOpen(new Runnable() {
@Override
public void run() {
hideAttachedInput(true);
}
});
inputTarget.post(new Runnable() {
@Override
public void run() {
inputTarget.requestFocus();
ServiceUtil.getInputMethodManager(inputTarget.getContext()).showSoftInput(inputTarget, 0);
}
});
}
public void hideSoftkey(final EditText inputTarget, @Nullable Runnable runAfterClose) {
if (runAfterClose != null) postOnKeyboardClose(runAfterClose);
ServiceUtil.getInputMethodManager(inputTarget.getContext())
.hideSoftInputFromWindow(inputTarget.getWindowToken(), 0);
}
public interface InputView {
void show(int height, boolean immediate);
void hide(boolean immediate);
boolean isShowing();
}
}
/**
* Copyright (C) 2014 Open Whisper Systems
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.yumeng.libbaseProject.view;
import android.annotation.TargetApi;
import android.content.Context;
import android.graphics.Rect;
import android.os.Build;
import android.os.Build.VERSION_CODES;
import android.preference.PreferenceManager;
import android.util.AttributeSet;
import android.util.Log;
import android.view.Surface;
import android.view.View;
import androidx.appcompat.widget.LinearLayoutCompat;
import com.yumeng.libbaseProject.R;
import com.yumeng.libcommon.utils.ServiceUtil;
import java.lang.reflect.Field;
import java.util.HashSet;
import java.util.Set;
/**
* LinearLayout that, when a view container, will report back when it thinks a soft keyboard
* has been opened and what its height would be.
*/
public class KeyboardAwareLinearLayout extends LinearLayoutCompat {
private static final String TAG = KeyboardAwareLinearLayout.class.getSimpleName();
private final Rect rect = new Rect();
private final Set<OnKeyboardHiddenListener> hiddenListeners = new HashSet<>();
private final Set<OnKeyboardShownListener> shownListeners = new HashSet<>();
private final int minKeyboardSize;
private final int minCustomKeyboardSize;
private final int defaultCustomKeyboardSize;
private final int minCustomKeyboardTopMargin;
private final int statusBarHeight;
private int viewInset;
private boolean keyboardOpen = false;
private int rotation = -1;
public KeyboardAwareLinearLayout(Context context) {
this(context, null);
}
public KeyboardAwareLinearLayout(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public KeyboardAwareLinearLayout(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
final int statusBarRes = getResources().getIdentifier("status_bar_height", "dimen", "android");
minKeyboardSize = getResources().getDimensionPixelSize(R.dimen.min_keyboard_size);
minCustomKeyboardSize = getResources().getDimensionPixelSize(R.dimen.min_custom_keyboard_size);
defaultCustomKeyboardSize = getResources().getDimensionPixelSize(R.dimen.default_custom_keyboard_size);
minCustomKeyboardTopMargin = getResources().getDimensionPixelSize(R.dimen.min_custom_keyboard_top_margin);
statusBarHeight = statusBarRes > 0 ? getResources().getDimensionPixelSize(statusBarRes) : 0;
viewInset = getViewInset();
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
updateRotation();
updateKeyboardState();
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
private void updateRotation() {
int oldRotation = rotation;
rotation = getDeviceRotation();
if (oldRotation != rotation) {
Log.i(TAG, "rotation changed");
onKeyboardClose();
}
}
private void updateKeyboardState() {
if (isLandscape()) {
if (keyboardOpen) onKeyboardClose();
return;
}
if (viewInset == 0 && Build.VERSION.SDK_INT >= VERSION_CODES.LOLLIPOP)
viewInset = getViewInset();
final int availableHeight = this.getRootView().getHeight() - statusBarHeight - viewInset;
getWindowVisibleDisplayFrame(rect);
final int keyboardHeight = availableHeight - (rect.bottom - rect.top);
if (keyboardHeight > minKeyboardSize) {
if (getKeyboardHeight() != keyboardHeight) setKeyboardPortraitHeight(keyboardHeight);
if (!keyboardOpen) onKeyboardOpen(keyboardHeight);
} else if (keyboardOpen) {
onKeyboardClose();
}
}
@TargetApi(VERSION_CODES.LOLLIPOP)
private int getViewInset() {
try {
Field attachInfoField = View.class.getDeclaredField("mAttachInfo");
attachInfoField.setAccessible(true);
Object attachInfo = attachInfoField.get(this);
if (attachInfo != null) {
Field stableInsetsField = attachInfo.getClass().getDeclaredField("mStableInsets");
stableInsetsField.setAccessible(true);
Rect insets = (Rect) stableInsetsField.get(attachInfo);
return insets.bottom;
}
} catch (NoSuchFieldException nsfe) {
Log.w(TAG, "field reflection error when measuring view inset", nsfe);
} catch (IllegalAccessException iae) {
Log.w(TAG, "access reflection error when measuring view inset", iae);
}
return 0;
}
protected void onKeyboardOpen(int keyboardHeight) {
Log.i(TAG, "onKeyboardOpen(" + keyboardHeight + ")");
keyboardOpen = true;
notifyShownListeners();
}
protected void onKeyboardClose() {
Log.i(TAG, "onKeyboardClose()");
keyboardOpen = false;
notifyHiddenListeners();
}
public boolean isKeyboardOpen() {
return keyboardOpen;
}
public int getKeyboardHeight() {
return isLandscape() ? getKeyboardLandscapeHeight() : getKeyboardPortraitHeight();
}
public boolean isLandscape() {
int rotation = getDeviceRotation();
return rotation == Surface.ROTATION_90 || rotation == Surface.ROTATION_270;
}
private int getDeviceRotation() {
return ServiceUtil.getWindowManager(getContext()).getDefaultDisplay().getRotation();
}
private int getKeyboardLandscapeHeight() {
return Math.max(getHeight(), getRootView().getHeight()) / 2;
}
private int getKeyboardPortraitHeight() {
int keyboardHeight = PreferenceManager.getDefaultSharedPreferences(getContext())
.getInt("keyboard_height_portrait", defaultCustomKeyboardSize);
//return Util.clamp(keyboardHeight, minCustomKeyboardSize, getRootView().getHeight() - minCustomKeyboardTopMargin);
return Math.min(Math.max(keyboardHeight, minCustomKeyboardSize), getRootView().getHeight() - minCustomKeyboardTopMargin);
}
private void setKeyboardPortraitHeight(int height) {
PreferenceManager.getDefaultSharedPreferences(getContext())
.edit().putInt("keyboard_height_portrait", height).apply();
}
public void postOnKeyboardClose(final Runnable runnable) {
if (keyboardOpen) {
addOnKeyboardHiddenListener(new OnKeyboardHiddenListener() {
@Override
public void onKeyboardHidden() {
removeOnKeyboardHiddenListener(this);
runnable.run();
}
});
} else {
runnable.run();
}
}
public void postOnKeyboardOpen(final Runnable runnable) {
if (!keyboardOpen) {
addOnKeyboardShownListener(new OnKeyboardShownListener() {
@Override
public void onKeyboardShown() {
removeOnKeyboardShownListener(this);
runnable.run();
}
});
} else {
runnable.run();
}
}
public void addOnKeyboardHiddenListener(OnKeyboardHiddenListener listener) {
hiddenListeners.add(listener);
}
public void removeOnKeyboardHiddenListener(OnKeyboardHiddenListener listener) {
hiddenListeners.remove(listener);
}
public void addOnKeyboardShownListener(OnKeyboardShownListener listener) {
shownListeners.add(listener);
}
public void removeOnKeyboardShownListener(OnKeyboardShownListener listener) {
shownListeners.remove(listener);
}
private void notifyHiddenListeners() {
final Set<OnKeyboardHiddenListener> listeners = new HashSet<>(hiddenListeners);
for (OnKeyboardHiddenListener listener : listeners) {
listener.onKeyboardHidden();
}
}
private void notifyShownListeners() {
final Set<OnKeyboardShownListener> listeners = new HashSet<>(shownListeners);
for (OnKeyboardShownListener listener : listeners) {
listener.onKeyboardShown();
}
}
public interface OnKeyboardHiddenListener {
void onKeyboardHidden();
}
public interface OnKeyboardShownListener {
void onKeyboardShown();
}
}
package com.yumeng.libbaseProject.view;
import android.annotation.TargetApi;
import android.content.Context;
import android.os.Build;
import android.util.AttributeSet;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
public class KeyboardHeightFrameLayout extends FrameLayout implements InputAwareLayout.InputView {
public KeyboardHeightFrameLayout(@NonNull Context context) {
super(context);
}
public KeyboardHeightFrameLayout(@NonNull Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
public KeyboardHeightFrameLayout(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public KeyboardHeightFrameLayout(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}
@Override
public void show(int height, boolean immediate) {
// TODO
ViewGroup.LayoutParams layoutParams = getLayoutParams();
layoutParams.height = height;
getChildAt(0).setVisibility(VISIBLE);
setVisibility(VISIBLE);
}
@Override
public void hide(boolean immediate) {
setVisibility(GONE);
}
@Override
public boolean isShowing() {
return getVisibility() == VISIBLE;
}
}
package com.yumeng.libbaseProject.view.audioRecorder;
import android.annotation.TargetApi;
import android.media.AudioFormat;
import android.media.AudioRecord;
import android.media.MediaCodec;
import android.media.MediaCodecInfo;
import android.media.MediaFormat;
import android.media.MediaRecorder;
import android.os.Build;
import com.yumeng.libcommon.utils.LogUtils;
import com.yumeng.libcommon.utils.MainThreadUtil;
import java.io.IOException;
import java.io.OutputStream;
import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.List;
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
public class AudioCodec {
private static final String TAG = AudioCodec.class.getSimpleName();
private static final int SAMPLE_RATE = 44100;
private static final int SAMPLE_RATE_INDEX = 4;
private static final int CHANNELS = 1;
private static final int BIT_RATE = 32000;
private final int bufferSize;
private final MediaCodec mediaCodec;
private final AudioRecord audioRecord;
private boolean running = true;
private boolean finished = false;
short[] buffer;
private int volume;
private List<Integer> volumes = new ArrayList<>();
public int getVolume() {
return volume;
}
public AudioCodec() throws IOException {
this.bufferSize = AudioRecord.getMinBufferSize(SAMPLE_RATE, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT);
this.audioRecord = createAudioRecord(this.bufferSize);
this.mediaCodec = createMediaCodec(this.bufferSize);
this.mediaCodec.start();
try {
audioRecord.startRecording();
} catch (Exception e) {
mediaCodec.release();
throw new IOException(e);
}
}
public synchronized void stop() {
running = false;
while (!finished) MainThreadUtil.wait(this, 0);
}
public List<Integer> getVolumes(){
return volumes;
}
public void start(final OutputStream outputStream) {
new Thread(new Runnable() {
@Override
public void run() {
MediaCodec.BufferInfo bufferInfo = new MediaCodec.BufferInfo();
byte[] audioRecordData = new byte[bufferSize];
ByteBuffer[] codecInputBuffers = mediaCodec.getInputBuffers();
ByteBuffer[] codecOutputBuffers = mediaCodec.getOutputBuffers();
try {
while (true) {
boolean running = isRunning();
handleCodecInput(audioRecord, audioRecordData, mediaCodec, codecInputBuffers, running);
handleCodecOutput(mediaCodec, codecOutputBuffers, bufferInfo, outputStream);
if (!running) {
volume = 0;
break;
}
}
} catch (IOException e) {
LogUtils.w(TAG, e.toString());
} finally {
mediaCodec.stop();
audioRecord.stop();
mediaCodec.release();
audioRecord.release();
MainThreadUtil.close(outputStream);
setFinished();
}
}
}, AudioCodec.class.getSimpleName()).start();
}
private synchronized boolean isRunning() {
return running;
}
private synchronized void setFinished() {
finished = true;
notifyAll();
}
private boolean isRevert=true;
private void handleCodecInput(AudioRecord audioRecord, byte[] audioRecordData,
MediaCodec mediaCodec, ByteBuffer[] codecInputBuffers,
boolean running) {
int length = audioRecord.read(audioRecordData, 0, audioRecordData.length);
int codecInputBufferIndex = mediaCodec.dequeueInputBuffer(10 * 1000);
if(isRevert) {
isRevert=false;
volume = doublecalculateVolume(audioRecordData);
volumes.add(volume);
}else{
isRevert=true;
}
if (codecInputBufferIndex >= 0) {
ByteBuffer codecBuffer = codecInputBuffers[codecInputBufferIndex];
codecBuffer.clear();
codecBuffer.put(audioRecordData);
mediaCodec.queueInputBuffer(codecInputBufferIndex, 0, length, 0, running ? 0 : MediaCodec.BUFFER_FLAG_END_OF_STREAM);
}
}
public void clearVolumes(){
volumes.clear();
}
private void handleCodecOutput(MediaCodec mediaCodec,
ByteBuffer[] codecOutputBuffers,
MediaCodec.BufferInfo bufferInfo,
OutputStream outputStream)
throws IOException {
int codecOutputBufferIndex = mediaCodec.dequeueOutputBuffer(bufferInfo, 0);
while (codecOutputBufferIndex != MediaCodec.INFO_TRY_AGAIN_LATER) {
if (codecOutputBufferIndex >= 0) {
ByteBuffer encoderOutputBuffer = codecOutputBuffers[codecOutputBufferIndex];
encoderOutputBuffer.position(bufferInfo.offset);
encoderOutputBuffer.limit(bufferInfo.offset + bufferInfo.size);
if ((bufferInfo.flags & MediaCodec.BUFFER_FLAG_CODEC_CONFIG) != MediaCodec.BUFFER_FLAG_CODEC_CONFIG) {
byte[] header = createAdtsHeader(bufferInfo.size - bufferInfo.offset);
outputStream.write(header);
byte[] data = new byte[encoderOutputBuffer.remaining()];
encoderOutputBuffer.get(data);
outputStream.write(data);
}
encoderOutputBuffer.clear();
mediaCodec.releaseOutputBuffer(codecOutputBufferIndex, false);
} else if (codecOutputBufferIndex == MediaCodec.INFO_OUTPUT_BUFFERS_CHANGED) {
codecOutputBuffers = mediaCodec.getOutputBuffers();
}
codecOutputBufferIndex = mediaCodec.dequeueOutputBuffer(bufferInfo, 0);
}
}
private byte[] createAdtsHeader(int length) {
int frameLength = length + 7;
byte[] adtsHeader = new byte[7];
adtsHeader[0] = (byte) 0xFF; // Sync Word
adtsHeader[1] = (byte) 0xF1; // MPEG-4, Layer (0), No CRC
adtsHeader[2] = (byte) ((MediaCodecInfo.CodecProfileLevel.AACObjectLC - 1) << 6);
adtsHeader[2] |= (((byte) SAMPLE_RATE_INDEX) << 2);
adtsHeader[2] |= (((byte) CHANNELS) >> 2);
adtsHeader[3] = (byte) (((CHANNELS & 3) << 6) | ((frameLength >> 11) & 0x03));
adtsHeader[4] = (byte) ((frameLength >> 3) & 0xFF);
adtsHeader[5] = (byte) (((frameLength & 0x07) << 5) | 0x1f);
adtsHeader[6] = (byte) 0xFC;
return adtsHeader;
}
private AudioRecord createAudioRecord(int bufferSize) {
return new AudioRecord(MediaRecorder.AudioSource.MIC, SAMPLE_RATE,
AudioFormat.CHANNEL_IN_MONO,
AudioFormat.ENCODING_PCM_16BIT, bufferSize * 10);
}
private MediaCodec createMediaCodec(int bufferSize) throws IOException {
MediaCodec mediaCodec = MediaCodec.createEncoderByType(MediaFormat.MIMETYPE_AUDIO_AAC);
MediaFormat mediaFormat = new MediaFormat();
mediaFormat.setString(MediaFormat.KEY_MIME, MediaFormat.MIMETYPE_AUDIO_AAC);
mediaFormat.setInteger(MediaFormat.KEY_SAMPLE_RATE, SAMPLE_RATE);
mediaFormat.setInteger(MediaFormat.KEY_CHANNEL_COUNT, CHANNELS);
mediaFormat.setInteger(MediaFormat.KEY_MAX_INPUT_SIZE, bufferSize);
mediaFormat.setInteger(MediaFormat.KEY_BIT_RATE, BIT_RATE);
mediaFormat.setInteger(MediaFormat.KEY_AAC_PROFILE, MediaCodecInfo.CodecProfileLevel.AACObjectLC);
try {
mediaCodec.configure(mediaFormat, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE);
} catch (Exception e) {
LogUtils.w(TAG, e.toString());
mediaCodec.release();
throw new IOException(e);
}
return mediaCodec;
}
// //获取音量
public double getCurrentVolume(byte[] buffer) {
int r = audioRecord.read(buffer, 0, bufferSize);
long v = 0;
// 将 buffer 内容取出,进行平方和运算
for (byte b : buffer) {
v += b * b;
}
// 平方和除以数据总长度,得到音量大小。
double mean = v / (double) r;
return (10 * Math.log10(mean));
}
private int doublecalculateVolume(byte[] buffer) {
double sumVolume = 0.0;
double avgVolume = 0.0;
double volume = 0.0;
for (int i = 0; i < buffer.length; i += 2) {
int v1 = buffer[i] & 0xFF;
int v2 = buffer[i + 1] & 0xFF;
int temp = v1 + (v2 << 8);// 小端
if (temp >= 0x8000) {
temp = 0xffff - temp;
}
sumVolume += Math.abs(temp);
}
avgVolume = sumVolume / buffer.length;
return (int) (Math.log10(1 + avgVolume) * 10);
}
}
package com.yumeng.libbaseProject.view.audioRecorder;
import android.annotation.TargetApi;
import android.os.Build;
import android.text.TextUtils;
import com.yumeng.libcommon.utils.MainThreadUtil;
import com.yumeng.libcommon.utils.ThreadUtil;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutorService;
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
public class AudioRecorder {
private static final String TAG = AudioRecorder.class.getSimpleName();
private static final ExecutorService executor = ThreadUtil.newDynamicSingleThreadedExecutor();
private AudioCodec audioCodec;
private String filePath;
private BufferedOutputStream mAudioBos;
public AudioRecorder() {
}
public void startRecording(String filePath) {
executor.execute(() -> {
try {
if (audioCodec != null) {
throw new AssertionError("We can only record once at a time.");
}
this.filePath = filePath;
audioCodec = new AudioCodec();
mAudioBos = new BufferedOutputStream(new FileOutputStream(new File(filePath)), 200 * 1024);
audioCodec.start(mAudioBos);
} catch (IOException e) {
e.printStackTrace();
}
});
}
public void release() {
if (audioCodec == null) {
return;
}
audioCodec.clearVolumes();
audioCodec.stop();
audioCodec = null;
try {
if (mAudioBos != null) {
mAudioBos.flush();
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (mAudioBos != null) {
try {
mAudioBos.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
mAudioBos = null;
}
}
}
}
public void stopRecording(OnRecordListener onRecordListener) {
executor.execute(() -> {
if (audioCodec == null) {
MainThreadUtil.runOnMain(() -> onRecordListener.onError("MediaRecorder was never initialized successfully!"));
return;
}
List<Double> dilution = dilution(audioCodec.getVolumes());
release();
MainThreadUtil.runOnMain(() -> onRecordListener.onSuccess(dilution));
});
}
private List<Double> dilution(List<Integer> volumes) {
int count = (int) Math.min(Math.round(volumes.size() / 10.0) + 4, 15);
int width = volumes.size() / count;
if ((width + 1) * (count - 1) < volumes.size()) {
width += 1;
}
int index = width / 2;
List<Integer> temps = new ArrayList<>();
for (int i = 0; i < count; i++) {
if ((i + 1) * width < volumes.size()) {
temps.add(volumes.get(i * width + index));
} else {
int lastCount = volumes.size() - i * width;
index = lastCount / 2;
temps.add(volumes.get(i * width + index));
}
}
List<Double> results = new ArrayList<>();
for (Integer temp : temps) {
if(temp<20){
temp=20;
}
double value = (double) (temp - 20) / 18;
results.add(value);
}
return results;
}
public void cancel() {
executor.execute(() -> {
if (!TextUtils.isEmpty(filePath)) {
File file = new File(filePath);
if (file.exists()) {
file.delete();
filePath = null;
}
}
release();
});
}
public String getCurrentFilePath() {
return filePath;
}
public interface OnRecordListener {
public void onError(String content);
public void onSuccess(List<Double> results);
}
//获取当前音量
public int getCurrentVolume() {
if (audioCodec != null)
return audioCodec.getVolume();
return 0;
}
}
package com.yumeng.libbaseProject.view.audioRecorder;
import android.Manifest;
import android.app.Activity;
import android.content.Context;
import android.os.Handler;
import android.os.Message;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.AppCompatImageView;
import com.yumeng.libbaseProject.Contants.Constants;
import com.yumeng.libbaseProject.R;
import com.yumeng.libbaseProject.manager.DialogManager;
import com.yumeng.libcommon.rxManager.RxPermissions;
import com.yumeng.libcommon.utils.RxCrashUtils;
import java.io.File;
import java.util.List;
import java.util.UUID;
/**
* 自定义按钮 实现录音等功能
* Created by Administrator on 2017/11/28.
*/
public class AudioRecorderButton extends AppCompatImageView {
// 按钮正常状态(默认状态)
private static final int STATE_NORMAL = 1;
//正在录音状态
private static final int STATE_RECORDING = 2;
//录音取消状态
private static final int STATE_CANCEL = 3;
//上滑
private static final int STATE_SLIPPERY = 4;
//记录当前状态
private int mCurrentState = STATE_NORMAL;
//是否开始录音标志
private boolean isRecording = false;
//判断在Button上滑动距离,以判断 是否取消
private static final int DISTANCE_Y_CANCEL = 100;
//完成录制
public static final int MSG_AUDIO_COMPLETE = 1234;
//关闭语音栏
public static final int MSG_AUDIO_CLOSE = 0x112;
//对话框管理工具类
private DialogManager mDialogManager;
//录音管理工具类
// private AudioManager mAudioManager;
private AudioTouchCallback audioTouchCallback = null;
//记录录音时间
private float mTime;
// 是否触发longClick
private boolean mReady;
//录音准备
public static final int MSG_AUDIO_PREPARED = 0x110;
//音量发生改变
public static final int MSG_VOICE_CHANGED = 0x111;
//取消提示对话框
public static final int MSG_DIALOG_DIMISS = 0x112;
private RxPermissions rxPermissions;
private boolean isRequest = false;
private View anchor;
private float maxTime = 60F; //最大时常
public AudioRecorder getAudioRecorder() {
return audioRecorder;
}
public void setAudioRecorder(AudioRecorder audioRecorder) {
this.audioRecorder = audioRecorder;
}
public void setAnchor(View anchor) {
this.anchor = anchor;
mDialogManager.setAnchor(anchor);
}
private AudioRecorder audioRecorder;
public DialogManager getmDialogManager() {
return mDialogManager;
}
/**
* @description 获取音量大小的线程
* @author ldm
* @time 2016/6/25 9:30
* @param
*/
private Runnable mGetVoiceLevelRunnable = new Runnable() {
public void run() {
while (isRecording) {//判断正在录音
try {
Thread.sleep(100);
mTime += 0.1f;//录音时间计算
mHandler.sendEmptyMessage(MSG_VOICE_CHANGED);//每0.1秒发送消息
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
};
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case MSG_AUDIO_PREPARED:
//显示对话框
mDialogManager.showRecordingDialog();
mDialogManager.updateTips(getContext().getString(R.string.finger_swipe_and_cancel_sending));
isRecording = true;
if (audioTouchCallback != null)
audioTouchCallback.onTouchCallback(MSG_AUDIO_PREPARED);
// 开启一个线程计算录音时间
new Thread(mGetVoiceLevelRunnable).start();
break;
case MSG_VOICE_CHANGED:
//更新声音
mDialogManager.setVolume(audioRecorder.getCurrentVolume());
if(mTime > maxTime){
onActionUp(false);
//Log.e("录制介绍","录制结束");
}
break;
case MSG_DIALOG_DIMISS:
//取消对话框
mDialogManager.dimissDialog();
if (audioTouchCallback != null) {
audioTouchCallback.onTouchCallback(MSG_AUDIO_CLOSE);
mDialogManager.stopTime();
}
break;
}
super.handleMessage(msg);
}
};
public float getmTime() {
return mTime;
}
public void setmTime(float mTime) {
this.mTime = mTime;
}
public void setAudioTouchCallback(AudioTouchCallback audioTouchCallback) {
this.audioTouchCallback = audioTouchCallback;
}
public AudioRecorderButton(Context context, AttributeSet attrs) {
super(context, attrs);
rxPermissions = new RxPermissions((AppCompatActivity) context);
mDialogManager = new DialogManager(context);
//录音文件存放地址
audioRecorder = new AudioRecorder();
String fileForderPath = Constants.AUDIO_FILE_PATH;
RxCrashUtils.createOrExistsDir(fileForderPath);
// 由于这个类是button所以在构造方法中添加监听事件
setOnLongClickListener(v -> {
if (isRequest) {
mReady = true;
String filePath = fileForderPath + File.separator + UUID.randomUUID().toString() + ".aac";
audioRecorder.startRecording(filePath);
mHandler.sendEmptyMessage(MSG_AUDIO_PREPARED);
}
return false;
});
}
public AudioRecorderButton(Context context) {
this(context, null);
}
/**
* @param
* @author ldm
* @description 录音完成后的回调
* @time 2016/6/25 11:18
*/
public interface AudioFinishRecorderCallBack {
void onFinish(float seconds, String filePath, List<Double> results, boolean noSend);
}
private AudioFinishRecorderCallBack finishRecorderCallBack;
public void setFinishRecorderCallBack(AudioFinishRecorderCallBack listener) {
finishRecorderCallBack = listener;
}
/**
* @param
* @description 处理Button的OnTouchEvent事件
* @author ldm
* @time 2016/6/25 9:35
*/
@Override
public boolean onTouchEvent(MotionEvent event) {
//获取TouchEvent状态
int action = event.getAction();
// 获得x轴坐标
int x = (int) event.getX();
// 获得y轴坐标
int y = (int) event.getY();
switch (action) {
case MotionEvent.ACTION_DOWN://手指按下
rxPermissions.request(Manifest.permission.RECORD_AUDIO,
Manifest.permission.WRITE_EXTERNAL_STORAGE)
.subscribe(aBoolean -> {
if (aBoolean) {
if (VoipUtils.INSTANCE.isCalling()) {
return;
}
isRequest = true;
changeState(STATE_RECORDING);
} else
isRequest = false;
});
break;
case MotionEvent.ACTION_MOVE://手指移动
if (isRecording) {
//根据x,y的坐标判断是否需要取消
if (wantToCancle(x, y)) {
changeState(STATE_SLIPPERY);
} else {
changeState(STATE_RECORDING);
}
}
break;
case MotionEvent.ACTION_UP://手指放开
if (onActionUp(false))
return super.onTouchEvent(event);
break;
}
return super.onTouchEvent(event);
}
public void endAudio() {
if (mReady) {
onActionUp(true);
}
}
private boolean onActionUp(boolean noSend) {
if (mCurrentState == STATE_SLIPPERY) {
mCurrentState = STATE_CANCEL;
}
if (mDialogManager != null)
mDialogManager.setBgSelector(false);
if (!mReady) {
reset();
return true;
}
if (!isRecording || mTime < 1.0f) {//如果时间少于1s,则提示录音过短
// mDialogManager.tooShort();
// mAudioManager.cancel();
audioRecorder.cancel();
// 延迟显示对话框
mHandler.sendEmptyMessageDelayed(MSG_DIALOG_DIMISS, 1000);
reset();
} else if (mCurrentState == STATE_RECORDING) {
//如果状态为正在录音,则结束录制
stopRecording(noSend);
} else if (mCurrentState == STATE_CANCEL) { // 想要取消
if (audioTouchCallback != null) {
// VibratorHelper.INSTANCE.createOneShotOnImportant();
mDialogManager.updateTips(getContext().getString(R.string.release_your_finger_and_cancel_sending));
audioTouchCallback.onTouchCallback(STATE_CANCEL);
}
mDialogManager.stopTime();
mDialogManager.dimissDialog();
// mAudioManager.cancel();
audioRecorder.cancel();
reset();
}
return false;
}
public void stopRecording(final boolean noSend) {
Log.e("stopRecording",noSend+"");
if (finishRecorderCallBack != null) {
if (audioTouchCallback != null) {
audioTouchCallback.onTouchCallback(MSG_AUDIO_COMPLETE);
}
audioRecorder.stopRecording(new AudioRecorder.OnRecordListener() {
@Override
public void onError(String content) {
reset();
}
@Override
public void onSuccess(List<Double> results) {
finishRecorderCallBack.onFinish(mTime, audioRecorder.getCurrentFilePath(), results, noSend);
mDialogManager.stopTime();
reset();
}
});
mDialogManager.dimissDialog();
}
}
/**
* 恢复状态及标志位
*/
public void reset() {
isRecording = false;
mTime = 0;
mReady = false;
changeState(STATE_NORMAL);
}
private boolean wantToCancle(int x, int y) {
// 超过按钮的宽度
// if (x < 0 || x > getWidth()) {
// return true;
// }
// 超过按钮的高度
return y < -DISTANCE_Y_CANCEL || y > getHeight() + DISTANCE_Y_CANCEL;
}
/**
* @param
* @description 根据状态改变Button显示
* @author ldm
* @time 2016/6/25 9:36
*/
private void changeState(int state) {
if (mCurrentState != state) {
mCurrentState = state;
switch (state) {
case STATE_NORMAL:
break;
case STATE_RECORDING:
if (isRecording) {
mDialogManager.updateTips(getContext().getString(R.string.finger_swipe_and_cancel_sending));
mDialogManager.setBgSelector(false);
if (audioTouchCallback != null) {
audioTouchCallback.onTouchCallback(STATE_RECORDING);
}
}
break;
case STATE_SLIPPERY:
if (isRecording) {
mDialogManager.setBgSelector(true);
mDialogManager.updateTips(getContext().getString(R.string.release_your_finger_and_cancel_sending));
if (audioTouchCallback != null) {
audioTouchCallback.onTouchCallback(STATE_SLIPPERY);
}
}
break;
}
}
}
}
package com.yumeng.libbaseProject.view.audioRecorder;
public interface AudioTouchCallback {
void onTouchCallback(int type);
}
package com.yumeng.libbaseProject.view.audioRecorder
import com.yumeng.libbaseProject.R
import com.yumeng.libcommon.context.AppContextWrapper
import com.yumeng.libcommon.utils.ToastUtils
object VoipUtils {
var globalType: String? = null
fun isCalling(): Boolean {
return if (globalType.isNullOrEmpty()) {
false
} else {
if (globalType == "video") {
ToastUtils.getInstance().shortToast(AppContextWrapper.getApplicationContext().getString(
R.string.video_call_is_on_tips))
} else {
ToastUtils.getInstance().shortToast(AppContextWrapper.getApplicationContext().getString(R.string.voice_call_is_on_tips))
}
true
}
}
}
\ No newline at end of file
package com.yumeng.libbaseProject.view.emoji
import android.content.Context
import android.graphics.Color
import android.util.AttributeSet
import android.view.LayoutInflater
import android.widget.LinearLayout
import com.vanniktech.emoji.EmojiView
import com.vanniktech.emoji.RecentEmojiManager
import com.vanniktech.emoji.VariantEmojiManager
import com.vanniktech.emoji.listeners.OnEmojiBackspaceClickListener
import com.vanniktech.emoji.listeners.OnEmojiClickListener
import com.yumeng.libbaseProject.R
import com.yumeng.libcommonview.theme.Theme
import kotlinx.android.synthetic.main.widget_emoji_layout.view.*
class MyEmojiView(context: Context?, attrs: AttributeSet? = null) :
LinearLayout(context, attrs) {
private var recentManager: RecentEmojiManager? = null
private var variantManager: VariantEmojiManager? = null
init {
initView()
recentManager = RecentEmojiManager(context!!)
variantManager = VariantEmojiManager(context!!)
}
private fun initView() {
val inflater = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
inflater.inflate(R.layout.widget_emoji_layout, this)
}
fun getRecent(): RecentEmojiManager {
return recentManager!!
}
fun getVariant(): VariantEmojiManager {
return variantManager!!
}
fun setView(onEmojiClickListener: OnEmojiClickListener, onEmojiBackspaceClickListener: OnEmojiBackspaceClickListener) {
val emojiView = EmojiView(
context,
onEmojiClickListener,
null,
recentManager!!,
variantManager!!,
Color.parseColor("#ffffff"),
Color.parseColor("#000000"),
Color.parseColor("#000000"),
Theme.getThemeColor(),
null
)
emojiView.setOnEmojiBackspaceClickListener(onEmojiBackspaceClickListener)
val params =
LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT)
llEmoji.addView(emojiView, params)
}
}
\ No newline at end of file
package com.yumeng.libbaseProject.view.mapview
import android.content.Context
import android.graphics.Bitmap
import android.util.AttributeSet
import android.view.LayoutInflater
import android.view.View
import android.widget.ImageView
import android.widget.LinearLayout
import com.google.android.gms.maps.CameraUpdateFactory
import com.google.android.gms.maps.GoogleMap
import com.google.android.gms.maps.MapView
import com.google.android.gms.maps.model.LatLng
import com.google.android.gms.maps.model.MarkerOptions
import com.yumeng.libbaseProject.R
import com.yumeng.libcommon.listener.ListenableFuture
import com.yumeng.libcommon.listener.SettableFuture
import kotlinx.android.synthetic.main.widget_map_view.view.*
class AilloMapView : LinearLayout {
private var mapView: MapView? = null
private var imageView: ImageView? = null
constructor(context: Context) : this(context, null)
constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) {
initialize(context)
}
private fun initialize(context: Context) {
orientation = VERTICAL
val inflate = LayoutInflater.from(context).inflate(R.layout.widget_map_view, this, true)
mapView = inflate.findViewById(R.id.map)
imageView = inflate.findViewById(R.id.imageView)
}
fun display(place: ChatPlace): ListenableFuture<Bitmap> {
val future = SettableFuture<Bitmap>()
this.mapView?.onCreate(null)
this.mapView?.onResume()
this.mapView?.visibility = View.VISIBLE
this.imageView?.visibility = View.GONE
val latLng = LatLng(place.latitude ?: 0.0, place.longitude ?: 0.0)
this.mapView?.getMapAsync { googleMap ->
googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, 16f))
googleMap.addMarker(MarkerOptions().position(latLng))
googleMap.isBuildingsEnabled = true
googleMap.mapType = GoogleMap.MAP_TYPE_NORMAL
googleMap.uiSettings.setAllGesturesEnabled(false)
googleMap.setOnMapLoadedCallback {
googleMap.snapshot { bitmap ->
future.set(bitmap)
imageView?.setImageBitmap(bitmap)
imageView?.visibility = View.VISIBLE
mapView?.visibility = View.GONE
mapView?.onPause()
mapView?.onDestroy()
}
}
}
this.textView.text = "${place.name}${place.address}"
return future
}
}
\ No newline at end of file
package com.yumeng.libbaseProject.view.mapview
import java.io.Serializable
class ChatPlace() : Serializable {
var name: String? = null
var address: String? = null
var latitude: Double? = null
var longitude: Double? = null
var locationImg: String? = null
var cryptoType: Int = 2//加密消息类型
var fileKey:String?=null
constructor(name: String, address: String, latitude: Double, longitude: Double) : this() {
this.name = name
this.address = address
this.latitude = latitude
this.longitude = longitude
}
}
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android"
android:animation="@anim/linkman_list_anim"
android:animationOrder="normal"
android:delay="0.5" />
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="350"
android:fromYDelta="0"
android:interpolator="@android:anim/decelerate_interpolator"
android:toYDelta="0" />
</set>
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromYDelta="100%p"
android:toYDelta="0"
android:fromAlpha="0.0"
android:toAlpha="1.0"
android:duration="300"
/>
</set>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromYDelta="25"
android:toYDelta="100%p"
android:duration="500"
/>
</set>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<!-- 弹出时动画 -->
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale
android:interpolator="@android:anim/accelerate_interpolator"
android:fromXScale="1.0"
android:toXScale="1.0"
android:fromYScale="0.0"
android:toYScale="1.0"
android:pivotX="0%"
android:pivotY="100%"
android:fillAfter="false"
android:duration="400"/>
</set>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<!-- 退出时动画效果 -->
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale
android:interpolator="@android:anim/accelerate_interpolator"
android:fromXScale="1.0"
android:toXScale="1.0"
android:fromYScale="1.0"
android:toYScale="0.0"
android:pivotX="0%"
android:pivotY="100%"
android:fillAfter="false"
android:duration="400"/>
</set>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
android:fromAlpha="0.0"
android:toAlpha="1.0"
android:duration="500"/>
<translate
android:fromXDelta="-1000"
android:toXDelta="0"
android:duration="500"/>
</set>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="300"
android:fromXDelta="0"
android:fromYDelta="0"
android:toXDelta="-1000"
android:toYDelta="0" />
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="200"
android:fromXDelta="100.0%p"
android:toXDelta="0.0" />
</set>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="200"
android:fromXDelta="0.0"
android:toXDelta="100.0%p" />
</set>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<objectAnimator
android:duration="1"
android:propertyName="elevation"
android:valueTo="0dp"
android:valueType="floatType"/>
</item>
</selector>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<objectAnimator
android:duration="1"
android:propertyName="elevation"
android:valueTo="2dp"
android:valueType="floatType"/>
</item>
</selector>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2017 Zhihu Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/dracula_bottom_toolbar_apply_text_disable"
android:state_enabled="false"/>
<item android:color="@color/dracula_bottom_toolbar_apply_text"/>
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2017 Zhihu Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/dracula_bottom_toolbar_preview_text_disable"
android:state_enabled="false"/>
<item android:color="@color/dracula_bottom_toolbar_preview_text"/>
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2017 Zhihu Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/dracula_preview_bottom_toolbar_apply_text_disable"
android:state_enabled="false"/>
<item android:color="@color/dracula_preview_bottom_toolbar_apply_text"/>
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/basic_theme_colors" android:state_pressed="true" />
<item android:color="@color/basic_theme_colors" android:state_selected="true" />
<item android:color="@color/basic_theme_colors" android:state_checked="true" />
<item android:color="@color/bottom_icon_bg" />
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/basic_theme_colors" android:state_pressed="true" />
<item android:color="@color/basic_theme_colors" android:state_selected="true" />
<item android:color="@color/basic_theme_colors" android:state_checked="true" />
<item android:color="@color/color_999999" />
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:tools="http://schemas.android.com/tools" xmlns:android="http://schemas.android.com/apk/res/android" tools:ignore="MissingDefaultResource">
<item android:color="@color/black" android:state_pressed="true" />
<item android:color="@color/black" android:state_selected="true" />
<item android:color="@color/black" android:state_checked="true" />
<item android:color="@color/color_999999" />
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/basic_theme_colors" />
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/black" android:state_selected="true"/>
<item android:color="@color/black" android:state_selected="false"/>
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/basic_theme_colors" android:state_selected="true"/>
<item android:color="@color/white" android:state_selected="false"/>
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/white_70" android:state_enabled="false"></item>
<item android:color="@color/white" android:state_enabled="true"></item>
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2017 Zhihu Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/zhihu_bottom_toolbar_apply_text_disable"
android:state_enabled="false"/>
<item android:color="@color/zhihu_bottom_toolbar_apply_text"/>
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2017 Zhihu Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/zhihu_bottom_toolbar_preview_text_disable"
android:state_enabled="false"/>
<item android:color="@color/zhihu_bottom_toolbar_preview_text"/>
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2017 Zhihu Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/zhihu_preview_bottom_toolbar_apply_text_disable"
android:state_enabled="false"/>
<item android:color="@color/zhihu_preview_bottom_toolbar_apply_text"/>
</selector>
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/primary_item_pressed_color">
<item android:drawable="@color/white" />
</ripple>
<vector android:height="108dp" android:viewportHeight="1920"
android:viewportWidth="1920" android:width="108dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#54cfb9"
android:pathData="M0,960l0,-960 960,0 960,0 0,960 0,960 -960,0 -960,0 0,-960z" android:strokeColor="#00000000"/>
<path android:fillColor="#54cbd1"
android:pathData="M0,960l0,-960 358,0 357,0 114,114 113,113 81,6c171,11 322,82 452,212 130,130 201,281 212,452l6,81 113,113 114,114 0,357 0,358 -960,0 -960,0 0,-960zM1503,773c-7,-22 -50,-111 -66,-138 -15,-25 -126,-136 -152,-152 -28,-17 -116,-60 -140,-67 -11,-4 65,79 170,184 104,104 191,190 192,190 1,0 0,-8 -4,-17z" android:strokeColor="#00000000"/>
<path android:fillColor="#53c2e2"
android:pathData="M0,1113l0,-808 155,155c85,85 156,152 158,150 2,-3 22,-32 44,-65 49,-73 150,-168 226,-214 31,-18 96,-47 144,-64 83,-30 96,-31 233,-31 131,0 153,2 225,27 116,38 199,91 290,182 91,91 144,175 182,290 25,72 27,94 27,225 0,131 -2,153 -27,225 -51,152 -147,282 -276,373 -36,25 -68,47 -71,49 -2,2 65,73 150,158l155,155 -808,0 -807,0 0,-807zM1251,1459c78,-42 184,-155 226,-241 83,-167 83,-345 1,-517 -43,-92 -168,-216 -261,-260 -170,-81 -351,-79 -518,4 -83,42 -177,126 -223,200 -33,51 -64,116 -50,102 4,-4 68,52 141,125l133,133 0,-56c0,-98 59,-187 155,-230 53,-25 157,-25 210,0 163,74 208,279 91,418 -38,45 -119,83 -178,83 -26,0 -48,3 -48,7 0,8 251,263 258,263 3,0 31,-14 63,-31zM1036,1036c28,-28 34,-42 34,-76 0,-34 -6,-48 -34,-76 -28,-28 -42,-34 -76,-34 -34,0 -48,6 -76,34 -28,28 -34,42 -34,76 0,34 6,48 34,76 28,28 42,34 76,34 34,0 48,-6 76,-34z" android:strokeColor="#00000000"/>
<path android:fillColor="#52b8ed"
android:pathData="M0,1413l0,-508 125,125 126,125 -8,-45c-4,-25 -8,-101 -7,-170 0,-113 3,-134 31,-213 43,-122 85,-189 178,-282 92,-92 160,-135 282,-178 83,-30 96,-31 233,-31 131,0 153,2 225,27 116,38 199,91 290,182 91,91 144,175 182,290 25,72 27,94 27,225 0,131 -2,153 -27,225 -39,116 -91,199 -182,290 -92,92 -176,144 -290,182 -69,23 -97,27 -210,27 -71,1 -148,-3 -170,-7 -40,-8 -40,-8 85,117l125,126 -508,0 -507,0 0,-507zM757,1663c-4,-3 -10,-3 -14,0 -3,4 0,7 7,7 7,0 10,-3 7,-7zM727,1653c-4,-3 -10,-3 -14,0 -3,4 0,7 7,7 7,0 10,-3 7,-7zM590,1596c0,-3 -5,-8 -12,-12 -7,-4 -8,-3 -4,4 7,12 16,16 16,8zM1089,1525c106,-25 211,-87 288,-169 172,-182 210,-426 101,-655 -43,-92 -168,-216 -261,-260 -234,-111 -498,-64 -674,123 -198,209 -216,491 -45,748l25,39 -23,31c-12,17 -18,28 -13,25 6,-4 18,2 28,13 13,14 31,20 64,20 32,0 67,10 116,35 128,63 265,80 394,50zM464,1424c3,-8 2,-12 -4,-9 -6,3 -10,10 -10,16 0,14 7,11 14,-7zM340,1346c0,-3 -5,-8 -12,-12 -7,-4 -8,-3 -4,4 7,12 16,16 16,8zM267,1193c-4,-3 -7,0 -7,7 0,7 3,10 7,7 3,-4 3,-10 0,-14zM257,1163c-4,-3 -7,0 -7,7 0,7 3,10 7,7 3,-4 3,-10 0,-14z" android:strokeColor="#00000000"/>
<path android:fillColor="#52b8ed"
android:pathData="M842,1194c-93,-46 -142,-127 -142,-234 0,-152 108,-260 260,-260 152,0 259,108 260,261 0,151 -108,258 -261,259 -50,0 -77,-6 -117,-26zM1036,1036c28,-28 34,-42 34,-76 0,-34 -6,-48 -34,-76 -28,-28 -42,-34 -76,-34 -34,0 -48,6 -76,34 -28,28 -34,42 -34,76 0,34 6,48 34,76 28,28 42,34 76,34 34,0 48,-6 76,-34z" android:strokeColor="#00000000"/>
<path android:fillColor="#ffffff"
android:pathData="M781,1670c-250,-67 -437,-243 -518,-485 -24,-72 -27,-95 -27,-225 -1,-137 1,-150 31,-233 43,-123 86,-190 178,-282 92,-92 160,-135 282,-178 83,-30 96,-31 233,-31 131,0 153,2 225,27 116,38 199,91 290,182 91,91 144,175 182,290 25,72 27,94 27,225 0,131 -2,153 -27,225 -39,116 -91,199 -182,290 -147,146 -285,206 -495,211 -102,3 -139,0 -199,-16zM1089,1525c106,-25 211,-87 288,-169 172,-182 210,-426 101,-655 -43,-92 -168,-216 -261,-260 -234,-111 -498,-64 -674,123 -198,209 -216,491 -46,748 24,36 25,39 9,63 -9,13 -25,29 -36,35 -39,21 -19,30 67,30 80,0 94,3 158,35 128,63 265,80 394,50z" android:strokeColor="#00000000"/>
<path android:fillColor="#ffffff"
android:pathData="M842,1194c-93,-46 -142,-127 -142,-234 0,-152 108,-260 260,-260 152,0 259,108 260,261 0,151 -108,258 -261,259 -50,0 -77,-6 -117,-26zM1036,1036c28,-28 34,-42 34,-76 0,-34 -6,-48 -34,-76 -28,-28 -42,-34 -76,-34 -34,0 -48,6 -76,34 -28,28 -34,42 -34,76 0,34 6,48 34,76 28,28 42,34 76,34 34,0 48,-6 76,-34z" android:strokeColor="#00000000"/>
</vector>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/red_corner_25_bg" android:state_selected="true" />
<item android:drawable="@drawable/white_corner_25_bg" android:state_selected="false" />
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="@color/basic_theme_colors" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="12dp" />
<solid android:color="#ffeeeeee" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="@color/redDot" />
<size android:width="@dimen/dp_10"
android:height="@dimen/dp_10"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="@color/white" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:gravity="fill">
<shape android:shape="rectangle">
<solid android:color="@color/white"/>
</shape>
</item>
<item >
<bitmap
android:gravity="center"
android:src="@drawable/ic_start_page"
android:tileMode="disabled"
/>
</item>
</layer-list>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="3dp"/>
<solid android:color="@color/white"/>
<!--<stroke-->
<!--android:color="@color/gray"-->
<!--android:width="0.5dp"/>-->
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@android:color/white"/>
<corners android:radius="4dp"/>
<stroke
android:width="4dp"
android:color="#DDDDDD"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="@dimen/dp_6"/>
<solid android:color="@android:color/white"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval" >
<solid android:color="#ebebeb" />
<size
android:width="20dp"
android:height="20dp" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<solid android:color="@color/basic_theme_colors" />
<stroke
android:width="8dp"
android:color="#00000000" />
<corners android:radius="20dp" />
<size android:width="30dp"
android:height="14dp"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<solid android:color="#ffffff"/>
<stroke android:color="#9b9b9b" android:width="1px"/>
<corners android:radius="3dp"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<solid android:color="#eeeeee"/>
<stroke android:color="#9b9b9b" android:width="1px"/>
<corners android:radius="3dp"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/colorPrimaryDark"/>
<corners android:radius="@dimen/btn_radius"/>
<padding android:left="@dimen/margin_text" android:right="@dimen/margin_text"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/colorPrimary"/>
<corners android:radius="@dimen/btn_radius"/>
<padding android:left="@dimen/margin_text" android:right="@dimen/margin_text"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/btn_round_green_disable" android:state_enabled="false"></item>
<item android:drawable="@drawable/btn_round_green_enable" android:state_enabled="true"></item>
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/transparent_50">
<!--背景透明色 android:id="@android:id/mask"-->
<item>
<shape android:shape="oval">
<!-- <padding-->
<!-- android:bottom="5dp"-->
<!-- android:left="15dp"-->
<!-- android:right="15dp"-->
<!-- android:top="5dp" />-->
<!-- <solid android:color="@color/transparent" />-->
<corners android:radius="100dp" />
</shape>
</item>
</ripple>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@mipmap/message_icon" android:state_selected="false" />
<item android:drawable="@mipmap/message_select_icon" android:state_selected="true" />
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_checkbox_selector_20dp" android:state_checked="true" android:state_enabled="true"/>
<!-- 设置选中图片 -->
<item android:drawable="@drawable/ic_checkbox_normal_20dp" android:state_checked="false" android:state_enabled="true"/>
<!-- 设置未选中图片 -->
<item android:drawable="@drawable/ic_checkbox_enable_20dp" android:state_selected="true" />
<item android:drawable="@drawable/ic_unenable_checkbox" android:state_enabled="false" android:state_checkable="false" />
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners
android:bottomLeftRadius="@dimen/dp_30"
android:topLeftRadius="@dimen/dp_30" />
<solid android:color="@android:color/white" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="@color/white" />
<size
android:width="@dimen/dp_10"
android:height="@dimen/dp_10" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<size android:width="2dp" />
<solid android:color="@android:color/white" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/basic_theme_colors"/>
<corners android:radius="6dp"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#ffffff"/>
<corners android:radius="3dp"/>
<stroke android:width="2dp" android:color="#b3dee7ef"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/white"/>
<corners android:radius="3dp"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<solid android:color="@color/black" />
<size android:width="1dp"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/discover_icon" android:state_selected="false" />
<item android:drawable="@drawable/discover_select_icon" android:state_selected="true" />
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<size android:width="@dimen/dp_20"
android:height="@dimen/dp_10" />
<solid android:color="@android:color/transparent" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/color_ccc"/>
<size android:height="1px"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/color_DDD"/>
<size android:height="1px"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/colorPrimary"/>
<size android:height="2px"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/blue_theme_color"/>
<size android:height="2px"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@android:color/transparent"/>
<size android:height="10dp"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<corners android:radius="12dp" />
<solid android:color="@color/colorRed2" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_group_10dp" android:state_selected="true" />
<item android:drawable="@drawable/ic_group_10dp" android:state_selected="false" />
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/shape"
android:bottom="1dp"
android:left="-10dp"
android:right="-10dp"
android:top="-10dp">
<shape>
<solid android:color="@android:color/transparent"/>
<stroke android:width="1dp" android:color="#f1f1f1"/>
</shape>
</item>
</layer-list>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/basic_theme_colors"/>
<corners
android:bottomLeftRadius="50dp"
android:bottomRightRadius="50dp"
android:topLeftRadius="50dp"
android:topRightRadius="0dp"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#4C000000"/>
<stroke
android:color="#ffffff"
android:width="1px"/>
<corners
android:radius="2dp"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!-- 高度40 -->
<size
android:width="21dp"
android:height="21dp" />
<!-- 圆角弧度 20 -->
<corners android:radius="12dp" />
<!-- 变化率 -->
<gradient
android:endColor="#ffffffff"
android:startColor="#ffffffff" />
<stroke
android:width="1dp"
android:color="#FFDDDDDD" />
</shape>
\ No newline at end of file
<vector android:height="15dp" android:viewportHeight="44"
android:viewportWidth="44" android:width="15dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#CCCCCC" android:fillType="evenOdd" android:pathData="M40.992,43.995L27.006,43.995C25.351,43.995 24.009,42.653 24.009,40.998L24.009,27.012C24.009,25.357 25.351,24.015 27.006,24.015L40.992,24.015C42.647,24.015 43.988,25.357 43.988,27.012L43.988,40.998C43.988,42.653 42.647,43.995 40.992,43.995ZM40.992,19.993L27.006,19.993C25.351,19.993 24.009,18.652 24.009,16.996L24.009,3.01C24.009,1.355 25.351,0.013 27.006,0.013L40.992,0.013C42.647,0.013 43.988,1.355 43.988,3.01L43.988,16.996C43.988,18.652 42.647,19.993 40.992,19.993ZM16.991,43.995L3.005,43.995C1.35,43.995 0.008,42.653 0.008,40.998L0.008,27.012C0.008,25.357 1.35,24.015 3.005,24.015L16.991,24.015C18.646,24.015 19.988,25.357 19.988,27.012L19.988,40.998C19.988,42.653 18.646,43.995 16.991,43.995ZM16.991,19.993L3.005,19.993C1.35,19.993 0.008,18.652 0.008,16.996L0.008,3.01C0.008,1.355 1.35,0.013 3.005,0.013L16.991,0.013C18.646,0.013 19.988,1.355 19.988,3.01L19.988,16.996C19.988,18.652 18.646,19.993 16.991,19.993Z"/>
</vector>
<vector android:height="15dp" android:viewportHeight="44"
android:viewportWidth="44" android:width="15dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#54D0AC" android:fillType="evenOdd" android:pathData="M40.992,43.995L27.006,43.995C25.351,43.995 24.009,42.653 24.009,40.998L24.009,27.012C24.009,25.357 25.351,24.015 27.006,24.015L40.992,24.015C42.647,24.015 43.988,25.357 43.988,27.012L43.988,40.998C43.988,42.653 42.647,43.995 40.992,43.995ZM40.992,19.993L27.006,19.993C25.351,19.993 24.009,18.652 24.009,16.996L24.009,3.01C24.009,1.355 25.351,0.013 27.006,0.013L40.992,0.013C42.647,0.013 43.988,1.355 43.988,3.01L43.988,16.996C43.988,18.652 42.647,19.993 40.992,19.993ZM16.991,43.995L3.005,43.995C1.35,43.995 0.008,42.653 0.008,40.998L0.008,27.012C0.008,25.357 1.35,24.015 3.005,24.015L16.991,24.015C18.646,24.015 19.988,25.357 19.988,27.012L19.988,40.998C19.988,42.653 18.646,43.995 16.991,43.995ZM16.991,19.993L3.005,19.993C1.35,19.993 0.008,18.652 0.008,16.996L0.008,3.01C0.008,1.355 1.35,0.013 3.005,0.013L16.991,0.013C18.646,0.013 19.988,1.355 19.988,3.01L19.988,16.996C19.988,18.652 18.646,19.993 16.991,19.993Z"/>
</vector>
<vector android:height="19.333334dp" android:viewportHeight="58"
android:viewportWidth="54" android:width="18dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#000000" android:fillType="evenOdd" android:pathData="M51.5,49L45,49L45,55.5C45,56.881 43.881,58 42.5,58C41.119,58 40,56.881 40,55.5L40,49L33.5,49C32.119,49 31,47.881 31,46.5C31,45.119 32.119,44 33.5,44L40,44L40,37.5C40,36.119 41.119,35 42.5,35C43.881,35 45,36.119 45,37.5L45,44L51.5,44C52.88,44 54,45.119 54,46.5C54,47.881 52.88,49 51.5,49ZM29.173,32.544C15.749,32.544 5.626,42.255 5.626,55.133C5.614,56.712 4.352,57.988 2.815,57.988C1.268,57.988 0.01,56.708 0.01,55.133C0.01,47.282 3.058,40.064 8.593,34.807C11.502,32.045 14.954,29.949 18.743,28.599C15.24,25.538 13.175,20.985 13.189,16.268C13.189,7.3 20.359,0.001 29.173,0.001C37.986,0.001 45.156,7.3 45.156,16.272C45.156,25.245 37.986,32.544 29.173,32.544ZM29.165,5.718C23.456,5.724 18.804,10.46 18.799,16.274C18.799,19.547 20.251,22.579 22.783,24.59C23.565,25.21 23.97,26.221 23.838,27.229C23.836,27.244 23.834,27.259 23.832,27.274C25.57,26.977 27.353,26.826 29.166,26.826C34.876,26.82 39.527,22.085 39.534,16.271C39.527,10.459 34.876,5.724 29.165,5.718Z"/>
</vector>
<vector android:height="18dp" android:viewportHeight="54"
android:viewportWidth="54" android:width="18dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#54d0ac" android:fillType="evenOdd" android:pathData="M52.697,47.945C50.825,51.371 46.43,54.691 40.867,53.92C27.182,52.022 16.941,43.694 13.436,40.219C9.934,36.747 0.939,28.227 0.032,14.168C-0.161,11.162 0.484,8.491 1.781,6.104C3.213,3.542 4.447,2.355 5.616,1.604C7.038,0.692 8.017,0.07 10.227,0C10.902,-0.021 11.824,0.145 12.436,0.503C13.823,1.316 15.861,4.152 16.701,5.63C17.657,7.313 19.698,10.891 19.467,13.062C19.387,13.813 19.091,14.352 18.354,15.109C17.624,15.867 16.827,16.571 15.969,17.215C15.111,17.852 14.321,18.522 13.584,19.233C12.855,19.944 12.399,20.535 12.483,20.983C12.95,23.49 17.293,29.993 20.658,33.207C24.078,36.472 27.708,39.059 32.975,41.321C33.403,41.504 34.022,40.958 34.739,40.227C35.455,39.503 36.137,38.712 36.772,37.861C37.414,37.009 38.117,36.224 38.894,35.493C39.671,34.763 40.299,34.4 40.812,34.4C41.164,34.4 41.542,34.487 41.914,34.662C42.285,34.836 51.75,39.003 53.738,41.817C54.042,42.246 54.035,43.248 53.946,43.906C53.752,45.345 53.355,46.742 52.697,47.945Z"/>
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="16dp"
android:height="15.666667dp"
android:viewportWidth="48"
android:viewportHeight="47">
<path
android:fillColor="#54d0ac"
android:fillType="evenOdd"
android:pathData="M47.999,27L12.15,27L27.741,42.592L23.499,46.834L0.164,23.5L4.407,19.257L4.407,19.257L23.499,0.165L27.741,4.408L11.149,21L47.999,21L47.999,27Z" />
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="12.4dp"
android:height="14.031579dp"
android:viewportWidth="38"
android:viewportHeight="43">
<path
android:fillColor="#000"
android:fillType="evenOdd"
android:pathData="M36.617,38.752C36.031,39.338 35.062,39.318 34.452,38.708L31.744,36L2.999,36C1.342,36 -0.001,34.656 -0.001,33C-0.001,31.343 1.342,30 2.999,30L2.999,19C2.999,15.688 4.086,12.641 5.911,10.167L1.306,5.562C0.696,4.952 0.676,3.982 1.262,3.397C1.848,2.811 2.817,2.831 3.427,3.441L7.906,7.92C8.053,7.785 8.215,7.667 8.367,7.538C8.215,7.666 8.069,7.801 7.921,7.935L36.573,36.586C37.183,37.197 37.203,38.166 36.617,38.752ZM35.113,35.127C35.382,34.859 35.6,34.54 35.753,34.187C35.601,34.54 35.382,34.859 35.113,35.127ZM35.181,30.951L35.181,30.951L35.181,30.951L35.181,30.951ZM35.777,31.874C35.635,31.53 35.431,31.219 35.181,30.951C35.432,31.219 35.636,31.529 35.777,31.874ZM35.048,30.818C34.78,30.568 34.468,30.364 34.124,30.222C34.47,30.363 34.78,30.567 35.048,30.818ZM35.048,30.818L35.048,30.818L35.048,30.818L35.048,30.818ZM32.999,30C33.201,30 33.396,30.021 33.586,30.059C33.396,30.021 33.2,30 32.999,30L32.999,30ZM14.999,4.301L14.999,3C14.999,1.343 16.342,-0 17.999,-0C19.656,-0 20.999,1.343 20.999,3L20.999,4.301C27.846,5.691 32.999,11.743 32.999,19L32.999,28.77L10.337,6.108C11.757,5.262 13.326,4.641 14.999,4.301ZM17.999,43C15.027,43 12.566,40.836 12.089,38L23.909,38C23.432,40.836 20.972,43 17.999,43Z" />
</vector>
<vector android:height="15dp" android:viewportHeight="44"
android:viewportWidth="44" android:width="15dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#CCCCCC" android:fillType="evenOdd" android:pathData="M41.071,43.995L2.924,43.995C1.304,43.995 -0.008,42.653 -0.008,40.998L-0.008,27.012C-0.008,25.357 1.304,24.015 2.924,24.015L41.071,24.015C42.691,24.015 44.004,25.357 44.004,27.012L44.004,40.998C44.004,42.653 42.691,43.995 41.071,43.995ZM41.071,19.993L2.924,19.993C1.304,19.993 -0.008,18.652 -0.008,16.996L-0.008,3.01C-0.008,1.355 1.304,0.013 2.924,0.013L41.071,0.013C42.691,0.013 44.004,1.355 44.004,3.01L44.004,16.996C44.004,18.652 42.691,19.993 41.071,19.993Z"/>
</vector>
<vector android:height="15dp" android:viewportHeight="44"
android:viewportWidth="44" android:width="15dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#54D0AC" android:fillType="evenOdd" android:pathData="M41.071,43.995L2.924,43.995C1.304,43.995 -0.008,42.653 -0.008,40.998L-0.008,27.012C-0.008,25.357 1.304,24.015 2.924,24.015L41.071,24.015C42.691,24.015 44.004,25.357 44.004,27.012L44.004,40.998C44.004,42.653 42.691,43.995 41.071,43.995ZM41.071,19.993L2.924,19.993C1.304,19.993 -0.008,18.652 -0.008,16.996L-0.008,3.01C-0.008,1.355 1.304,0.013 2.924,0.013L41.071,0.013C42.691,0.013 44.004,1.355 44.004,3.01L44.004,16.996C44.004,18.652 42.691,19.993 41.071,19.993Z"/>
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="58dp"
android:height="48dp"
android:viewportWidth="240"
android:viewportHeight="200">
<path
android:fillAlpha="1.00"
android:fillColor="#54D0AC"
android:pathData=" M 88.58 0.00 L 114.84 0.00 C 117.96 2.09 121.78 2.28 125.30 3.27 C 139.07 6.61 151.78 13.47 163.03 21.97 C 185.62 42.35 207.70 63.30 229.05 84.99 C 232.60 88.51 236.01 92.20 240.00 95.24 L 240.00 98.67 C 227.03 110.89 215.85 124.81 203.51 137.64 C 193.22 148.95 182.22 159.59 171.43 170.43 C 164.15 177.37 156.51 184.22 147.59 188.97 C 140.61 190.98 134.09 194.27 127.10 196.24 C 122.57 197.77 117.65 197.85 113.32 200.00 L 92.46 200.00 C 81.12 198.43 69.78 196.01 59.31 191.21 C 35.80 180.97 16.87 161.09 7.31 137.34 C 5.95 133.86 4.50 130.36 3.97 126.63 C 3.58 125.94 3.18 125.26 2.78 124.57 C 2.47 120.68 1.52 116.87 0.00 113.27 L 0.00 88.46 C 0.50 87.01 1.10 85.60 1.62 84.16 C 3.65 67.20 11.37 51.24 21.77 37.82 C 35.75 20.18 55.87 7.59 77.79 2.57 C 81.44 1.95 85.00 0.92 88.58 0.00 Z" />
</vector>
\ No newline at end of file
<vector android:height="16.945162dp" android:viewportHeight="51"
android:viewportWidth="62" android:width="20.6dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#54D0AC" android:fillType="evenOdd" android:pathData="M55.8,50.88L6.2,50.88C2.776,50.88 0,48.083 0,44.632L0,13.392C0,9.941 2.776,7.144 6.2,7.144L16.399,7.144L18.927,2.047C19.277,1.341 19.993,0.896 20.776,0.896L39.786,0.896C40.569,0.896 41.285,1.341 41.635,2.047L44.164,7.144L55.8,7.144C59.224,7.144 62,9.941 62,13.392L62,44.632C62,48.083 59.224,50.88 55.8,50.88ZM31,11.309C21.869,11.309 14.467,18.769 14.467,27.971C14.467,37.172 21.869,44.632 31,44.632C40.131,44.632 47.533,37.172 47.533,27.971C47.533,18.769 40.131,11.309 31,11.309ZM31,38.384C25.293,38.384 20.667,33.722 20.667,27.971C20.667,22.219 25.293,17.557 31,17.557C36.707,17.557 41.333,22.219 41.333,27.971C41.333,33.722 36.707,38.384 31,38.384Z"/>
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="48dp"
android:height="48dp"
android:viewportWidth="145"
android:viewportHeight="145">
<path
android:fillColor="#54D0AC"
android:fillType="evenOdd"
android:pathData="M72.192,144.457C32.429,144.457 0.19,112.24 0.19,72.498C0.19,32.755 32.429,0.538 72.192,0.538C111.957,0.538 144.192,32.755 144.192,72.498C144.192,112.24 111.957,144.457 72.192,144.457ZM71.495,107C76.186,107 79.992,103.824 79.992,99.005L63,99.005C63,103.785 66.81,107 71.495,107ZM100.356,89.144C100.196,89.067 99.891,88.57 99.773,88.531C97.64,87.119 96.927,85.034 96.929,82.494L96.929,66.543C96.929,55.343 88.196,46.015 76.927,43.696L76.927,43.146C76.927,40.28 74.518,38 71.551,38C68.582,38 66.183,40.319 66.183,43.146L66.183,43.696C54.909,46.015 47.069,55.305 47.069,66.543L47.069,82.494C47.069,84.968 46.17,87.216 44.324,88.632C44.124,88.791 44.001,88.869 43.442,89.261C42.527,89.9 41.987,90.944 41.999,92.053C41.999,93.937 44.039,95 46,95L97.999,95C99.798,95 101.999,94 101.999,92.053C101.986,90.867 101.376,89.767 100.356,89.144Z" />
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="20dp"
android:height="20dp"
android:viewportWidth="60"
android:viewportHeight="60">
<path
android:fillColor="#989898"
android:fillType="evenOdd"
android:pathData="M51.999,60L7.999,60C3.581,60 -0.001,56.418 -0.001,52L-0.001,8C-0.001,3.581 3.581,-0 7.999,-0L51.999,-0C56.417,-0 59.999,3.581 59.999,8L59.999,52C59.999,56.418 56.417,60 51.999,60ZM46.97,19.245C45.994,18.269 44.411,18.269 43.434,19.245L26.117,36.562L16.571,27.016C15.595,26.04 14.012,26.04 13.036,27.016C12.059,27.992 12.059,29.575 13.036,30.551L24.314,41.83C24.327,41.843 24.33,41.86 24.343,41.872C24.366,41.896 24.395,41.913 24.42,41.935L26.117,43.633L27.878,41.872L46.97,22.78C47.946,21.804 47.946,20.221 46.97,19.245Z" />
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="20dp"
android:height="20.266666dp"
android:viewportWidth="75"
android:viewportHeight="76">
<path
android:fillColor="#FFFFFF"
android:fillType="evenOdd"
android:pathData="M15.999,8L59.998,8C64.418,8 67.999,11.582 67.999,15.999L67.999,60C67.999,64.418 64.418,68 59.998,68L15.999,68C11.581,68 7.998,64.418 7.998,60L7.998,15.999C7.998,11.582 11.581,8 15.999,8Z"
android:strokeWidth="4"
android:strokeColor="#DDDDDD" />
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="20dp"
android:height="20dp"
android:viewportWidth="60"
android:viewportHeight="60">
<path
android:fillColor="#54d0ac"
android:fillType="evenOdd"
android:pathData="M51.999,60L7.999,60C3.581,60 -0.001,56.418 -0.001,52L-0.001,8C-0.001,3.581 3.581,-0 7.999,-0L51.999,-0C56.417,-0 59.999,3.581 59.999,8L59.999,52C59.999,56.418 56.417,60 51.999,60ZM46.97,19.245C45.994,18.269 44.411,18.269 43.434,19.245L26.117,36.562L16.571,27.016C15.595,26.04 14.012,26.04 13.036,27.016C12.059,27.992 12.059,29.575 13.036,30.551L24.314,41.83C24.327,41.843 24.33,41.86 24.343,41.872C24.366,41.896 24.395,41.913 24.42,41.935L26.117,43.633L27.878,41.872L46.97,22.78C47.946,21.804 47.946,20.221 46.97,19.245Z" />
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="20dp"
android:height="20dp"
android:viewportWidth="60"
android:viewportHeight="60">
<path
android:fillColor="#bbbbbb"
android:fillType="evenOdd"
android:pathData="M51.999,60L7.999,60C3.581,60 -0.001,56.418 -0.001,52L-0.001,8C-0.001,3.581 3.581,-0 7.999,-0L51.999,-0C56.417,-0 59.999,3.581 59.999,8L59.999,52C59.999,56.418 56.417,60 51.999,60ZM46.97,19.245C45.994,18.269 44.411,18.269 43.434,19.245L26.117,36.562L16.571,27.016C15.595,26.04 14.012,26.04 13.036,27.016C12.059,27.992 12.059,29.575 13.036,30.551L24.314,41.83C24.327,41.843 24.33,41.86 24.343,41.872C24.366,41.896 24.395,41.913 24.42,41.935L26.117,43.633L27.878,41.872L46.97,22.78C47.946,21.804 47.946,20.221 46.97,19.245Z" />
</vector>
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="1024dp"
android:height="1024dp"
android:viewportHeight="1024"
android:viewportWidth="1024">
<path
android:fillColor="@color/color_ccc"
android:pathData="M512 0C230.4 0 0 230.4 0 512c0 281.6 230.4 512 512 512s512-230.4 512-512C1024
230.4 793.6 0 512 0zM755.2 691.2c19.2 19.2 19.2 44.8 0 64-6.4 6.4-19.2 12.8-32
12.8s-19.2-6.4-32-12.8L512 576l-179.2 179.2C320 761.6 313.6 768 300.8
768s-19.2-6.4-32-12.8c-19.2-19.2-19.2-44.8 0-64L448 512 268.8
332.8c-19.2-19.2-19.2-44.8 0-64s44.8-19.2 64 0L512 448l179.2-179.2c19.2-19.2
44.8-19.2 64 0s19.2 44.8 0 64L576 512 755.2 691.2z"/>
</vector>
\ No newline at end of file
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="15dp"
android:height="15dp"
android:viewportWidth="610"
android:viewportHeight="610">
<path
android:fillColor="#54d0ac"
android:pathData="M27,582c-15,-15 -27,-32 -27,-37 0,-6 52,-62 115,-125l115,-115 -115,-115c-63,-63 -115,-120 -115,-125 0,-14 52,-65 66,-65 5,0 61,52 124,115l115,115 115,-115c63,-63 120,-115 126,-115 13,0 64,52 64,65 0,6 -52,62 -115,125l-115,115 115,115c63,63 115,119 115,124 0,14 -51,66 -65,66 -5,0 -62,-52 -125,-115l-115,-115 -115,115c-63,63 -120,115 -126,115 -6,0 -22,-13 -37,-28z"
android:strokeColor="#00000000" />
</vector>
<vector android:height="18.7dp" android:viewportHeight="56"
android:viewportWidth="56" android:width="18.7dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#000000" android:fillType="evenOdd" android:pathData="M53.5,56C52.119,56 51,54.881 51,53.5L51,33.5C51,32.119 52.119,31 53.5,31C54.881,31 56,32.119 56,33.5L56,53.5C56,54.881 54.881,56 53.5,56ZM52,25L35,25C32.791,25 31,23.209 31,21L31,4C31,1.791 32.791,-0 35,-0L52,-0C54.209,-0 56,1.791 56,4L56,21C56,23.209 54.209,25 52,25ZM51,5L36,5L36,20L51,20L51,5ZM21,56L4,56C1.791,56 -0,54.209 -0,52L-0,35C-0,32.791 1.791,31 4,31L21,31C23.209,31 25,32.791 25,35L25,52C25,54.209 23.209,56 21,56ZM20,36L5,36L5,51L20,51L20,36ZM21,25L4,25C1.791,25 -0,23.209 -0,21L-0,4C-0,1.791 1.791,-0 4,-0L21,-0C23.209,-0 25,1.791 25,4L25,21C25,23.209 23.209,25 21,25ZM20,5L5,5L5,20L20,20L20,5ZM33.5,31C34.881,31 36,32.119 36,33.5L36,53.5C36,54.881 34.881,56 33.5,56C32.119,56 31,54.881 31,53.5L31,33.5C31,32.119 32.119,31 33.5,31ZM43.5,31C44.881,31 46,32.119 46,33.5L46,36.5C46,37.881 44.881,39 43.5,39C42.119,39 41,37.881 41,36.5L41,33.5C41,32.119 42.119,31 43.5,31ZM43.5,43C44.881,43 46,44.119 46,45.5L46,53.5C46,54.881 44.881,56 43.5,56C42.119,56 41,54.881 41,53.5L41,45.5C41,44.119 42.119,43 43.5,43Z"/>
</vector>
<vector android:height="68dp" android:viewportHeight="2730"
android:viewportWidth="2280" android:width="58dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#ffa245"
android:pathData="M29,2701l-29,-29 0,-1302 0,-1302 29,-29 29,-29 741,0 741,0 370,366 370,367 0,964 0,965 -29,29 -29,29 -1082,0 -1082,0 -29,-29z" android:strokeColor="#00000000"/>
<path android:fillColor="#ffc084"
android:pathData="M385,2169c-45,-25 -45,-29 -45,-346l0,-303 120,0 120,0 0,-80 0,-80 -120,0 -120,0 0,-85 0,-85 120,0 121,0 -3,-77 -3,-78 -117,-3 -118,-3 0,-79 0,-79 118,-3 117,-3 3,-77 3,-78 -121,0 -120,0 0,-85 0,-85 120,0 120,0 0,-80 0,-80 125,0 125,0 0,80 0,79 -117,3 -118,3 -3,78 -3,77 119,0c65,0 121,2 123,4 2,2 3,41 1,85l-4,81 -119,0 -119,0 0,80 0,80 123,0 122,0 -2,82 -2,83 -121,3 -121,3 3,77 3,77 118,3 117,3 2,367c0,202 0,376 -1,387 -1,11 -11,29 -22,40 -18,18 -35,20 -212,23 -128,1 -199,-2 -212,-9zM750,1930l0,-80 -165,0 -165,0 0,80 0,80 165,0 165,0 0,-80z" android:strokeColor="#00000000"/>
<path android:fillColor="#ffc084"
android:pathData="M1607,746c-97,-35 -101,-49 -92,-350 4,-138 10,-281 14,-318l6,-68 373,372c204,205 372,374 372,375 0,2 -143,3 -317,3 -240,-1 -327,-4 -356,-14z" android:strokeColor="#00000000"/>
<path android:fillColor="#ffd2a9"
android:pathData="M400,2173c-8,-3 -25,-15 -37,-26 -23,-20 -23,-22 -23,-324l0,-303 125,0 125,0 0,-80 0,-80 -125,0 -125,0 0,-85 0,-85 125,0 125,0 0,-80 0,-80 -125,0 -125,0 0,-80 0,-80 125,0 125,0 0,-80 0,-80 -125,0 -125,0 0,-85 0,-86 123,3 122,3 3,78 3,77 118,0c65,0 120,2 122,4 2,2 3,41 1,85l-4,81 -119,0 -119,0 0,80 0,80 119,0 119,0 4,81c2,44 1,83 -1,85 -2,2 -58,4 -123,4l-118,0 0,80 0,80 120,0 120,0 0,379c0,209 -3,387 -6,396 -15,37 -56,45 -236,44 -95,0 -180,-3 -188,-6zM750,1930l0,-80 -165,0 -165,0 0,80 0,80 165,0 165,0 0,-80z" android:strokeColor="#00000000"/>
<path android:fillColor="#ffd2a9"
android:pathData="M1607,746c-21,-8 -47,-22 -57,-31 -42,-38 -43,-58 -30,-383 6,-169 13,-308 13,-309 4,-3 737,722 737,730 0,4 -141,7 -312,7 -238,-1 -322,-4 -351,-14z" android:strokeColor="#00000000"/>
<path android:fillColor="#ffd2a9"
android:pathData="M590,460l0,-80 120,0 120,0 0,80 0,80 -120,0 -120,0 0,-80z" android:strokeColor="#00000000"/>
<path android:fillColor="#fffffe"
android:pathData="M361,2144c-20,-26 -21,-38 -21,-325l0,-299 125,0 125,0 0,-80 0,-80 -125,0 -125,0 0,-80 0,-81 123,3 122,3 3,78 3,77 119,0 120,0 0,383 0,384 -23,21c-22,21 -32,22 -224,22l-202,0 -20,-26zM750,1930l0,-80 -165,0 -165,0 0,80 0,80 165,0 165,0 0,-80z" android:strokeColor="#00000000"/>
<path android:fillColor="#fffffe"
android:pathData="M590,1110l0,-80 -125,0 -125,0 0,-80 0,-80 125,0 125,0 0,-80 0,-80 120,0 120,0 0,80 0,80 -120,0 -120,0 0,80 0,80 120,0 120,0 0,80 0,80 -120,0 -120,0 0,-80z" android:strokeColor="#00000000"/>
<path android:fillColor="#fffffe"
android:pathData="M340,620l0,-81 123,3 122,3 0,75 0,75 -122,3 -123,3 0,-81z" android:strokeColor="#00000000"/>
<path android:fillColor="#fffffe"
android:pathData="M590,460l0,-80 120,0 120,0 0,80 0,80 -120,0 -120,0 0,-80z" android:strokeColor="#00000000"/>
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="20dp"
android:height="18dp"
android:viewportWidth="62"
android:viewportHeight="56">
<path
android:fillColor="#54D0AC"
android:fillType="evenOdd"
android:pathData="M59,56L38,56C36.343,56 35,54.657 35,53L35,38C35,36.343 36.343,35 38,35L38.87,35C39.338,29.727 43.484,25.601 48.535,25.601C53.584,25.601 57.731,29.727 58.2,35L59,35C60.657,35 62,36.343 62,38L62,53C62,54.657 60.657,56 59,56ZM49,49C51.209,49 53,47.209 53,45C53,42.791 51.209,41 49,41C46.791,41 45,42.791 45,45C45,47.209 46.791,49 49,49ZM48.535,29.759C45.634,29.759 43.249,32.032 42.801,35L54.267,35C53.82,32.032 51.434,29.759 48.535,29.759ZM35.222,32L34,32C31.791,32 30,33.791 30,36L30,49.119C29.623,49.132 29.247,49.147 28.867,49.147C27.642,49.147 26.435,49.082 25.25,48.956C15.282,54.329 8.594,50.227 8.594,50.227C11.034,48.764 12.718,47.085 13.867,45.574C5.551,41.26 -0.002,33.469 -0.002,24.574C-0.002,11.002 12.924,-0 28.867,-0C44.231,-0 56.757,10.225 57.65,23.113C55.267,21.169 52.268,20 49,20C42.093,20 36.368,25.186 35.222,32Z" />
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="17.7dp"
android:height="16.364151dp"
android:viewportWidth="53"
android:viewportHeight="49">
<path
android:fillColor="#54d0ac"
android:fillType="evenOdd"
android:pathData="M49,46L30.999,46C28.79,46 26.999,44.209 26.999,42L26.999,30C26.999,28.122 28.298,26.558 30.043,26.127C30.486,21.014 34.771,17 39.999,17C45.228,17 49.513,21.014 49.955,26.128C51.7,26.558 52.999,28.122 52.999,30L52.999,42C52.999,44.209 51.208,46 49,46ZM39.999,38C41.656,38 42.999,36.657 42.999,35C42.999,33.343 41.656,32 39.999,32C38.343,32 36.999,33.343 36.999,35C36.999,36.657 38.343,38 39.999,38ZM39.999,21C37.028,21 34.578,23.165 34.1,26L45.898,26C45.42,23.165 42.97,21 39.999,21ZM39.999,13C33.471,13 28.083,17.816 27.155,24.085C24.797,24.488 22.999,26.527 22.999,29L22.999,42C22.999,42.891 23.13,43.935 23.431,44.941C22.82,44.9 22.214,44.843 21.613,44.77L13.999,49C11.79,49 9.999,48.209 9.999,46L9.999,40.469C3.937,36.364 -0.002,29.854 -0.002,22.5C-0.002,10.073 11.192,-0 24.998,-0C36.601,-0 46.33,7.124 49.149,16.77C46.8,14.44 43.569,13 39.999,13Z" />
</vector>
<vector android:height="19dp" android:viewportHeight="58"
android:viewportWidth="58" android:width="19dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#54D0AC" android:fillType="evenOdd" android:pathData="M29,58C12.984,58 -0,45.016 -0,29C-0,12.984 12.984,-0 29,-0C45.016,-0 58,12.984 58,29C58,45.016 45.016,58 29,58ZM29,4C15.193,4 4,15.193 4,29C4,42.807 15.193,54 29,54C42.807,54 54,42.807 54,29C54,15.193 42.807,4 29,4Z"/>
<path android:fillColor="#54D0AC" android:fillType="evenOdd" android:pathData="M29,25C30.105,25 31,25.895 31,27L31,39C31,40.105 30.105,41 29,41C27.895,41 27,40.105 27,39L27,27C27,25.895 27.895,25 29,25Z"/>
<path android:fillColor="#54D0AC" android:fillType="evenOdd" android:pathData="M29,18C30.105,18 31,18.895 31,20C31,21.105 30.105,22 29,22C27.895,22 27,21.105 27,20C27,18.895 27.895,18 29,18Z"/>
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="14dp"
android:height="10dp"
android:viewportWidth="1024"
android:viewportHeight="1024">
<path
android:fillColor="@color/color_333333"
android:pathData="M936.05,286.54a42.51,42.51,0,0,0-60.13,0L511.5,651.17,147.08,286.55A42.52,42.52,0,0,0,87,346.7L481.44,741.4a42.49,42.49,0,0,0,60.12,0L936.05,346.7A42.56,42.56,0,0,0,936.05,286.54Z" />
</vector>
\ No newline at end of file
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="10dp"
android:height="10dp"
android:viewportWidth="30"
android:viewportHeight="30">
<path
android:fillColor="#54D0AC"
android:fillType="evenOdd"
android:pathData="M28.5,30L1.5,30C0.671,30 -0,29.328 -0,28.5L-0,1.5C-0,0.671 0.671,-0 1.5,-0L15.5,-0C16.328,-0 17,0.671 17,1.5C17,2.328 16.328,3 15.5,3L3,3L3,27L27,27L27,14.5C27,13.671 27.671,13 28.5,13C29.328,13 30,13.671 30,14.5L30,28.5C30,29.328 29.328,30 28.5,30ZM11.992,20.192C11.406,20.778 10.456,20.778 9.871,20.192C9.285,19.606 9.285,18.657 9.871,18.071L26.134,1.808C26.72,1.222 27.67,1.222 28.255,1.808C28.841,2.393 28.841,3.343 28.255,3.929L11.992,20.192Z" />
</vector>
<vector android:height="21dp" android:viewportHeight="62"
android:viewportWidth="62" android:width="21dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#393939" android:fillType="evenOdd" android:pathData="M31,62C13.879,62 0,48.121 0,31C0,13.879 13.879,0 31,0C48.121,0 62,13.879 62,31C62,48.121 48.121,62 31,62ZM31,4C16.088,4 4,16.088 4,31C4,45.912 16.088,58 31,58C45.912,58 58,45.912 58,31C58,16.088 45.912,4 31,4ZM31,48C22.652,48 15.735,41.974 14.299,34.04C14.113,33.736 14,33.382 14,33C14,31.895 14.895,31 16,31C17.105,31 18,31.895 18,33L18.169,33C19.134,39.228 24.502,44 31,44C37.498,44 42.866,39.228 43.831,33L44,33C44,31.895 44.895,31 46,31C47.105,31 48,31.895 48,33C48,33.382 47.887,33.736 47.701,34.04C46.265,41.974 39.348,48 31,48ZM41,27C38.791,27 37,25.209 37,23C37,20.791 38.791,19 41,19C43.209,19 45,20.791 45,23C45,25.209 43.209,27 41,27ZM21,27C18.791,27 17,25.209 17,23C17,20.791 18.791,19 21,19C23.209,19 25,20.791 25,23C25,25.209 23.209,27 21,27Z"/>
</vector>
<vector android:height="21dp" android:viewportHeight="62"
android:viewportWidth="62" android:width="21dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#54d0ac" android:fillType="evenOdd" android:pathData="M31,62C13.879,62 0,48.121 0,31C0,13.879 13.879,0 31,0C48.121,0 62,13.879 62,31C62,48.121 48.121,62 31,62ZM31,4C16.088,4 4,16.088 4,31C4,45.912 16.088,58 31,58C45.912,58 58,45.912 58,31C58,16.088 45.912,4 31,4ZM31,48C22.652,48 15.735,41.974 14.299,34.04C14.113,33.736 14,33.382 14,33C14,31.895 14.895,31 16,31C17.105,31 18,31.895 18,33L18.169,33C19.134,39.228 24.502,44 31,44C37.498,44 42.866,39.228 43.831,33L44,33C44,31.895 44.895,31 46,31C47.105,31 48,31.895 48,33C48,33.382 47.887,33.736 47.701,34.04C46.265,41.974 39.348,48 31,48ZM41,27C38.791,27 37,25.209 37,23C37,20.791 38.791,19 41,19C43.209,19 45,20.791 45,23C45,25.209 43.209,27 41,27ZM21,27C18.791,27 17,25.209 17,23C17,20.791 18.791,19 21,19C23.209,19 25,20.791 25,23C25,25.209 23.209,27 21,27Z"/>
</vector>
<vector android:height="14dp" android:viewportHeight="42"
android:viewportWidth="48" android:width="16dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#000000" android:fillType="evenOdd" android:pathData="M44.999,42L29.999,42C28.342,42 26.999,40.657 26.999,39L26.999,29C26.999,27.343 28.342,26 29.999,26L30.065,26C30.532,22.048 33.68,18.99 37.503,18.99C41.326,18.99 44.475,22.048 44.942,26L44.999,26C46.656,26 48,27.343 48,29L48,39C48,40.657 46.656,42 44.999,42ZM37.999,37C39.656,37 40.999,35.657 40.999,34C40.999,32.343 39.656,31 37.999,31C36.341,31 34.999,32.343 34.999,34C34.999,35.657 36.341,37 37.999,37ZM37.503,22.2C35.342,22.2 33.54,23.829 33.104,26L41.902,26C41.466,23.829 39.664,22.2 37.503,22.2ZM27.19,24L25.999,24C24.342,24 22.999,25.343 22.999,27L22.999,37.92C22.768,37.926 22.539,37.938 22.306,37.938C21.358,37.938 20.427,37.888 19.511,37.79C11.808,41.938 6.64,38.772 6.64,38.772C8.526,37.642 9.826,36.346 10.714,35.179C4.288,31.85 -0.002,25.835 -0.002,18.969C-0.002,8.492 9.986,-0 22.306,-0C33.902,-0 43.426,7.525 44.506,17.145C42.682,15.803 40.437,15 37.999,15C32.608,15 28.131,18.881 27.19,24Z"/>
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="14dp"
android:height="18dp"
android:viewportWidth="590"
android:viewportHeight="720">
<path
android:fillColor="#54d0ac"
android:pathData="M17,702c-15,-16 -17,-47 -17,-220l0,-201 29,-22c21,-16 32,-34 37,-63 13,-79 58,-142 128,-178 60,-31 168,-23 225,16 51,35 89,97 97,157 5,35 13,48 38,64l31,20 3,204c2,179 0,206 -14,222 -16,18 -37,19 -279,19 -241,0 -263,-1 -278,-18zM436,208c-8,-42 -33,-76 -77,-106 -79,-55 -188,2 -213,111l-6,27 151,0 152,0 -7,-32z"
android:strokeColor="#00000000" />
<path
android:fillColor="#fafefd"
android:pathData="M262,534c-33,-23 -30,-78 4,-101 24,-15 29,-15 53,-2 36,20 42,80 9,103 -28,20 -38,20 -66,0z"
android:strokeColor="#00000000" />
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="13dp"
android:height="15dp"
android:viewportWidth="590"
android:viewportHeight="720">
<path
android:fillColor="#fafefd"
android:pathData="M17,702c-15,-16 -17,-47 -17,-220l0,-201 29,-22c21,-16 32,-34 37,-63 13,-79 58,-142 128,-178 60,-31 168,-23 225,16 51,35 89,97 97,157 5,35 13,48 38,64l31,20 3,204c2,179 0,206 -14,222 -16,18 -37,19 -279,19 -241,0 -263,-1 -278,-18zM436,208c-8,-42 -33,-76 -77,-106 -79,-55 -188,2 -213,111l-6,27 151,0 152,0 -7,-32z"
android:strokeColor="#00000000" />
<path
android:fillColor="#54d0ac"
android:pathData="M262,534c-33,-23 -30,-78 4,-101 24,-15 29,-15 53,-2 36,20 42,80 9,103 -28,20 -38,20 -66,0z"
android:strokeColor="#00000000" />
</vector>
<vector android:height="19dp" android:viewportHeight="57"
android:viewportWidth="48" android:width="16dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#151515" android:fillType="evenOdd" android:pathData="M44,57L4,57C1.791,57 -0,55.209 -0,53L-0,24C-0,21.791 1.791,20 4,20L6.001,20L6.001,18.999C6.001,8.505 13.835,-0.001 23.498,-0.001C33.162,-0.001 40.994,8.505 40.994,18.999L40.994,20L44,20C46.209,20 48,21.791 48,24L48,53C48,55.209 46.209,57 44,57ZM34.999,15C34.999,10.029 30.97,6 26,6L22,6C17.029,6 13,10.029 13,15L13,20L34.999,20L34.999,15Z"/>
</vector>
<vector android:height="97dp" android:viewportHeight="3890"
android:viewportWidth="3890" android:width="97dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#ff6379"
android:pathData="M1730,3879c-198,-21 -442,-90 -625,-178 -553,-264 -942,-761 -1073,-1371 -25,-118 -27,-141 -27,-385 0,-245 2,-267 27,-385 179,-831 830,-1436 1661,-1545 892,-116 1758,402 2072,1240 334,892 -18,1886 -837,2369 -354,208 -783,299 -1198,255zM1985,3131c124,-56 153,-223 57,-324 -93,-99 -251,-76 -313,45 -30,59 -24,159 13,215 50,76 156,104 243,64zM1946,2412c7,-4 21,-155 38,-392 26,-373 56,-720 76,-885 38,-320 35,-350 -44,-380 -60,-23 -220,-18 -260,8 -47,31 -49,53 -26,272 40,387 59,604 85,985 18,252 31,388 39,392 6,4 27,8 46,8 19,0 40,-4 46,-8z" android:strokeColor="#00000000"/>
</vector>
<vector android:height="5.357143dp" android:viewportHeight="15"
android:viewportWidth="28" android:width="10dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#999999" android:fillType="evenOdd" android:pathData="M12.456,14.551L0.449,2.555C-0.136,1.971 -0.136,1.023 0.449,0.438C1.034,-0.146 1.983,-0.146 2.568,0.438L13.516,11.376L24.463,0.438C25.048,-0.146 25.997,-0.146 26.582,0.438C27.167,1.023 27.167,1.971 26.582,2.555L14.575,14.551C13.99,15.136 13.041,15.136 12.456,14.551Z"/>
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="32dp"
android:height="32dp"
android:viewportWidth="96"
android:viewportHeight="96">
<path
android:fillAlpha="0"
android:fillColor="#16D0FF"
android:fillType="evenOdd"
android:pathData="M-0,-0L96,-0L96,96L-0,96L-0,-0Z"
android:strokeAlpha="0" />
<path
android:fillAlpha="0.4"
android:fillColor="#54d0ac"
android:fillType="evenOdd"
android:pathData="M29.239,74.015C28.011,74.015 27.014,72.894 27.014,71.511L27.014,71.511C27.014,70.128 28.011,69.007 29.239,69.007L63.779,69.007C65.008,69.007 66.004,70.128 66.004,71.511L66.004,71.511C66.004,72.894 65.008,74.015 63.779,74.015L29.239,74.015M29.239,58.993C28.011,58.993 27.014,57.872 27.014,56.489C27.014,55.106 28.011,53.986 29.239,53.986L63.779,53.986C65.008,53.986 66.004,55.106 66.004,56.489C66.004,57.872 65.008,58.993 63.779,58.993L29.239,58.993M29.239,44.003C28.011,44.003 27.014,42.882 27.014,41.5C27.014,40.117 28.011,38.996 29.239,38.996L63.779,38.996C65.008,38.996 66.004,40.117 66.004,41.5C66.004,42.882 65.008,44.003 63.779,44.003L29.239,44.003M58.302,5.979L20.779,5.979C18.392,5.979 16.104,6.874 14.416,8.468C12.729,10.062 11.781,12.223 11.781,14.477L11.781,82.469C11.781,87.162 15.809,90.968 20.779,90.968L74.769,90.968C79.738,90.968 83.767,87.162 83.767,82.469L83.767,29.331L74.783,29.331L66.785,29.331L59.279,26.995L57.925,6.839L59.249,6.839L58.302,5.979"
android:strokeAlpha="0.4" />
<path
android:fillColor="#54d0ac"
android:fillType="evenOdd"
android:pathData="M85.319,25.515L63.92,4.67C63.47,4.232 62.627,3.998 62,4L17.12,3.989C15.253,3.968 13.453,4.69 12.118,5.995C10.783,7.301 10.021,9.084 10,10.951L10,85.049C10.021,86.916 10.783,88.699 12.118,90.004C13.453,91.31 16.132,92.021 18,92L79,92C80.867,92.021 82.546,91.31 83.881,90.004C85.217,88.699 85.979,86.867 86,85L86,27.155C85.999,26.54 85.755,25.95 85.319,25.515L85.319,25.515ZM80,27L65,27C63.711,27 62.021,26.288 62,25L62,10L80,27ZM78,87L18,87C16.711,87 15.022,85.288 15,84L15,11C15.022,9.712 15.832,8.63 17.12,8.631L57,9L57,25C57.021,26.868 58.263,28.485 59.598,29.79C60.933,31.096 62.733,31.817 64.6,31.796L81,32L81,85C81,85 80.754,87 78,87Z" />
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="32dp"
android:height="32dp"
android:viewportWidth="96"
android:viewportHeight="96">
<path
android:fillAlpha="0"
android:fillColor="#16D0FF"
android:fillType="evenOdd"
android:pathData="M-0,-0L96,-0L96,96L-0,96L-0,-0Z"
android:strokeAlpha="0" />
<path
android:fillColor="#54d0ac"
android:fillType="evenOdd"
android:pathData="M46.999,92C45.524,92 44.141,91.37 43.201,90.274L42.847,89.796C37.322,82.239 32.279,77.208 27.83,72.769C22.309,67.261 17.541,62.505 14.535,55.227C12.196,50.454 10.985,45.208 10.985,39.745C10.985,20.035 27.14,4 46.999,4C66.857,4 83.013,20.035 83.013,39.745C83.013,45.208 81.802,50.455 79.413,55.337C76.457,62.505 71.69,67.262 66.169,72.77C61.718,77.208 56.677,82.239 51.152,89.796L50.797,90.273C49.858,91.37 48.474,92 46.999,92ZM46.208,86.571C46.602,86.988 47.397,86.988 47.791,86.571L47.993,86.291C53.46,78.743 58.403,73.764 62.765,69.371C67.988,64.111 72.113,59.956 74.715,53.593C76.808,49.268 77.845,44.733 77.845,40.008C77.845,22.966 64.007,9.102 46.999,9.102C29.99,9.102 16.153,22.966 16.153,40.008C16.153,44.732 17.19,49.267 19.235,53.487C21.886,59.956 26.011,64.11 31.233,69.37C35.595,73.763 40.539,78.743 46.006,86.291L46.208,86.571Z" />
<path
android:fillAlpha="0.4"
android:fillColor="#54d0ac"
android:fillType="evenOdd"
android:pathData="M47.015,52.005C39.842,52.005 34.027,46.184 34.027,39.002C34.027,31.821 39.842,25.999 47.015,25.999C54.187,25.999 60.002,31.821 60.002,39.002C60.002,46.184 54.187,52.005 47.015,52.005M46.999,6.986C28.781,6.986 14.013,21.743 14.013,39.947C14.013,45.101 15.198,49.979 17.309,54.324C22.288,66.46 32.262,70.776 44.488,87.614C44.573,87.73 44.659,87.849 44.743,87.966C45.276,88.592 46.089,88.992 46.999,88.992C47.909,88.992 48.722,88.592 49.254,87.966C49.339,87.849 49.425,87.73 49.51,87.613C61.736,70.776 71.71,66.46 76.689,54.324C78.8,49.979 79.985,45.101 79.985,39.947C79.985,21.743 65.217,6.986 46.999,6.986"
android:strokeAlpha="0.4" />
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="32dp"
android:height="32dp"
android:viewportWidth="96"
android:viewportHeight="96">
<path
android:fillAlpha="0"
android:fillColor="#16D0FF"
android:fillType="evenOdd"
android:pathData="M-0,-0L96,-0L96,96L-0,96L-0,-0Z"
android:strokeAlpha="0" />
<path
android:fillAlpha="0.4"
android:fillColor="#54d0ac"
android:fillType="evenOdd"
android:pathData="M33.263,55.002C32.017,55.002 30.998,53.883 30.998,52.517C30.998,51.15 32.017,50.031 33.263,50.031L48.745,50.031C49.991,50.031 51.01,51.15 51.01,52.517C51.01,53.883 49.991,55.002 48.745,55.002L33.263,55.002M33.255,42.015C32.014,42.015 30.998,40.889 30.998,39.513C30.998,38.137 32.014,37.011 33.255,37.011L63.75,37.011C64.992,37.011 66.007,38.137 66.007,39.513C66.007,40.889 64.992,42.015 63.75,42.015L33.255,42.015M47.993,10.997C25.35,10.997 6.994,26.9 6.994,46.518C6.994,59.211 12.42,68.916 23.978,75.198C24.924,75.712 25.249,76.873 24.705,77.779L19.668,84L47.174,82.04L47.993,82.04C71.476,80.045 88.992,66.137 88.992,46.518C88.992,26.9 70.636,10.997 47.993,10.997"
android:strokeAlpha="0.4" />
<path
android:fillColor="#54d0ac"
android:fillType="evenOdd"
android:pathData="M12.715,87.999L20.877,77.902C8.353,71.112 3,59.941 3,45.823C3,24.436 22.384,6.01 47.483,6.01C72.581,6.01 93,24.039 93,45.975C93,75.119 60.042,83.762 46.693,85.574C37.868,86.772 12.715,87.999 12.715,87.999ZM47.483,11.125C25.522,11.125 8.174,26.613 8.174,45.648C8.174,58.3 13.497,67.368 24.446,73.369C25.425,73.905 26.123,74.788 26.413,75.857C26.7,76.915 26.548,78.019 25.986,78.963L25.818,79.205L23.696,81.847L47.391,80.167C71.204,78.121 87.828,64.264 87.828,45.975C87.828,26.94 69.442,11.125 47.483,11.125Z" />
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="32dp"
android:height="32dp"
android:viewportWidth="96"
android:viewportHeight="96">
<path
android:fillAlpha="0"
android:fillColor="#16D0FF"
android:fillType="evenOdd"
android:pathData="M-0,-0L96,-0L96,96L-0,96L-0,-0Z"
android:strokeAlpha="0" />
<path
android:fillAlpha="0.4"
android:fillColor="#54d0ac"
android:fillType="evenOdd"
android:pathData="M83.875,74.915L24.124,74.915C20.745,74.915 18.005,77.639 18.005,81L18.005,21.159C18.005,17.205 21.228,14 25.204,14L82.795,14C86.771,14 89.994,17.205 89.994,21.159L89.994,81C89.994,77.639 87.255,74.915 83.875,74.915ZM65.018,44.335L51.516,36.575C50.851,36.192 50.121,36 49.391,36C48.662,36 47.932,36.191 47.267,36.574C45.936,37.338 45.141,38.708 45.141,40.238L45.141,55.761C45.141,57.29 45.935,58.659 47.266,59.425C47.931,59.807 48.661,59.998 49.391,59.998C50.121,59.998 50.85,59.807 51.516,59.425L65.018,51.664C66.349,50.899 67.144,49.529 67.144,47.999C67.144,46.47 66.349,45.099 65.018,44.335ZM49,40L63,48L49,56L49,40Z"
android:strokeAlpha="0.4" />
<path
android:fillColor="#54d0ac"
android:fillType="evenOdd"
android:pathData="M82,13L80,13L79.871,10.354C79.871,5.196 75.131,1 70,1L14,1C8.869,1 4,5.842 4,11L4,70L4,74.201L4,75C4,79.546 7.461,83 12,83L13,83L16,83L16.129,84.241L16,87C16,91.546 19.821,94.996 24.359,94.996L26.865,94.996L81.263,94.996L83.769,94.996C88.308,94.996 92,91.298 92,86.751L92,84.241L92,81.731L92,24C92,18.048 87.92,13 82,13ZM87,25L87,74C85.83,73.359 84.425,73 83,73L25,73C23.575,73 22.17,73.359 21,74L21,24C21,20.429 24.447,18.056 28,18.056L81,18C84.552,18 87,21.429 87,25ZM9,11C9,8.223 11.238,6 14,6L70,6C72.762,6 75,7.223 75,10L75,13L27,13C21.079,13 16,17.048 16,23L16,62L13,62C11.575,62 10.17,62.359 9,63L9,11ZM9,75L9,70C9.116,68.522 10.931,67 12,67L16,67L16,78L13,78C12.211,78 9,77.129 9,75ZM26.401,90.007C22.863,90.007 19.986,88.091 19.986,84.507L19.986,81.978C19.986,79.788 21.744,78.007 23.905,78.007L83.067,78.007C85.228,78.007 86.987,79.788 86.987,81.978L86.987,84.507C86.987,88.091 84.109,90.007 80.571,90.007L26.401,90.007Z" />
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="32dp"
android:height="32dp"
android:viewportWidth="96"
android:viewportHeight="96">
<path
android:fillAlpha="0"
android:fillColor="#16D0FF"
android:fillType="evenOdd"
android:pathData="M-0,-0L96,-0L96,96L-0,96L-0,-0Z"
android:strokeAlpha="0" />
<path
android:fillColor="#54d0ac"
android:fillType="evenOdd"
android:pathData="M52.442,74.056L51,74L51,88L66,88C67.311,88 68.354,89.293 68.354,90.61C68.354,91.927 67.311,93 66,93L30,93C28.688,93 27.477,91.927 27.477,90.61C27.477,89.293 28.688,88 30,88L45,88L45.034,74.28L43.387,74.056C28.863,72.073 17.911,59.48 17.911,44.729C17.911,43.412 18.979,42.341 20.29,42.341C21.602,42.341 22.67,43.412 22.67,44.73C22.676,58.426 33.777,69.574 47.417,69.58C61.053,69.574 73.155,58.426 73.161,44.729C73.161,43.412 74.228,42.341 75.54,42.341C76.852,42.341 77.919,43.412 77.919,44.729L77.919,44.765C77.919,59.48 66.967,72.073 52.442,74.056ZM47.993,65.997C36.969,65.997 27.999,57.1 27.999,46.164L27.999,22.833C27.999,11.897 36.969,3 47.993,3C59.017,3 67.987,11.897 67.987,22.833L67.987,46.164C67.987,57.1 59.017,65.997 47.993,65.997ZM63.012,22.975C63.012,14.714 56.282,7.994 48.009,7.994C39.736,7.994 33.005,14.714 33.005,22.975L33.005,46.022C33.005,54.282 39.736,61.003 48.009,61.003C56.282,61.003 63.012,54.282 63.012,46.022L63.012,22.975Z" />
<path
android:fillAlpha="0.4"
android:fillColor="#54d0ac"
android:fillType="evenOdd"
android:pathData="M43.999,42.042C42.693,42.042 41.626,40.913 41.626,39.534C41.626,38.155 42.693,37.026 43.999,37.026L52.215,37.026C53.52,37.026 54.588,38.155 54.588,39.534C54.588,40.913 53.52,42.042 52.215,42.042L43.999,42.042M43.999,30.026C42.693,30.026 41.626,28.904 41.626,27.534C41.626,26.163 42.693,25.043 43.999,25.043L52.215,25.043C53.52,25.043 54.588,26.163 54.588,27.534C54.588,28.904 53.52,30.026 52.215,30.026L43.999,30.026M48.998,4.991C39.61,4.991 32.002,12.651 32.002,22.096L32.002,44.9C32.002,54.347 39.613,62.003 48.998,62.003C58.385,62.003 65.993,54.347 65.993,44.9L65.993,22.096C65.993,12.651 58.385,4.991 48.998,4.991"
android:strokeAlpha="0.4" />
</vector>
<vector android:height="17dp" android:viewportHeight="53.5"
android:viewportWidth="53.5" android:width="17dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FF6379" android:fillType="evenOdd" android:pathData="M26,-0C40.359,-0 52,11.641 52,26C52,40.359 40.359,52 26,52C11.641,52 -0,40.359 -0,26C-0,11.641 11.641,-0 26,-0Z"/>
<path android:fillColor="#00000000" android:fillType="evenOdd"
android:pathData="M30.243,11.742C35.766,11.742 40.243,16.219 40.243,21.742C40.243,27.265 35.766,31.742 30.243,31.742C24.72,31.742 20.243,27.265 20.243,21.742C20.243,16.219 24.72,11.742 30.243,11.742Z"
android:strokeColor="#FFFFFF" android:strokeLineCap="butt"
android:strokeLineJoin="miter" android:strokeWidth="3"/>
<path android:fillColor="#00000000" android:fillType="evenOdd"
android:pathData="M25.643,39.1C25.057,39.686 24.107,39.686 23.522,39.1L18.925,34.504L16.451,36.979C15.865,37.565 14.915,37.565 14.329,36.979C13.743,36.393 13.743,35.443 14.329,34.857L16.804,32.383L12.208,27.786C11.622,27.201 11.622,26.251 12.208,25.665C12.794,25.079 13.743,25.079 14.329,25.665L18.925,30.261L22.107,27.079C22.693,26.493 23.643,26.493 24.229,27.079C24.815,27.665 24.815,28.615 24.229,29.201L21.047,32.383L25.643,36.979C26.229,37.565 26.229,38.514 25.643,39.1Z"
android:strokeColor="#FFFFFF" android:strokeLineCap="butt"
android:strokeLineJoin="miter" android:strokeWidth="2.88"/>
</vector>
<vector android:height="68dp" android:viewportHeight="2740"
android:viewportWidth="2330" android:width="58dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#5acc9b"
android:pathData="M46,2716c-15,-13 -26,-28 -26,-35 0,-6 -4,-11 -10,-11 -7,0 -10,-438 -10,-1295 0,-857 3,-1295 10,-1295 6,0 10,-5 10,-12 0,-6 14,-24 32,-40l32,-28 732,0 732,0 386,384 386,384 0,951c0,627 -3,951 -10,951 -5,0 -10,5 -10,11 0,7 -11,22 -26,35l-25,24 -1089,0 -1089,0 -25,-24z" android:strokeColor="#00000000"/>
<path android:fillColor="#9de0c3"
android:pathData="M724,1905c3,-9 75,-112 161,-231 85,-118 155,-220 155,-228 0,-7 -8,-24 -19,-37 -74,-95 -278,-389 -273,-393 3,-3 52,-6 108,-6 119,0 95,-19 219,174 44,69 83,125 86,125 3,1 51,-66 108,-149l102,-150 105,0c60,0 104,4 104,10 0,5 -67,101 -150,212 -82,112 -150,209 -150,215 0,7 72,112 160,233 88,122 160,224 160,228 0,4 -48,6 -107,5l-108,-1 -45,-60c-25,-33 -74,-103 -110,-156 -36,-53 -68,-96 -72,-96 -4,0 -55,72 -115,160l-108,159 -109,1c-93,0 -107,-2 -102,-15z" android:strokeColor="#00000000"/>
<path android:fillColor="#9de0c3"
android:pathData="M1592,759c-61,-40 -62,-44 -62,-413 0,-187 4,-337 9,-340 13,-8 774,751 766,764 -4,6 -124,10 -343,10 -325,0 -338,-1 -370,-21z" android:strokeColor="#00000000"/>
<path android:fillColor="#bcebd7"
android:pathData="M1322,1820c-36,-52 -86,-125 -111,-162 -25,-37 -49,-68 -54,-68 -4,0 -48,62 -98,137 -134,202 -110,183 -228,183 -56,0 -101,-3 -101,-6 0,-3 70,-104 156,-222 86,-119 158,-222 161,-228 2,-7 -62,-103 -142,-215 -81,-112 -149,-209 -152,-216 -4,-10 17,-13 93,-13 55,0 104,4 109,8 6,4 55,74 108,156 54,81 102,144 106,140 5,-5 48,-67 96,-139 122,-181 102,-165 212,-165 68,0 93,3 93,13 0,6 -68,104 -150,216 -83,112 -150,207 -150,210 0,3 56,83 125,176 120,163 195,271 195,280 0,2 -46,5 -101,7l-102,3 -65,-95z" android:strokeColor="#00000000"/>
<path android:fillColor="#bcebd7"
android:pathData="M1597,752c-15,-9 -36,-35 -47,-58 -19,-37 -20,-62 -20,-357 0,-174 1,-317 3,-317 2,0 174,169 383,375l379,374 -335,0c-300,0 -338,-1 -363,-17z" android:strokeColor="#00000000"/>
<path android:fillColor="#bcebd7"
android:pathData="M1764,218c-4,-7 -3,-8 4,-4 12,7 16,16 8,16 -3,0 -8,-5 -12,-12z" android:strokeColor="#00000000"/>
<path android:fillColor="#fefffe"
android:pathData="M743,1896c3,-7 75,-111 160,-229l155,-215 -19,-30c-10,-17 -77,-112 -149,-212 -71,-99 -130,-183 -130,-185 0,-3 44,-5 98,-5l97,0 99,150c54,83 104,149 110,147 10,-3 49,-56 161,-219l51,-73 98,-3c54,-1 96,1 94,5 -1,4 -62,87 -133,183 -72,96 -141,189 -153,207l-23,32 161,221c88,122 158,225 155,231 -4,5 -44,9 -91,9 -102,0 -90,10 -224,-189 -52,-77 -98,-141 -101,-141 -4,0 -57,74 -119,165l-113,165 -94,0c-77,0 -94,-3 -90,-14z" android:strokeColor="#00000000"/>
<path android:fillColor="#fefffe"
android:pathData="M1764,218c-4,-7 -3,-8 4,-4 12,7 16,16 8,16 -3,0 -8,-5 -12,-12z" android:strokeColor="#00000000"/>
</vector>
<vector android:height="68dp" android:viewportHeight="2730"
android:viewportWidth="2280" android:width="58dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#44b080"
android:pathData="M30,2710c0,-11 -7,-23 -15,-26 -13,-5 -15,-161 -15,-1319 0,-1158 2,-1314 15,-1319 8,-3 15,-15 15,-26 0,-20 3,-20 795,-20 692,0 795,2 795,15 0,8 14,28 30,45 17,17 30,35 30,40 0,6 6,10 14,10 8,0 18,9 21,20 3,11 13,20 21,20 8,0 19,11 24,25 5,14 16,25 24,25 8,0 18,9 21,20 3,11 12,20 19,20 7,0 18,11 24,25 6,14 18,25 26,25 8,0 18,9 21,20 3,11 12,20 19,20 7,0 18,11 24,25 6,14 18,25 27,25 8,0 15,4 15,10 0,13 276,290 289,290 8,0 11,283 11,999 0,879 -2,1000 -15,1005 -8,3 -15,15 -15,26 0,20 -1,20 -1110,20 -1109,0 -1110,0 -1110,-20z" android:strokeColor="#00000000"/>
<path android:fillColor="#4ac590"
android:pathData="M30,2715c0,-8 4,-15 10,-15 5,0 7,7 4,15 -4,8 -8,15 -10,15 -2,0 -4,-7 -4,-15z" android:strokeColor="#00000000"/>
<path android:fillColor="#4ac590"
android:pathData="M2236,2715c-3,-8 -1,-15 4,-15 6,0 10,7 10,15 0,8 -2,15 -4,15 -2,0 -6,-7 -10,-15z" android:strokeColor="#00000000"/>
<path android:fillColor="#4ac590"
android:pathData="M266,1654c-14,-13 -16,-50 -16,-253 0,-171 3,-240 12,-249 15,-15 102,-16 129,-2 16,9 19,22 19,90l0,79 36,7c20,4 46,2 60,-5 23,-10 24,-15 22,-82 -1,-59 2,-74 16,-85 14,-10 95,-13 370,-13 395,0 389,-1 400,69 4,23 15,59 26,81 11,21 20,49 20,62 0,14 6,30 14,36 12,10 17,8 25,-8 6,-11 11,-30 11,-43 0,-13 11,-45 25,-73 13,-27 25,-60 25,-72 0,-39 26,-53 99,-53 104,0 101,-7 101,256 0,265 -1,269 -80,269 -48,0 -56,-3 -67,-25 -7,-14 -13,-50 -13,-80l-1,-55 -24,45c-13,25 -24,55 -25,67 0,44 -82,71 -111,37 -7,-9 -25,-43 -40,-76l-26,-60 -5,62c-5,73 -21,90 -83,90 -78,0 -80,-3 -83,-218l-3,-190 -57,5c-31,2 -63,6 -69,9 -10,2 -13,49 -13,187 0,129 -4,187 -12,195 -18,18 -94,15 -112,-4 -13,-13 -16,-45 -16,-195 0,-135 -3,-181 -12,-183 -7,-3 -37,-7 -65,-10l-53,-5 0,182c0,215 -4,227 -74,227 -71,0 -85,-19 -88,-120l-3,-85 -55,0 -55,0 -5,88c-4,73 -9,91 -24,103 -27,19 -100,18 -120,-2z" android:strokeColor="#00000000"/>
<path android:fillColor="#4ac590"
android:pathData="M1700,1650c-19,-19 -20,-33 -20,-249 0,-263 -1,-261 79,-261 83,0 84,2 82,194 -1,114 2,172 10,182 8,10 26,12 70,7 82,-8 109,10 109,75 0,27 -5,53 -12,60 -8,8 -57,12 -155,12 -130,0 -145,-2 -163,-20z" android:strokeColor="#00000000"/>
<path android:fillColor="#4ac590"
android:pathData="M1669,770c-140,-9 -139,-6 -139,-430l0,-340 45,0c44,0 61,14 28,23 -13,3 -12,5 5,6 13,0 20,5 17,11 -3,5 -1,10 4,10 6,0 10,5 9,12 -2,6 7,17 20,23 13,7 24,16 25,21 1,5 8,8 15,8 7,-1 12,3 11,10 -4,29 2,38 21,33 11,-3 23,-1 26,4 3,5 0,8 -7,7 -6,-2 -14,3 -17,11 -2,8 0,11 6,7 5,-3 12,0 15,8 4,9 14,12 27,9 16,-4 19,-2 13,12 -5,14 -3,16 8,10 12,-8 12,-6 0,8 -12,15 -10,18 17,23 19,4 32,14 36,26 3,14 10,19 21,14 9,-3 13,-2 10,4 -3,6 -1,10 4,10 6,0 11,7 11,16 0,10 5,14 16,10 8,-3 12,-2 9,4 -3,6 -2,10 4,10 6,0 8,7 5,15 -5,11 1,15 21,15 25,0 26,2 14,17 -10,11 -10,14 -1,9 6,-4 12,-2 12,3 0,6 5,11 11,11 17,0 36,24 33,43 -1,9 1,15 6,12 16,-10 39,7 35,25 -3,14 1,18 16,15 13,-3 21,3 25,21 3,13 10,21 15,18 5,-3 9,0 9,5 0,6 7,11 15,11 12,0 13,4 6,18 -6,12 -5,21 5,30 12,11 14,10 14,-3 0,-18 16,-20 26,-3 4,6 2,14 -4,16 -9,3 -9,9 0,25 11,21 11,21 19,2 7,-18 8,-18 10,-2 1,9 2,22 3,27 1,14 13,17 23,6 5,-5 2,-6 -6,-1 -9,5 -12,4 -8,-3 4,-5 16,-8 27,-5 19,5 20,6 3,19 -17,13 -17,14 0,8 14,-5 17,0 17,24 0,25 -5,30 -32,36 -40,9 -473,13 -579,6z" android:strokeColor="#00000000"/>
<path android:fillColor="#4ac590"
android:pathData="M1654,68c-4,-7 -3,-8 4,-4 12,7 16,16 8,16 -3,0 -8,-5 -12,-12z" android:strokeColor="#00000000"/>
<path android:fillColor="#4ac590"
android:pathData="M30,15c0,-8 2,-15 4,-15 2,0 6,7 10,15 3,8 1,15 -4,15 -6,0 -10,-7 -10,-15z" android:strokeColor="#00000000"/>
<path android:fillColor="#69be98"
android:pathData="M271,1651c-20,-20 -21,-30 -21,-250 0,-263 -1,-261 79,-261 68,0 81,18 81,107 0,77 5,83 60,83 56,0 60,-6 60,-85 0,-52 4,-78 15,-89 13,-12 67,-14 357,-15 223,0 353,4 371,11 17,7 29,20 33,37 3,14 16,54 30,89 13,34 24,71 24,81 0,10 6,24 14,30 17,15 30,-4 40,-60 3,-19 15,-53 26,-74 11,-22 20,-49 20,-62 0,-35 36,-53 107,-53 95,0 95,-1 91,275 -3,254 -4,255 -78,255 -59,0 -72,-16 -78,-100l-5,-74 -23,53c-13,30 -24,60 -24,67 0,24 -39,54 -70,54 -34,0 -57,-30 -87,-112 -9,-27 -20,-48 -23,-48 -3,0 -6,30 -6,66 0,75 -14,94 -68,94 -89,-1 -98,-21 -95,-240 1,-88 0,-163 -3,-165 -2,-2 -33,-1 -68,3l-65,7 -5,188c-5,206 -6,207 -67,207 -20,0 -41,-8 -53,-20 -18,-18 -20,-33 -20,-195 0,-132 -3,-177 -12,-180 -7,-2 -36,-6 -65,-9l-52,-7 -3,192c-3,215 -5,219 -80,219 -62,0 -78,-24 -78,-120 0,-87 -3,-92 -59,-94 -54,-3 -61,8 -61,92 0,95 -10,112 -72,119 -37,4 -49,2 -67,-16z" android:strokeColor="#00000000"/>
<path android:fillColor="#69be98"
android:pathData="M1704,1656c-18,-13 -19,-30 -22,-241 -4,-269 -2,-275 77,-275 78,0 81,8 81,203 0,122 3,168 13,174 6,4 42,8 78,8 82,0 99,12 99,71 0,69 -10,74 -169,74 -103,0 -142,-4 -157,-14z" android:strokeColor="#00000000"/>
<path android:fillColor="#69be98"
android:pathData="M2184,608c-4,-7 -3,-8 4,-4 7,4 12,9 12,12 0,8 -9,4 -16,-8z" android:strokeColor="#00000000"/>
<path android:fillColor="#69be98"
android:pathData="M1610,10c0,-7 3,-10 7,-7 3,4 3,10 0,14 -4,3 -7,0 -7,-7z" android:strokeColor="#00000000"/>
<path android:fillColor="#7ac6a4"
android:pathData="M297,1653c-31,-8 -37,-49 -37,-263 0,-176 2,-211 16,-224 23,-23 80,-20 105,5 19,19 21,29 15,80 -7,73 6,89 74,89 67,0 79,-15 73,-89 -5,-51 -3,-61 17,-81 18,-18 29,-21 63,-16 23,4 51,6 62,5 11,0 100,-3 199,-5 159,-4 180,-3 198,12 18,17 20,17 47,1 16,-9 50,-17 74,-17 56,0 90,27 106,85 21,81 58,179 69,183 5,1 14,-3 19,-10 10,-16 50,-129 65,-183 14,-55 40,-75 95,-75 86,0 83,-10 83,249 0,244 0,243 -51,256 -17,4 -33,0 -50,-13 -22,-18 -24,-27 -22,-89 2,-72 -3,-106 -16,-98 -5,2 -23,46 -41,96 -35,97 -59,121 -100,99 -20,-11 -53,-76 -70,-141 -6,-23 -17,-39 -25,-39 -12,0 -15,15 -15,71 0,94 -9,109 -65,109 -34,0 -47,-5 -55,-19 -6,-12 -10,-94 -10,-198 0,-98 -4,-184 -9,-192 -7,-11 -13,-11 -32,3 -14,9 -43,16 -70,16 -34,0 -49,5 -53,16 -3,9 -6,91 -6,183 0,150 -2,170 -18,184 -23,21 -52,22 -78,3 -17,-13 -19,-31 -24,-198l-5,-183 -51,-5c-28,-3 -59,-11 -68,-19 -24,-20 -25,-9 -28,197 -3,181 -3,184 -27,204 -17,13 -33,17 -50,13 -46,-11 -56,-30 -56,-108 -1,-40 -4,-78 -9,-85 -10,-16 -122,-16 -133,1 -4,6 -8,44 -8,84 0,51 -4,77 -15,87 -17,17 -57,26 -83,19z" android:strokeColor="#00000000"/>
<path android:fillColor="#7ac6a4"
android:pathData="M1730,1647c-34,-17 -38,-50 -39,-267 0,-210 5,-230 62,-230 68,0 71,8 77,207l5,178 80,3c43,2 85,8 92,14 18,15 16,73 -3,92 -20,20 -235,23 -274,3z" android:strokeColor="#00000000"/>
<path android:fillColor="#91cfb2"
android:pathData="M286,1634c-14,-14 -16,-46 -14,-242l3,-225 27,-9c19,-7 36,-5 55,4 26,12 28,17 31,88 2,44 8,78 15,82 19,12 122,9 135,-4 7,-7 12,-40 12,-79 0,-49 4,-70 16,-80 23,-19 80,-16 104,6 20,18 21,18 34,-1 13,-17 30,-19 175,-22 102,-2 167,1 180,8 62,33 36,93 -39,92 -25,-1 -50,4 -57,10 -10,8 -13,54 -13,177 0,135 -3,171 -16,189 -19,27 -69,30 -82,5 -5,-10 -7,-90 -6,-178 4,-188 0,-199 -72,-201 -25,-1 -53,-9 -63,-18 -10,-9 -20,-16 -24,-16 -17,0 -25,82 -22,233 4,182 0,197 -51,197 -46,0 -64,-32 -64,-114 0,-67 -2,-75 -25,-90 -31,-20 -79,-20 -110,0 -23,15 -25,23 -25,90 0,61 -4,78 -20,94 -24,24 -63,26 -84,4z" android:strokeColor="#00000000"/>
<path android:fillColor="#91cfb2"
android:pathData="M1144,1636c-18,-13 -19,-30 -22,-231 -2,-148 0,-220 8,-230 16,-19 77,-28 115,-15 23,8 36,20 45,43 6,18 20,55 30,82 10,28 24,69 30,92 6,23 15,45 21,49 17,10 39,-19 54,-72 50,-176 75,-209 148,-200 68,8 67,5 67,242 0,201 -1,215 -20,234 -11,11 -31,20 -43,20 -42,0 -56,-28 -59,-119 -2,-50 -8,-86 -14,-88 -6,-2 -24,35 -40,84 -55,168 -108,166 -165,-4 -34,-102 -53,-93 -54,25 0,61 -3,76 -19,88 -25,18 -57,18 -82,0z" android:strokeColor="#00000000"/>
<path android:fillColor="#91cfb2"
android:pathData="M1717,1632c-15,-16 -17,-47 -17,-233 0,-118 4,-221 9,-228 12,-19 74,-20 95,-2 13,11 16,40 16,182 0,202 -1,201 101,198 92,-2 120,24 89,82 -10,17 -22,19 -144,19 -116,0 -135,-2 -149,-18z" android:strokeColor="#00000000"/>
<path android:fillColor="#c3e4d5"
android:pathData="M304,1632c-29,-19 -34,-56 -34,-239 0,-216 6,-238 63,-228 41,8 47,19 42,84 -8,84 8,101 95,101 88,0 102,-15 93,-100 -4,-46 -2,-59 12,-74 18,-18 59,-15 79,5 12,11 15,386 4,419 -16,44 -46,52 -79,19 -18,-18 -20,-28 -14,-84 6,-56 5,-65 -14,-84 -17,-17 -33,-21 -79,-21 -86,0 -96,11 -98,106 -1,62 -5,80 -20,91 -20,15 -34,16 -50,5z" android:strokeColor="#00000000"/>
<path android:fillColor="#c3e4d5"
android:pathData="M860,1624c-10,-11 -13,-59 -12,-183 2,-190 1,-193 -71,-198 -58,-4 -80,-27 -58,-61 11,-19 341,-19 352,0 23,35 -4,60 -65,63 -24,2 -49,6 -55,9 -7,5 -11,65 -11,177 0,98 -4,178 -10,190 -13,23 -53,25 -70,3z" android:strokeColor="#00000000"/>
<path android:fillColor="#c3e4d5"
android:pathData="M1156,1624c-13,-13 -16,-45 -16,-197 0,-100 -3,-191 -6,-202 -8,-32 16,-55 65,-59 36,-4 48,0 67,19 13,13 24,33 24,45 0,11 11,47 25,80 14,33 25,68 25,79 0,10 9,29 19,42 18,22 21,23 36,8 15,-15 69,-151 85,-218 5,-18 13,-38 18,-43 11,-11 108,-15 119,-5 3,4 8,101 10,216 5,202 4,210 -16,230 -25,25 -44,27 -65,6 -11,-11 -14,-36 -13,-105 1,-60 -2,-93 -11,-102 -19,-19 -35,5 -67,105 -31,94 -52,123 -83,113 -20,-7 -49,-65 -73,-143 -12,-43 -44,-82 -56,-70 -3,4 -7,48 -9,99 -2,74 -6,95 -20,105 -23,17 -39,16 -58,-3z" android:strokeColor="#00000000"/>
<path android:fillColor="#c3e4d5"
android:pathData="M1729,1629c-11,-6 -15,-52 -19,-216 -6,-234 -3,-249 49,-246 18,1 36,4 39,7 3,3 6,84 6,180 1,123 5,179 13,187 7,7 29,11 50,10 21,-1 59,1 86,5 39,5 48,10 53,30 12,47 -8,55 -141,53 -67,0 -128,-5 -136,-10z" android:strokeColor="#00000000"/>
<path android:fillColor="#dbefe5"
android:pathData="M1855,1622c-89,-2 -112,-6 -122,-19 -10,-12 -13,-72 -13,-214 0,-210 4,-229 50,-214 19,6 20,14 20,179 0,133 3,177 14,192 12,15 30,20 103,24 72,4 88,8 91,22 5,27 -26,33 -143,30z" android:strokeColor="#00000000"/>
<path android:fillColor="#dbefe5"
android:pathData="M302,1608c-9,-9 -12,-70 -12,-214 0,-215 4,-234 50,-219 18,6 20,15 20,79 0,103 8,111 110,111 102,-1 110,-8 110,-111 0,-77 12,-94 51,-74 18,10 19,23 19,214 0,174 -2,205 -16,217 -11,9 -20,10 -32,2 -13,-8 -18,-28 -20,-84 -3,-96 -17,-109 -111,-109 -98,0 -111,12 -111,104 0,69 -10,96 -35,96 -6,0 -16,-5 -23,-12z" android:strokeColor="#00000000"/>
<path android:fillColor="#dbefe5"
android:pathData="M867,1613c-4,-3 -7,-84 -7,-179 0,-197 -2,-204 -74,-204 -51,0 -76,-21 -56,-45 18,-22 312,-22 330,0 20,24 -5,45 -52,45 -78,0 -78,-1 -78,190 0,92 -3,175 -6,184 -6,16 -45,22 -57,9z" android:strokeColor="#00000000"/>
<path android:fillColor="#dbefe5"
android:pathData="M1160,1600c-7,-13 -10,-91 -9,-216 2,-176 3,-196 20,-204 49,-27 93,2 114,75 39,138 70,210 91,213 11,2 26,-3 32,-11 12,-14 51,-121 76,-209 8,-25 17,-51 20,-56 9,-15 62,-25 86,-17 20,6 20,13 18,217 -3,191 -5,212 -21,222 -15,9 -21,7 -33,-9 -13,-17 -15,-40 -9,-137 6,-98 4,-118 -7,-118 -24,0 -57,56 -89,152 -17,51 -36,99 -41,106 -23,28 -45,12 -72,-50 -14,-35 -26,-69 -26,-77 0,-24 -71,-142 -83,-138 -9,3 -11,39 -8,126 2,86 0,125 -9,136 -17,21 -37,19 -50,-5z" android:strokeColor="#00000000"/>
<path android:fillColor="#f6fbf9"
android:pathData="M1861,1612c-58,-1 -111,-8 -118,-14 -10,-8 -13,-58 -13,-210 0,-171 2,-199 16,-205 32,-12 37,13 35,186 -3,213 -4,211 124,211 66,0 85,3 85,14 0,20 -12,21 -129,18z" android:strokeColor="#00000000"/>
<path android:fillColor="#f6fbf9"
android:pathData="M304,1597c-2,-7 -3,-102 -2,-212 3,-192 4,-200 23,-200 18,0 21,8 25,83 4,59 9,86 20,92 8,5 54,10 101,10 111,0 122,-10 118,-104 -4,-69 7,-94 36,-83 13,6 15,32 13,214 -3,200 -4,208 -23,208 -18,0 -21,-8 -25,-82 -3,-48 -10,-88 -18,-95 -18,-18 -183,-18 -205,1 -13,10 -17,30 -17,81 0,38 -3,75 -6,84 -7,19 -33,21 -40,3z" android:strokeColor="#00000000"/>
<path android:fillColor="#f6fbf9"
android:pathData="M869,1593c0,-10 -1,-91 -2,-180 -1,-116 -6,-166 -15,-175 -7,-7 -36,-15 -65,-18 -37,-4 -52,-9 -52,-20 0,-13 24,-15 160,-15 136,0 160,2 160,15 0,11 -15,17 -54,20 -79,8 -81,13 -81,217l0,173 -25,0c-17,0 -25,-6 -26,-17z" android:strokeColor="#00000000"/>
<path android:fillColor="#f6fbf9"
android:pathData="M1346,1556c-13,-30 -27,-69 -31,-87 -10,-44 -64,-139 -82,-146 -28,-11 -34,21 -27,150l7,129 -24,-4 -24,-3 0,-195c-1,-107 3,-201 8,-207 5,-7 22,-13 38,-13 35,0 54,26 69,93 6,27 17,58 24,70 8,12 17,42 21,66 14,87 72,102 106,27 10,-23 19,-49 19,-59 0,-10 8,-34 19,-55 10,-20 22,-56 26,-80 8,-47 30,-65 73,-60l27,3 3,208c2,184 1,208 -14,214 -9,3 -20,0 -25,-8 -12,-19 -11,-113 1,-182 11,-57 2,-97 -21,-97 -16,0 -72,88 -85,133 -11,38 -23,75 -45,135 -14,37 -38,26 -63,-32z" android:strokeColor="#00000000"/>
</vector>
<vector android:height="68dp" android:viewportHeight="2740"
android:viewportWidth="2270" android:width="58dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#ff8475"
android:pathData="M30,2720c0,-11 -7,-23 -15,-26 -23,-9 -23,-2639 0,-2648 8,-3 15,-15 15,-26 0,-20 3,-20 790,-20 687,0 790,2 790,15 0,8 14,28 30,45 17,17 30,35 30,40 0,6 5,10 11,10 14,0 79,67 79,81 0,5 6,9 14,9 8,0 18,9 21,20 3,11 13,20 21,20 8,0 19,11 24,25 5,14 16,25 24,25 8,0 18,9 21,20 3,11 12,20 19,20 7,0 18,11 24,25 6,14 18,25 27,25 8,0 15,4 15,10 0,5 67,78 150,161l150,151 0,993c0,873 -2,994 -15,999 -8,3 -15,15 -15,26 0,20 -1,20 -1105,20 -1104,0 -1105,0 -1105,-20z" android:strokeColor="#00000000"/>
<path android:fillColor="#ff9689"
android:pathData="M550,2101c-55,-35 -74,-56 -89,-100 -30,-92 5,-163 119,-242 28,-19 52,-25 119,-29l85,-5 0,-337c1,-296 3,-339 17,-353 9,-10 45,-20 86,-25 38,-5 82,-14 98,-20 16,-6 78,-15 139,-19 61,-5 136,-16 166,-25 30,-8 102,-20 160,-26 58,-5 119,-12 137,-16 24,-5 36,-1 52,15 21,21 21,28 21,427l0,406 -29,62c-20,43 -44,75 -75,101l-46,37 -126,0c-123,-1 -126,-1 -175,-33 -27,-17 -54,-40 -59,-50 -6,-10 -10,-53 -10,-97 0,-66 3,-82 20,-97 11,-10 22,-26 25,-36 3,-10 32,-34 63,-54 53,-33 62,-36 132,-35 41,1 80,1 87,1 9,-1 11,-59 10,-226 -1,-261 11,-239 -122,-205 -43,11 -106,20 -140,20 -34,0 -95,9 -136,20 -41,11 -84,20 -96,20 -13,0 -23,3 -23,8 0,4 -1,187 -3,407l-2,400 -34,42c-18,23 -50,54 -70,68 -34,23 -45,25 -147,25 -102,0 -112,-2 -154,-29z" android:strokeColor="#00000000"/>
<path android:fillColor="#ff9689"
android:pathData="M1585,791c-17,-10 -43,-33 -58,-50l-27,-33 0,-354 0,-354 55,0c42,0 55,3 55,15 0,8 14,29 30,47 17,17 30,35 30,39 0,5 6,9 14,9 8,0 17,9 21,19 3,11 15,23 26,26 10,4 19,13 19,22 0,8 9,17 20,20 10,3 22,14 25,24 4,10 13,19 21,19 8,0 18,8 21,18 8,21 58,72 71,72 5,0 14,11 20,25 6,14 18,25 27,25 8,0 15,5 15,11 0,6 43,54 95,106 52,52 95,99 95,104 0,5 4,9 9,9 5,0 30,21 55,46 43,43 46,49 46,100l0,54 -327,0c-302,0 -330,-2 -358,-19z" android:strokeColor="#00000000"/>
<path android:fillColor="#ffa69a"
android:pathData="M650,2121c-62,-7 -139,-49 -163,-90 -38,-65 -29,-150 21,-204 53,-56 110,-81 202,-87l85,-5 5,-342c3,-234 9,-346 16,-353 6,-6 42,-16 80,-20 38,-5 85,-14 104,-20 19,-5 85,-15 145,-20 61,-6 135,-17 165,-25 30,-7 111,-19 179,-25 105,-10 125,-10 138,2 12,13 14,79 13,426 -1,469 0,465 -84,539 -54,47 -103,58 -222,47 -134,-12 -203,-79 -191,-187 7,-58 51,-122 110,-163 39,-27 49,-29 137,-30l95,-1 3,-231c2,-212 1,-233 -15,-239 -9,-4 -67,3 -127,15 -61,12 -142,24 -181,28 -84,7 -195,30 -206,41 -5,5 -10,188 -11,408l-3,400 -28,39c-60,86 -134,112 -267,97z" android:strokeColor="#00000000"/>
<path android:fillColor="#ffa69a"
android:pathData="M1584,771c-17,-10 -41,-35 -53,-54 -20,-33 -21,-44 -21,-353 0,-176 3,-329 6,-341 5,-19 13,-23 50,-23 33,0 44,4 44,15 0,8 14,29 30,47 17,17 30,35 30,39 0,5 6,9 14,9 8,0 17,9 21,19 3,11 15,23 26,26 10,4 19,13 19,22 0,8 9,17 20,20 10,3 22,14 25,24 4,10 13,19 21,19 8,0 18,8 21,18 8,21 58,72 71,72 5,0 14,11 20,25 6,14 18,25 27,25 8,0 15,5 15,11 0,6 43,54 95,106 52,52 95,99 95,104 0,5 4,9 9,9 5,0 30,21 55,46 39,38 46,52 46,84 0,31 -4,39 -22,44 -13,3 -160,6 -328,6 -282,0 -307,-2 -336,-19z" android:strokeColor="#00000000"/>
<path android:fillColor="#ffb7ad"
android:pathData="M606,2106c-94,-35 -144,-107 -132,-191 9,-56 41,-95 110,-135 46,-26 63,-30 128,-30 44,0 79,-5 86,-12 9,-9 12,-99 12,-343 0,-309 1,-333 18,-348 10,-10 29,-17 43,-17 13,-1 60,-7 104,-16 44,-8 132,-21 195,-29 63,-8 149,-21 190,-29 118,-22 239,-30 256,-16 12,11 14,77 14,420 0,377 -1,412 -19,452 -19,46 -76,103 -118,119 -44,16 -194,11 -238,-10 -48,-22 -93,-65 -101,-98 -21,-81 31,-181 118,-228 44,-24 58,-27 126,-24 42,2 83,0 90,-4 19,-13 17,-460 -2,-476 -11,-9 -36,-8 -108,4 -51,9 -124,20 -163,25 -186,25 -232,33 -252,46l-23,14 0,396 0,396 -27,42c-15,23 -46,55 -68,71 -35,25 -51,29 -120,32 -53,2 -93,-2 -119,-11z" android:strokeColor="#00000000"/>
<path android:fillColor="#ffb7ad"
android:pathData="M1578,758c-9,-7 -26,-29 -37,-48 -20,-33 -21,-49 -21,-341 0,-308 6,-369 36,-369 8,0 14,5 14,11 0,19 232,259 251,259 9,0 31,14 47,30 17,16 35,30 40,30 5,0 14,11 20,25 6,14 18,25 27,25 8,0 15,6 15,14 0,8 8,21 18,28 10,7 28,26 40,42 12,16 22,26 22,23 0,-3 11,4 25,17 14,13 25,30 25,37 0,11 -2,11 -11,-1 -9,-13 -10,-13 -6,0 2,8 12,14 21,14 9,-1 16,6 16,16 0,10 16,35 35,56 32,34 41,37 36,10 -1,-5 6,-3 16,4 28,22 29,24 11,17 -10,-4 -18,-2 -18,3 0,15 38,50 55,50 8,0 15,8 15,18 0,37 -41,42 -365,42 -234,0 -315,-3 -327,-12z" android:strokeColor="#00000000"/>
<path android:fillColor="#ffb7ad"
android:pathData="M2235,690c-3,-5 -1,-10 4,-10 6,0 11,5 11,10 0,6 -2,10 -4,10 -3,0 -8,-4 -11,-10z" android:strokeColor="#00000000"/>
<path android:fillColor="#ffb7ad"
android:pathData="M2175,620c3,-5 8,-10 11,-10 3,0 2,5 -1,10 -3,6 -8,10 -11,10 -3,0 -2,-4 1,-10z" android:strokeColor="#00000000"/>
<path android:fillColor="#ffb7ad"
android:pathData="M2140,595c-6,-8 -10,-19 -8,-26 2,-6 9,0 16,15 13,29 10,33 -8,11z" android:strokeColor="#00000000"/>
<path android:fillColor="#ffb7ad"
android:pathData="M1820,250c-9,-6 -10,-10 -3,-10 6,0 15,5 18,10 8,12 4,12 -15,0z" android:strokeColor="#00000000"/>
<path android:fillColor="#ffb7ad"
android:pathData="M1603,25c-3,-9 -3,-18 -1,-21 3,-3 8,4 11,16 6,23 -1,27 -10,5z" android:strokeColor="#00000000"/>
<path android:fillColor="#ffc5bc"
android:pathData="M580,2086c-65,-34 -91,-67 -97,-120 -7,-58 1,-87 33,-126 44,-52 118,-83 202,-86 40,-1 79,-8 87,-14 13,-11 15,-65 15,-345 0,-282 2,-334 15,-345 8,-7 52,-16 97,-21 46,-5 99,-14 118,-19 19,-5 91,-16 160,-25 69,-8 143,-20 165,-25 69,-17 231,-24 239,-11 12,19 7,816 -6,853 -13,41 -32,63 -82,99 -37,27 -45,29 -138,29 -109,0 -154,-15 -203,-67 -20,-23 -25,-38 -25,-83 0,-69 37,-130 107,-173 51,-32 105,-39 186,-23 33,6 38,4 46,-16 10,-28 8,-459 -3,-476 -10,-17 -76,-15 -201,7 -60,11 -159,26 -219,34 -69,10 -114,21 -124,31 -13,13 -16,65 -16,408l-1,393 -29,46c-16,25 -48,58 -71,72 -37,24 -52,27 -126,27 -68,-1 -92,-5 -129,-24z" android:strokeColor="#00000000"/>
<path android:fillColor="#ffc5bc"
android:pathData="M1587,749c-44,-26 -47,-51 -47,-378 0,-170 4,-312 9,-315 5,-3 40,26 77,66 38,39 127,132 199,207 71,75 189,197 262,271 74,74 131,140 129,147 -7,16 -601,18 -629,2z" android:strokeColor="#00000000"/>
<path android:fillColor="#ffc5bc"
android:pathData="M2194,638c-4,-7 -3,-8 4,-4 7,4 12,9 12,12 0,8 -9,4 -16,-8z" android:strokeColor="#00000000"/>
<path android:fillColor="#ffc5bc"
android:pathData="M2080,520c-9,-6 -10,-10 -3,-10 6,0 15,5 18,10 8,12 4,12 -15,0z" android:strokeColor="#00000000"/>
<path android:fillColor="#ffc5bc"
android:pathData="M1824,248c-4,-7 -3,-8 4,-4 7,4 12,9 12,12 0,8 -9,4 -16,-8z" android:strokeColor="#00000000"/>
<path android:fillColor="#ffcfc8"
android:pathData="M635,2101c-77,-20 -139,-73 -149,-126 -22,-116 88,-214 240,-215 41,0 75,-5 82,-12 9,-9 12,-98 12,-339 0,-389 -8,-362 120,-377 90,-11 218,-30 415,-62 66,-11 148,-22 182,-26 55,-6 62,-4 72,14 15,27 15,752 1,820 -12,55 -58,109 -117,137 -57,27 -195,18 -256,-18 -86,-51 -100,-131 -38,-221 55,-80 154,-114 250,-86 60,17 61,15 61,-255 0,-201 -3,-245 -15,-255 -16,-13 -53,-10 -235,20 -63,10 -155,24 -205,30 -54,7 -97,18 -107,27 -17,15 -18,48 -18,410l0,394 -25,44c-38,65 -95,97 -175,101 -36,2 -78,0 -95,-5z" android:strokeColor="#00000000"/>
<path android:fillColor="#ffcfc8"
android:pathData="M1583,728c-6,-7 -13,-21 -16,-31 -7,-20 -12,-596 -5,-602 2,-3 63,57 135,133 72,75 213,220 312,321 100,101 181,185 181,187 0,2 -134,4 -299,4 -227,0 -301,-3 -308,-12z" android:strokeColor="#00000000"/>
<path android:fillColor="#ffcfc8"
android:pathData="M1824,248c-4,-7 -3,-8 4,-4 7,4 12,9 12,12 0,8 -9,4 -16,-8z" android:strokeColor="#00000000"/>
<path android:fillColor="#ffe2de"
android:pathData="M583,2071c-76,-36 -98,-70 -91,-143 10,-94 106,-160 238,-162 41,-1 81,-5 88,-9 9,-6 12,-86 12,-341 0,-258 3,-336 13,-350 10,-14 35,-20 103,-27 49,-5 118,-15 154,-23 36,-8 97,-17 135,-20 39,-4 118,-16 177,-27 59,-11 127,-19 150,-17l43,3 0,421 0,420 -25,38c-14,20 -44,48 -67,61 -36,22 -54,25 -130,25 -77,0 -94,-4 -138,-28 -62,-33 -88,-79 -76,-132 13,-58 56,-115 108,-145 42,-23 56,-26 113,-22 36,2 72,7 80,10 8,4 22,3 30,-3 13,-8 15,-49 18,-249 2,-169 0,-247 -9,-262 -11,-21 -16,-22 -104,-16 -51,4 -124,13 -162,21 -37,9 -113,20 -168,26 -102,11 -143,27 -147,58 -1,9 -2,190 -3,402l0,385 -29,42c-65,97 -189,122 -313,64z" android:strokeColor="#00000000"/>
<path android:fillColor="#ffe2de"
android:pathData="M1824,248c-4,-7 -3,-8 4,-4 7,4 12,9 12,12 0,8 -9,4 -16,-8z" android:strokeColor="#00000000"/>
<path android:fillColor="#fffbfb"
android:pathData="M600,2066c-78,-34 -103,-67 -98,-126 7,-71 46,-113 133,-144 58,-21 80,-24 129,-19 50,5 61,3 72,-12 11,-15 14,-89 14,-357 0,-311 1,-338 18,-346 9,-5 59,-12 110,-16 52,-3 120,-13 151,-21 32,-8 107,-19 167,-25 60,-6 134,-17 164,-25 67,-19 130,-20 130,-2 1,6 0,196 0,422 -1,458 3,431 -75,484 -42,28 -53,31 -126,31 -61,0 -90,-5 -122,-21 -80,-41 -102,-74 -86,-132 15,-57 64,-114 115,-136 54,-24 68,-25 147,-9 89,19 87,24 87,-278 0,-295 3,-287 -88,-278 -133,12 -225,26 -250,35 -15,6 -65,13 -112,16 -123,7 -147,16 -160,61 -6,24 -8,166 -4,402l6,365 -25,45c-15,28 -43,58 -73,78 -42,27 -57,32 -109,32 -40,-1 -78,-9 -115,-24z" android:strokeColor="#00000000"/>
<path android:fillColor="#fffbfb"
android:pathData="M1824,248c-4,-7 -3,-8 4,-4 7,4 12,9 12,12 0,8 -9,4 -16,-8z" android:strokeColor="#00000000"/>
</vector>
<vector android:height="68dp" android:viewportHeight="2730"
android:viewportWidth="2320" android:width="58dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#ff8976"
android:pathData="M34,2694l-34,-35 0,-1290c0,-853 3,-1289 10,-1289 6,0 10,-7 10,-14 0,-8 15,-26 33,-40l34,-26 729,0 729,0 383,383 382,382 0,947 0,947 -34,35 -33,36 -1088,0 -1088,0 -33,-36z" android:strokeColor="#00000000"/>
<path android:fillColor="#ffc3ba"
android:pathData="M790,1460l0,-451 303,3c301,3 302,3 347,28 96,54 142,183 114,317 -19,92 -61,146 -144,186 -40,19 -65,22 -240,24l-195,3 -5,168 -5,167 -87,3 -88,3 0,-451zM1357,1388c21,-22 27,-39 31,-85 3,-49 0,-64 -20,-93 -32,-47 -79,-58 -255,-59l-143,-1 0,136 0,136 180,-4 180,-3 27,-27z" android:strokeColor="#00000000"/>
<path android:fillColor="#ffc3ba"
android:pathData="M1575,739c-19,-17 -40,-47 -45,-67 -7,-24 -10,-151 -8,-351 2,-257 6,-315 17,-319 8,-3 11,0 8,5 -6,9 114,136 124,131 2,-2 3,-1 1,2 -6,9 212,219 221,213 6,-3 7,-2 4,4 -3,5 84,99 193,208 110,109 200,200 200,202 0,2 -153,3 -340,3l-339,0 -36,-31z" android:strokeColor="#00000000"/>
<path android:fillColor="#ffe8e5"
android:pathData="M800,1454l0,-446 293,4c278,3 294,4 333,25 51,27 98,80 115,130 8,21 14,76 13,123 0,72 -4,93 -27,137 -27,53 -68,91 -122,115 -20,8 -100,14 -235,18l-205,5 -3,168 -2,167 -80,0 -80,0 0,-446zM1299,1424c17,-4 45,-19 61,-34 27,-25 30,-34 30,-90 0,-132 -34,-152 -262,-148l-163,3 -3,124c-1,69 0,131 2,138 4,10 41,13 154,13 82,0 164,-3 181,-6z" android:strokeColor="#00000000"/>
</vector>
<vector android:height="68dp" android:viewportHeight="2730"
android:viewportWidth="2290" android:width="58dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#3b9dff"
android:pathData="M29,2701l-29,-29 0,-1302 0,-1302 29,-29 29,-29 744,0 743,0 373,366 372,366 0,965 0,965 -29,29 -29,29 -1087,0 -1087,0 -29,-29z" android:strokeColor="#00000000"/>
<path android:fillColor="#b8dfff"
android:pathData="M520,1716c0,-145 -3,-271 -6,-280 -5,-13 -25,-16 -110,-16l-104,0 0,-40 0,-40 265,0 265,0 0,40 0,40 -104,0c-85,0 -105,3 -110,16 -3,9 -6,135 -6,280l0,264 -45,0 -45,0 0,-264z" android:strokeColor="#00000000"/>
<path android:fillColor="#b8dfff"
android:pathData="M860,1974c0,-6 138,-207 204,-297l20,-27 -34,-48c-67,-95 -101,-143 -140,-200l-40,-57 51,-3c29,-2 57,-1 64,2 7,2 38,44 70,93 100,152 80,150 169,18l76,-115 60,0c33,0 60,2 60,5 0,2 -35,53 -78,112 -42,59 -90,127 -105,149 -33,49 -39,34 78,198 39,54 82,116 97,137l28,39 -63,0 -62,-1 -85,-125c-68,-101 -86,-122 -95,-110 -5,8 -44,64 -85,125l-75,110 -57,1c-32,0 -58,-3 -58,-6z" android:strokeColor="#00000000"/>
<path android:fillColor="#b8dfff"
android:pathData="M1680,1700l0,-280 -110,0 -110,0 0,-40 0,-40 265,0 265,0 0,40 0,40 -105,0 -105,0 0,280 0,280 -50,0 -50,0 0,-280z" android:strokeColor="#00000000"/>
<path android:fillColor="#b8dfff"
android:pathData="M1622,750c-18,-4 -45,-18 -59,-31 -51,-47 -52,-60 -41,-374 5,-160 13,-298 16,-307 6,-14 84,58 378,345 205,199 372,365 373,370 1,9 -625,7 -667,-3z" android:strokeColor="#00000000"/>
<path android:fillColor="#ffffff"
android:pathData="M520,1700l0,-280 -110,0 -110,0 0,-40 0,-40 265,0 265,0 0,40 0,40 -110,0 -110,0 0,280 0,280 -45,0 -45,0 0,-280z" android:strokeColor="#00000000"/>
<path android:fillColor="#ffffff"
android:pathData="M860,1974c0,-3 37,-58 83,-122 111,-157 137,-197 137,-205 0,-4 -16,-30 -35,-57 -19,-28 -52,-74 -72,-102 -20,-29 -52,-74 -71,-100l-34,-48 59,0 60,0 63,93c108,157 86,154 175,22l77,-115 59,0 59,0 -17,28c-10,15 -59,84 -110,154l-91,126 42,59c23,32 48,68 56,80 8,11 41,57 73,102 31,44 57,83 57,86 0,3 -24,5 -53,5 -63,0 -57,5 -157,-144l-73,-109 -18,24c-10,13 -49,70 -86,126l-68,103 -57,0c-32,0 -58,-2 -58,-6z" android:strokeColor="#00000000"/>
<path android:fillColor="#ffffff"
android:pathData="M1680,1700l0,-280 -110,0 -110,0 0,-40 0,-40 265,0 265,0 0,40 0,40 -110,0 -110,0 0,280 0,280 -45,0 -45,0 0,-280z" android:strokeColor="#00000000"/>
</vector>
<vector android:height="68dp" android:viewportHeight="2740"
android:viewportWidth="2310" android:width="58dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#999999"
android:pathData="M29,2711l-29,-29 0,-1307 0,-1307 29,-29 29,-29 747,0 747,0 379,372 379,372 0,936c0,610 -4,948 -10,972 -6,20 -22,46 -37,58 -26,20 -33,20 -1115,20l-1090,0 -29,-29z" android:strokeColor="#00000000"/>
<path android:fillColor="#f7f7f7"
android:pathData="M979,2107c-89,-60 -60,-193 46,-213 76,-14 145,40 145,114 0,100 -107,156 -191,99z" android:strokeColor="#00000000"/>
<path android:fillColor="#f7f7f7"
android:pathData="M960,1750c0,-96 31,-152 152,-274 60,-61 117,-124 126,-141 9,-18 16,-52 16,-85 -1,-86 -37,-139 -111,-166 -144,-51 -283,44 -283,194l0,32 -90,0c-103,0 -101,3 -79,-102 32,-148 135,-249 287,-278 129,-26 278,5 358,74 92,79 128,223 89,353 -16,52 -29,68 -131,168 -120,116 -153,169 -154,238l0,37 -90,0 -90,0 0,-50z" android:strokeColor="#00000000"/>
<path android:fillColor="#f7f7f7"
android:pathData="M1620,753c-32,-12 -71,-46 -86,-75 -14,-27 -15,-63 -4,-342 7,-171 14,-313 17,-316 2,-2 111,103 241,233 131,131 240,235 243,232 3,-3 14,5 25,17l19,23 -25,-20c-13,-11 35,38 108,109 72,70 132,132 132,137 0,10 -645,11 -670,2z" android:strokeColor="#00000000"/>
</vector>
<vector android:height="68dp" android:viewportHeight="2740"
android:viewportWidth="2270" android:width="58dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#ffcc3a"
android:pathData="M30,2720c0,-11 -7,-20 -15,-20 -13,0 -15,-154 -15,-1330 0,-1176 2,-1330 15,-1330 8,0 15,-9 15,-20 0,-20 7,-20 790,-20 688,0 790,2 790,15 0,8 22,38 50,66 28,28 50,55 50,60 0,5 7,9 15,9 9,0 21,11 27,25 6,14 17,25 25,25 7,0 13,4 13,9 0,5 51,61 113,124 100,103 217,227 302,323 17,19 38,34 48,34 16,0 17,59 17,986l0,985 -30,26c-17,13 -30,31 -30,39 0,12 -158,14 -1090,14 -1083,0 -1090,0 -1090,-20z" android:strokeColor="#00000000"/>
<path android:fillColor="#ffd970"
android:pathData="M603,2104c-62,-31 -63,-40 -63,-473 0,-286 3,-396 12,-410 9,-15 9,-25 0,-46 -18,-38 -15,-125 6,-165 22,-46 80,-64 112,-35 20,18 21,18 36,-3 13,-19 24,-22 89,-22 51,0 82,5 103,17 29,17 31,17 51,-1 29,-26 179,-20 210,8 21,19 22,19 37,-2 13,-19 24,-22 88,-22 47,0 84,6 105,16 30,15 34,15 50,0 13,-12 39,-16 103,-16 72,0 90,4 118,23 41,27 55,71 45,147 -3,30 -6,66 -5,80 6,112 10,794 5,828 -5,34 -13,47 -43,67l-37,25 -495,0c-429,0 -499,-3 -527,-16zM1071,1835c19,-8 63,-33 98,-55 34,-22 66,-40 70,-41 3,0 31,-17 61,-37 79,-54 80,-79 3,-128 -191,-122 -269,-165 -288,-158 -29,11 -35,51 -35,226 0,146 3,174 17,190 20,22 31,22 74,3zM850,1196c0,-16 -14,-36 -25,-36 -17,0 -28,17 -20,30 6,10 45,15 45,6zM1100,1192c0,-10 -41,-35 -47,-28 -11,11 7,36 27,36 11,0 20,-3 20,-8zM1340,1191c0,-5 -7,-14 -15,-21 -18,-15 -42,1 -31,19 8,13 46,15 46,2zM1590,1192c0,-12 -40,-33 -51,-26 -14,9 9,34 32,34 11,0 19,-3 19,-8z" android:strokeColor="#00000000"/>
<path android:fillColor="#ffd970"
android:pathData="M1597,789c-21,-11 -47,-37 -62,-62l-25,-44 0,-341 0,-342 50,0c37,0 50,4 50,15 0,8 23,38 50,66 28,28 50,55 50,60 0,5 7,9 15,9 9,0 21,11 27,25 6,14 17,25 25,25 7,0 13,4 13,9 0,5 51,61 113,124 100,103 217,227 302,323 17,19 38,34 48,34 14,0 17,10 17,58l0,57 -318,1c-293,1 -321,0 -355,-17z" android:strokeColor="#00000000"/>
<path android:fillColor="#fee08e"
android:pathData="M608,2094c-57,-30 -58,-38 -58,-458l0,-385 24,-28 24,-28 -24,-22c-19,-17 -24,-32 -24,-71 0,-60 16,-109 40,-122 29,-16 59,-12 77,10 23,27 37,25 51,-5 11,-23 17,-25 77,-25 65,0 109,14 148,48 15,14 17,13 17,-5 0,-36 24,-46 99,-41 55,3 75,8 94,26 29,28 40,28 52,0 9,-20 19,-23 78,-26 58,-2 75,1 114,23 25,14 46,24 47,23 13,-36 26,-43 82,-46 80,-4 122,5 150,33 20,21 24,34 24,90 0,42 -5,74 -15,89 -14,21 -14,26 0,52 12,24 15,91 15,419 0,428 1,418 -60,450 -43,22 -991,22 -1032,-1zM1071,1845c19,-8 59,-30 89,-49 30,-19 80,-49 110,-66 149,-87 141,-107 -88,-244 -152,-90 -157,-92 -188,-61 -24,24 -24,26 -24,207 0,231 11,253 101,213zM884,1204c15,-6 0,-20 -61,-57 -7,-5 -19,3 -29,19 -15,22 -15,27 -3,35 16,10 70,12 93,3zM1134,1203c3,-4 -14,-20 -40,-36 -25,-15 -47,-27 -48,-25 -37,58 -37,56 -13,61 38,7 93,7 101,0zM1380,1200c12,-7 12,-10 1,-10 -7,0 -26,-11 -43,-25 -37,-31 -42,-31 -57,2 -10,21 -9,28 1,34 18,12 80,11 98,-1zM1620,1200c0,-15 -81,-63 -90,-53 -4,4 -11,18 -14,30 -5,16 -2,23 11,26 34,9 93,7 93,-3z" android:strokeColor="#00000000"/>
<path android:fillColor="#fee08e"
android:pathData="M1925,790c-351,-6 -351,-6 -385,-83 -16,-38 -18,-78 -19,-375l-2,-332 46,0c33,0 45,4 45,15 0,8 23,38 50,66 28,28 50,55 50,60 0,5 7,9 15,9 9,0 21,11 27,25 6,14 17,25 25,25 7,0 13,4 13,9 0,5 51,61 113,124 100,103 217,227 302,323 17,19 38,34 48,34 14,0 17,10 17,55 0,47 -3,55 -17,53 -10,-1 -158,-5 -328,-8z" android:strokeColor="#00000000"/>
<path android:fillColor="#ffebb8"
android:pathData="M595,2068l-26,-23 0,-375c0,-206 0,-385 1,-397 0,-52 -13,-51 565,-50 464,2 537,4 545,17 11,17 14,778 4,805 -17,43 -36,45 -563,45l-500,0 -26,-22zM1092,1848c33,-18 68,-38 77,-43 9,-6 50,-30 91,-54 94,-56 120,-82 120,-120 0,-22 -8,-36 -32,-54 -46,-35 -280,-173 -306,-181 -26,-8 -58,7 -72,35 -9,16 -14,221 -10,382 0,20 43,67 60,67 6,0 38,-15 72,-32z" android:strokeColor="#00000000"/>
<path android:fillColor="#ffebb8"
android:pathData="M576,1154c-18,-17 -20,-50 -7,-108 11,-43 17,-51 48,-60 17,-6 29,0 52,26 141,157 142,158 12,158 -68,0 -93,-4 -105,-16z" android:strokeColor="#00000000"/>
<path android:fillColor="#ffebb8"
android:pathData="M859,1160c-32,-19 -131,-150 -125,-165 7,-18 122,-21 158,-4 33,16 130,137 126,157 -3,14 -16,17 -73,19 -39,2 -77,-2 -86,-7z" android:strokeColor="#00000000"/>
<path android:fillColor="#ffebb8"
android:pathData="M1104,1157c-34,-19 -126,-136 -122,-155 3,-14 17,-18 74,-20 70,-3 72,-2 102,30 137,147 139,158 35,158 -37,-1 -78,-6 -89,-13z" android:strokeColor="#00000000"/>
<path android:fillColor="#ffebb8"
android:pathData="M1349,1160c-32,-19 -131,-150 -125,-165 4,-11 22,-15 77,-15l72,0 43,46c87,91 96,103 92,121 -3,15 -14,18 -73,20 -39,2 -77,-2 -86,-7z" android:strokeColor="#00000000"/>
<path android:fillColor="#ffebb8"
android:pathData="M1594,1157c-34,-19 -126,-136 -122,-155 3,-14 17,-17 86,-20 76,-3 84,-1 107,22 21,21 25,35 25,84 0,32 -5,63 -12,70 -15,15 -57,15 -84,-1z" android:strokeColor="#00000000"/>
<path android:fillColor="#ffebb8"
android:pathData="M1609,757c-56,-15 -59,-36 -59,-417l0,-340 30,0c20,0 30,5 30,15 0,8 23,38 50,66 28,28 50,55 50,60 0,5 7,9 15,9 9,0 21,11 27,25 6,14 17,25 25,25 7,0 13,7 13,15 0,7 7,18 15,23 9,4 33,29 54,55 21,25 41,43 44,40 4,-3 11,7 17,22 6,15 19,29 30,32 11,3 22,14 25,24 4,10 14,19 22,19 9,0 14,2 11,5 -3,3 26,38 64,78 38,39 90,96 115,125 26,28 55,52 65,52 14,0 18,8 18,38l0,37 -315,0c-173,0 -329,-4 -346,-8z" android:strokeColor="#00000000"/>
<path android:fillColor="#fff0cc"
android:pathData="M599,2061l-24,-19 0,-391c0,-297 3,-393 12,-402 16,-16 1060,-21 1081,-6 9,7 12,99 12,401 0,215 -4,396 -8,402 -21,32 -52,34 -550,34 -477,0 -501,-1 -523,-19zM1102,1852c281,-162 299,-177 284,-235 -5,-21 -91,-97 -109,-97 -2,0 -53,-29 -112,-66 -125,-75 -162,-81 -199,-31 -19,25 -21,44 -24,185 -4,176 0,209 29,246 27,34 70,34 131,-2z" android:strokeColor="#00000000"/>
<path android:fillColor="#fff0cc"
android:pathData="M923,1162l-62,-3 -60,-71c-34,-40 -61,-78 -61,-85 0,-9 19,-13 71,-13 78,0 69,-5 167,103 34,38 41,62 20,68 -7,2 -41,3 -75,1z" android:strokeColor="#00000000"/>
<path android:fillColor="#fff0cc"
android:pathData="M1413,1162l-63,-3 -60,-71c-33,-40 -60,-78 -60,-85 0,-9 19,-13 71,-13 77,0 67,-6 162,98 38,43 46,67 25,73 -7,2 -41,3 -75,1z" android:strokeColor="#00000000"/>
<path android:fillColor="#fff0cc"
android:pathData="M580,1145c-9,-11 -11,-33 -6,-72 13,-110 47,-111 134,-7 35,41 60,79 57,84 -3,6 -44,10 -89,10 -63,0 -87,-4 -96,-15z" android:strokeColor="#00000000"/>
<path android:fillColor="#fff0cc"
android:pathData="M1104,1152c-6,-4 -34,-35 -63,-69 -50,-61 -62,-88 -40,-95 13,-4 137,6 141,12 2,3 30,35 61,72 32,37 56,72 52,78 -7,11 -134,14 -151,2z" android:strokeColor="#00000000"/>
<path android:fillColor="#fff0cc"
android:pathData="M1594,1152c-24,-15 -114,-132 -114,-147 0,-17 3,-18 90,-15 97,3 110,15 110,100l0,70 -37,0c-21,0 -43,-4 -49,-8z" android:strokeColor="#00000000"/>
<path android:fillColor="#fff0cc"
android:pathData="M1595,730c-8,-12 -7,-581 1,-589 2,-3 10,1 16,7 9,9 11,76 9,255 -1,133 0,254 4,268l6,26 252,2c251,1 287,4 287,22 0,5 -95,9 -232,9 -128,0 -256,3 -284,6 -35,5 -54,3 -59,-6z" android:strokeColor="#00000000"/>
<path android:fillColor="#fff0cc"
android:pathData="M2248,693c7,-3 16,-2 19,1 4,3 -2,6 -13,5 -11,0 -14,-3 -6,-6z" android:strokeColor="#00000000"/>
<path android:fillColor="#fff0cc"
android:pathData="M2113,563c4,-3 10,-3 14,0 3,4 0,7 -7,7 -7,0 -10,-3 -7,-7z" android:strokeColor="#00000000"/>
<path android:fillColor="#fff0cc"
android:pathData="M2014,458c-4,-7 -3,-8 4,-4 12,7 16,16 8,16 -3,0 -8,-5 -12,-12z" android:strokeColor="#00000000"/>
<path android:fillColor="#fff0cc"
android:pathData="M1773,203c4,-3 10,-3 14,0 3,4 0,7 -7,7 -7,0 -10,-3 -7,-7z" android:strokeColor="#00000000"/>
<path android:fillColor="#fff0cc"
android:pathData="M1740,170c-6,-11 -8,-20 -6,-20 3,0 10,9 16,20 6,11 8,20 6,20 -3,0 -10,-9 -16,-20z" android:strokeColor="#00000000"/>
<path android:fillColor="#fff0cc"
android:pathData="M1657,90c-15,-16 -23,-30 -19,-30 5,0 18,14 30,30 13,17 21,30 19,30 -2,0 -16,-13 -30,-30z" android:strokeColor="#00000000"/>
<path android:fillColor="#fff0cc"
android:pathData="M1597,32c-21,-23 -21,-32 -3,-32 7,0 16,10 19,22 8,29 4,32 -16,10z" android:strokeColor="#00000000"/>
<path android:fillColor="#fffefd"
android:pathData="M628,2062c-19,-2 -30,-11 -33,-25 -3,-12 -4,-193 -3,-402l3,-380 529,-3c292,-1 534,2 538,6 5,5 9,182 8,393 0,329 -3,386 -16,399 -13,13 -81,15 -507,15 -271,1 -504,-1 -519,-3zM1103,1865c104,-60 149,-87 229,-138 92,-60 92,-124 -1,-184 -31,-19 -68,-44 -83,-54 -15,-11 -30,-19 -34,-19 -4,0 -38,-20 -76,-46 -61,-40 -74,-45 -116,-42 -40,3 -49,8 -69,37 -22,32 -23,43 -23,222l0,188 34,35c19,20 43,36 56,36 12,0 49,-16 83,-35z" android:strokeColor="#00000000"/>
<path android:fillColor="#fffefd"
android:pathData="M589,1138c-3,-24 2,-103 7,-120 10,-33 41,-18 98,46 31,35 56,69 56,75 0,16 -160,15 -161,-1z" android:strokeColor="#00000000"/>
<path android:fillColor="#fffefd"
android:pathData="M816,1086c-31,-35 -56,-69 -56,-75 0,-7 23,-11 59,-11 48,0 62,4 79,23 85,95 102,115 102,121 0,3 -29,6 -64,6l-64,0 -56,-64z" android:strokeColor="#00000000"/>
<path android:fillColor="#fffefd"
android:pathData="M1103,1133c-25,-23 -103,-119 -103,-127 0,-3 29,-6 64,-6l64,0 56,64c31,35 56,69 56,75 0,19 -115,14 -137,-6z" android:strokeColor="#00000000"/>
<path android:fillColor="#fffefd"
android:pathData="M1306,1086c-31,-35 -56,-69 -56,-75 0,-7 23,-11 59,-11 48,0 62,4 79,23 85,95 102,115 102,121 0,3 -29,6 -64,6l-64,0 -56,-64z" android:strokeColor="#00000000"/>
<path android:fillColor="#fffefd"
android:pathData="M1547,1081c-32,-38 -57,-72 -57,-75 0,-4 33,-6 73,-6 90,0 104,11 109,90l3,55 -36,3c-34,3 -39,-1 -92,-67z" android:strokeColor="#00000000"/>
<path android:fillColor="#fffefd"
android:pathData="M2248,693c7,-3 16,-2 19,1 4,3 -2,6 -13,5 -11,0 -14,-3 -6,-6z" android:strokeColor="#00000000"/>
<path android:fillColor="#fffefd"
android:pathData="M1734,158c-4,-7 -3,-8 4,-4 7,4 12,9 12,12 0,8 -9,4 -16,-8z" android:strokeColor="#00000000"/>
<path android:fillColor="#fffefd"
android:pathData="M1600,10c0,-7 3,-10 7,-7 3,4 3,10 0,14 -4,3 -7,0 -7,-7z" android:strokeColor="#00000000"/>
</vector>
<vector android:height="68dp" android:viewportHeight="2750"
android:viewportWidth="2350" android:width="58dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#6bcaff"
android:pathData="M34,2714l-34,-35 0,-1299 0,-1298 38,-41 38,-41 749,0 749,0 260,259c144,143 318,314 389,382l127,123 0,957 0,958 -34,35 -33,36 -1108,0 -1108,0 -33,-36z" android:strokeColor="#00000000"/>
<path android:fillColor="#8ed7ff"
android:pathData="M24,2708c-4,-7 -3,-8 4,-4 7,4 12,9 12,12 0,8 -9,4 -16,-8z" android:strokeColor="#00000000"/>
<path android:fillColor="#8ed7ff"
android:pathData="M762,1903c-13,-33 -61,-187 -92,-293 -12,-41 -25,-86 -30,-100 -5,-14 -22,-72 -40,-130 -17,-58 -37,-123 -45,-145 -11,-34 -47,-156 -61,-205 -3,-13 11,-16 98,-15l101,1 19,65c10,35 23,80 28,99 5,19 37,136 70,260 33,124 62,230 64,235 4,12 8,2 35,-90 27,-93 105,-356 141,-475l29,-95 97,1c73,0 98,4 104,15 4,8 33,102 65,209 31,107 68,229 81,270 13,41 29,97 35,124 8,31 15,43 19,35 4,-8 45,-151 90,-319 46,-168 86,-311 90,-319 5,-10 33,-14 103,-15l96,-2 -6,25c-3,14 -14,51 -24,81 -10,30 -32,102 -49,160 -18,58 -38,123 -46,145 -7,22 -27,87 -45,145 -17,58 -39,130 -49,160 -10,30 -28,88 -40,128l-23,73 -101,-3 -100,-3 -97,-320c-52,-176 -98,-327 -101,-335 -3,-8 -17,26 -32,75 -46,151 -97,319 -106,345 -5,14 -18,59 -30,100 -11,41 -28,90 -35,108l-15,32 -94,0c-93,0 -94,0 -104,-27z" android:strokeColor="#00000000"/>
<path android:fillColor="#8ed7ff"
android:pathData="M1635,776c-37,-16 -70,-52 -84,-89 -7,-18 -11,-147 -11,-352 0,-300 1,-324 18,-327 11,-3 100,78 277,253 143,141 317,312 386,380 70,68 124,130 122,137 -7,18 -666,17 -708,-2z" android:strokeColor="#00000000"/>
<path android:fillColor="#b4e4ff"
android:pathData="M742,1823c-17,-54 -44,-145 -62,-203 -17,-58 -38,-125 -46,-150 -8,-25 -27,-88 -43,-140 -16,-52 -43,-141 -61,-198 -17,-56 -29,-106 -26,-110 5,-9 168,-8 183,1 6,4 14,24 17,44 4,21 11,52 17,68 14,45 137,507 141,529 5,28 25,31 30,4 5,-23 106,-369 134,-457 8,-25 21,-71 30,-101 30,-103 21,-95 118,-94 48,0 90,5 95,10 4,5 16,36 25,69 10,33 21,71 26,85 5,14 18,59 30,100 12,41 25,86 30,100 5,14 18,59 30,100 12,41 25,86 30,100 5,14 14,44 20,68 6,23 14,42 18,42 4,0 43,-132 86,-293 43,-160 85,-312 92,-337l13,-45 86,1c47,0 87,3 91,6 3,3 -11,59 -31,124 -21,66 -57,182 -80,259 -24,77 -60,192 -80,255 -20,63 -41,131 -45,150 -5,19 -16,52 -25,73l-15,37 -95,0 -94,0 -19,-62c-11,-35 -54,-180 -97,-323 -42,-143 -79,-266 -81,-274 -10,-31 -18,-11 -90,232 -8,26 -20,68 -28,95 -45,149 -97,315 -102,323 -3,5 -47,9 -98,9l-94,0 -30,-97z" android:strokeColor="#00000000"/>
<path android:fillColor="#b4e4ff"
android:pathData="M1622,760c-18,-11 -41,-34 -52,-52 -19,-31 -20,-51 -20,-367 0,-300 2,-333 16,-327 9,3 20,6 25,6 6,0 7,5 4,10 -3,6 2,13 12,17 20,7 49,33 37,33 -3,0 -1,7 6,15 7,8 16,12 21,9 5,-3 8,0 7,7 -2,7 2,13 7,14 14,0 85,71 85,84 0,6 11,16 25,23 27,15 322,303 336,331 5,9 15,17 22,17 14,0 39,27 56,59 6,11 23,26 39,34 15,7 26,18 25,24 -2,7 11,23 27,37 17,13 30,29 30,35 0,8 -105,11 -337,11 -320,0 -340,-1 -371,-20z" android:strokeColor="#00000000"/>
<path android:fillColor="#c6ebff"
android:pathData="M750,1838c-13,-46 -27,-90 -31,-98 -6,-13 -89,-284 -134,-440 -13,-45 -65,-215 -79,-257 -7,-23 -6,-23 86,-23l94,0 78,283c42,155 83,306 90,335 13,51 22,70 29,61 2,-2 48,-155 103,-339l100,-335 92,-3c50,-1 92,-1 92,1 0,10 201,671 205,675 3,3 6,3 8,1 2,-2 43,-150 92,-329 48,-179 90,-331 92,-337 4,-9 32,-13 95,-13 73,0 89,3 85,14 -3,8 -11,34 -17,57 -7,24 -16,53 -21,64 -4,11 -25,76 -45,145 -20,69 -40,134 -44,145 -18,44 -80,251 -80,266 0,9 -3,19 -7,23 -4,4 -19,46 -34,94l-26,87 -88,3c-49,2 -92,-1 -96,-5 -5,-5 -53,-155 -106,-334 -54,-179 -102,-327 -108,-328 -5,-2 -38,91 -73,206 -34,114 -74,246 -88,293 -14,47 -33,104 -41,128l-16,42 -91,0 -92,0 -24,-82z" android:strokeColor="#00000000"/>
<path android:fillColor="#c6ebff"
android:pathData="M1602,736l-37,-34 -3,-339 -3,-339 130,129c81,80 135,126 142,121 7,-4 9,-3 6,3 -3,5 103,118 237,251l243,242 -339,0 -338,0 -38,-34z" android:strokeColor="#00000000"/>
<path android:fillColor="#fefeff"
android:pathData="M775,1898c-22,-65 -53,-165 -104,-338 -34,-113 -68,-223 -75,-245 -19,-54 -73,-233 -82,-267l-6,-28 85,0 85,0 16,53c8,28 22,77 30,107 8,30 22,80 30,110 9,30 37,136 64,234 26,99 53,181 60,184 6,2 16,-16 22,-40 10,-37 130,-442 177,-596l16,-53 86,3 85,3 102,338c56,186 104,341 108,344 3,4 8,4 11,2 2,-3 46,-158 97,-344l93,-340 84,-3 83,-3 -6,28c-4,15 -20,69 -35,118 -16,50 -57,180 -91,290 -34,110 -80,257 -102,328l-40,127 -89,0c-102,0 -92,9 -129,-120 -12,-41 -25,-86 -30,-100 -5,-14 -18,-59 -30,-100 -12,-41 -25,-86 -30,-100 -5,-14 -18,-59 -30,-100 -37,-130 -46,-154 -57,-157 -6,-2 -13,6 -16,19 -9,40 -139,469 -157,518 -4,14 -16,51 -26,83l-17,57 -89,0c-62,0 -90,-4 -93,-12z" android:strokeColor="#00000000"/>
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="20dp"
android:height="19.661016dp"
android:viewportWidth="59"
android:viewportHeight="58">
<path
android:fillColor="#54d0ac"
android:fillType="evenOdd"
android:pathData="M56.208,33.858C54.665,33.858 53.415,32.616 53.415,31.085C53.415,30.707 53.407,30.325 53.39,29.948C52.787,16.264 41.498,5.544 27.689,5.544C26.147,5.544 24.897,4.303 24.897,2.772C24.897,1.241 26.147,-0 27.689,-0C35.81,-0 43.508,3.074 49.366,8.655C55.206,14.218 58.616,21.695 58.969,29.706C58.989,30.163 58.999,30.627 58.999,31.085C58.999,32.616 57.749,33.858 56.208,33.858ZM44.858,31.907C43.457,31.907 42.249,30.862 42.088,29.446C41.342,22.905 36.233,17.717 29.664,16.83C28.136,16.624 27.066,15.226 27.274,13.71C27.482,12.193 28.889,11.13 30.417,11.337C34.801,11.929 38.928,13.991 42.036,17.143C43.571,18.701 44.832,20.483 45.783,22.441C46.76,24.453 47.383,26.6 47.637,28.823C47.81,30.344 46.708,31.717 45.176,31.889C45.069,31.901 44.964,31.907 44.858,31.907ZM36.442,43.718C39.684,40.496 41.843,37.542 49.269,43.45L49.27,43.449C56.831,49.356 51.025,53.384 47.785,56.606C44.004,60.365 29.962,56.739 16.056,43.046C2.15,29.218 -1.361,15.258 2.42,11.498C5.659,8.276 9.71,2.639 15.651,10.021C21.592,17.405 18.756,19.42 15.382,22.774C12.951,24.923 17.945,30.964 23.076,36.065C28.072,41.167 34.013,46.134 36.442,43.718Z" />
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="20dp"
android:height="18dp"
android:viewportWidth="60"
android:viewportHeight="54">
<path
android:fillColor="#54d0ac"
android:fillType="evenOdd"
android:pathData="M29.998,-0C13.43,-0 -0.002,11.486 -0.002,25.654C-0.002,34.941 5.768,43.074 14.411,47.578C13.217,49.156 11.467,50.908 8.931,52.436C8.931,52.436 15.881,56.718 26.24,51.109C27.472,51.24 28.725,51.308 29.998,51.308C46.567,51.308 59.999,39.823 59.999,25.654C59.999,11.486 46.567,-0 29.998,-0Z" />
</vector>
<vector android:height="13.134328dp" android:viewportHeight="40"
android:viewportWidth="67" android:width="22dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#54d0ac" android:fillType="evenOdd" android:pathData="M64.103,36.639L53.115,28.791C52.409,28.286 51.991,27.481 51.991,26.625L51.991,13.344C51.991,12.487 52.409,11.683 53.115,11.178L64.103,3.33C65.307,2.469 66.998,3.313 66.998,4.774L66.998,35.195C66.998,36.656 65.307,37.499 64.103,36.639ZM42.602,40L5.391,40C2.425,40 -0.001,37.567 -0.001,34.595L-0.001,5.405C-0.001,2.432 2.425,-0 5.391,-0L42.602,-0C45.569,-0 47.996,2.432 47.996,5.405L47.996,34.595C47.996,37.567 45.569,40 42.602,40Z"/>
</vector>
<vector android:height="12.905661dp" android:viewportHeight="36"
android:viewportWidth="53" android:width="19dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#54D0AC" android:fillType="evenOdd" android:pathData="M51.247,6.464L22.963,34.748C21.596,36.115 19.38,36.115 18.013,34.748L1.749,18.485C0.383,17.118 0.383,14.902 1.749,13.535C3.116,12.168 5.332,12.168 6.699,13.535L20.488,27.323L46.297,1.514C47.664,0.147 49.881,0.147 51.247,1.514C52.614,2.881 52.614,5.097 51.247,6.464Z"/>
</vector>
<vector android:height="12.905661dp" android:viewportHeight="36"
android:viewportWidth="53" android:width="19dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FF4242" android:fillType="evenOdd" android:pathData="M51.247,6.464L22.963,34.748C21.596,36.115 19.38,36.115 18.013,34.748L1.749,18.485C0.383,17.118 0.383,14.902 1.749,13.535C3.116,12.168 5.332,12.168 6.699,13.535L20.488,27.323L46.297,1.514C47.664,0.147 49.881,0.147 51.247,1.514C52.614,2.881 52.614,5.097 51.247,6.464Z"/>
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="19dp"
android:height="13.910714dp"
android:viewportWidth="56"
android:viewportHeight="41">
<path
android:fillColor="#54d0ac"
android:fillType="evenOdd"
android:pathData="M53.955,34C52.142,34.446 50.266,34.741 48.361,34.905L48.361,31.208C48.361,27.918 47.089,25.027 45.136,23.192L45.178,23.192C48.102,23.192 50.891,23.769 53.463,24.818C54.953,25.539 56,27.131 56,29.006L56,31.077C56,32.466 55.129,33.626 53.955,34ZM45,19C41.686,19 39,16.314 39,13C39,9.686 41.686,7 45,7C48.314,7 51,9.686 51,13C51,16.314 48.314,19 45,19ZM28,18C23.029,18 19,13.971 19,9C19,4.029 23.029,-0 28,-0C32.971,-0 37,4.029 37,9C37,13.971 32.971,18 28,18ZM11,19C7.686,19 5,16.314 5,13C5,9.686 7.686,7 11,7C14.314,7 17,9.686 17,13C17,16.314 14.314,19 11,19ZM10.864,23.205C8.917,25.034 7.639,27.924 7.639,31.221L7.639,34.911C5.727,34.747 3.858,34.452 2.031,34.007C0.858,33.626 0,32.473 0,31.09L0,28.999C0,27.125 1.047,25.525 2.551,24.811C5.116,23.769 7.906,23.192 10.815,23.205L10.864,23.205ZM15.361,24.595C19.29,22.923 23.541,21.999 27.996,21.999C32.459,21.999 36.724,22.923 40.659,24.608C42.943,25.748 44.546,28.304 44.546,31.293L44.546,34.636C44.546,36.851 43.231,38.713 41.426,39.309C37.104,40.41 32.62,41 28.003,41C23.379,41 18.889,40.397 14.561,39.302C12.768,38.7 11.454,36.845 11.454,34.629L11.454,31.287C11.454,28.292 13.063,25.729 15.361,24.595Z" />
</vector>
<vector android:height="143dp" android:viewportHeight="1600"
android:viewportWidth="1600" android:width="143dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#cccccc"
android:pathData="M600,1579c-286,-74 -507,-297 -580,-583 -28,-109 -28,-283 0,-392 73,-288 296,-511 584,-584 109,-28 283,-28 392,0 288,73 511,296 584,584 28,109 28,283 0,392 -59,230 -217,426 -425,525 -121,59 -216,79 -359,78 -86,0 -143,-6 -196,-20z" android:strokeColor="#00000000"/>
<path android:fillColor="#eeeeee"
android:pathData="M600,1579c-286,-74 -507,-297 -580,-583 -28,-109 -28,-283 0,-392 73,-288 296,-511 584,-584 109,-28 283,-28 392,0 288,73 511,296 584,584 28,109 28,283 0,392 -59,230 -217,426 -425,525 -121,59 -216,79 -359,78 -86,0 -143,-6 -196,-20zM971,1130c20,-5 44,-19 54,-30 26,-29 31,-102 10,-156 -15,-40 -25,-50 -74,-73 -50,-23 -68,-26 -166,-26 -94,0 -118,4 -164,24 -43,20 -57,32 -72,65 -32,71 -22,151 23,180 13,9 48,20 78,25 65,12 260,6 311,-9zM490,992c0,-38 7,-70 20,-95l20,-37 -22,0c-41,0 -98,21 -118,42 -21,23 -28,91 -11,116 9,14 53,30 89,31 20,1 22,-3 22,-57zM1169,1040c43,-12 51,-24 51,-76 0,-27 -7,-47 -20,-62 -20,-21 -77,-42 -116,-42l-22,0 19,37c12,24 19,58 19,95 0,64 4,67 69,48zM594,775c36,-34 37,-105 1,-140 -32,-33 -89,-34 -122,-3 -33,31 -33,109 2,143 32,33 83,33 119,0zM1115,775c34,-33 35,-108 3,-142 -30,-32 -90,-32 -123,2 -36,35 -35,106 1,140 36,33 87,33 119,0zM861,765c45,-24 69,-70 69,-135 0,-68 -24,-117 -71,-142 -66,-35 -146,-12 -181,53 -22,42 -24,129 -3,170 32,62 121,87 186,54z" android:strokeColor="#00000000"/>
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="80dp"
android:height="80dp"
android:viewportWidth="240"
android:viewportHeight="240">
<path
android:fillColor="#54d0ac"
android:fillType="evenOdd"
android:pathData="M120,240C53.726,240 0,186.274 0,120C0,53.726 53.726,0 120,0C186.274,0 240,53.726 240,120C240,186.274 186.274,240 120,240ZM69,164C69,166.663 71.336,169 74,169L101,169C103.665,169 106,166.663 106,164C106,161.337 103.665,159 101,159L79,159L79,137C79,134.337 76.665,132 74,132C71.336,132 69,134.337 69,137L69,164ZM101,69L74,69C71.336,69 69,71.337 69,74L69,101C69,103.663 71.336,106 74,106C76.665,106 79,103.663 79,101L79,79L101,79C103.665,79 106,76.663 106,74C106,71.337 103.665,69 101,69ZM169,74C169,71.334 166.665,69 164,69L137,69C134.336,69 132,71.334 132,74C132,76.666 134.336,79 137,79L159,79L159,101C159,103.665 161.335,106 164,106C166.665,106 169,103.665 169,101L169,74ZM164,114L74,114C71.239,114 69,116.239 69,119C69,121.761 71.239,124 74,124L164,124C166.761,124 169,121.761 169,119C169,116.239 166.761,114 164,114ZM169,137C169,134.335 166.665,132 164,132C161.335,132 159,134.335 159,137L159,159L137,159C134.336,159 132,161.334 132,164C132,166.666 134.336,169 137,169L164,169C166.665,169 169,166.666 169,164L169,137Z" />
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="57dp"
android:height="57dp"
android:viewportWidth="240"
android:viewportHeight="240">
<path
android:fillColor="#54d0ac"
android:fillType="evenOdd"
android:pathData="M120,240C53.726,240 0,186.274 0,120C0,53.726 53.726,0 120,0C186.274,0 240,53.726 240,120C240,186.274 186.274,240 120,240ZM69,164C69,166.663 71.336,169 74,169L101,169C103.665,169 106,166.663 106,164C106,161.337 103.665,159 101,159L79,159L79,137C79,134.337 76.665,132 74,132C71.336,132 69,134.337 69,137L69,164ZM101,69L74,69C71.336,69 69,71.337 69,74L69,101C69,103.663 71.336,106 74,106C76.665,106 79,103.663 79,101L79,79L101,79C103.665,79 106,76.663 106,74C106,71.337 103.665,69 101,69ZM169,74C169,71.334 166.665,69 164,69L137,69C134.336,69 132,71.334 132,74C132,76.666 134.336,79 137,79L159,79L159,101C159,103.665 161.335,106 164,106C166.665,106 169,103.665 169,101L169,74ZM164,114L74,114C71.239,114 69,116.239 69,119C69,121.761 71.239,124 74,124L164,124C166.761,124 169,121.761 169,119C169,116.239 166.761,114 164,114ZM169,137C169,134.335 166.665,132 164,132C161.335,132 159,134.335 159,137L159,159L137,159C134.336,159 132,161.334 132,164C132,166.666 134.336,169 137,169L164,169C166.665,169 169,166.666 169,164L169,137Z" />
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="206dp"
android:height="99.67742dp"
android:viewportWidth="620"
android:viewportHeight="300">
<path
android:fillColor="#54D0AC"
android:fillType="evenOdd"
android:pathData="M571.315,221.916L571.315,221.938L455.817,221.938L455.817,221.85C454.875,221.894 453.932,221.938 452.989,221.938C425.771,221.938 403.725,201.173 403.725,175.564C403.725,151.018 423.981,130.938 449.605,129.301C453.787,100.375 480.063,78.062 511.85,78.062C543.637,78.062 569.913,100.353 574.095,129.301C599.719,130.938 619.975,151.018 620,175.542C620,200.996 598.244,221.629 571.315,221.916ZM538.638,155.475L516.812,133.428L516.701,133.325C515.373,132.158 513.659,131.515 511.857,131.515C510.092,131.531 508.391,132.182 507.063,133.345L485.17,155.442C482.372,158.267 482.372,163.039 485.169,165.862C486.547,167.253 488.391,168.021 490.358,168.021C492.324,168.021 494.167,167.255 495.549,165.862L504.182,157.14L504.182,190.127C504.182,194.198 507.47,197.509 511.51,197.509C515.552,197.509 518.84,194.198 518.84,190.127L518.84,156.383L528.256,165.897C529.638,167.293 531.479,168.062 533.443,168.062C533.444,168.062 533.444,168.062 533.444,168.062C535.407,168.062 537.251,167.293 538.638,165.894C541.47,163.021 541.47,158.349 538.638,155.475ZM335.43,142.319L270.619,142.319C270.594,142.309 270.574,142.305 270.557,142.302C270.546,142.3 270.536,142.298 270.528,142.295L270.518,142.292L270.518,142.297C270.489,142.297 270.462,142.297 270.434,142.29L270.432,142.289C270.412,142.289 270.396,142.287 270.378,142.286C270.361,142.284 270.344,142.281 270.323,142.281L270.252,142.277C270.232,142.272 270.213,142.271 270.194,142.269C270.174,142.267 270.155,142.265 270.138,142.26L270.077,142.25L269.962,142.228L269.902,142.221L269.788,142.194C269.783,142.194 269.778,142.193 269.773,142.193C269.759,142.191 269.746,142.19 269.73,142.184L269.628,142.158C269.605,142.149 269.58,142.145 269.554,142.144L269.463,142.118L269.38,142.097L269.297,142.07C269.28,142.067 269.258,142.058 269.238,142.05C269.227,142.046 269.216,142.042 269.206,142.039C269.184,142.029 269.16,142.021 269.137,142.015L269.044,141.975L268.983,141.951L268.724,141.832C268.714,141.829 268.707,141.826 268.7,141.822C268.692,141.818 268.684,141.813 268.674,141.811C268.644,141.796 268.613,141.78 268.586,141.756L268.533,141.721C268.497,141.707 268.472,141.691 268.448,141.669L268.38,141.621C268.267,141.548 268.162,141.468 268.065,141.383L268.062,141.382C268.038,141.372 268.017,141.358 268.006,141.341L267.949,141.286C267.93,141.261 267.905,141.239 267.876,141.222C267.869,141.211 267.857,141.201 267.847,141.193C267.841,141.189 267.837,141.185 267.835,141.183C267.815,141.152 267.793,141.129 267.763,141.109L267.729,141.069L267.67,140.99L267.64,140.953L267.577,140.874L267.546,140.826L267.495,140.754L267.465,140.707L267.427,140.639L267.399,140.575L267.365,140.515L267.337,140.442C267.326,140.425 267.32,140.407 267.317,140.387L267.283,140.308C267.28,140.302 267.278,140.296 267.277,140.29C267.275,140.28 267.272,140.27 267.266,140.261L267.232,140.174L267.225,140.128C267.213,140.1 267.207,140.071 267.204,140.041L267.194,139.993C267.185,139.973 267.182,139.952 267.179,139.934C267.178,139.922 267.176,139.912 267.173,139.904L267.163,139.852C267.163,139.834 267.16,139.819 267.158,139.804C267.155,139.79 267.153,139.777 267.153,139.762C267.153,139.738 267.153,139.716 267.143,139.692C267.143,139.665 267.142,139.644 267.132,139.628C267.122,139.533 267.122,139.438 267.132,139.343C267.132,139.32 267.132,139.3 267.141,139.285L267.143,139.282C267.143,139.256 267.143,139.236 267.152,139.213L267.153,139.211C267.153,139.196 267.155,139.182 267.158,139.168C267.16,139.154 267.163,139.14 267.163,139.124L267.173,139.072C267.178,139.056 267.181,139.04 267.183,139.026C267.185,139.011 267.188,138.996 267.194,138.982L267.204,138.934L267.207,138.926C267.216,138.898 267.225,138.871 267.225,138.849L267.235,138.802L267.266,138.715L267.287,138.667L267.317,138.589C267.328,138.572 267.335,138.554 267.338,138.535L267.369,138.464L267.4,138.4C267.404,138.386 267.409,138.372 267.416,138.359C267.42,138.351 267.424,138.344 267.427,138.336C267.432,138.324 267.439,138.313 267.448,138.302C267.456,138.29 267.465,138.278 267.468,138.265L267.502,138.219C267.509,138.209 267.515,138.199 267.521,138.189C267.529,138.174 267.539,138.161 267.55,138.147L267.643,138.02L267.674,137.983L267.767,137.864C267.786,137.838 267.809,137.814 267.835,137.793C267.847,137.778 267.861,137.765 267.878,137.754L267.88,137.753C267.897,137.729 267.919,137.707 267.947,137.691C267.96,137.682 267.97,137.672 267.981,137.662C267.99,137.653 267.999,137.644 268.009,137.637L268.071,137.59L268.195,137.484L286.375,123.483C287.071,122.945 287.996,122.649 288.979,122.649L288.984,122.649C289.965,122.649 290.886,122.946 291.578,123.483C292.276,124.021 292.659,124.735 292.658,125.495C292.656,126.251 292.272,126.959 291.578,127.491L279.696,136.639L279.683,136.649L335.43,136.649C337.457,136.649 339.108,137.921 339.108,139.484C339.108,141.047 337.457,142.319 335.43,142.319ZM270.792,157.675L335.605,157.675C335.635,157.675 335.665,157.675 335.684,157.683L335.688,157.683C335.719,157.683 335.748,157.683 335.778,157.691L335.78,157.691C335.798,157.692 335.816,157.693 335.833,157.695C335.852,157.697 335.869,157.699 335.892,157.699L335.893,157.699L335.961,157.707C335.98,157.71 335.998,157.713 336.018,157.714C336.038,157.717 336.058,157.719 336.074,157.723L336.136,157.731C336.174,157.738 336.212,157.746 336.25,157.755L336.311,157.76L336.424,157.786C336.431,157.788 336.44,157.79 336.448,157.791C336.46,157.793 336.471,157.795 336.482,157.799L336.584,157.826C336.607,157.834 336.632,157.839 336.658,157.84L336.75,157.866L336.832,157.887L336.915,157.914C336.932,157.916 336.95,157.923 336.967,157.929C336.98,157.934 336.994,157.939 337.007,157.942C337.028,157.951 337.051,157.959 337.075,157.966L337.168,158.006L337.229,158.029L337.538,158.172C337.571,158.187 337.602,158.205 337.631,158.225C337.648,158.234 337.664,158.244 337.677,158.256L337.679,158.257C337.708,158.271 337.738,158.286 337.759,158.311L337.833,158.36C337.965,158.446 338.088,158.541 338.2,158.643C338.213,158.652 338.225,158.663 338.235,158.674C338.244,158.683 338.252,158.691 338.26,158.697C338.278,158.72 338.3,158.744 338.333,158.762C338.344,158.776 338.358,158.79 338.374,158.801C338.395,158.827 338.419,158.851 338.446,158.872L338.48,158.912L338.538,158.991L338.569,159.028L338.631,159.107L338.662,159.155L338.713,159.226L338.744,159.274L338.785,159.345L338.816,159.408C338.82,159.421 338.825,159.433 338.832,159.445C338.836,159.453 338.84,159.461 338.844,159.469L338.878,159.541C338.888,159.558 338.894,159.576 338.895,159.595L338.93,159.676C338.932,159.682 338.934,159.688 338.935,159.694C338.937,159.704 338.941,159.714 338.947,159.723L338.981,159.809L338.988,159.855C338.999,159.884 339.005,159.913 339.008,159.942L339.019,159.99C339.023,160.004 339.026,160.019 339.028,160.033C339.031,160.049 339.034,160.065 339.039,160.077L339.05,160.129C339.05,160.145 339.052,160.161 339.055,160.177C339.058,160.191 339.06,160.204 339.06,160.219C339.06,160.243 339.06,160.268 339.07,160.289C339.089,160.403 339.092,160.519 339.081,160.635C339.081,160.66 339.081,160.683 339.071,160.695L339.07,160.696L339.07,160.698C339.07,160.724 339.07,160.745 339.06,160.768L339.06,160.77C339.06,160.784 339.058,160.798 339.055,160.812C339.052,160.827 339.05,160.841 339.05,160.856L339.039,160.911C339.035,160.926 339.031,160.941 339.029,160.956C339.027,160.971 339.024,160.986 339.018,160.999L339.008,161.046L339.006,161.055C338.996,161.084 338.988,161.11 338.988,161.131L338.977,161.178L338.947,161.266L338.926,161.313L338.896,161.391C338.884,161.409 338.877,161.427 338.875,161.445L338.844,161.519C338.841,161.525 338.838,161.531 338.835,161.536C338.827,161.55 338.82,161.565 338.816,161.581C338.809,161.599 338.801,161.612 338.792,161.626L338.782,161.645C338.778,161.659 338.769,161.673 338.761,161.686C338.755,161.696 338.749,161.705 338.745,161.715L338.71,161.762C338.703,161.772 338.697,161.782 338.692,161.791C338.683,161.806 338.674,161.82 338.662,161.834L338.57,161.96L338.538,161.997L338.446,162.117C338.426,162.14 338.405,162.164 338.378,162.187L338.333,162.228C338.313,162.251 338.292,162.275 338.265,162.29C338.253,162.299 338.242,162.309 338.231,162.319C338.222,162.328 338.213,162.337 338.203,162.343L338.141,162.391L338.018,162.497L319.847,176.519C319.151,177.056 318.227,177.351 317.243,177.351L317.239,177.351C316.258,177.35 315.337,177.055 314.645,176.519C314.301,176.257 314.029,175.944 313.844,175.6C313.657,175.256 313.562,174.886 313.562,174.514C313.562,174.141 313.657,173.772 313.844,173.428C314.029,173.083 314.301,172.771 314.645,172.508L326.527,163.355L326.539,163.345L270.793,163.345L270.792,163.345C269.483,163.345 268.262,162.802 267.607,161.928C266.952,161.053 266.952,159.967 267.607,159.093C268.262,158.218 269.483,157.675 270.792,157.675ZM164.396,300L23.073,300C10.33,300 -0,289.668 -0,276.923L-0,23.077C-0,10.332 10.33,0 23.073,0L164.396,0C177.139,0 187.469,10.332 187.469,23.077L187.469,276.923C187.469,289.668 177.139,300 164.396,300ZM93.735,287.373C98.513,287.373 102.387,283.498 102.387,278.719C102.387,273.939 98.513,270.065 93.735,270.065C88.956,270.065 85.082,273.939 85.082,278.719C85.082,283.498 88.956,287.373 93.735,287.373ZM171.606,30.756C171.606,22.79 165.15,16.333 157.186,16.333L30.284,16.333C22.319,16.333 15.863,22.79 15.863,30.756L15.863,244.217C15.863,252.183 22.319,258.64 30.284,258.64L157.186,258.64C165.15,258.64 171.606,252.183 171.606,244.217L171.606,30.756ZM134.016,185.678C131.826,188.918 128.743,191.454 125.139,192.979C123.919,193.494 122.65,193.888 121.352,194.154C120.015,194.426 118.653,194.563 117.288,194.562C115.923,194.563 114.561,194.426 113.222,194.154C110.642,193.625 108.191,192.594 106.01,191.119C102.766,188.932 100.228,185.851 98.701,182.251C98.186,181.032 97.792,179.765 97.526,178.468C96.979,175.787 96.979,173.024 97.526,170.343C98.055,167.766 99.086,165.318 100.561,163.139C102.75,159.898 105.833,157.361 109.436,155.835C110.656,155.32 111.925,154.927 113.222,154.661C115.906,154.115 118.671,154.115 121.354,154.661C123.935,155.19 126.385,156.221 128.567,157.695C131.81,159.883 134.349,162.964 135.875,166.563C136.391,167.783 136.785,169.05 137.051,170.347C137.597,173.028 137.597,175.791 137.051,178.471C136.522,181.049 135.491,183.498 134.016,185.678ZM130.52,175.311C130.243,174.831 129.73,174.535 129.176,174.536L117.288,174.536L117.288,162.532C117.289,162.086 117.112,161.658 116.797,161.343C116.481,161.027 116.053,160.849 115.607,160.849C114.678,160.85 113.926,161.601 113.925,162.529L113.925,175.965C113.924,176.473 114.154,176.954 114.55,177.273C114.76,177.449 115.014,177.567 115.284,177.614C115.45,177.646 115.62,177.654 115.788,177.636L129.176,177.636C129.73,177.636 130.243,177.34 130.52,176.861C130.797,176.381 130.797,175.79 130.52,175.311ZM117.288,149.888C103.749,149.888 92.773,160.865 92.773,174.407C92.773,175.717 92.906,176.994 93.104,178.249C92.515,178.312 91.927,178.375 91.331,178.424L90.466,178.424L61.442,180.438L66.757,174.047C67.331,173.115 66.988,171.923 65.989,171.395C53.794,164.942 48.069,154.97 48.069,141.931C48.069,121.776 67.438,105.438 91.331,105.438C115.224,105.438 134.593,121.776 134.593,141.931C134.593,146.523 133.624,150.806 131.849,154.714C127.775,151.695 122.749,149.888 117.288,149.888Z" />
</vector>
<vector android:height="20dp" android:viewportHeight="790"
android:viewportWidth="450" android:width="11dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#000000"
android:pathData="M7,783c-4,-3 -7,-18 -7,-32 0,-21 36,-61 172,-191l171,-165 -172,-166c-155,-149 -172,-169 -169,-195 2,-24 8,-30 33,-32 27,-3 50,16 220,180 164,158 190,187 190,213 0,26 -26,55 -189,213 -149,143 -195,182 -216,182 -15,0 -30,-3 -33,-7z" android:strokeColor="#00000000"/>
</vector>
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
android:viewportHeight="108"
android:viewportWidth="108">
<path
android:fillColor="#26A69A"
android:pathData="M0,0h108v108h-108z" />
<path
android:fillColor="#00000000"
android:pathData="M9,0L9,108"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M19,0L19,108"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M29,0L29,108"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M39,0L39,108"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M49,0L49,108"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M59,0L59,108"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M69,0L69,108"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M79,0L79,108"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M89,0L89,108"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M99,0L99,108"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M0,9L108,9"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M0,19L108,19"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M0,29L108,29"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M0,39L108,39"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M0,49L108,49"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M0,59L108,59"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M0,69L108,69"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M0,79L108,79"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M0,89L108,89"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M0,99L108,99"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M19,29L89,29"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M19,39L89,39"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M19,49L89,49"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M19,59L89,59"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M19,69L89,69"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M19,79L89,79"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M29,19L29,89"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M39,19L39,89"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M49,19L49,89"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M59,19L59,89"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M69,19L69,89"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M79,19L79,89"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
</vector>
<vector android:height="108dp" android:viewportHeight="1920"
android:viewportWidth="1920" android:width="108dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#54cfb9"
android:pathData="M0,960l0,-960 960,0 960,0 0,960 0,960 -960,0 -960,0 0,-960z" android:strokeColor="#00000000"/>
<path android:fillColor="#54cbd1"
android:pathData="M0,960l0,-960 358,0 357,0 114,114 113,113 81,6c171,11 322,82 452,212 130,130 201,281 212,452l6,81 113,113 114,114 0,357 0,358 -960,0 -960,0 0,-960zM1503,773c-7,-22 -50,-111 -66,-138 -15,-25 -126,-136 -152,-152 -28,-17 -116,-60 -140,-67 -11,-4 65,79 170,184 104,104 191,190 192,190 1,0 0,-8 -4,-17z" android:strokeColor="#00000000"/>
<path android:fillColor="#53c2e2"
android:pathData="M0,1113l0,-808 155,155c85,85 156,152 158,150 2,-3 22,-32 44,-65 49,-73 150,-168 226,-214 31,-18 96,-47 144,-64 83,-30 96,-31 233,-31 131,0 153,2 225,27 116,38 199,91 290,182 91,91 144,175 182,290 25,72 27,94 27,225 0,131 -2,153 -27,225 -51,152 -147,282 -276,373 -36,25 -68,47 -71,49 -2,2 65,73 150,158l155,155 -808,0 -807,0 0,-807zM1251,1459c78,-42 184,-155 226,-241 83,-167 83,-345 1,-517 -43,-92 -168,-216 -261,-260 -170,-81 -351,-79 -518,4 -83,42 -177,126 -223,200 -33,51 -64,116 -50,102 4,-4 68,52 141,125l133,133 0,-56c0,-98 59,-187 155,-230 53,-25 157,-25 210,0 163,74 208,279 91,418 -38,45 -119,83 -178,83 -26,0 -48,3 -48,7 0,8 251,263 258,263 3,0 31,-14 63,-31zM1036,1036c28,-28 34,-42 34,-76 0,-34 -6,-48 -34,-76 -28,-28 -42,-34 -76,-34 -34,0 -48,6 -76,34 -28,28 -34,42 -34,76 0,34 6,48 34,76 28,28 42,34 76,34 34,0 48,-6 76,-34z" android:strokeColor="#00000000"/>
<path android:fillColor="#52b8ed"
android:pathData="M0,1413l0,-508 125,125 126,125 -8,-45c-4,-25 -8,-101 -7,-170 0,-113 3,-134 31,-213 43,-122 85,-189 178,-282 92,-92 160,-135 282,-178 83,-30 96,-31 233,-31 131,0 153,2 225,27 116,38 199,91 290,182 91,91 144,175 182,290 25,72 27,94 27,225 0,131 -2,153 -27,225 -39,116 -91,199 -182,290 -92,92 -176,144 -290,182 -69,23 -97,27 -210,27 -71,1 -148,-3 -170,-7 -40,-8 -40,-8 85,117l125,126 -508,0 -507,0 0,-507zM757,1663c-4,-3 -10,-3 -14,0 -3,4 0,7 7,7 7,0 10,-3 7,-7zM727,1653c-4,-3 -10,-3 -14,0 -3,4 0,7 7,7 7,0 10,-3 7,-7zM590,1596c0,-3 -5,-8 -12,-12 -7,-4 -8,-3 -4,4 7,12 16,16 16,8zM1089,1525c106,-25 211,-87 288,-169 172,-182 210,-426 101,-655 -43,-92 -168,-216 -261,-260 -234,-111 -498,-64 -674,123 -198,209 -216,491 -45,748l25,39 -23,31c-12,17 -18,28 -13,25 6,-4 18,2 28,13 13,14 31,20 64,20 32,0 67,10 116,35 128,63 265,80 394,50zM464,1424c3,-8 2,-12 -4,-9 -6,3 -10,10 -10,16 0,14 7,11 14,-7zM340,1346c0,-3 -5,-8 -12,-12 -7,-4 -8,-3 -4,4 7,12 16,16 16,8zM267,1193c-4,-3 -7,0 -7,7 0,7 3,10 7,7 3,-4 3,-10 0,-14zM257,1163c-4,-3 -7,0 -7,7 0,7 3,10 7,7 3,-4 3,-10 0,-14z" android:strokeColor="#00000000"/>
<path android:fillColor="#52b8ed"
android:pathData="M842,1194c-93,-46 -142,-127 -142,-234 0,-152 108,-260 260,-260 152,0 259,108 260,261 0,151 -108,258 -261,259 -50,0 -77,-6 -117,-26zM1036,1036c28,-28 34,-42 34,-76 0,-34 -6,-48 -34,-76 -28,-28 -42,-34 -76,-34 -34,0 -48,6 -76,34 -28,28 -34,42 -34,76 0,34 6,48 34,76 28,28 42,34 76,34 34,0 48,-6 76,-34z" android:strokeColor="#00000000"/>
<path android:fillColor="#ffffff"
android:pathData="M781,1670c-250,-67 -437,-243 -518,-485 -24,-72 -27,-95 -27,-225 -1,-137 1,-150 31,-233 43,-123 86,-190 178,-282 92,-92 160,-135 282,-178 83,-30 96,-31 233,-31 131,0 153,2 225,27 116,38 199,91 290,182 91,91 144,175 182,290 25,72 27,94 27,225 0,131 -2,153 -27,225 -39,116 -91,199 -182,290 -147,146 -285,206 -495,211 -102,3 -139,0 -199,-16zM1089,1525c106,-25 211,-87 288,-169 172,-182 210,-426 101,-655 -43,-92 -168,-216 -261,-260 -234,-111 -498,-64 -674,123 -198,209 -216,491 -46,748 24,36 25,39 9,63 -9,13 -25,29 -36,35 -39,21 -19,30 67,30 80,0 94,3 158,35 128,63 265,80 394,50z" android:strokeColor="#00000000"/>
<path android:fillColor="#ffffff"
android:pathData="M842,1194c-93,-46 -142,-127 -142,-234 0,-152 108,-260 260,-260 152,0 259,108 260,261 0,151 -108,258 -261,259 -50,0 -77,-6 -117,-26zM1036,1036c28,-28 34,-42 34,-76 0,-34 -6,-48 -34,-76 -28,-28 -42,-34 -76,-34 -34,0 -48,6 -76,34 -28,28 -34,42 -34,76 0,34 6,48 34,76 28,28 42,34 76,34 34,0 48,-6 76,-34z" android:strokeColor="#00000000"/>
</vector>
<vector android:height="15.6dp" android:viewportHeight="36"
android:viewportWidth="40" android:width="17.3dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#54D0AC" android:fillType="evenOdd" android:pathData="M36.593,3.35C32.062,-1.132 24.715,-1.132 20.184,3.35L19.993,3.539L19.802,3.35C15.271,-1.132 7.924,-1.132 3.393,3.35C-1.139,7.832 -1.139,15.098 3.393,19.58L3.583,19.769L19.993,35.999L36.402,19.769L36.593,19.58C41.124,15.098 41.124,7.832 36.593,3.35Z"/>
</vector>
<vector android:height="24.3dp" android:viewportHeight="72"
android:viewportWidth="80" android:width="27dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#54D0AC" android:fillType="evenOdd" android:pathData="M73.187,6.7C64.124,-2.263 49.43,-2.263 40.368,6.7L39.986,7.078L39.604,6.7C30.541,-2.263 15.848,-2.263 6.785,6.7C-2.278,15.664 -2.278,30.197 6.785,39.16L7.167,39.538L39.986,71.998L72.805,39.538L73.187,39.16C82.25,30.197 82.25,15.664 73.187,6.7Z"/>
</vector>
<vector android:height="25dp" android:viewportHeight="75"
android:viewportWidth="81" android:width="27dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FFFFFF" android:fillType="evenOdd" android:pathData="M73.406,7.542C63.839,-2 48.272,-2 38.705,7.542L28.487,17.734C27.313,18.904 27.313,20.802 28.487,21.972C29.66,23.143 31.562,23.143 32.735,21.972L42.954,11.78C50.178,4.576 61.931,4.574 69.157,11.78C76.381,18.986 76.381,30.71 69.157,37.917L68.803,38.27L40.476,66.524L12.148,38.27L11.794,37.917C4.57,30.71 4.57,18.986 11.794,11.78C16.721,6.866 23.909,5.13 30.552,7.244C32.134,7.752 33.824,6.878 34.329,5.302C34.834,3.725 33.962,2.039 32.381,1.535C23.586,-1.266 14.069,1.034 7.546,7.542C-2.022,17.085 -2.022,32.611 7.546,42.154L7.9,42.507L40.476,75L73.052,42.507L73.406,42.154C82.973,32.611 82.973,17.085 73.406,7.542Z"/>
</vector>
<vector android:height="15.038462dp" android:viewportHeight="46"
android:viewportWidth="52" android:width="17dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#54D0AC" android:fillType="evenOdd" android:pathData="M47.571,4.28C41.68,-1.446 32.129,-1.446 26.239,4.28L25.99,4.522L25.742,4.28C19.852,-1.446 10.301,-1.446 4.41,4.28C-1.481,10.007 -1.481,19.292 4.41,25.019L4.658,25.26L25.99,45.998L47.323,25.26L47.571,25.019C53.462,19.292 53.462,10.007 47.571,4.28Z"/>
</vector>
<vector android:height="20.6dp" android:viewportHeight="57"
android:viewportWidth="44" android:width="15.901754dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#54D0AC" android:fillType="evenOdd" android:pathData="M22,0C9.85,0 0,9.855 0,22.011C0,22.604 0.036,23.202 0.09,23.802C0.126,24.245 0.182,24.68 0.244,25.115C0.247,25.134 0.25,25.154 0.253,25.174C0.446,26.514 0.752,27.814 1.175,29.065C4.285,39.121 12.898,49.297 18.021,54.715C20.181,56.999 23.819,56.999 25.979,54.715C31.102,49.297 39.715,39.121 42.825,29.065C43.248,27.814 43.554,26.514 43.747,25.174C43.75,25.154 43.753,25.134 43.756,25.115C43.818,24.68 43.874,24.245 43.91,23.802C43.964,23.202 44,22.604 44,22.011C44,9.855 34.15,0 22,0ZM22,35.851C14.912,35.851 9.167,30.102 9.167,23.011C9.167,15.92 14.912,10.171 22,10.171C29.088,10.171 34.833,15.92 34.833,23.011C34.833,30.102 29.088,35.851 22,35.851Z"/>
</vector>
<vector android:height="14dp" android:viewportHeight="42"
android:viewportWidth="34" android:width="11.333333dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#54D0AC" android:fillType="evenOdd" android:pathData="M16.999,42C14.872,42 -0.001,28.648 -0.001,17.181C-0.001,7.692 7.61,-0.001 16.999,-0.001C26.388,-0.001 33.999,7.692 33.999,17.181C33.999,28.39 19.126,42 16.999,42ZM16.999,2.863C9.175,2.863 2.832,9.332 2.832,17.312C2.832,26.954 15.227,39.136 16.999,39.136C18.772,39.136 31.166,26.737 31.166,17.312C31.166,9.332 24.823,2.863 16.999,2.863ZM16.999,24C13.133,24 9.999,20.866 9.999,16.999C9.999,13.133 13.133,9.999 16.999,9.999C20.865,9.999 23.999,13.133 23.999,16.999C23.999,20.866 20.865,24 16.999,24ZM16.999,12.999C14.79,12.999 12.999,14.79 12.999,16.999C12.999,19.209 14.79,21 16.999,21C19.208,21 20.999,19.209 20.999,16.999C20.999,14.79 19.208,12.999 16.999,12.999Z"/>
</vector>
<vector android:height="50dp" android:viewportHeight="2000"
android:viewportWidth="2000" android:width="50dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#54a6fb"
android:pathData="M800,1986c-306,-64 -563,-263 -700,-541 -79,-159 -95,-236 -95,-445 0,-209 16,-286 95,-445 97,-197 258,-358 455,-455 159,-79 236,-95 445,-95 209,0 286,16 445,95 197,97 358,258 455,455 79,159 95,236 95,445 0,209 -16,286 -95,445 -125,253 -367,453 -635,526 -102,27 -364,36 -465,15z" android:strokeColor="#00000000"/>
<path android:fillColor="#fefeff"
android:pathData="M959,1493c-43,-46 -270,-344 -300,-393 -58,-93 -73,-222 -40,-329 38,-121 111,-204 227,-258 51,-24 71,-28 154,-28 82,0 103,4 153,27 82,38 134,82 177,150 74,113 88,253 41,378 -27,69 -337,474 -367,478 -11,2 -30,-9 -45,-25zM1117,1054c59,-48 78,-88 78,-164 0,-76 -19,-116 -78,-164 -36,-29 -44,-31 -117,-31 -72,0 -81,2 -117,31 -122,97 -106,275 32,349 21,11 49,15 97,13 57,-3 72,-8 105,-34z" android:strokeColor="#00000000"/>
</vector>
<vector android:height="29dp" android:viewportHeight="1180"
android:viewportWidth="710" android:width="17dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#005a3d"
android:pathData="M280,1173c-8,-3 -27,-17 -42,-31 -40,-37 -38,-84 3,-123 17,-16 37,-29 45,-29 11,0 14,-26 14,-132l0,-133 -57,-18c-108,-34 -192,-118 -229,-229 -25,-77 -17,-207 19,-280 34,-69 94,-131 162,-166 45,-25 60,-27 160,-27 100,0 115,2 160,27 68,35 128,97 162,166 36,73 44,203 19,280 -37,111 -121,195 -229,229l-57,18 0,133c0,106 3,132 14,132 8,0 28,13 45,29 42,40 43,86 1,126 -28,27 -39,30 -103,32 -40,1 -79,0 -87,-4z" android:strokeColor="#00000000"/>
<path android:fillColor="#1ea578"
android:pathData="M320,1075c-9,-11 -15,-69 -18,-183l-5,-167 -55,-18c-108,-35 -191,-118 -228,-229 -25,-77 -17,-207 19,-280 34,-69 94,-131 162,-166 45,-25 60,-27 160,-27 100,0 115,2 160,27 68,35 128,97 162,166 36,73 44,203 19,280 -37,111 -120,194 -228,229l-55,18 -5,167c-3,114 -9,172 -18,183 -16,19 -54,19 -70,0z" android:strokeColor="#00000000"/>
<path android:fillColor="#52ceaa"
android:pathData="M336,1064c-13,-13 -16,-45 -16,-189l0,-173 -37,-7c-98,-18 -205,-112 -243,-213 -32,-82 -25,-197 15,-277 125,-246 475,-246 600,0 40,80 47,195 15,277 -38,101 -145,195 -242,213l-38,7 0,173c0,144 -3,176 -16,189 -8,9 -17,16 -19,16 -2,0 -11,-7 -19,-16z" android:strokeColor="#00000000"/>
</vector>
<vector android:height="17dp" android:viewportHeight="53.5"
android:viewportWidth="53.5" android:width="17dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#508AFF" android:fillType="evenOdd" android:pathData="M26,-0C40.359,-0 52,11.641 52,26C52,40.359 40.359,52 26,52C11.641,52 -0,40.359 -0,26C-0,11.641 11.641,-0 26,-0Z"/>
<path android:fillColor="#00000000" android:fillType="evenOdd"
android:pathData="M22,19C27.523,19 32,23.477 32,29C32,34.523 27.523,39 22,39C16.477,39 12,34.523 12,29C12,23.477 16.477,19 22,19Z"
android:strokeColor="#FFFFFF" android:strokeLineCap="butt"
android:strokeLineJoin="miter" android:strokeWidth="3"/>
<path android:fillColor="#00000000" android:fillType="evenOdd"
android:pathData="M36.5,25C35.672,25 35,24.328 35,23.5L35,16L27.5,16C26.672,16 26,15.328 26,14.5C26,13.672 26.672,13 27.5,13L36.5,13C37.328,13 38,13.672 38,14.5L38,23.5C38,24.328 37.328,25 36.5,25Z"
android:strokeColor="#FFFFFF" android:strokeLineCap="butt"
android:strokeLineJoin="miter" android:strokeWidth="2.88"/>
<path android:fillColor="#00000000" android:fillType="evenOdd"
android:pathData="M34.756,14.181L37.048,16.472L28.883,24.636L26.592,22.345L34.756,14.181Z"
android:strokeColor="#FFFFFF" android:strokeLineCap="butt"
android:strokeLineJoin="miter" android:strokeWidth="2.88"/>
</vector>
<vector android:height="86.666664dp" android:viewportHeight="260"
android:viewportWidth="1080" android:width="360dp"
xmlns:aapt="http://schemas.android.com/aapt" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillAlpha="0.502" android:fillType="evenOdd"
android:pathData="M0,0L1080,0L1080,260L0,260L0,0Z" android:strokeAlpha="0.502">
<aapt:attr name="android:fillColor">
<gradient android:endX="0" android:endY="260"
android:startX="0" android:startY="0" android:type="linear">
<item android:color="#FF151518" android:offset="0"/>
<item android:color="#7F151518" android:offset="0.45"/>
<item android:color="#FF151518" android:offset="1"/>
</gradient>
</aapt:attr>
</path>
</vector>
<vector android:height="21dp" android:viewportHeight="64"
android:viewportWidth="64" android:width="21dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FFFFFF" android:fillType="evenOdd" android:pathData="M31.999,64C14.326,64 -0.001,49.673 -0.001,32C-0.001,14.327 14.326,-0 31.999,-0C49.672,-0 63.998,14.327 63.998,32C63.998,49.673 49.672,64 31.999,64ZM26.999,21C26.999,19.343 25.656,18 23.998,18C22.342,18 20.999,19.343 20.999,21L20.999,43C20.999,44.657 22.342,46 23.998,46C25.656,46 26.999,44.657 26.999,43L26.999,21ZM42.999,20.88C42.999,19.289 41.709,18 40.119,18L39.879,18C38.288,18 36.999,19.289 36.999,20.88L36.999,43.12C36.999,44.71 38.288,46 39.879,46L40.119,46C41.709,46 42.999,44.71 42.999,43.12L42.999,20.88Z"/>
</vector>
<vector android:height="21dp" android:viewportHeight="64"
android:viewportWidth="64" android:width="21dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FFFFFF" android:fillType="evenOdd" android:pathData="M32,64C14.327,64 -0,49.673 -0,32C-0,14.327 14.327,-0 32,-0C49.673,-0 64,14.327 64,32C64,49.673 49.673,64 32,64ZM44.653,29.436L28.673,18.516C28.149,18.158 27.577,17.995 27.019,17.995C25.461,17.995 24.014,19.265 24.014,21.072L24.014,42.911C24.014,44.717 25.461,45.987 27.019,45.987C27.577,45.987 28.148,45.825 28.673,45.466L44.653,34.547C46.432,33.331 46.432,30.652 44.653,29.436Z"/>
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="360dp"
android:height="640dp"
android:viewportWidth="1080"
android:viewportHeight="1920">
<path
android:fillColor="#54d0ac"
android:fillType="evenOdd"
android:pathData="M-0,-0L1080,-0L1080,1920L-0,1920L-0,-0Z" />
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="19dp"
android:height="19dp"
android:viewportWidth="56"
android:viewportHeight="56">
<path
android:fillColor="#54d0ac"
android:fillType="evenOdd"
android:pathData="M52.999,31L30.999,31L30.999,53C30.999,54.657 29.656,56 27.999,56C26.342,56 24.999,54.657 24.999,53L24.999,31L2.999,31C1.343,31 -0.001,29.657 -0.001,28C-0.001,26.343 1.343,25 2.999,25L24.999,25L24.999,3C24.999,1.343 26.342,-0 27.999,-0C29.656,-0 30.999,1.343 30.999,3L30.999,25L52.999,25C54.656,25 55.999,26.343 55.999,28C55.999,29.657 54.656,31 52.999,31Z" />
</vector>
<vector android:height="3.3333333dp" android:viewportHeight="10"
android:viewportWidth="48" android:width="16dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#000000" android:fillType="evenOdd" android:pathData="M42.999,10C40.238,10 38,7.761 38,5C38,2.239 40.238,-0 42.999,-0C45.761,-0 47.999,2.239 47.999,5C47.999,7.761 45.761,10 42.999,10ZM23.999,10C21.238,10 18.999,7.761 18.999,5C18.999,2.239 21.238,-0 23.999,-0C26.761,-0 29,2.239 29,5C29,7.761 26.761,10 23.999,10ZM5,10C2.238,10 -0,7.761 -0,5C-0,2.239 2.238,-0 5,-0C7.761,-0 10,2.239 10,5C10,7.761 7.761,10 5,10Z"/>
</vector>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportHeight="24.0"
android:viewportWidth="24.0">
<path
android:fillColor="@color/black"
android:pathData="M12,8c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2zM12,10c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2zM12,16c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2z"/>
</vector>
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:viewportWidth="66"
android:viewportHeight="63" android:width="20dp" android:height="19dp">
<group android:name="#000000ff">
<path android:fillColor="@color/black" android:fillAlpha="1.00"
android:pathData=" M 31.61 0.00 L 34.20 0.00 C 37.28 1.25 38.36 4.52 39.75 7.24 C 41.44 10.80 43.23 14.32 44.96 17.86 C 50.54 19.02 56.25 19.26 61.84 20.32 C 63.77 20.53 64.89 22.24 66.00 23.62 L 66.00 26.51 C 62.27 31.95 56.81 35.87 52.35 40.66 C 53.11 46.50 54.80 52.19 55.34 58.05 C 55.73 60.48 53.42 61.83 51.73 63.00 L 49.47 63.00 C 43.80 60.59 38.54 57.34 33.01 54.63 C 27.52 57.35 22.26 60.53 16.65 63.00 L 14.50 63.00 C 12.65 61.94 10.23 60.49 10.68 57.97 C 11.22 52.12 12.98 46.47 13.66 40.64 C 9.17 35.92 3.92 31.90 0.00 26.66 L 0.00 24.17 C 0.87 22.47 2.00 20.56 4.11 20.34 C 9.72 19.24 15.47 19.06 21.07 17.86 C 23.41 13.18 25.66 8.45 28.01 3.77 C 28.72 2.12 30.12 0.94 31.61 0.00 M 32.42 5.32 C 29.99 9.97 27.89 14.79 25.42 19.41 C 24.71 20.77 23.65 22.25 21.96 22.34 C 16.10 23.18 10.25 24.12 4.40 25.07 C 8.25 29.09 12.41 32.80 16.32 36.75 C 17.73 38.07 18.61 40.00 18.07 41.94 C 17.04 47.49 16.20 53.07 15.41 58.67 C 20.48 55.95 25.54 53.22 30.69 50.64 C 32.39 49.74 34.42 50.06 36.05 50.96 C 40.92 53.51 45.79 56.04 50.62 58.67 C 49.85 53.71 49.26 48.72 48.26 43.79 C 47.93 41.83 47.28 39.50 48.80 37.84 C 52.80 33.33 57.51 29.50 61.61 25.08 C 55.78 24.11 49.95 23.17 44.09 22.36 C 42.40 22.24 41.32 20.77 40.60 19.39 C 38.12 14.70 35.95 9.85 33.52 5.13 C 33.24 5.18 32.69 5.27 32.42 5.32 Z" />
</group>
</vector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:viewportWidth="63"
android:viewportHeight="66" android:width="19dp" android:height="20dp">
<group android:name="#000000ff">
<path android:fillColor="@color/black" android:fillAlpha="1.00"
android:pathData=" M 19.62 0.00 L 42.87 0.00 C 46.68 1.03 47.18 4.96 47.59 8.29 C 52.73 8.24 57.87 8.22 63.00 8.59 L 63.00 11.95 C 60.58 12.36 58.15 12.75 55.72 13.08 C 55.63 28.09 55.88 43.11 55.63 58.12 C 55.73 62.22 52.04 64.89 48.50 66.00 L 14.61 66.00 C 10.95 65.02 7.19 62.28 7.28 58.11 C 7.03 42.97 7.28 27.83 7.19 12.69 C 5.30 12.68 3.41 12.66 1.52 12.60 C 1.14 12.25 0.38 11.55 0.00 11.20 L 0.00 9.01 C 4.98 7.84 10.11 8.30 15.17 8.31 C 15.76 5.09 16.09 1.36 19.62 0.00 M 19.79 4.47 C 19.79 5.42 19.79 7.32 19.79 8.27 C 27.60 8.30 35.41 8.29 43.23 8.27 C 43.11 6.95 42.92 5.63 42.66 4.33 C 35.04 4.35 27.41 4.17 19.79 4.47 M 11.36 55.02 C 11.44 56.82 11.28 58.94 12.72 60.30 C 13.94 61.95 16.20 61.52 17.97 61.68 C 27.66 61.59 37.36 61.77 47.06 61.60 C 50.04 61.86 51.75 58.64 51.54 56.02 C 51.58 41.57 51.53 27.11 51.54 12.66 C 38.16 12.66 24.78 12.66 11.39 12.66 C 11.38 26.78 11.41 40.90 11.36 55.02 Z" />
<path android:fillColor="@color/black" android:fillAlpha="1.00"
android:pathData=" M 17.30 51.11 C 17.19 41.54 16.85 31.92 17.59 22.36 C 19.35 22.12 21.85 22.64 21.68 24.91 C 21.86 33.58 21.83 42.28 21.69 50.96 C 22.30 54.03 16.78 54.20 17.30 51.11 Z" />
<path android:fillColor="@color/black" android:fillAlpha="1.00"
android:pathData=" M 29.61 23.40 C 29.92 21.75 33.65 22.18 33.53 24.10 C 33.93 33.05 33.69 42.04 33.65 51.00 C 34.18 53.61 29.81 54.32 29.35 51.90 C 28.91 45.29 29.35 38.66 29.17 32.05 C 29.25 29.17 28.85 26.21 29.61 23.40 Z" />
<path android:fillColor="@color/black" android:fillAlpha="1.00"
android:pathData=" M 41.58 23.43 C 41.82 21.75 45.65 22.17 45.52 24.10 C 45.93 33.04 45.70 42.03 45.64 50.98 C 45.96 53.25 42.86 54.26 41.48 52.55 C 40.84 48.38 41.26 44.16 41.18 39.97 C 41.42 34.46 40.63 28.87 41.58 23.43 Z" />
</group>
</vector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:viewportWidth="66"
android:viewportHeight="51" android:width="20dp" android:height="17dp">
<group android:name="#000000ff">
<path android:fillColor="@color/black" android:fillAlpha="1.00"
android:pathData=" M 9.40 0.00 L 34.55 0.00 C 34.73 1.55 34.83 3.10 34.84 4.66 C 26.86 4.80 18.88 4.53 10.91 4.75 C 7.64 4.72 4.59 7.61 5.06 10.98 C 5.07 21.00 4.94 31.02 5.12 41.04 C 5.03 44.52 8.84 46.62 11.98 46.32 C 25.99 46.32 40.00 46.31 54.01 46.32 C 57.31 46.68 60.85 44.38 61.23 40.97 C 61.58 36.62 61.25 32.26 61.59 27.91 C 62.19 27.73 63.37 27.37 63.96 27.19 C 64.64 27.70 65.32 28.20 66.00 28.71 L 66.00 41.47 C 65.18 46.12 61.68 49.84 57.11 51.00 L 9.43 51.00 C 4.59 50.18 0.94 46.28 0.00 41.52 L 0.00 9.66 C 0.84 4.82 4.54 0.91 9.40 0.00 Z" />
<path android:fillColor="@color/black" android:fillAlpha="1.00"
android:pathData=" M 48.78 0.00 L 65.70 0.00 C 65.78 0.01 65.93 0.02 66.00 0.03 L 66.00 17.80 C 65.54 18.26 64.61 19.18 64.14 19.63 C 63.47 19.30 62.13 18.63 61.46 18.30 C 61.41 15.05 61.40 11.80 61.37 8.55 C 56.59 13.42 52.57 19.01 47.50 23.60 C 43.50 26.98 38.22 28.68 33.00 28.46 C 27.27 28.31 21.53 28.74 15.82 28.24 C 13.77 27.58 13.89 24.36 15.97 23.81 C 22.99 23.04 30.10 24.21 37.11 23.24 C 40.63 22.74 43.82 20.87 46.24 18.29 C 50.35 13.90 54.24 9.29 58.20 4.74 C 54.71 4.72 51.22 4.69 47.74 4.44 C 47.55 3.81 47.17 2.54 46.97 1.91 C 47.42 1.43 48.33 0.48 48.78 0.00 Z" />
</group>
</vector>
\ No newline at end of file
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="20dp"
android:height="20dp"
android:viewportWidth="770"
android:viewportHeight="770">
<path
android:fillColor="#000000"
android:pathData="M360,725c0,-42 -2,-45 -27,-45 -100,-1 -243,-143 -243,-242 0,-26 -3,-28 -45,-28 -41,0 -45,-2 -45,-25 0,-23 4,-25 45,-25 42,0 45,-2 45,-27 0,-42 43,-124 86,-165 44,-42 116,-77 157,-78 25,0 27,-3 27,-45 0,-41 2,-45 25,-45 23,0 25,4 25,45 0,42 2,45 28,45 39,1 103,32 150,75 46,41 92,125 92,167 0,27 2,28 45,28 41,0 45,2 45,25 0,23 -4,25 -45,25 -43,0 -45,1 -45,28 0,42 -46,126 -92,167 -47,43 -111,74 -150,75 -26,0 -28,3 -28,45 0,41 -2,45 -25,45 -23,0 -25,-4 -25,-45zM449,614c55,-16 123,-69 146,-114 32,-61 38,-115 21,-175 -54,-183 -274,-240 -402,-103 -49,52 -67,96 -67,163 0,111 78,209 188,236 46,11 57,10 114,-7z"
android:strokeColor="#00000000" />
<path
android:fillColor="#000000"
android:pathData="M301,484c-60,-50 -60,-148 0,-198 25,-21 41,-26 86,-26 49,0 59,4 89,34 31,31 34,40 34,91 0,51 -3,60 -34,91 -30,30 -40,34 -89,34 -45,0 -61,-5 -86,-26zM414,449c56,-26 53,-105 -4,-129 -80,-33 -135,90 -56,128 28,14 31,14 60,1z"
android:strokeColor="#00000000" />
</vector>
<vector android:height="24dp" android:viewportHeight="63"
android:viewportWidth="58" android:width="22.095238dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#000000" android:fillType="evenOdd" android:pathData="M57.658,51.156C57.371,52.104 55.983,52 55,52L3,52C2.055,52 0.57,52.154 0.251,51.26C-0.067,50.365 0.206,49.366 0.935,48.763L3.012,46.212C4.565,44.926 6,42.024 6,40L6,23C6,10.366 15.672,-0 28.23,-0C40.787,-0 50.999,10.366 50.999,23L50.999,40C50.999,42.25 52.11,44.802 53.966,46.059L56.768,48.634C57.584,49.186 57.945,50.21 57.658,51.156ZM47,40L47,23C47,12.847 38.32,4.5 28.23,4.5C18.139,4.5 9.929,12.76 9.929,22.913L9.929,40.002C9.929,42.687 8.687,45.989 7,48L50,48C48.019,45.927 47,42.94 47,40ZM21.66,55.955C22.644,55.202 24.048,55.4 24.792,56.393C25.797,57.732 27.309,58.5 28.938,58.5C30.567,58.5 32.078,57.732 33.083,56.393C33.829,55.4 35.233,55.204 36.216,55.955C37.202,56.704 37.397,58.114 36.652,59.106C34.793,61.58 31.981,63 28.938,63C25.894,63 23.083,61.58 21.224,59.106C20.479,58.114 20.674,56.704 21.66,55.955Z"/>
</vector>
<vector android:height="40dp" android:viewportHeight="1600"
android:viewportWidth="1600" android:width="40dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#ffcb2a"
android:pathData="M600,1579c-286,-74 -507,-297 -580,-583 -28,-109 -28,-283 0,-392 73,-288 296,-511 584,-584 109,-28 283,-28 392,0 288,73 511,296 584,584 28,109 28,283 0,392 -59,230 -217,426 -425,525 -121,59 -216,79 -359,78 -86,0 -143,-6 -196,-20z" android:strokeColor="#00000000"/>
<path android:fillColor="#fffffe"
android:pathData="M415,1073c63,-289 84,-375 95,-388 11,-13 66,-15 366,-15l354,0 15,24c15,22 12,38 -39,242 -38,150 -60,222 -72,231 -14,10 -101,13 -380,13l-362,0 23,-107z" android:strokeColor="#00000000"/>
<path android:fillColor="#fffffe"
android:pathData="M350,773c0,-307 1,-331 18,-346 16,-14 44,-17 180,-17 149,0 164,2 182,20 12,12 20,33 20,55l0,35 184,0c205,0 208,1 210,68l1,37 -331,3c-300,2 -333,4 -346,20 -8,9 -37,114 -63,232 -26,118 -49,217 -51,219 -2,2 -4,-144 -4,-326z" android:strokeColor="#00000000"/>
</vector>
<vector android:height="50dp" android:viewportHeight="2000"
android:viewportWidth="2000" android:width="50dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#fbce54"
android:pathData="M800,1986c-306,-64 -563,-263 -700,-541 -79,-159 -95,-236 -95,-445 0,-209 16,-286 95,-445 97,-197 258,-358 455,-455 159,-79 236,-95 445,-95 209,0 286,16 445,95 197,97 358,258 455,455 79,159 95,236 95,445 0,209 -16,286 -95,445 -125,253 -367,453 -635,526 -102,27 -364,36 -465,15z" android:strokeColor="#00000000"/>
<path android:fillColor="#fffffe"
android:pathData="M540,1436c0,-3 25,-117 55,-254 30,-137 55,-257 55,-266 0,-9 9,-25 20,-36 19,-19 33,-20 425,-20l405,0 16,25c15,24 13,36 -45,272 -34,138 -69,255 -78,265 -15,17 -43,18 -435,18 -230,0 -418,-2 -418,-4z" android:strokeColor="#00000000"/>
<path android:fillColor="#fffffe"
android:pathData="M491,983c-1,-370 0,-384 19,-403 19,-19 33,-20 208,-20 214,0 219,2 229,79l6,41 197,0c184,0 199,1 224,21 21,17 26,29 26,65l0,44 -378,0c-357,0 -380,1 -396,19 -10,11 -37,111 -70,257 -30,132 -56,248 -59,259 -2,11 -5,-152 -6,-362z" android:strokeColor="#00000000"/>
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="30dp"
android:height="30dp"
android:viewportWidth="90"
android:viewportHeight="90">
<path
android:fillAlpha="0"
android:fillColor="#16D0FF"
android:fillType="evenOdd"
android:pathData="M-0.003,-0.001L89.998,-0.001L89.998,89.999L-0.003,89.999L-0.003,-0.001Z" />
<path
android:fillColor="#54D0AC"
android:fillType="evenOdd"
android:pathData="M54.404,57.271L55.932,55.611C56.533,54.979 57.034,54.485 57.557,54.054C61.21,50.993 65.248,51.351 71.643,55.788C75.603,58.54 77.333,61.461 76.925,64.597C76.622,66.938 75.347,68.843 72.859,71.447C72.698,71.615 71.263,73.09 70.898,73.483C65.15,79.687 46.689,74.105 30.807,60.297C14.869,46.461 7.101,29.194 12.923,22.901L13.688,22.056L14.513,21.125C17.432,17.842 19.446,16.298 22.251,16.026C25.058,15.759 27.871,17.152 30.777,20.29C36.914,26.937 36.999,30.859 32.663,35.627C32.349,35.976 31.232,37.157 31.125,37.27C30.061,38.426 33.671,43.229 40.722,49.352C47.85,55.544 53.23,58.531 54.395,57.273L54.404,57.271Z" />
</vector>
<vector android:height="16.945162dp" android:viewportHeight="51"
android:viewportWidth="62" android:width="20.6dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#54D0AC" android:fillType="evenOdd" android:pathData="M55.8,0.896L6.2,0.896C2.776,0.896 0,3.693 0,7.144L0,44.632C0,48.083 2.776,50.88 6.2,50.88L55.8,50.88C59.224,50.88 62,48.083 62,44.632L62,7.144C62,3.693 59.224,0.896 55.8,0.896ZM48.567,9.226C51.42,9.226 53.733,11.557 53.733,14.433C53.733,17.309 51.42,19.64 48.567,19.64C45.713,19.64 43.4,17.309 43.4,14.433C43.4,11.557 45.713,9.226 48.567,9.226ZM55.8,42.549C55.8,43.699 54.875,44.632 53.733,44.632L8.267,44.632C7.125,44.632 6.2,43.699 6.2,42.549L6.2,38.143C6.2,36.97 6.691,35.851 7.552,35.062L21.419,22.348C22.206,21.626 23.409,21.624 24.198,22.345L35.742,32.887C36.559,33.633 37.812,33.602 38.591,32.817L44.005,27.36C44.812,26.547 46.121,26.547 46.928,27.36L54.589,35.081C55.365,35.862 55.8,36.922 55.8,38.027L55.8,42.549Z"/>
</vector>
<vector android:height="200dp" android:viewportHeight="16000"
android:viewportWidth="9000" android:width="113dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#666666"
android:pathData="M3350,8988c-43,-26 -61,-44 -82,-87l-28,-55 0,-848 0,-849 24,-47c26,-50 56,-81 105,-106 26,-14 113,-16 691,-16l662,0 -25,43c-13,23 -41,74 -62,112 -20,39 -50,93 -65,120 -32,57 -75,137 -133,245 -22,41 -51,95 -65,120 -47,85 -62,119 -62,140 0,19 55,81 238,266 39,41 72,76 72,78 0,6 -61,66 -67,66 -4,0 -57,51 -163,155 -5,6 -38,39 -71,75 -34,36 -70,69 -79,75 -88,52 -80,50 -210,49 -106,0 -131,-3 -165,-21 -56,-29 -265,-80 -357,-87l-78,-6 0,193c0,137 3,196 12,205 9,9 127,12 470,12 290,0 458,4 458,10 0,5 -9,29 -19,52 -11,24 -28,64 -38,90l-18,48 -445,0 -446,0 -54,-32zM3914,7805c20,-14 40,-25 44,-25 4,0 20,-16 36,-36 131,-164 14,-414 -195,-414 -107,0 -191,60 -238,169 -26,62 -25,134 4,177 8,13 15,28 15,33 0,16 47,63 93,93 37,25 51,28 123,28 70,0 86,-3 118,-25z" android:strokeColor="#00000000"/>
<path android:fillColor="#666666"
android:pathData="M4540,9014c0,-3 8,-18 18,-32 30,-46 41,-66 67,-114l25,-48 448,0c335,0 451,-3 460,-12 9,-9 12,-87 12,-288l0,-276 -32,-28c-42,-37 -166,-144 -201,-173 -15,-13 -31,-23 -36,-23 -4,0 -19,-9 -33,-19 -14,-11 -55,-31 -93,-45 -56,-22 -84,-26 -171,-26l-104,0 -115,-116c-132,-134 -134,-138 -84,-243 17,-36 43,-91 57,-121 28,-62 85,-183 161,-341 28,-59 51,-111 51,-118 0,-8 85,-11 308,-11 293,0 309,1 347,21 54,28 83,56 108,104l22,40 0,855 0,855 -22,40c-24,45 -51,71 -104,103 -36,22 -41,22 -563,22 -289,0 -526,-3 -526,-6z" android:strokeColor="#00000000"/>
</vector>
<vector android:height="24dp" android:viewportHeight="76"
android:viewportWidth="76" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillAlpha="0.2" android:fillColor="#000000"
android:fillType="evenOdd"
android:pathData="M37.6,1.696C57.482,1.696 73.6,17.814 73.6,37.697C73.6,57.58 57.482,73.698 37.6,73.698C17.717,73.698 1.6,57.58 1.6,37.697C1.6,17.814 17.717,1.696 37.6,1.696Z" android:strokeAlpha="0.2"/>
<path android:fillColor="#00000000" android:fillType="evenOdd"
android:pathData="M37.6,1.696C57.482,1.696 73.6,17.814 73.6,37.697C73.6,57.58 57.482,73.698 37.6,73.698C17.717,73.698 1.6,57.58 1.6,37.697C1.6,17.814 17.717,1.696 37.6,1.696Z"
android:strokeColor="#FFFFFF" android:strokeLineCap="butt"
android:strokeLineJoin="miter" android:strokeWidth="2"/>
<path android:fillColor="#FFFFFF" android:fillType="evenOdd" android:pathData="M30,25L52,39L30,52L30,25Z"/>
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="18.7dp"
android:height="18.7dp"
android:viewportWidth="56"
android:viewportHeight="56">
<path
android:fillColor="#000000"
android:fillType="evenOdd"
android:pathData="M52.999,31L30.999,31L30.999,53C30.999,54.657 29.656,56 27.999,56C26.342,56 24.999,54.657 24.999,53L24.999,31L2.999,31C1.343,31 -0.001,29.657 -0.001,28C-0.001,26.343 1.343,25 2.999,25L24.999,25L24.999,3C24.999,1.343 26.342,-0 27.999,-0C29.656,-0 30.999,1.343 30.999,3L30.999,25L52.999,25C54.656,25 55.999,26.343 55.999,28C55.999,29.657 54.656,31 52.999,31Z" />
</vector>
<vector android:height="11.914893dp" android:viewportHeight="35"
android:viewportWidth="47" android:width="16dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#54D0AC" android:fillType="evenOdd" android:pathData="M45.11,34.995L30.949,34.995C31.88,34.995 33.835,30.396 30.419,25.365C29.452,23.949 28.331,22.29 26.524,20.866C28.423,20.29 30.127,19.885 32.354,19.885C38.229,19.885 42.296,22.009 44.576,25.362C47.999,30.393 46.044,34.995 45.11,34.995ZM26.519,20.862C26.521,20.863 26.522,20.865 26.524,20.866C26.521,20.867 26.519,20.868 26.516,20.868L26.519,20.862ZM33.46,15.869L33.462,15.866C29.071,15.867 25.51,12.317 25.508,7.935C25.506,3.553 29.065,-0.001 33.457,-0.003C37.85,-0.004 41.411,3.548 41.412,7.931C41.413,12.314 37.853,15.869 33.46,15.869ZM27.401,34.999L1.887,34.999C0.955,34.999 -0.999,30.4 2.42,25.369C4.704,22.013 8.781,20.187 14.645,19.885C20.513,20.187 24.591,22.013 26.871,25.369C30.294,30.396 28.336,34.999 27.401,34.999ZM14.875,15.869L14.877,15.865C10.489,15.865 6.93,12.318 6.926,7.939C6.922,3.557 10.479,0.001 14.871,-0.003C19.264,-0.004 22.826,3.548 22.827,7.931C22.828,12.314 19.268,15.869 14.875,15.869Z"/>
</vector>
<vector android:height="11.914893dp" android:viewportHeight="35"
android:viewportWidth="47" android:width="16dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#000000" android:fillType="evenOdd" android:pathData="M45.11,34.995L30.949,34.995C31.88,34.995 33.835,30.396 30.419,25.365C29.452,23.949 28.331,22.29 26.524,20.866C28.423,20.29 30.127,19.885 32.354,19.885C38.229,19.885 42.296,22.009 44.576,25.362C47.999,30.393 46.044,34.995 45.11,34.995ZM26.519,20.862C26.521,20.863 26.522,20.865 26.524,20.866C26.521,20.867 26.519,20.868 26.516,20.868L26.519,20.862ZM33.46,15.869L33.462,15.866C29.071,15.867 25.51,12.317 25.508,7.935C25.506,3.553 29.065,-0.001 33.457,-0.003C37.85,-0.004 41.411,3.548 41.412,7.931C41.413,12.314 37.853,15.869 33.46,15.869ZM27.401,34.999L1.887,34.999C0.955,34.999 -0.999,30.4 2.42,25.369C4.704,22.013 8.781,20.187 14.645,19.885C20.513,20.187 24.591,22.013 26.871,25.369C30.294,30.396 28.336,34.999 27.401,34.999ZM14.875,15.869L14.877,15.865C10.489,15.865 6.93,12.318 6.926,7.939C6.922,3.557 10.479,0.001 14.871,-0.003C19.264,-0.004 22.826,3.548 22.827,7.931C22.828,12.314 19.268,15.869 14.875,15.869Z"/>
</vector>
<vector android:height="11.914893dp" android:viewportHeight="35"
android:viewportWidth="47" android:width="16dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FF4242" android:fillType="evenOdd" android:pathData="M45.11,34.995L30.949,34.995C31.88,34.995 33.835,30.396 30.419,25.365C29.452,23.949 28.331,22.29 26.524,20.866C28.423,20.29 30.127,19.885 32.354,19.885C38.229,19.885 42.296,22.009 44.576,25.362C47.999,30.393 46.044,34.995 45.11,34.995ZM26.519,20.862C26.521,20.863 26.522,20.865 26.524,20.866C26.521,20.867 26.519,20.868 26.516,20.868L26.519,20.862ZM33.46,15.869L33.462,15.866C29.071,15.867 25.51,12.317 25.508,7.935C25.506,3.553 29.065,-0.001 33.457,-0.003C37.85,-0.004 41.411,3.548 41.412,7.931C41.413,12.314 37.853,15.869 33.46,15.869ZM27.401,34.999L1.887,34.999C0.955,34.999 -0.999,30.4 2.42,25.369C4.704,22.013 8.781,20.187 14.645,19.885C20.513,20.187 24.591,22.013 26.871,25.369C30.294,30.396 28.336,34.999 27.401,34.999ZM14.875,15.869L14.877,15.865C10.489,15.865 6.93,12.318 6.926,7.939C6.922,3.557 10.479,0.001 14.871,-0.003C19.264,-0.004 22.826,3.548 22.827,7.931C22.828,12.314 19.268,15.869 14.875,15.869Z"/>
</vector>
<vector android:height="17.882353dp" android:viewportHeight="38"
android:viewportWidth="34" android:width="16dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#54D0AC" android:fillType="evenOdd" android:pathData="M30,38L4,38C1.657,38 0,36.169 0,34L0,17C0,14.686 1.652,13.003 4,13L6,13L6,12C6,5.427 10.329,-0 17,-0C23.671,-0 28,5.427 28,12L28,13L30,13C32.348,13.003 34,14.686 34,17L34,34C34,36.063 32.343,38 30,38ZM15,29C15,30.105 15.895,31 17,31C18.105,31 19,30.105 19,29L19,22C19,20.895 18.105,20 17,20C15.895,20 15,20.895 15,22L15,29ZM24,12C24,7.746 21.317,4 17,4C12.683,4 10,7.746 10,12L10,13L24,13L24,12Z"/>
</vector>
<vector android:height="17.882353dp" android:viewportHeight="38"
android:viewportWidth="34" android:width="16dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#000000" android:fillType="evenOdd" android:pathData="M30,38L4,38C1.657,38 0,36.169 0,34L0,17C0,14.686 1.652,13.003 4,13L6,13L6,12C6,5.427 10.329,-0 17,-0C23.671,-0 28,5.427 28,12L28,13L30,13C32.348,13.003 34,14.686 34,17L34,34C34,36.063 32.343,38 30,38ZM15,29C15,30.105 15.895,31 17,31C18.105,31 19,30.105 19,29L19,22C19,20.895 18.105,20 17,20C15.895,20 15,20.895 15,22L15,29ZM24,12C24,7.746 21.317,4 17,4C12.683,4 10,7.746 10,12L10,13L24,13L24,12Z"/>
</vector>
<vector android:height="16dp" android:viewportHeight="42"
android:viewportWidth="42" android:width="16dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#54D0AC" android:fillType="evenOdd" android:pathData="M21,42C9.399,42 -0,32.601 -0,21C-0,9.399 9.399,-0 21,-0C32.601,-0 42,9.399 42,21C42,32.601 32.601,42 21,42ZM21,4.677C11.987,4.677 4.677,11.987 4.677,21C4.677,30.013 11.987,37.323 21,37.323C30.013,37.323 37.323,30.013 37.323,21C37.323,11.987 30.013,4.677 21,4.677ZM21,33.138C14.302,33.138 8.864,27.7 8.864,21.002C8.864,19.499 9.15,18.02 9.692,16.629C10.605,17.49 11.827,18.027 13.181,18.027C15.995,18.027 18.276,15.745 18.276,12.931C18.276,11.627 17.772,10.45 16.966,9.549C18.258,9.085 19.621,8.839 21,8.839C27.725,8.839 33.136,14.303 33.136,21.002C33.136,27.7 27.699,33.138 21,33.138Z"/>
</vector>
<vector android:height="16dp" android:viewportHeight="42"
android:viewportWidth="42" android:width="16dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#000000" android:fillType="evenOdd" android:pathData="M21,42C9.399,42 -0,32.601 -0,21C-0,9.399 9.399,-0 21,-0C32.601,-0 42,9.399 42,21C42,32.601 32.601,42 21,42ZM21,4.677C11.987,4.677 4.677,11.987 4.677,21C4.677,30.013 11.987,37.323 21,37.323C30.013,37.323 37.323,30.013 37.323,21C37.323,11.987 30.013,4.677 21,4.677ZM21,33.138C14.302,33.138 8.864,27.7 8.864,21.002C8.864,19.499 9.15,18.02 9.692,16.629C10.605,17.49 11.827,18.027 13.181,18.027C15.995,18.027 18.276,15.745 18.276,12.931C18.276,11.627 17.772,10.45 16.966,9.549C18.258,9.085 19.621,8.839 21,8.839C27.725,8.839 33.136,14.303 33.136,21.002C33.136,27.7 27.699,33.138 21,33.138Z"/>
</vector>
<vector android:height="24dp" android:viewportHeight="66"
android:viewportWidth="66" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#000000" android:fillType="evenOdd" android:pathData="M33,66C14.774,66 -0,51.225 -0,33C-0,14.774 14.774,-0 33,-0C51.225,-0 65.999,14.774 65.999,33C65.999,51.225 51.225,66 33,66ZM33,4C16.983,4 4,16.984 4,33C4,49.016 16.983,62 33,62C49.016,62 62,49.016 62,33C62,16.984 49.016,4 33,4ZM47,21C45.343,21 44,19.657 44,18C44,16.343 45.343,15 47,15C48.657,15 50,16.343 50,18C50,19.657 48.657,21 47,21ZM33,45C26.372,45 21,39.627 21,33C21,26.372 26.372,21 33,21C39.627,21 45,26.372 45,33C45,39.627 39.627,45 33,45ZM33,25C28.581,25 25,28.581 25,33C25,37.418 28.581,41 33,41C37.418,41 41,37.418 41,33C41,28.581 37.418,25 33,25Z"/>
</vector>
<vector android:height="17dp" android:viewportHeight="750"
android:viewportWidth="750" android:width="17dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#9a9a9a"
android:pathData="M50,700c-18,-18 -20,-33 -20,-145 0,-168 -3,-165 165,-165 168,0 165,-3 165,165 0,168 3,165 -165,165 -112,0 -127,-2 -145,-20zM260,555l0,-65 -65,0 -65,0 0,65 0,65 65,0 65,0 0,-65z" android:strokeColor="#00000000"/>
<path android:fillColor="#9a9a9a"
android:pathData="M438,709c-16,-9 -18,-27 -18,-155 0,-142 0,-145 24,-155 17,-8 29,-8 45,0 20,11 21,19 21,156 0,132 -2,145 -19,155 -24,12 -31,12 -53,-1z" android:strokeColor="#00000000"/>
<path android:fillColor="#9a9a9a"
android:pathData="M536,704c-25,-24 -22,-129 4,-147 19,-13 19,-13 0,-30 -25,-21 -28,-98 -4,-121 21,-22 50,-20 67,4l14,20 18,-20c22,-24 48,-26 69,-4 23,23 23,275 0,298 -21,22 -47,20 -69,-4l-18,-20 -14,20c-17,24 -46,26 -67,4zM620,540l0,-39 -22,22c-21,20 -22,23 -5,29 9,4 17,12 17,18 0,5 2,10 5,10 3,0 5,-18 5,-40z" android:strokeColor="#00000000"/>
<path android:fillColor="#9a9a9a"
android:pathData="M50,340c-18,-18 -20,-33 -20,-145 0,-112 2,-127 20,-145 18,-18 33,-20 145,-20 168,0 165,-3 165,165 0,168 3,165 -165,165 -112,0 -127,-2 -145,-20zM260,195l0,-65 -65,0 -65,0 0,65 0,65 65,0 65,0 0,-65z" android:strokeColor="#00000000"/>
<path android:fillColor="#9a9a9a"
android:pathData="M410,340c-18,-18 -20,-33 -20,-145 0,-112 2,-127 20,-145 18,-18 33,-20 145,-20 168,0 165,-3 165,165 0,168 3,165 -165,165 -112,0 -127,-2 -145,-20zM620,195l0,-65 -65,0 -65,0 0,65 0,65 65,0 65,0 0,-65z" android:strokeColor="#00000000"/>
<path android:fillColor="#cccccc"
android:pathData="M50,700c-18,-18 -20,-33 -20,-145 0,-168 -3,-165 165,-165 168,0 165,-3 165,165 0,168 3,165 -165,165 -112,0 -127,-2 -145,-20zM328,688c17,-17 17,-249 0,-266 -13,-13 -232,-18 -262,-6 -13,5 -16,27 -16,133 0,85 4,131 12,139 17,17 249,17 266,0z" android:strokeColor="#00000000"/>
<path android:fillColor="#cccccc"
android:pathData="M122,628c-16,-16 -16,-130 0,-146 16,-16 130,-16 146,0 16,16 16,130 0,146 -7,7 -39,12 -73,12 -34,0 -66,-5 -73,-12zM260,555l0,-65 -65,0 -65,0 0,65 0,65 65,0 65,0 0,-65z" android:strokeColor="#00000000"/>
<path android:fillColor="#cccccc"
android:pathData="M438,709c-16,-9 -18,-27 -18,-155 0,-142 0,-145 24,-155 17,-8 29,-8 45,0 20,11 21,19 21,156 0,132 -2,145 -19,155 -24,12 -31,12 -53,-1zM494,684c8,-20 8,-238 0,-258 -8,-21 -50,-21 -58,0 -8,20 -8,238 0,258 3,9 16,16 29,16 13,0 26,-7 29,-16z" android:strokeColor="#00000000"/>
<path android:fillColor="#cccccc"
android:pathData="M536,704c-25,-24 -22,-129 4,-147 19,-13 19,-13 0,-30 -25,-21 -28,-98 -4,-121 21,-22 50,-20 67,4l14,20 18,-20c22,-24 48,-26 69,-4 23,23 23,275 0,298 -21,22 -47,20 -69,-4l-18,-20 -14,20c-17,24 -46,26 -67,4zM598,639c3,-59 -13,-87 -43,-75 -11,4 -15,21 -15,64 0,65 5,74 35,70 17,-3 20,-11 23,-59zM695,555l0,-140 -25,0 -25,0 -3,129c-1,72 0,136 3,144 3,7 15,12 27,10 23,-3 23,-5 23,-143zM620,540l0,-39 -22,22c-21,20 -22,23 -5,29 9,4 17,12 17,18 0,5 2,10 5,10 3,0 5,-18 5,-40zM595,465c0,-47 -2,-50 -25,-50 -22,0 -25,5 -28,39 -4,52 3,68 30,64 20,-3 23,-9 23,-53z" android:strokeColor="#00000000"/>
<path android:fillColor="#cccccc"
android:pathData="M50,340c-18,-18 -20,-33 -20,-145 0,-112 2,-127 20,-145 18,-18 33,-20 145,-20 168,0 165,-3 165,165 0,168 3,165 -165,165 -112,0 -127,-2 -145,-20zM328,328c17,-17 17,-249 0,-266 -17,-17 -249,-17 -266,0 -17,17 -17,249 0,266 17,17 249,17 266,0z" android:strokeColor="#00000000"/>
<path android:fillColor="#cccccc"
android:pathData="M122,268c-16,-16 -16,-130 0,-146 16,-16 130,-16 146,0 16,16 16,130 0,146 -16,16 -130,16 -146,0zM260,195l0,-65 -65,0 -65,0 0,65 0,65 65,0 65,0 0,-65z" android:strokeColor="#00000000"/>
<path android:fillColor="#cccccc"
android:pathData="M410,340c-18,-18 -20,-33 -20,-145 0,-112 2,-127 20,-145 18,-18 33,-20 145,-20 168,0 165,-3 165,165 0,168 3,165 -165,165 -112,0 -127,-2 -145,-20zM688,328c17,-17 17,-249 0,-266 -17,-17 -249,-17 -266,0 -17,17 -17,249 0,266 17,17 249,17 266,0z" android:strokeColor="#00000000"/>
<path android:fillColor="#cccccc"
android:pathData="M482,268c-7,-7 -12,-39 -12,-73 0,-34 5,-66 12,-73 16,-16 130,-16 146,0 16,16 16,130 0,146 -16,16 -130,16 -146,0zM620,195l0,-65 -65,0 -65,0 0,65 0,65 65,0 65,0 0,-65z" android:strokeColor="#00000000"/>
</vector>
<vector android:height="17.333334dp" android:viewportHeight="52"
android:viewportWidth="96" android:width="32dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#54D0AC" android:fillType="evenOdd" android:pathData="M70,52L27,52C12.088,52 -0,39.912 -0,25L-0,-0L70,-0C84.359,-0 96,11.64 96,26C96,40.359 84.359,52 70,52ZM50,12L47.857,24L35.857,24L38,12L33,12L28,40L33,40L35.143,28L47.143,28L45,40L50,40L55,12L50,12ZM58,40L63,40L66.666,20L61.667,20L58,40ZM65.5,11C64.119,11 63,12.119 63,13.5C63,14.881 64.119,16 65.5,16C66.88,16 68,14.881 68,13.5C68,12.119 66.88,11 65.5,11Z"/>
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="19dp"
android:height="18.666666dp"
android:viewportWidth="57"
android:viewportHeight="56">
<path
android:fillColor="#54d0ac"
android:fillType="evenOdd"
android:pathData="M54.842,54.47C53.475,55.837 51.516,56.094 50.467,55.045L36.794,41.372C32.948,44.265 28.182,46 22.998,46C10.297,46 -0.001,35.702 -0.001,23C-0.001,10.297 10.297,-0 22.998,-0C35.701,-0 45.999,10.297 45.999,23C45.999,27.992 44.391,32.599 41.69,36.369L55.417,50.096C56.466,51.145 56.208,53.103 54.842,54.47ZM22.998,6C13.61,6 5.999,13.611 5.999,23C5.999,32.389 13.61,40 22.998,40C32.388,40 39.998,32.389 39.998,23C39.998,13.611 32.388,6 22.998,6Z" />
</vector>
<vector android:height="20dp" android:viewportHeight="800"
android:viewportWidth="800" android:width="20dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#54d0ac"
android:pathData="M615,700c-94,-94 -100,-99 -121,-85 -12,7 -47,21 -79,31 -150,43 -317,-31 -386,-172 -18,-38 -25,-69 -27,-136 -4,-77 -1,-93 23,-145 34,-76 86,-129 160,-164 50,-24 73,-29 137,-29 142,0 242,59 300,178 30,59 33,76 33,152 0,71 -4,93 -26,137l-25,52 98,98c104,103 118,132 80,166 -38,34 -62,22 -167,-83zM425,552c82,-40 133,-107 149,-195 12,-66 -17,-144 -77,-202 -81,-78 -177,-96 -272,-51 -115,54 -170,176 -133,298 13,45 77,122 119,143 67,35 152,38 214,7z" android:strokeColor="#00000000"/>
</vector>
<vector android:height="18.37193dp" android:viewportHeight="56"
android:viewportWidth="57" android:width="18.7dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#000000" android:fillType="evenOdd" android:pathData="M54.842,54.47C53.474,55.837 51.516,56.094 50.468,55.045L36.794,41.372C32.948,44.265 28.182,46 22.999,46C10.297,46 -0.001,35.702 -0.001,23C-0.001,10.297 10.297,-0 22.999,-0C35.702,-0 45.999,10.297 45.999,23C45.999,27.992 44.392,32.599 41.69,36.369L55.417,50.095C56.466,51.144 56.208,53.103 54.842,54.47ZM22.999,6C13.61,6 5.999,13.611 5.999,23C5.999,32.389 13.61,40 22.999,40C32.388,40 39.999,32.389 39.999,23C39.999,13.611 32.388,6 22.999,6Z"/>
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="17dp"
android:height="11.54717dp"
android:viewportWidth="53"
android:viewportHeight="36">
<path
android:fillColor="#54d0ac"
android:fillType="evenOdd"
android:pathData="M51.248,6.464L22.964,34.749C21.597,36.115 19.381,36.115 18.014,34.749L1.751,18.485C0.384,17.118 0.384,14.902 1.751,13.535C3.117,12.168 5.334,12.168 6.7,13.535L20.489,27.324L46.298,1.514C47.665,0.148 49.881,0.148 51.248,1.514C52.615,2.881 52.615,5.097 51.248,6.464Z" />
</vector>
<vector android:height="20dp" android:viewportHeight="62"
android:viewportWidth="62" android:width="20dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#231F20" android:fillType="evenOdd" android:pathData="M61.851,23.545C61.529,24.732 60.727,25.753 59.649,26.346L59.643,26.35C58.373,27.045 57.422,28.244 57.034,29.642C56.647,31.039 56.846,32.556 57.578,33.807C58.068,34.625 58.783,35.318 59.634,35.792L59.855,35.93C61.805,37.291 62.382,39.874 61.198,41.937L55.788,50.999C54.469,53.184 51.705,53.915 49.492,52.674C47.704,51.687 45.552,51.687 43.75,52.682C41.991,53.626 40.913,55.427 40.91,57.395C40.897,58.638 40.389,59.827 39.516,60.68C38.644,61.532 37.497,61.999 36.279,61.999C36.262,61.999 36.246,61.999 36.227,61.999L25.456,61.999C25.44,61.999 25.421,61.999 25.405,61.999C22.931,62 20.86,59.979 20.804,57.473C20.813,55.961 20.228,54.562 19.197,53.559C17.343,51.765 14.579,51.406 12.318,52.673C10.099,53.89 7.361,53.156 6.057,51.022L0.655,41.975C0.025,40.919 -0.152,39.633 0.17,38.447C0.49,37.26 1.293,36.238 2.371,35.645C3.674,34.942 4.612,33.79 5.032,32.392C5.667,30.042 4.587,27.523 2.387,26.331C1.308,25.75 0.494,24.735 0.162,23.548C-0.17,22.36 -0.002,21.069 0.622,20.006L6.079,11.044C7.401,8.905 10.146,8.177 12.339,9.374C14.15,10.367 16.307,10.369 18.112,9.376C19.88,8.422 20.97,6.595 20.968,4.6C20.983,3.337 21.476,2.179 22.36,1.314C23.235,0.457 24.444,-0.016 25.654,-0.008L36.422,-0.008C37.616,-0.032 38.796,0.445 39.681,1.311C40.568,2.179 41.062,3.337 41.076,4.572C41.128,7.65 43.647,10.156 46.779,10.085C47.821,10.084 48.817,9.82 49.695,9.324C51.889,8.08 54.66,8.78 55.999,10.923L61.372,20.027C61.996,21.074 62.172,22.36 61.851,23.545ZM51.87,13.926C50.314,14.737 48.577,15.166 46.821,15.168C46.768,15.169 46.715,15.169 46.663,15.169C41.023,15.169 36.332,10.709 36.009,5.075L26.042,5.075C25.886,8.738 23.808,12.077 20.541,13.841C17.327,15.603 13.493,15.659 10.226,14.006L5.279,22.133C9.244,24.551 11.144,29.262 9.92,33.785C9.147,36.364 7.519,38.472 5.292,39.827L10.199,48.042C11.746,47.247 13.441,46.859 15.131,46.859C17.903,46.859 20.663,47.904 22.738,49.912C24.636,51.76 25.763,54.287 25.876,56.917L35.838,56.917C36,53.275 38.07,49.963 41.319,48.219C44.525,46.448 48.358,46.391 51.625,48.054L56.525,39.849C55.174,38.967 54.035,37.785 53.204,36.396C51.77,33.947 51.384,30.998 52.135,28.285C52.839,25.747 54.499,23.544 56.731,22.166L51.87,13.926ZM31,44C23.82,44 17.999,38.18 17.999,31C17.999,23.82 23.82,18 31,18C38.179,18 44,23.82 44,31C44,38.18 38.179,44 31,44ZM31,23C26.582,23 23,26.582 23,31C23,35.418 26.582,39 31,39C35.418,39 38.999,35.418 38.999,31C38.999,26.582 35.418,23 31,23Z"/>
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="57dp"
android:height="57dp"
android:viewportWidth="170"
android:viewportHeight="170">
<path
android:fillColor="#54d0ac"
android:fillType="evenOdd"
android:pathData="M85,-0C131.944,-0 170,38.056 170,85C170,131.944 131.944,170 85,170C38.056,170 -0,131.944 -0,85C-0,38.056 38.056,-0 85,-0Z" />
<path
android:fillColor="#FFFFFF"
android:fillType="evenOdd"
android:pathData="M120.228,65.621L109.621,76.228C108.45,77.399 106.55,77.399 105.379,76.228C104.207,75.056 104.207,73.157 105.379,71.985L111.364,66L96,66C87.716,66 81,72.716 81,81L81,98L80.816,98C80.928,98.314 81,98.647 81,99C81,100.657 79.657,102 78,102C76.343,102 75,100.657 75,99C75,98.647 75.072,98.314 75.184,98L75,98L75,78C75,68.059 83.059,60 93,60L110.364,60L105.379,55.015C104.207,53.843 104.207,51.944 105.379,50.772C106.55,49.601 108.45,49.601 109.621,50.772L120.228,61.379C121.399,62.55 121.399,64.45 120.228,65.621ZM71,60L61,60C58.791,60 57,61.791 57,64L57,110C57,112.209 58.791,114 61,114L111,114C113.209,114 115,112.209 115,110L115,92C115,90.343 116.343,89 118,89C119.657,89 121,90.343 121,92L121,112C121,116.418 117.418,120 113,120L59,120C54.582,120 51,116.418 51,112L51,62C51,57.582 54.582,54 59,54L71,54C72.657,54 74,55.343 74,57C74,58.657 72.657,60 71,60Z" />
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="16.7dp"
android:height="16.7dp"
android:viewportWidth="50"
android:viewportHeight="50">
<path
android:fillColor="#54d0ac"
android:fillType="evenOdd"
android:pathData="M47.594,29.187C46.265,29.187 45.188,28.117 45.188,26.798C45.188,26.472 45.181,26.142 45.167,25.817C44.647,14.02 34.92,4.779 23.022,4.779C21.694,4.779 20.617,3.709 20.617,2.389C20.617,1.07 21.694,-0 23.022,-0C30.019,-0 36.652,2.649 41.699,7.461C46.731,12.257 49.67,18.702 49.974,25.608C49.991,26.002 50,26.402 50,26.798C50,28.117 48.922,29.187 47.594,29.187ZM37.816,27.506C36.609,27.506 35.568,26.605 35.428,25.384C34.786,19.746 30.384,15.273 24.724,14.508C23.408,14.331 22.486,13.126 22.665,11.819C22.844,10.511 24.056,9.595 25.373,9.773C29.15,10.283 32.706,12.061 35.384,14.778C36.707,16.121 37.794,17.658 38.612,19.345C39.454,21.08 39.991,22.931 40.21,24.847C40.359,26.158 39.41,27.342 38.089,27.49C37.998,27.501 37.906,27.506 37.816,27.506ZM30.565,37.688C33.358,34.91 35.217,32.364 41.616,37.457L41.617,37.456C48.131,42.548 43.129,46.02 40.337,48.798C37.079,52.038 24.982,48.913 12.999,37.108C1.018,25.188 -2.007,13.153 1.251,9.912C4.042,7.134 7.532,2.275 12.65,8.639C17.769,15.004 15.326,16.741 12.418,19.633C10.324,21.485 14.627,26.693 19.048,31.09C23.353,35.489 28.471,39.77 30.565,37.688Z" />
</vector>
<vector android:height="16.696428dp" android:viewportHeight="50"
android:viewportWidth="56" android:width="18.7dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#54d0ac" android:fillType="evenOdd" android:pathData="M27.999,-0C12.536,-0 -0.001,10.634 -0.001,23.754C-0.001,32.352 5.384,39.884 13.45,44.053C12.336,45.514 10.703,47.137 8.336,48.552C8.336,48.552 14.823,52.517 24.491,47.323C25.64,47.445 26.81,47.508 27.999,47.508C43.463,47.508 55.999,36.873 55.999,23.754C55.999,10.634 43.463,-0 27.999,-0Z"/>
</vector>
<vector android:height="11.3147545dp" android:viewportHeight="34"
android:viewportWidth="61" android:width="20.3dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#54d0ac" android:fillType="evenOdd" android:pathData="M58.103,31.639L47.115,23.791C46.409,23.286 45.991,22.481 45.991,21.625L45.991,12.344C45.991,11.487 46.409,10.682 47.115,10.178L58.103,2.329C59.307,1.469 60.998,2.313 60.998,3.773L60.998,30.195C60.998,31.656 59.307,32.499 58.103,31.639ZM36.603,34L5.391,34C2.426,34 -0.001,31.567 -0.001,28.594L-0.001,5.405C-0.001,2.432 2.426,-0 5.391,-0L36.603,-0C39.569,-0 41.996,2.432 41.996,5.405L41.996,28.594C41.996,31.567 39.569,34 36.603,34Z"/>
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="16.7dp"
android:height="16.366dp"
android:viewportWidth="50"
android:viewportHeight="49">
<path
android:fillColor="#54d0ac"
android:fillType="evenOdd"
android:pathData="M24.999,45C23.848,45 22.723,44.905 21.613,44.77L13.999,49C11.79,49 10,48.209 10,46L10,40.469C3.937,36.364 -0.001,29.854 -0.001,22.5C-0.001,10.073 11.192,-0 24.999,-0C38.806,-0 50,10.073 50,22.5C50,34.926 38.806,45 24.999,45Z" />
</vector>
<vector android:height="8dp" android:viewportHeight="15"
android:viewportWidth="22" android:width="11.733334dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#999999" android:fillType="evenOdd" android:pathData="M9.515,14.288L0.476,3.309C-0.6,2.002 0.299,-0.007 1.959,-0.007L20.038,-0.007C21.698,-0.007 22.596,2.002 21.52,3.309L12.481,14.288C11.704,15.232 10.293,15.232 9.515,14.288Z"/>
</vector>
<vector android:height="24dp" android:viewportHeight="76"
android:viewportWidth="76" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillAlpha="0.2" android:fillColor="#000000"
android:fillType="evenOdd"
android:pathData="M37.6,1.534C57.482,1.534 73.6,17.653 73.6,37.535C73.6,57.418 57.482,73.536 37.6,73.536C17.717,73.536 1.6,57.418 1.6,37.535C1.6,17.653 17.717,1.534 37.6,1.534Z" android:strokeAlpha="0.2"/>
<path android:fillColor="#00000000" android:fillType="evenOdd"
android:pathData="M37.6,1.534C57.482,1.534 73.6,17.653 73.6,37.535C73.6,57.418 57.482,73.536 37.6,73.536C17.717,73.536 1.6,57.418 1.6,37.535C1.6,17.653 17.717,1.534 37.6,1.534Z"
android:strokeColor="#FFFFFF" android:strokeLineCap="butt"
android:strokeLineJoin="miter" android:strokeWidth="2"/>
<path android:fillColor="#FFFFFF" android:fillType="evenOdd" android:pathData="M28,25L34,25L34,51L28,51L28,25Z"/>
<path android:fillColor="#FFFFFF" android:fillType="evenOdd" android:pathData="M42,25L48,25L48,51L42,51L42,25Z"/>
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="21.3dp"
android:height="16.307812dp"
android:viewportWidth="64"
android:viewportHeight="49">
<path
android:fillColor="#54d0ac"
android:fillType="evenOdd"
android:pathData="M60.999,49L30.999,49C29.342,49 27.999,47.657 27.999,46C27.999,46 27.999,43.096 27.999,42.099C27.999,38.887 36.058,33 45.999,33C55.94,33 63.999,39.929 63.999,42.099C63.999,43.163 63.999,46 63.999,46C63.999,47.657 62.656,49 60.999,49ZM45.999,29C40.477,29 35.999,24.523 35.999,19C35.999,13.477 40.477,9 45.999,9C51.522,9 55.999,13.477 55.999,19C55.999,24.523 51.522,29 45.999,29ZM20,24C13.372,24 8,18.627 8,12C8,5.372 13.372,-0 20,-0C26.627,-0 32,5.372 32,12C32,18.627 26.627,24 20,24ZM31.814,30.617C25.945,33.618 21.999,38.338 21.999,40C21.999,41.941 21.999,49 21.999,49L2.999,49C1.343,49 -0.001,47.657 -0.001,46C-0.001,46 -0.001,41.479 -0.001,40C-0.001,37.479 10.046,29 20,29C25.137,29 28.964,29.637 31.814,30.617Z" />
</vector>
<vector android:height="48dp" android:viewportHeight="145"
android:viewportWidth="145" android:width="48dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#54D0AC" android:fillType="evenOdd" android:pathData="M72.192,144.457C32.429,144.457 0.191,112.24 0.191,72.498C0.191,32.755 32.429,0.538 72.192,0.538C111.957,0.538 144.192,32.755 144.192,72.498C144.192,112.24 111.957,144.457 72.192,144.457ZM73,41C55.326,41 41,55.327 41,73C41,82.193 44.882,90.474 51.09,96.311C48.423,99.108 44.89,100.89 40.411,100.981C47.112,103.567 54.386,105 62,105C67.543,105 66.905,105 71.999,105L71.999,104.975C72.332,104.985 72.664,105 73,105C90.672,105 105,90.673 105,73C105,55.327 90.672,41 73,41ZM90.999,77C88.791,77 86.999,75.209 86.999,73C86.999,70.791 88.791,69 90.999,69C93.209,69 95,70.791 95,73C95,75.209 93.209,77 90.999,77ZM73,77C70.79,77 69,75.209 69,73C69,70.791 70.79,69 73,69C75.209,69 77,70.791 77,73C77,75.209 75.209,77 73,77ZM54.999,77C52.791,77 50.999,75.209 50.999,73C50.999,70.791 52.791,69 54.999,69C57.209,69 59,70.791 59,73C59,75.209 57.209,77 54.999,77Z"/>
</vector>
<vector android:height="30dp" android:viewportHeight="90"
android:viewportWidth="90" android:width="30dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillAlpha="0" android:fillColor="#16D0FF"
android:fillType="evenOdd" android:pathData="M-0.003,-0.002L89.997,-0.002L89.997,89.999L-0.003,89.999L-0.003,-0.002Z"/>
<path android:fillColor="#D4D7D9" android:fillType="evenOdd" android:pathData="M44.963,15.781C43.183,15.781 41.402,16.557 40.175,18.11L32.789,27.454C32.1,28.327 31.191,28.994 30.157,29.387L19.086,33.593C15.403,34.992 13.959,39.489 16.126,42.81L22.631,52.782C23.239,53.714 23.587,54.796 23.638,55.913L24.176,67.849C24.329,71.246 27.115,73.768 30.289,73.768C30.827,73.768 31.376,73.696 31.925,73.543L43.338,70.37C43.87,70.222 44.417,70.148 44.963,70.148C45.51,70.148 46.057,70.222 46.589,70.37L58.002,73.543C58.551,73.696 59.1,73.768 59.637,73.768C62.812,73.768 65.598,71.246 65.751,67.849L66.289,55.913C66.34,54.796 66.688,53.714 67.296,52.782L73.801,42.81C75.968,39.489 74.524,34.992 70.84,33.593L59.77,29.387C58.737,28.994 57.827,28.327 57.138,27.454L49.752,18.11C48.525,16.557 46.744,15.781 44.963,15.781"/>
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:width="20dp"
android:height="20dp"
android:viewportWidth="75"
android:viewportHeight="75"
tools:ignore="MissingDefaultResource">
<path
android:fillColor="#EBEBEB"
android:fillType="evenOdd"
android:pathData="M15.999,7.999L59.998,7.999C64.418,7.999 67.999,11.582 67.999,15.999L67.999,60C67.999,64.418 64.418,68 59.998,68L15.999,68C11.581,68 7.998,64.418 7.998,60L7.998,15.999C7.998,11.582 11.581,7.999 15.999,7.999Z"
android:strokeWidth="4"
android:strokeColor="#DDDDDD" />
</vector>
<vector android:height="9dp" android:viewportHeight="370"
android:viewportWidth="400" android:width="10dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#54d0ac"
android:pathData="M0,351c0,-24 175,-191 200,-191 25,0 200,167 200,191 0,36 -35,19 -118,-57l-82,-76 -82,76c-83,76 -118,93 -118,57z" android:strokeColor="#00000000"/>
<path android:fillColor="#54d0ac"
android:pathData="M0,191c0,-24 175,-191 200,-191 25,0 200,167 200,191 0,36 -35,19 -118,-57l-82,-76 -82,76c-83,76 -118,93 -118,57z" android:strokeColor="#00000000"/>
</vector>
<vector android:height="17dp" android:viewportHeight="670"
android:viewportWidth="670" android:width="17dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#f17c71"
android:pathData="M202,649c-75,-29 -153,-108 -180,-182 -30,-78 -30,-186 0,-264 29,-77 104,-152 181,-181 78,-29 186,-30 262,-1 77,29 156,108 185,186 30,80 26,206 -10,278 -31,63 -92,124 -155,156 -70,34 -207,38 -283,8zM360,536c6,-8 10,-25 8,-38 -2,-18 -9,-23 -33,-23 -24,0 -31,5 -33,23 -4,25 13,52 33,52 7,0 18,-7 25,-14zM365,259c6,-96 5,-113 -9,-127 -13,-13 -20,-14 -34,-6 -15,10 -17,27 -15,128 1,78 6,122 14,132 23,28 36,-10 44,-127z" android:strokeColor="#00000000"/>
</vector>
<vector android:height="123dp" android:viewportHeight="4920"
android:viewportWidth="4920" android:width="123dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#54d0ac"
android:pathData="M2130,4904c-433,-59 -815,-219 -1185,-497 -103,-78 -354,-329 -432,-432 -282,-375 -440,-757 -498,-1198 -20,-156 -20,-478 0,-634 58,-441 216,-823 498,-1198 78,-103 329,-354 432,-432 375,-282 757,-440 1198,-498 156,-20 478,-20 634,0 441,58 823,216 1198,498 103,78 354,329 432,432 282,375 440,757 498,1198 20,156 20,478 0,634 -58,441 -216,823 -498,1198 -78,103 -329,354 -432,432 -375,282 -757,440 -1198,498 -149,19 -501,19 -647,-1zM2170,3350c28,-8 198,-173 809,-784l775,-775 3,-58c5,-68 -16,-111 -69,-143 -36,-22 -101,-26 -144,-10 -15,6 -228,210 -473,453 -245,243 -557,551 -693,686l-246,244 -361,-354c-265,-260 -373,-359 -405,-373 -59,-25 -106,-16 -158,33 -33,30 -41,45 -45,83 -3,26 -2,59 1,75 10,39 856,888 911,914 47,22 49,22 95,9z" android:strokeColor="#00000000"/>
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="18dp"
android:height="11.333333dp"
android:viewportWidth="54"
android:viewportHeight="34">
<path
android:fillColor="#54d0ac"
android:fillType="evenOdd"
android:pathData="M51.683,33.685L42.896,25.831C42.331,25.326 41.997,24.521 41.997,23.664L41.997,10.373C41.997,9.516 42.331,8.711 42.896,8.206L51.683,0.352C52.646,-0.509 53.998,0.335 53.998,1.797L53.998,32.24C53.998,33.702 52.646,34.546 51.683,33.685ZM34.613,34L4.38,34C1.97,34 -0.001,31.932 -0.001,29.405L-0.001,4.594C-0.001,2.068 1.97,-0 4.38,-0L34.613,-0C37.024,-0 38.995,2.068 38.995,4.594L38.995,29.405C38.995,31.932 37.024,34 34.613,34Z" />
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="35dp"
android:height="35dp"
android:viewportWidth="2130"
android:viewportHeight="2130">
<path
android:fillColor="#ffffff"
android:pathData="M840,2111c-413,-88 -735,-412 -821,-826 -25,-122 -25,-318 0,-440 86,-416 410,-740 826,-826 190,-39 431,-20 610,50 334,129 583,423 656,776 25,122 25,318 0,440 -86,416 -410,740 -826,826 -120,25 -327,25 -445,0zM1241,2054c357,-67 645,-310 769,-647 46,-127 54,-177 54,-342 0,-165 -8,-215 -54,-342 -146,-396 -526,-663 -945,-663 -389,0 -741,226 -909,581 -73,154 -90,236 -90,424 0,135 3,173 23,245 119,446 515,756 967,759 56,1 139,-6 185,-15z"
android:strokeColor="#00000000" />
<path
android:fillColor="#ffffff"
android:pathData="M760,1071l0,-440 103,61c455,270 638,380 635,383 -6,6 -731,435 -734,435 -2,0 -4,-198 -4,-439z"
android:strokeColor="#00000000" />
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="53dp"
android:height="53dp"
android:viewportWidth="2130"
android:viewportHeight="2130">
<path
android:fillColor="#ffffff"
android:pathData="M840,2111c-413,-88 -735,-412 -821,-826 -25,-122 -25,-318 0,-440 86,-416 410,-740 826,-826 190,-39 431,-20 610,50 334,129 583,423 656,776 25,122 25,318 0,440 -86,416 -410,740 -826,826 -120,25 -327,25 -445,0zM1241,2054c357,-67 645,-310 769,-647 46,-127 54,-177 54,-342 0,-165 -8,-215 -54,-342 -146,-396 -526,-663 -945,-663 -389,0 -741,226 -909,581 -73,154 -90,236 -90,424 0,135 3,173 23,245 119,446 515,756 967,759 56,1 139,-6 185,-15z"
android:strokeColor="#00000000" />
<path
android:fillColor="#ffffff"
android:pathData="M760,1071l0,-440 103,61c455,270 638,380 635,383 -6,6 -731,435 -734,435 -2,0 -4,-198 -4,-439z"
android:strokeColor="#00000000" />
</vector>
<vector android:height="14dp" android:viewportHeight="580"
android:viewportWidth="450" android:width="11dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#ffffff"
android:pathData="M0,290l0,-290 75,0 75,0 0,290 0,290 -75,0 -75,0 0,-290z" android:strokeColor="#00000000"/>
<path android:fillColor="#ffffff"
android:pathData="M290,290l0,-290 80,0 80,0 0,290 0,290 -80,0 -80,0 0,-290z" android:strokeColor="#00000000"/>
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="10dp"
android:height="15dp"
android:viewportWidth="430"
android:viewportHeight="620">
<path
android:fillColor="#ffffff"
android:pathData="M0,310c0,-171 3,-310 6,-310 11,0 424,302 424,310 0,8 -413,310 -424,310 -3,0 -6,-139 -6,-310z"
android:strokeColor="#00000000" />
</vector>
<vector android:height="50dp" android:viewportHeight="2000"
android:viewportWidth="2000" android:width="50dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#cb9df6"
android:pathData="M800,1986c-306,-64 -563,-263 -700,-541 -79,-159 -95,-236 -95,-445 0,-209 16,-286 95,-445 97,-197 258,-358 455,-455 159,-79 236,-95 445,-95 209,0 286,16 445,95 197,97 358,258 455,455 79,159 95,236 95,445 0,209 -16,286 -95,445 -125,253 -367,453 -635,526 -102,27 -364,36 -465,15z" android:strokeColor="#00000000"/>
<path android:fillColor="#fefeff"
android:pathData="M815,1569c-44,-5 -110,-13 -148,-20 -85,-14 -97,-29 -96,-119 1,-123 28,-158 157,-201 91,-30 132,-71 132,-131 0,-36 -6,-50 -30,-73 -16,-15 -35,-44 -41,-64 -7,-20 -23,-49 -36,-65 -20,-24 -24,-37 -19,-65 3,-20 9,-70 15,-111 13,-109 27,-154 64,-201 47,-62 96,-84 187,-84 64,0 83,4 129,30 30,16 64,46 77,65 26,40 54,145 54,207 0,23 5,45 10,48 24,15 6,104 -25,130 -7,6 -16,22 -19,38 -4,15 -22,45 -41,66 -29,32 -35,46 -35,84 0,39 5,49 34,75 19,17 69,41 114,56 114,38 142,75 142,186 0,96 -7,106 -92,124 -159,34 -357,43 -533,25z" android:strokeColor="#00000000"/>
</vector>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#70000000"/>
<corners android:radius="4dp"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:viewportWidth="216"
android:viewportHeight="216" android:width="216dp" android:height="216dp">
<group android:name="#ffffffff">
<path android:fillColor="#FFFFFF" android:fillAlpha="1.00"
android:pathData=" M 63.98 13.86 C 94.73 -0.95 132.81 1.13 161.81 19.11 C 191.58 36.81 211.20 70.27 211.94 104.92 C 212.07 140.61 211.97 176.31 212.00 212.00 C 176.32 211.97 140.64 212.06 104.96 211.94 C 73.47 211.23 42.83 195.07 24.33 169.60 C 4.09 142.66 -1.63 105.49 9.87 73.77 C 18.85 47.60 38.87 25.47 63.98 13.86 Z" />
</group>
</vector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false" android:state_checked="true">
<shape>
<solid android:color="#b3ecbc"/>
<corners android:radius="99dp"/>
</shape>
</item>
<item android:state_enabled="false" android:state_checked="false">
<shape>
<solid android:color="#FEFEFE"/>
<corners android:radius="99dp"/>
<stroke
android:width="1.5dp"
android:color="#F0F0F0"/>
</shape>
</item>
<item android:state_checked="true">
<shape>
<solid android:color="#4285ff"/>
<corners android:radius="99dp"/>
</shape>
</item>
<item>
<shape>
<solid android:color="#FEFEFE"/>
<corners android:radius="99dp"/>
<stroke
android:width="1.5dp"
android:color="#E6E6E6"/>
</shape>
</item>
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false" android:drawable="@drawable/ios_thumb_disable"/>
<item android:drawable="@drawable/ios_thumb"/>
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background">
<shape>
<solid android:color="#a5ffffff" />
<size android:height="1dp" />
<corners android:radius="1.5dip" />
</shape>
</item>
<item android:id="@android:id/secondaryProgress">
<clip>
<shape>
<solid android:color="#ffffffff" />
<size android:height="1dp" />
<corners android:radius="1.5dip" />
</shape>
</clip>
</item>
<item android:id="@android:id/progress">
<clip>
<shape>
<solid android:color="@color/colorAccent" />
<size android:height="1dp" />
<corners android:radius="1.5dip" />
</shape>
</clip>
</item>
</layer-list>
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:drawable="@mipmap/ic_recommend_friend"
android:width="40dp"
android:height="40dp"
/>
</layer-list >
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@mipmap/linkman_icon2" android:state_selected="false" />
<item android:drawable="@mipmap/linkman_select_icon" android:state_selected="true" />
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#FF518FFF" />
<corners
android:radius="40dp" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/login_corner" android:state_enabled="true"/>
<item android:drawable="@drawable/login_corner_unable" android:state_enabled="false" />
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#ffe1e1e1" />
<corners
android:radius="40dp" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#518fff" />
<corners android:radius="5dp" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#bbbbbb" />
<corners android:radius="5dp" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#ffffff" />
<corners android:radius="5dp" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@mipmap/mine_icon" android:state_selected="false" />
<item android:drawable="@mipmap/mine_select_icon" android:state_selected="true" />
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/v_anim1" android:duration= "300"></item>
<item android:drawable="@drawable/v_anim2" android:duration= "300"></item>
<item android:drawable="@drawable/v_anim3" android:duration= "300"></item>
</animation-list>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="4dp"/>
<solid android:color="#e1e1e1"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="4dp"/>
<solid android:color="#518fff"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<animation-list android:oneshot="false"
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:duration="83" android:drawable="@drawable/ic_loading_white_01" />
<item android:duration="83" android:drawable="@drawable/ic_loading_white_02" />
<item android:duration="83" android:drawable="@drawable/ic_loading_white_03" />
<item android:duration="83" android:drawable="@drawable/ic_loading_white_04" />
<item android:duration="83" android:drawable="@drawable/ic_loading_white_05" />
<item android:duration="83" android:drawable="@drawable/ic_loading_white_06" />
<item android:duration="83" android:drawable="@drawable/ic_loading_white_07" />
<item android:duration="83" android:drawable="@drawable/ic_loading_white_08" />
<item android:duration="83" android:drawable="@drawable/ic_loading_white_09" />
<item android:duration="83" android:drawable="@drawable/ic_loading_white_10" />
<item android:duration="83" android:drawable="@drawable/ic_loading_white_11" />
<item android:duration="83" android:drawable="@drawable/ic_loading_white_12" />
</animation-list>
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@android:id/background"
android:drawable="@drawable/seek_bar_video_bg" />
<item android:id="@android:id/secondaryProgress">
<scale android:scaleWidth="100%">
<selector>
<item android:state_enabled="false">
<color android:color="@android:color/transparent" />
</item>
<item android:drawable="@drawable/seek_bar_video_second_progress" />
</selector>
</scale>
</item>
<item android:id="@android:id/progress">
<scale android:scaleWidth="100%">
<selector>
<item android:state_enabled="false">
<color android:color="@android:color/transparent" />
</item>
<item android:drawable="@drawable/seek_bar_video_pregress" />
</selector>
</scale>
</item>
</layer-list>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@drawable/voice_left1"
android:duration="300"></item>
<item
android:drawable="@drawable/voice_left2"
android:duration="300"></item>
<item
android:drawable="@drawable/voice_left3"
android:duration="300"></item>
</animation-list>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/colorRed2" />
<corners android:radius="@dimen/dp_25" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#FFF2F2F2" />
<corners
android:radius="40dp" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#cccccc" />
<corners
android:bottomLeftRadius="40dp"
android:topLeftRadius="40dp" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#FFF2F2F2" />
<corners
android:bottomRightRadius="40dp"
android:topRightRadius="40dp" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval"
>
<solid android:color="#1454d0ac" />
<size
android:width="52dp"
android:height="52dp" />
</shape>
\ No newline at end of file
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:startColor="@android:color/transparent"
android:endColor="#40000000"
android:angle="90" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/white" />
<stroke android:width="0.5dp" android:color="#dddddd"/>
<corners android:radius="5dp" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#ffeeeeee" />
<corners android:radius="40dp" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="line">
<stroke android:width="2dp" android:color="#40ffffff"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="line">
<stroke android:width="2dp" android:color="@color/white"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="line">
<stroke android:width="2dp" android:color="@color/white"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/shape_button_white" android:state_selected="true"/>
<item android:drawable="@drawable/shape_button_gait" android:state_selected="false"/>
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/basic_theme_colors" android:state_enabled="true" />
<item android:drawable="@color/colorGray" android:state_enabled="false"/>
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/shape_common_rectangle_radius_3dp" android:state_selected="false" />
<item android:drawable="@drawable/shape_common_rectangle_radius_3dp_press" android:state_selected="true" />
<item android:drawable="@drawable/shape_common_rectangle_radius_3dp_press" android:state_enabled="false" />
<item android:drawable="@drawable/shape_common_rectangle_radius_3dp" android:state_enabled="true" />
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/shape_common_rectangle_radius_20dp" android:state_selected="false" />
<item android:drawable="@drawable/shape_common_rectangle_radius_20dp_press" android:state_selected="true" />
<item android:drawable="@drawable/shape_common_rectangle_radius_20dp_press" android:state_enabled="false" />
<item android:drawable="@drawable/shape_common_rectangle_radius_20dp" android:state_enabled="true" />
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/primary_item_pressed_color" android:state_pressed="true" />
<item android:drawable="@color/white" android:state_pressed="false" />
<item android:drawable="@color/white" />
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_emoji_selector" android:state_selected="true" />
<item android:drawable="@drawable/ic_emoji_normal" android:state_selected="false" />
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_navigation_info_normal" android:state_selected="true" />
<item android:drawable="@drawable/ic_navigation_info_normal" android:state_selected="false" />
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_navigation_chat_selected" android:state_selected="true" />
<item android:drawable="@drawable/ic_navigation_chat_selected" android:state_selected="false" />
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/shape_textview_white" android:state_selected="false" />
<item android:drawable="@drawable/shape_textview_white_transparent" android:state_selected="true" />
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/shape_button_green" android:state_enabled="true"/>
<item android:drawable="@drawable/shape_button_green_transparent" android:state_enabled="false"/>
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_video_pause" android:state_selected="false" />
<item android:drawable="@drawable/ic_video_play" android:state_selected="true" />
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@mipmap/mic_icon" android:state_pressed="false" />
<item android:drawable="@mipmap/mic_icon" android:state_pressed="true" />
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@drawable/voice_right1"
android:duration="300"></item>
<item
android:drawable="@drawable/voice_right2"
android:duration="300"></item>
<item
android:drawable="@drawable/voice_right3"
android:duration="300"></item>
</animation-list>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
>
<solid android:color="#EEEBEE"/>
<corners android:radius="20dp"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
>
<solid android:color="#ECECEC"/>
<corners android:radius="20dp"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners
android:bottomLeftRadius="4dp"
android:bottomRightRadius="4dp"
android:topLeftRadius="4dp"
android:topRightRadius="4dp"/>
<stroke
android:width="1dp"
android:color="#fbfbfb"/>
<solid android:color="@color/colorPrimary"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners
android:bottomLeftRadius="8dp"
android:bottomRightRadius="8dp"
android:topLeftRadius="8dp"
android:topRightRadius="8dp"/>
<stroke
android:width="1dp"
android:color="#e0e0e0"/>
<solid android:color="#fff"/>
<padding
android:left="8dp"
android:right="4dp"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/white" />
<corners
android:topLeftRadius="8dp"
android:topRightRadius="8dp" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="@color/textBlue" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="@color/textBlue_50" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="@color/bbbbbb" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="@color/basic_theme_colors" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="@dimen/dp_20"/>
<solid android:color="@color/basic_theme_colors"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="3dp"/>
<solid android:color="@color/basic_theme_colors"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="@color/basic_theme_colors_50" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="@dimen/dp_10"/>
<solid android:color="@color/color_f5f5f5"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="@color/cf544a" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="@color/white" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="5dp" />
<solid android:color="@color/bottom_icon_bg" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/color_f8f8f8" />
<corners android:radius="@dimen/dp_20" />
<stroke
android:width="1dp"
android:color="@color/color_DDD" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="@dimen/dp_20" />
<stroke
android:width="1dp"
android:color="@color/white" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="@dimen/dp_20"/>
<solid android:color="@color/favorite_audio_color"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="@dimen/dp_20"/>
<solid android:color="@color/colorGray"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="@dimen/dp_4" />
<solid android:color="@color/colorGray" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="@dimen/dp_20"/>
<solid android:color="@color/basic_theme_colors"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="@dimen/dp_4"/>
<solid android:color="@color/white"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="@dimen/dp_20"/>
<solid android:color="@color/white"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="@dimen/dp_4" />
<solid android:color="@color/white" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="#19d67e" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="@color/circle_gray" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="#FFBA00" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
>
<solid android:color="#1454d0ac"/>
<corners android:radius="15dp"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
>
<solid android:color="@color/basic_theme_colors"/>
<corners android:radius="20dp"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
>
<solid android:color="@color/basic_theme_colors_50"/>
<corners android:radius="20dp"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
>
<solid android:color="@color/basic_theme_colors"/>
<corners android:radius="3dp"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/basic_theme_colors_50"/>
<corners android:radius="3dp"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/primary_material_light"/>
<padding
android:bottom="0dp"
android:left="4dp"
android:right="4dp"
android:top="0dp"/>
<corners android:radius="8dp"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 拍证件照那边用到 10%透明度-->
<solid android:color="#1A54d0ac"/>
<corners android:radius="@dimen/dp_10"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners
android:radius="@dimen/dp_18" />
<solid android:color="@color/color_dddddd" />
<!--<corners android:radius="12dp"/>-->
<!--<solid android:color="@color/transparent"/>-->
<!--<stroke-->
<!--android:width="2dp"-->
<!--android:color="@color/green"/>-->
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners
android:radius="3dp" />
<solid android:color="@color/color_33000000" />
<!--<corners android:radius="12dp"/>-->
<!--<solid android:color="@color/transparent"/>-->
<!--<stroke-->
<!--android:width="2dp"-->
<!--android:color="@color/green"/>-->
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners
android:radius="14dp" />
<solid android:color="#80000000" />
<!--<corners android:radius="12dp"/>-->
<!--<solid android:color="@color/transparent"/>-->
<!--<stroke-->
<!--android:width="2dp"-->
<!--android:color="@color/green"/>-->
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners
android:radius="@dimen/dp_18" />
<solid android:color="@color/basic_theme_colors" />
<!--<corners android:radius="12dp"/>-->
<!--<solid android:color="@color/transparent"/>-->
<!--<stroke-->
<!--android:width="2dp"-->
<!--android:color="@color/green"/>-->
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners
android:radius="@dimen/dp_12" />
<solid android:color="@color/white" />
<!--<corners android:radius="12dp"/>-->
<!--<solid android:color="@color/transparent"/>-->
<!--<stroke-->
<!--android:width="2dp"-->
<!--android:color="@color/green"/>-->
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#FFFFFF" />
<corners
android:radius="@dimen/dp_5" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="12dp"/>
<solid android:color="@color/transparent"/>
<stroke
android:width="1dp"
android:color="@color/basic_theme_colors"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/bg_horizontal_btn_normal"/>
<corners android:radius="3dp"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/white"/>
<corners android:radius="3dp"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/white_50"/>
<corners android:radius="3dp"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="8dp" />
<stroke
android:width="3dp"
android:color="@color/basic_theme_colors" />
</shape>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="8dp" />
<gradient
android:angle="90"
android:endColor="#59a8ff"
android:startColor="#007aff" />
</shape>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="8dp" />
<gradient
android:angle="90"
android:endColor="#fff"
android:startColor="#fff" />
</shape>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<size android:width="@dimen/dp_20"
android:height="@dimen/dp_20" />
<solid android:color="@android:color/transparent" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<size android:width="5dp"
android:height="5dp" />
<solid android:color="@android:color/transparent" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke android:color="#99ff6379" android:width="1dp" />
<solid android:color="@color/white" />
<corners android:radius="3dp" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/telephone" android:state_selected="false" />
<item android:drawable="@drawable/telephone_select" android:state_selected="true" />
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?><!-- 按钮的选择器,可以设置按钮在不同状态下的时候,按钮不同的颜色 -->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/blue_thumb" android:state_checked="true" />
<item android:drawable="@drawable/blue_thumb" />
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?><!-- 底层下滑条的样式选择器,可控制Switch在不同状态下,底下下滑条的颜色 -->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/blue_track" android:state_checked="true" />
<item android:drawable="@drawable/white_track" />
</selector>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<!--圆角-->
<corners android:radius="40dp" />
<!--中间颜色-->
<solid android:color="#fff" />
<!--边框/颜色-->
<stroke
android:width="2dp"
android:color="@color/colorAccent" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="@color/colorPrimary" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="@color/colorPrimaryDark" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_message_audio_play" android:state_selected="false"/>
<item android:drawable="@drawable/ic_message_audio_pause" android:state_selected="true"/>
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_voice_play_black_21dp" android:state_selected="false"/>
<item android:drawable="@drawable/ic_voice_play_black_pre_21dp" android:state_selected="true"/>
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_favorite_play_20dp" android:state_selected="false"/>
<item android:drawable="@drawable/ic_favorite_pause_20dp" android:state_selected="true"/>
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#ffffff" />
<corners android:radius="@dimen/dp_25" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="20dp" />
<solid android:color="#ffffff" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid
android:color="#b2b2b2" />
<stroke
android:width="8dp"
android:color="#00000000" />
<corners android:radius="20dp" />
<size
android:width="30dp"
android:height="14dp" />
</shape>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/root"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<!-- <androidx.appcompat.widget.Toolbar-->
<!-- android:id="@+id/toolbar"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:background="@android:color/white"-->
<!-- android:elevation="4dp"-->
<!-- android:theme="?toolbar"-->
<!-- tools:targetApi="lollipop">-->
<!-- <TextView-->
<!-- android:id="@+id/selected_album"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="?actionBarSize"-->
<!-- android:drawableRight="@drawable/ic_arrow_drop_down_white_24dp"-->
<!-- android:foreground="?selectableItemBackground"-->
<!-- android:gravity="center"-->
<!-- android:textColor="@android:color/black"-->
<!-- android:textSize="20sp" />-->
<!-- </androidx.appcompat.widget.Toolbar>-->
<FrameLayout
android:id="@+id/bottom_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="?attr/bottomToolbar.bg"
android:elevation="4dp"
tools:targetApi="lollipop">
<TextView
android:id="@+id/button_preview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:foreground="?selectableItemBackground"
android:padding="16dp"
android:text="@string/button_preview"
android:textColor="?attr/bottomToolbar.preview.textColor"
android:textSize="16sp" />
<LinearLayout
android:padding="16dp"
android:id="@+id/originalLayout"
android:visibility="visible"
android:orientation="horizontal"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:foreground="?selectableItemBackground"
android:layout_height="wrap_content"
tools:showIn="@layout/activity_matisse">
<com.yumeng.libbase.activity.matisse.matisse.view.CheckRadioView
android:id="@+id/original"
android:src="@drawable/ic_preview_radio_off"
android:layout_gravity="center_vertical"
android:layout_width="16dp"
android:layout_height="16dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:enabled="true"
android:paddingStart="4dp"
android:paddingLeft="4dp"
android:text="@string/button_original"
android:textColor="?attr/bottomToolbar.preview.textColor"
android:textSize="14sp" />
</LinearLayout>
<TextView
android:id="@+id/button_apply"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|center_vertical"
android:layout_marginEnd="@dimen/dp_16"
android:paddingStart="10dp"
android:paddingEnd="@dimen/dp_10"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:background="@drawable/selector_common_button"
android:foreground="?selectableItemBackground"
android:textColor="@color/white"
android:textSize="16sp" />
</FrameLayout>
<FrameLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/bottom_toolbar"
android:visibility="gone" />
<FrameLayout
android:id="@+id/empty_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/bottom_toolbar"
android:visibility="gone">
<TextView
android:id="@+id/empty_view_content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:drawablePadding="8dp"
android:drawableTop="?attr/album.emptyView"
android:gravity="center"
android:text="@string/empty_text"
android:textColor="?attr/album.emptyView.textColor"
android:textSize="16sp" />
</FrameLayout>
</RelativeLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2017 Zhihu Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.yumeng.libcommonview.view.PreviewViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/black"/>
<FrameLayout
android:id="@+id/bottom_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="@color/preview_bottom_toolbar_bg"
android:elevation="4dp"
tools:targetApi="lollipop">
<TextView
android:id="@+id/button_back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:foreground="?selectableItemBackground"
android:padding="16dp"
android:layout_gravity="start"
android:text="@string/button_back"
android:textColor="?attr/preview.bottomToolbar.back.textColor"
android:textSize="16sp"/>
<LinearLayout
android:layout_gravity="center"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<LinearLayout
android:padding="16dp"
android:id="@+id/originalLayout"
android:visibility="gone"
android:orientation="horizontal"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:foreground="?selectableItemBackground"
android:layout_height="wrap_content"
tools:showIn="@layout/activity_matisse">
<com.yumeng.libbase.activity.matisse.matisse.view.CheckRadioView
android:id="@+id/original"
android:src="@drawable/ic_preview_radio_off"
android:layout_gravity="center_vertical"
android:tint="#ffffff"
android:layout_width="16dp"
android:layout_height="16dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:enabled="true"
android:paddingStart="4dp"
android:paddingLeft="4dp"
android:text="@string/button_original"
android:textColor="?attr/preview.bottomToolbar.back.textColor"
android:textSize="14sp" />
</LinearLayout>
<TextView
android:id="@+id/size"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:textColor="@color/preview_bottom_size"
android:textSize="16sp"
android:visibility="gone"/>
</LinearLayout>
<!-- <TextView-->
<!-- android:id="@+id/button_apply"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_gravity="end|center_vertical"-->
<!-- android:layout_marginEnd="@dimen/dp_16"-->
<!-- android:paddingStart="10dp"-->
<!-- android:paddingEnd="@dimen/dp_10"-->
<!-- android:paddingTop="5dp"-->
<!-- android:paddingBottom="5dp"-->
<!-- android:background="@drawable/selector_common_button"-->
<!-- android:foreground="?selectableItemBackground"-->
<!-- android:textColor="@color/white"-->
<!-- android:textSize="16sp" />-->
<TextView
android:id="@+id/button_apply"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|center_vertical"
android:layout_marginEnd="@dimen/dp_16"
android:paddingStart="10dp"
android:paddingEnd="@dimen/dp_10"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:background="@drawable/selector_common_button"
android:foreground="?selectableItemBackground"
android:textColor="@color/white"
android:textSize="16sp"/>
</FrameLayout>
<FrameLayout
android:id="@+id/top_toolbar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_margin="8dp"
android:fitsSystemWindows="true">
<com.yumeng.libbase.activity.matisse.matisse.view.CheckView
android:id="@+id/check_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"/>
</FrameLayout>
</RelativeLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<cn.bingoogolapple.qrcode.zxing.ZXingView
android:id="@+id/mZXingView"
android:layout_width="match_parent"
android:layout_height="0dp"
app:qrcv_animTime="1000"
app:qrcv_barCodeTipText="将条码放入框内,即可自动扫描"
app:qrcv_barcodeRectHeight="120dp"
app:qrcv_borderColor="@android:color/white"
app:qrcv_borderSize="1dp"
app:qrcv_cornerColor="@color/colorPrimaryDark"
app:qrcv_cornerDisplayType="center"
app:qrcv_cornerLength="20dp"
app:qrcv_cornerSize="3dp"
app:qrcv_customScanLineDrawable="@drawable/scan_line"
app:qrcv_isAutoZoom="true"
app:qrcv_isBarcode="false"
app:qrcv_isOnlyDecodeScanBoxArea="false"
app:qrcv_isScanLineReverse="true"
app:qrcv_isShowDefaultGridScanLineDrawable="false"
app:qrcv_isShowDefaultScanLineDrawable="true"
app:qrcv_isShowLocationPoint="true"
app:qrcv_isShowTipBackground="true"
app:qrcv_isShowTipTextAsSingleLine="false"
app:qrcv_isTipTextBelowRect="false"
app:qrcv_maskColor="#33FFFFFF"
app:qrcv_qrCodeTipText="将二维码/条码放入框内,即可自动扫描"
app:qrcv_rectWidth="200dp"
app:qrcv_scanLineColor="@color/colorPrimaryDark"
app:qrcv_scanLineMargin="0dp"
app:qrcv_scanLineSize="0.5dp"
app:qrcv_tipTextColor="@android:color/white"
app:qrcv_tipTextSize="12sp"
app:qrcv_toolbarHeight="?android:actionBarSize"
app:qrcv_topOffset="150dp"
app:qrcv_verticalBias="-1" />
<TextView
android:id="@+id/tvLightTip"
android:visibility="gone"
android:padding="@dimen/dp_10"
android:textColor="@color/white"
android:layout_marginTop="@dimen/dp_30"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/tap_to_turn_light_on"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.appcompat.widget.Toolbar
android:id="@+id/tbNavigation"
android:layout_width="0dp"
android:layout_height="?android:actionBarSize"
android:background="@android:color/white"
android:elevation="2dp"
android:focusable="true"
android:focusableInTouchMode="true"
android:transitionName="tb_navigation"
app:contentInsetStart="0dp"
app:contentInsetStartWithNavigation="0dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:navigationIcon="@drawable/ic_back_19dp"
app:popupTheme="@style/AppTheme.PopupOverlay"
app:theme="@style/MenuTextStyle">
<TextView
android:id="@+id/selected_album"
android:layout_width="wrap_content"
android:layout_height="?actionBarSize"
android:drawableEnd="@drawable/ic_arrow_down"
android:foreground="?selectableItemBackground"
android:gravity="center"
android:visibility="gone"
android:textColor="@android:color/black"
android:textSize="20sp" />
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/ivAvatar"
android:layout_width="40dp"
android:layout_height="40dp"
android:visibility="gone" />
<TextView
android:id="@+id/tvTitle"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center"
android:gravity="center"
android:textColor="@color/color_333333"
android:textSize="@dimen/sp_18" />
<TextView
android:id="@+id/tvRight"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:layout_marginEnd="@dimen/dp_10"
android:gravity="center"
android:visibility="gone"
android:background="@drawable/selector_common_button"
android:paddingStart="@dimen/dp_10"
android:paddingTop="@dimen/dp_5"
android:paddingEnd="@dimen/dp_10"
android:paddingBottom="@dimen/dp_5"
android:textColor="@color/white"
android:textSize="@dimen/sp_13"/>
<ImageView
android:id="@+id/ivSearch"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="end"
android:layout_marginEnd="@dimen/dp_10"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:paddingStart="10dp"
android:paddingEnd="10dp"
android:src="@drawable/ic_search_19dp"
android:visibility="gone" />
</androidx.appcompat.widget.Toolbar>
<com.yumeng.libcommonview.view.SearchToolbar
android:id="@+id/search_toolbar"
android:layout_width="match_parent"
android:layout_height="0dp"
android:elevation="2dp"
android:visibility="invisible"
app:layout_constraintBottom_toBottomOf="@id/tbNavigation"
app:layout_constraintTop_toTopOf="@id/tbNavigation"
tools:visibility="visible" />
<FrameLayout
android:id="@+id/content_container"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tbNavigation" />
<FrameLayout
android:id="@+id/container"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tbNavigation" />
<ViewStub
android:id="@+id/vsPromptViewStub"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout="@layout/prompt_view_group"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tbNavigation" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ViewStub
android:id="@+id/vsPromptViewStub"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout="@layout/prompt_view_group"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/toolbar_container" />
<!-- <com.google.android.material.appbar.AppBarLayout-->
<!-- android:id="@+id/appBarLayout"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:theme="@style/AppTheme.AppBarOverlay"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintTop_toTopOf="parent">-->
<FrameLayout
android:id="@+id/toolbar_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<androidx.appcompat.widget.Toolbar
android:id="@+id/tbNavigation"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/white"
app:contentInsetEnd="0dp"
app:contentInsetEndWithActions="0dp"
app:contentInsetStart="0dp"
app:contentInsetStartWithNavigation="0dp"
app:layout_scrollFlags="scroll|enterAlways"
app:navigationIcon="@drawable/ic_back_19dp"
app:popupTheme="@style/AppTheme.PopupOverlay">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageButton
android:id="@+id/actionBack"
style="@style/MSV_ImageButton"
android:layout_centerVertical="true"
android:layout_marginStart="@dimen/dp_22"
android:src="@drawable/ic_back_19dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<FrameLayout
android:id="@+id/badgeLayout"
android:layout_width="wrap_content"
android:layout_height="match_parent"
app:layout_constraintStart_toEndOf="@id/actionBack">
<View
android:layout_width="10dp"
android:layout_height="match_parent" />
<TextView
android:id="@+id/badgeView"
android:layout_gravity="center"
android:gravity="center"
android:padding="@dimen/dp_2"
android:minWidth="20dp"
android:layout_marginStart="@dimen/dp_4"
android:layout_marginEnd="@dimen/dp_4"
android:textColor="@color/white"
android:textSize="@dimen/sp_12"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<!-- <cn.bingoogolapple.badgeview.BGABadgeView-->
<!-- android:id="@+id/badgeView"-->
<!-- android:layout_width="35dp"-->
<!-- app:badge_textSize="@dimen/sp_12"-->
<!-- android:layout_height="match_parent"-->
<!-- android:visibility="gone"-->
<!-- app:layout_constraintStart_toEndOf="@id/actionBack" />-->
</FrameLayout>
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/ivAvatar"
android:layout_width="35dp"
android:layout_height="35dp"
android:layout_gravity="center_vertical"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@id/badgeLayout"
app:layout_constraintTop_toTopOf="parent" />
<RelativeLayout
android:id="@+id/rlContent"
android:layout_width="0dp"
android:layout_height="match_parent"
app:layout_constraintEnd_toStartOf="@id/ivRightImage"
app:layout_constraintStart_toEndOf="@id/ivAvatar">
<TextView
android:id="@+id/tvTitleContent"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginEnd="5dp"
android:drawablePadding="8dp"
android:ellipsize="end"
android:gravity="center_vertical"
android:maxLines="1"
android:paddingStart="@dimen/dp_8"
android:singleLine="true"
android:textColor="@color/black"
android:textSize="@dimen/sp_18" />
</RelativeLayout>
<LinearLayout
android:id="@+id/llTitleContent"
android:layout_width="0dp"
android:layout_height="match_parent"
android:foreground="?selectableItemBackground"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="@id/rlContent"
app:layout_constraintStart_toStartOf="@id/ivAvatar" />
<TextView
android:id="@+id/tvTitleContent2"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginEnd="20dp"
android:drawablePadding="10dp"
android:gravity="center_vertical"
android:maxWidth="180dp"
android:maxEms="10"
android:paddingStart="@dimen/dp_8"
android:paddingEnd="@dimen/dp_16"
android:singleLine="true"
android:textColor="@color/black"
android:textSize="@dimen/sp_18"
android:visibility="gone"
app:layout_constraintEnd_toStartOf="@id/ivRightImage"
app:layout_constraintStart_toStartOf="@id/ivAvatar" />
<ImageView
android:id="@+id/ivRightImage"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:layout_marginRight="@dimen/dp_10"
android:padding="@dimen/dp_5"
android:src="@drawable/ic_svg_group_member"
android:visibility="gone"
app:layout_constraintEnd_toEndOf="parent" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent">
<ImageView
android:id="@+id/ivSearch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginRight="@dimen/dp_10"
android:padding="@dimen/dp_5"
android:src="@drawable/ic_search_19dp"
android:visibility="gone" />
<TextView
android:id="@+id/tvRight"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginEnd="@dimen/dp_10"
android:background="@drawable/selector_toolbar_white"
android:paddingStart="@dimen/dp_10"
android:paddingTop="@dimen/dp_5"
android:paddingEnd="@dimen/dp_10"
android:paddingBottom="@dimen/dp_5"
android:textColor="@color/basic_theme_colors"
android:textSize="@dimen/sp_13"
android:visibility="gone" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.appcompat.widget.Toolbar>
<!-- <views.MaterialSearchView-->
<!-- android:id="@+id/searchView"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content" />-->
</FrameLayout>
<!-- </com.google.android.material.appbar.AppBarLayout>-->
<FrameLayout
android:id="@+id/content_container"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/toolbar_container" />
<FrameLayout
android:id="@+id/container"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/toolbar_container" />
</androidx.constraintlayout.widget.ConstraintLayout>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2017 Zhihu Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="@dimen/album_item_height">
<com.yumeng.libcommonview.view.RoundedRectangleImageView
android:id="@+id/album_cover"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_centerVertical="true"
android:layout_marginStart="16dp"
android:layout_marginLeft="16dp" />
<TextView
android:id="@+id/album_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@id/album_cover"
android:layout_marginStart="8dp"
android:layout_toEndOf="@id/album_cover"
android:ellipsize="end"
android:maxLines="1"
android:textColor="?attr/album.dropdown.title.color"
android:textSize="16sp"
android:layout_marginLeft="8dp"
android:layout_toRightOf="@id/album_cover" />
<TextView
android:id="@+id/album_media_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@id/album_name"
android:layout_below="@id/album_name"
android:layout_marginTop="4dp"
android:layout_toEndOf="@id/album_cover"
android:ellipsize="end"
android:maxLines="1"
android:textColor="?album.dropdown.count.color"
android:textSize="14sp"
android:layout_alignLeft="@id/album_name"
android:layout_toRightOf="@id/album_cover" />
</RelativeLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:voiceView="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="100dp"
android:background="@color/transparent"
android:orientation="vertical">
<LinearLayout
android:id="@+id/llBg"
android:layout_width="253dp"
android:layout_height="50dp"
android:elevation="2dp"
android:layout_gravity="center_horizontal"
android:background="@drawable/audio_pop_selector"
android:orientation="horizontal">
<com.yumeng.libcommonview.view.recordWaveView.RecordWaveView
android:id="@+id/recordWaveView"
android:layout_marginStart="@dimen/dp_10"
android:layout_gravity="center_vertical"
voiceView:waveColor="@color/basic_theme_colors"
android:layout_width="wrap_content"
voiceView:space="6dp"
voiceView:waveStokeWidth="3dp"
android:layout_height="25dp"
/>
<Chronometer
android:id="@+id/time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="@dimen/dp_22"
android:layout_marginRight="@dimen/dp_13"
android:format="%s"
android:lineSpacingExtra="0sp"
android:textSize="16sp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="36dp"
android:layout_marginTop="@dimen/dp_11"
android:background="@color/white"
android:elevation="2dp"
android:orientation="vertical">
<TextView
android:id="@+id/tips"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="16dp"
android:drawableEnd="@drawable/ic_top_into"
android:drawablePadding="5dp"
android:layout_marginTop="8dp"
android:lineSpacingExtra="4sp"
android:textColor="#666666"
android:textSize="12sp" />
</LinearLayout>
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/transparent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/bg_white_radius_5dp"
android:orientation="vertical"
android:paddingBottom="8dp"
android:paddingEnd="24dp"
android:paddingStart="24dp"
android:paddingTop="12dp">
<com.yumeng.libcommonview.view.LinearProgressView
android:id="@+id/progressBar"
android:layout_width="match_parent"
android:layout_height="6dp"
app:primaryColor="@color/colorBlue"
app:progressViewBackgroundColor="#0F000000"/>
<TextView
android:id="@+id/tvProgress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:layout_marginTop="4dp"
tools:text="123/123"/>
</LinearLayout>
</FrameLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="150dp"
android:layout_height="150dp"
android:background="@drawable/dia_loading_bg"
android:gravity="center"
android:orientation="vertical"
android:padding="16.0dip">
<ProgressBar
android:id="@+id/dialog_pb_loading"
android:layout_width="40dp"
android:indeterminateTint="@color/basic_theme_colors"
android:layout_height="40dp" />
<TextView
android:id="@+id/dialog_tv_tips"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8.0dip"
android:textColor="@color/white"
android:textSize="16.0dip" />
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:id="@+id/tvHeaderView"
android:layout_width="match_parent"
android:layout_height="0dp">
</TextView>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.yumeng.libcommonview.view.BubbleImageView
android:id="@+id/ivThumbnail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
app:bubble_angle="0dp"
app:bubble_showShadow="false"
app:bubble_showText="false" />
<com.yumeng.libcommonview.view.progress.CircleProgressView
android:id="@+id/progressView"
android:layout_width="15dp"
android:layout_height="15dp"
android:layout_gravity="center"
android:visibility="gone"
app:cpv_autoTextSize="true"
app:cpv_barColor="@color/white"
app:cpv_barWidth="2dp"
app:cpv_innerContourSize="0dp"
app:cpv_maxValue="100"
app:cpv_outerContourSize="0dp"
app:cpv_rimColor="@color/black"
app:cpv_rimWidth="2dp"
app:cpv_seekMode="false"
app:cpv_showUnit="false"
app:cpv_spinColor="@color/white"
app:cpv_textColor="@color/white"
app:cpv_textScale="1"
app:cpv_unitColor="@color/white"
app:cpv_unitPosition="right_bottom"
app:cpv_unitScale="1"
app:cpv_value="0" />
</FrameLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2017 Zhihu Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?attr/page.bg">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:overScrollMode="never"
android:clipChildren="false"
android:clipToPadding="false"
android:paddingBottom="@dimen/media_grid_spacing"
android:paddingTop="@dimen/media_grid_spacing"/>
</FrameLayout>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2017 Zhihu Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<it.sephiroth.android.library.imagezoom.ImageViewTouch
android:id="@+id/image_view"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<ImageView
android:id="@+id/video_play_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/ic_play_circle_outline_white_48dp"/>
</FrameLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:gravity="center_vertical"
android:orientation="vertical">
<LinearLayout
android:id="@+id/llInputLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="40dp"
android:orientation="horizontal"
android:paddingTop="5dp"
android:paddingBottom="5dp">
<!--拍照、图片、语音-->
<LinearLayout
android:id="@+id/other_items"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingEnd="@dimen/dp_10">
<ImageView
android:id="@+id/ivChatMore"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="@dimen/dp_10"
android:src="@drawable/ic_chat_more_20dp" />
<ImageView
android:id="@+id/ivChatCamera"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="@dimen/dp_10"
android:src="@mipmap/camera_icon" />
<ImageView
android:id="@+id/ivChatAlbum"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_5"
android:padding="@dimen/dp_10"
android:src="@mipmap/album_icon" />
<com.yumeng.libbaseProject.view.audioRecorder.AudioRecorderButton
android:id="@+id/btnAudioRecord"
android:layout_width="40dp"
android:layout_height="40dp"
android:src="@mipmap/mic_icon" />
</LinearLayout>
<ImageView
android:id="@+id/ivShowOther"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:padding="@dimen/dp_10"
android:src="@drawable/black_right_icon" />
<LinearLayout
android:id="@+id/input_layout"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:background="@drawable/shape_chat_edit"
android:minHeight="33dp"
android:orientation="horizontal">
<FrameLayout
android:id="@+id/fl_content"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<com.vanniktech.emoji.EmojiEditText
android:id="@+id/chatInput"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:background="@null"
android:gravity="center_vertical"
android:paddingStart="@dimen/dp_15"
android:paddingTop="@dimen/dp_8"
android:paddingEnd="@dimen/dp_15"
android:paddingBottom="@dimen/dp_8"
android:textCursorDrawable="@drawable/cursor_drawable"
android:textSize="@dimen/sp_14" />
<LinearLayout
android:id="@+id/layout_edit"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" />
</FrameLayout>
<ImageView
android:id="@+id/chatEmoji"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:padding="6dp"
android:src="@drawable/selector_emoji" />
</LinearLayout>
<ImageView
android:id="@+id/ivSendButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:padding="@dimen/dp_10"
android:src="@mipmap/chat_send_icon" />
<ImageView
android:id="@+id/viewLine"
android:layout_width="15dp"
android:layout_height="wrap_content"
android:padding="@dimen/dp_10"
android:src="@mipmap/chat_send_icon"
android:visibility="gone" />
</LinearLayout>
<LinearLayout
android:id="@+id/llNoInputLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="40dp"
android:orientation="horizontal"
android:paddingStart="@dimen/dp_30"
android:paddingTop="5dp"
android:paddingEnd="@dimen/dp_15"
android:paddingBottom="5dp"
android:visibility="gone">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:background="@drawable/shape_chat_edit"
android:minHeight="33dp"
android:orientation="horizontal">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:background="@null"
android:gravity="center"
android:paddingStart="@dimen/dp_15"
android:paddingTop="@dimen/dp_8"
android:paddingEnd="@dimen/dp_15"
android:paddingBottom="@dimen/dp_8"
android:text="@string/silenced"
android:textColor="@color/black"
android:textCursorDrawable="@drawable/cursor_drawable"
android:textSize="@dimen/sp_15" />
</LinearLayout>
<ImageView
android:layout_width="15dp"
android:layout_height="wrap_content"
android:padding="@dimen/dp_10"
android:src="@mipmap/chat_send_icon" />
</LinearLayout>
<com.yumeng.libbaseProject.view.KeyboardHeightFrameLayout
android:id="@+id/emotionContainerFrameLayout"
android:layout_width="match_parent"
android:layout_height="@dimen/default_custom_keyboard_size"
android:background="@color/white"
android:visibility="gone">
<com.yumeng.libbaseProject.view.emoji.MyEmojiView
android:id="@+id/evMenu"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone" />
</com.yumeng.libbaseProject.view.KeyboardHeightFrameLayout>
<com.yumeng.libbaseProject.view.KeyboardHeightFrameLayout
android:id="@+id/extContainerContainerLayout"
android:layout_width="match_parent"
android:layout_height="@dimen/default_custom_keyboard_size"
android:background="@color/white"
android:visibility="gone">
<com.yumeng.aillo.common.widget.ChatMore
android:id="@+id/chatMore"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone" />
</com.yumeng.libbaseProject.view.KeyboardHeightFrameLayout>
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:background="@color/color_f5f5f5"
android:textSize="@dimen/sp_12"
android:id="@+id/tvHeaderView"
android:gravity="center_vertical"
android:paddingStart="@dimen/dp_15"
android:textColor="@color/color_999999"
android:layout_height="22dp">
</TextView>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageView
android:id="@+id/ivChatMore"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_13"
android:layout_marginTop="@dimen/dp_13"
android:layout_marginEnd="@dimen/dp_13"
android:src="@drawable/ic_location_50dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tvChatMore"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_8"
android:layout_marginBottom="17dp"
android:text="@string/file"
android:textColor="@color/color_333333"
android:textSize="@dimen/sp_12"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@id/ivChatMore"
app:layout_constraintStart_toStartOf="@id/ivChatMore"
app:layout_constraintTop_toBottomOf="@id/ivChatMore" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2017 Zhihu Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<merge xmlns:android="http://schemas.android.com/apk/res/android">
<ImageView
android:id="@+id/media_thumbnail"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<com.yumeng.libbase.activity.matisse.matisse.view.CheckView
android:id="@+id/check_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top|right"/>
<ImageView
android:id="@+id/gif"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right|bottom"
android:layout_marginBottom="8dp"
android:layout_marginRight="8dp"
android:src="@drawable/ic_gif"
android:visibility="gone"/>
<TextView
android:id="@+id/video_duration"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right|bottom"
android:layout_marginBottom="8dp"
android:layout_marginRight="8dp"
android:textColor="@android:color/white"
android:textSize="12sp"
android:visibility="gone"/>
</merge>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2017 Zhihu Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<com.yumeng.libbase.activity.matisse.matisse.view.MediaGrid
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:foreground="?selectableItemBackground"/>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="?actionBarItemBackground">
<ImageView
android:id="@+id/iv_icon"
android:layout_width="match_parent"
android:layout_height="30dp"
android:layout_centerInParent="true"
android:scaleType="centerInside"
android:src="@drawable/ic_notice"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
<TextView
android:id="@+id/tv_badge"
android:layout_width="10dp"
android:layout_height="10dp"
android:background="@drawable/badge_shape_red"
android:gravity="center"
android:textColor="@android:color/white"
android:textSize="12sp"
android:layout_marginStart="20dp"
app:layout_constraintTop_toTopOf="@id/iv_icon"
app:layout_constraintEnd_toEndOf="@id/iv_icon"
app:layout_constraintStart_toStartOf="@id/iv_icon"
android:visibility="gone"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2017 Zhihu Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<com.yumeng.libcommonview.view.SquareFrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?item.placeholder"
android:foreground="?selectableItemBackground">
<TextView
android:id="@+id/hint"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:drawablePadding="8dp"
android:drawableTop="@drawable/ic_photo_camera_white_24dp"
android:gravity="center"
android:text="@string/photo_grid_capture"
android:textColor="?capture.textColor"
android:textSize="14sp"/>
</com.yumeng.libcommonview.view.SquareFrameLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/prompt_view_group"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"/>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:orientation="vertical">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@android:color/white"
app:navigationIcon="@drawable/ic_back_19dp" />
<View
android:layout_width="match_parent"
android:layout_height="4dp"
android:background="@drawable/search_toolbar_shadow" />
</merge>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.yumeng.libcommonview.view.BubbleImageView
android:id="@+id/ivThumbnail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@color/colorGray2"
app:bubble_angle="10dp"
app:bubble_showShadow="false"
app:bubble_showText="false" />
<com.yumeng.libcommonview.view.progress.CircleProgressView
android:id="@+id/progressView"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_gravity="center"
android:visibility="gone"
app:cpv_autoTextSize="true"
app:cpv_barColor="@color/white"
app:cpv_barWidth="3dp"
app:cpv_innerContourSize="0dp"
app:cpv_maxValue="100"
app:cpv_outerContourSize="0dp"
app:cpv_rimColor="@color/black"
app:cpv_rimWidth="3dp"
app:cpv_seekMode="false"
app:cpv_showUnit="true"
app:cpv_spinColor="@color/white"
app:cpv_textColor="@color/white"
app:cpv_textScale="1"
app:cpv_unit="%"
app:cpv_unitColor="@color/white"
app:cpv_unitPosition="right_bottom"
app:cpv_unitScale="1"
app:cpv_value="0" />
<ProgressBar
android:id="@+id/pb"
android:visibility="gone"
android:layout_width="21dp"
android:layout_height="21dp"
android:layout_marginEnd="@dimen/dp_5"
android:layout_gravity="center"
android:indeterminateTint="@color/basic_theme_colors"/>
</FrameLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingStart="7dp"
android:paddingEnd="7dp"
android:nestedScrollingEnabled="false"
android:overScrollMode="never"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rvCommonList"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:overScrollMode="never"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:wheel="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ProgressBar
android:id="@+id/progress_wheel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:indeterminateTint="@color/basic_theme_colors"
wheel:layout_constraintBottom_toBottomOf="parent"
wheel:layout_constraintEnd_toEndOf="parent"
wheel:layout_constraintStart_toStartOf="parent"
wheel:layout_constraintTop_toTopOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent">
<com.yumeng.libcommonview.view.index.WordsNavigation
android:id="@+id/wordsNavigation"
android:layout_width="30dp"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/bubble"
android:layout_width="wrap_content"
android:layout_height="54dp"
android:layout_marginEnd="5dp"
android:visibility="gone"
android:elevation="6dp"
android:fontFamily="sans-serif"
android:gravity="center"
android:letterSpacing="0.02"
android:minWidth="54dp"
android:padding="4dp"
android:singleLine="true"
android:textColor="#ffffff"
android:background="@drawable/fast_scroll_thumb"
android:textSize="22sp"
android:textStyle="bold"
app:layout_constraintEnd_toStartOf="@id/wordsNavigation" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<com.yumeng.libcommonview.view.ThemeEditText xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/dp_10"
android:paddingBottom="@dimen/dp_10"
android:inputType="numberPassword"
android:textCursorDrawable="@drawable/cursor_drawable"
android:background="@drawable/edit_cursor_color" />
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/llEmoji"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/ivItemAvatar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerInParent="true"
android:layout_marginTop="5dp"
android:src="@mipmap/ic_avatar" />
<ImageView
android:id="@+id/ivAdminType"
android:visibility="gone"
style="@style/MemberAdminStyle"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:layout_marginEnd="3dp"
android:layout_marginBottom="3dp" />
</RelativeLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<FrameLayout android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
<com.google.android.gms.maps.MapView
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone"/>
<ImageView android:id="@+id/imageView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone"
tools:visibility="visible"/>
</FrameLayout>
<TextView android:id="@+id/textView"
android:visibility="visible"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0"
android:ellipsize="end"
android:maxLines="1"
android:singleLine="true"
android:padding="5dp"
tools:text="21 Jump St, Atlanta GA 30311"/>
</merge>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/selectRecyclerView"
android:layout_width="match_parent"
android:layout_height="105dp"
android:layout_marginTop="-105dp"
android:background="@color/white"
android:nestedScrollingEnabled="false"
android:overScrollMode="never" />
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#f9e0df"
android:drawableStart="@drawable/ic_verify_fail_17dp"
android:drawablePadding="@dimen/dp_10"
android:paddingStart="20dp"
android:paddingTop="@dimen/dp_8"
android:paddingEnd="@dimen/dp_8"
android:paddingBottom="@dimen/dp_10"
android:text="@string/secret_verify_fail_tips" />
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="none">
<item
android:id="@+id/nav_recycler_and_swipe_refresh"
android:icon="@drawable/ic_arrow_drop_down_white_24dp"
android:title="我的" />
<item
android:id="@+id/nav_scrolling"
android:icon="@drawable/ic_check_white_18dp"
android:title="我的" />
<item
android:id="@+id/nav_full_screen"
android:icon="@drawable/ic_check_white_18dp"
android:title="我的" />
<item
android:id="@+id/nav_bottom_navigation"
android:icon="@drawable/ic_check_white_18dp"
android:title="我的" />
<item
android:id="@+id/nav_settings"
android:icon="@drawable/ic_check_white_18dp"
android:title="我的" />
</group>
<group android:id="@+id/group_about">
<item
android:id="@+id/nav_about"
android:icon="@drawable/ic_check_white_18dp"
android:title="我的" />
<item
android:id="@+id/nav_donate"
android:icon="@drawable/ic_check_white_18dp"
android:title="我的" />
<item
android:id="@+id/nav_my_apps"
android:icon="@drawable/ic_check_white_18dp"
android:title="我的" />
</group>
</menu>
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_item_search"
android:icon="@drawable/ic_search_black"
android:title="@string/search"
app:showAsAction="always" />
<item
android:id="@+id/menu_item_add"
android:icon="@drawable/ic_plus_black"
android:title="@string/add"
app:showAsAction="always">
<menu>
<item
android:id="@+id/action_menu_main_group"
android:orderInCategory="1"
android:title="@string/start_group_chat"
app:showAsAction="never" />
<item
android:id="@+id/action_menu_main_contact"
android:orderInCategory="2"
android:title="@string/add_friend"
app:showAsAction="never" />
<item
android:id="@+id/action_menu_main_scan"
android:orderInCategory="3"
android:title="@string/scan_it"
app:showAsAction="never" />
<item
android:id="@+id/action_menu_main_crypto"
android:orderInCategory="4"
android:title="@string/new_secret_chat"
app:showAsAction="never"/>
<item
android:id="@+id/action_menu_main_crypto_group"
android:orderInCategory="4"
android:title="@string/new_secret_group_chat"
app:showAsAction="never"/>
</menu>
</item>
</menu>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_item_edit"
android:title="@string/edit"
app:actionViewClass="android.widget.TextView"
app:showAsAction="always" />
<item
android:id="@+id/menu_item_search"
android:icon="@drawable/ic_search_black"
android:title="@string/search"
app:showAsAction="always" />
<item
android:id="@+id/menu_item_add"
android:icon="@drawable/ic_plus_black"
android:title="@string/add"
app:showAsAction="always">
<menu>
<item
android:id="@+id/action_menu_main_group"
android:orderInCategory="1"
android:title="@string/start_group_chat"
app:showAsAction="never" />
<item
android:id="@+id/action_menu_main_contact"
android:orderInCategory="2"
android:title="@string/add_friend"
app:showAsAction="never" />
<item
android:id="@+id/action_menu_main_scan"
android:orderInCategory="3"
android:title="@string/scan_it"
app:showAsAction="never" />
<item
android:id="@+id/action_menu_main_crypto"
android:orderInCategory="4"
android:title="@string/new_secret_chat"
app:showAsAction="never"/>
<item
android:id="@+id/action_menu_main_crypto_group"
android:orderInCategory="4"
android:title="@string/new_secret_group_chat"
app:showAsAction="never"/>
</menu>
</item>
</menu>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_item_search"
android:icon="@drawable/ic_search_19dp"
android:title="@string/search"
app:showAsAction="always" />
<item
android:id="@+id/menu_item_add"
android:icon="@drawable/ic_add_green"
android:title="@string/add"
app:showAsAction="always">
<menu>
<item
android:id="@+id/action_menu_main_group"
android:orderInCategory="1"
android:title="@string/start_group_chat"
app:showAsAction="never" />
<item
android:id="@+id/action_menu_main_contact"
android:orderInCategory="2"
android:title="@string/add_friend"
app:showAsAction="never" />
<item
android:id="@+id/action_menu_main_scan"
android:orderInCategory="3"
android:title="@string/scan_it"
app:showAsAction="never" />
<item
android:id="@+id/action_menu_main_crypto"
android:orderInCategory="4"
android:title="@string/new_secret_chat"
app:showAsAction="never"/>
<item
android:id="@+id/action_menu_main_crypto_group"
android:orderInCategory="4"
android:title="@string/new_secret_group_chat"
app:showAsAction="never"/>
</menu>
</item>
</menu>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_item_crypto"
android:icon="@drawable/ic_crypto_new_message_16dp"
android:title="add"
app:showAsAction="always" />
<item
android:id="@+id/menu_item_voice"
android:icon="@drawable/ic_audio_18dp"
android:title="add"
app:showAsAction="always" />
<item
android:id="@+id/menu_item_video"
android:icon="@drawable/ic_video_18dp"
android:title="add"
app:showAsAction="always" />
</menu>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_clear"
android:title="@string/clear"
app:actionViewClass="android.widget.TextView"
app:showAsAction="always" />
</menu>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_filter_search"
android:title=" "
app:actionViewClass="androidx.appcompat.widget.SearchView"
app:showAsAction="collapseActionView|always" />
</menu>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_item_complaint"
android:title="@string/complaint"
app:actionViewClass="android.widget.TextView"
app:showAsAction="always" />
</menu>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_item_complete"
android:title="@string/Complete"
app:showAsAction="always" />
</menu>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_create_group"
android:title="@string/create_group"
app:showAsAction="always" />
</menu>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_item_more"
android:icon="@drawable/ic_more_vertical"
android:title="@string/more"
app:showAsAction="always"/>
</menu>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_item_search"
android:icon="@drawable/ic_search_20dp"
android:title="@string/search"
app:actionViewClass="androidx.appcompat.widget.SearchView"
app:showAsAction="always" />
</menu>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/navigation_message"
android:icon="@mipmap/ic_navigation_chat_normal"
android:title="@string/chat" />
<item
android:id="@+id/navigation_calls"
android:icon="@drawable/ic_phone"
android:title="@string/calls" />
<item
android:id="@+id/navigation_contact"
android:icon="@mipmap/ic_navigation_contact"
android:title="@string/contact" />
<!-- <item-->
<!-- android:id="@+id/navigation_trend"-->
<!-- android:icon="@drawable/ic_trend"-->
<!-- android:title="@string/trend" />-->
<item
android:id="@+id/navigation_mine"
android:icon="@mipmap/ic_navigation_mine_normal"
android:title="@string/me" />
</menu>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_invite_friend"
android:title="@string/invite_friend"
app:showAsAction="always" />
</menu>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_item_more"
android:icon="@mipmap/more_action"
android:title="@string/search"
app:showAsAction="always" />
</menu>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_menu_main_group"
android:orderInCategory="1"
android:title="@string/start_group_chat"
app:showAsAction="never" />
<item
android:id="@+id/action_menu_main_contact"
android:orderInCategory="2"
android:title="@string/add_friend"
app:showAsAction="never" />
<item
android:id="@+id/action_menu_main_scan"
android:orderInCategory="3"
android:title="@string/scan_it"
app:showAsAction="never" />
<item
android:id="@+id/action_menu_main_crypto"
android:orderInCategory="4"
android:title="@string/new_secret_chat"
app:showAsAction="never"/>
<item
android:id="@+id/action_menu_main_crypto_group"
android:orderInCategory="4"
android:title="@string/new_secret_group_chat"
app:showAsAction="never"/>
</menu>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_item_notice"
android:icon="@drawable/ic_notice"
android:title="@string/trend_message_notice"
app:showAsAction="always"
app:actionProviderClass="views.BadgeActionProvider"/>
<item
android:id="@+id/menu_item_public"
android:icon="@drawable/ic_public"
android:title="@string/post"
app:showAsAction="always" />
</menu>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/item_qr_code"
android:icon="@drawable/ic_code_black"
android:title=""
app:showAsAction="always" />
</menu>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_item_search"
app:showAsAction="always"
android:icon="@mipmap/ic_search_24dp"
android:title="@string/search" />
</menu>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_item_edit"
android:title="@string/edit"
app:actionViewClass="android.widget.TextView"
app:showAsAction="always" />
<item
android:id="@+id/menu_item_search"
android:icon="@drawable/ic_search_black"
android:title="@string/search"
app:showAsAction="always" />
<item
android:id="@+id/menu_item_call"
android:icon="@mipmap/ic_invite_call"
android:title="@string/new_call"
app:showAsAction="always">
</item>
</menu>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_item_search"
android:icon="@drawable/ic_search_19dp"
android:title="@string/search"
app:actionViewClass="androidx.appcompat.widget.SearchView"
app:showAsAction="always" />
</menu>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_item_search"
android:icon="@drawable/ic_search_green_20dp"
android:title="@string/search"
app:showAsAction="always" />
</menu>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/menuForward"
android:title="@string/forward"
/>
<item
android:id="@+id/menuDelete"
android:title="@string/delete"
/>
</menu>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/menuForward"
android:title="@string/forward"
/>
<item
android:id="@+id/menuRecall"
android:title="@string/recall"
/>
<item
android:id="@+id/menuDelete"
android:title="@string/delete"
/>
</menu>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_start_group"
android:title="@string/start_group_chat"
app:showAsAction="always"
/>
</menu>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment