Skip to content

Commit fdb51f9

Browse files
committed
feat: animated icon & splash screen
1 parent c286cb4 commit fdb51f9

File tree

30 files changed

+222
-107
lines changed

30 files changed

+222
-107
lines changed

app/build.gradle.kts

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
1+
import java.io.FileInputStream
2+
import java.util.Properties
3+
14
plugins {
25
alias(libs.plugins.gptmap.android.application)
36
alias(libs.plugins.gptmap.android.application.compose)
47
alias(libs.plugins.gptmap.android.hilt)
58
alias(libs.plugins.gptmap.android.application.firebase)
69
alias(libs.plugins.secrets)
7-
id("dev.shreyaspatil.compose-compiler-report-generator") version "1.1.0"
810
}
911

1012
android {
@@ -20,13 +22,27 @@ android {
2022

2123
}
2224

25+
val keystorePropertiesFile = rootProject.file("keystore.properties")
26+
val keystoreProperties = Properties()
27+
keystoreProperties.load(FileInputStream(keystorePropertiesFile))
28+
29+
signingConfigs {
30+
create("config") {
31+
keyAlias = keystoreProperties["keyAlias"] as String
32+
keyPassword = keystoreProperties["keyPassword"] as String
33+
storeFile = file(keystoreProperties["storeFile"] as String)
34+
storePassword = keystoreProperties["storePassword"] as String
35+
}
36+
}
37+
2338
buildTypes {
2439
release {
2540
isMinifyEnabled = false
2641
proguardFiles(
2742
getDefaultProguardFile("proguard-android-optimize.txt"),
2843
"proguard-rules.pro"
2944
)
45+
signingConfig = signingConfigs.getByName("config")
3046
}
3147
}
3248

@@ -60,4 +76,4 @@ dependencies {
6076
implementation(libs.androidx.navigation.compose)
6177
implementation(libs.androidx.core.splashscreen)
6278
implementation(libs.androidx.lifecycle.runtimeCompose)
63-
}
79+
}

app/release/output-metadata.json

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
"version": 3,
3+
"artifactType": {
4+
"type": "APK",
5+
"kind": "Directory"
6+
},
7+
"applicationId": "com.espressodev.gptmap",
8+
"variantName": "release",
9+
"elements": [
10+
{
11+
"type": "SINGLE",
12+
"filters": [],
13+
"attributes": [],
14+
"versionCode": 1,
15+
"versionName": "0.0.1",
16+
"outputFile": "app-release.apk"
17+
}
18+
],
19+
"elementType": "File"
20+
}

app/src/main/AndroidManifest.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@
1818
android:networkSecurityConfig="@xml/network_security_config"
1919
android:roundIcon="@mipmap/ic_launcher_round"
2020
android:supportsRtl="true"
21+
android:theme="@style/Theme.Gptmap.Splash"
2122
tools:targetApi="31">
2223
<activity
2324
android:name=".MainActivity"
2425
android:exported="true"
25-
android:windowSoftInputMode="adjustResize"
26-
android:theme="@style/Theme.Gptmap">
26+
android:windowSoftInputMode="adjustResize">
2727
<intent-filter>
2828
<action android:name="android.intent.action.MAIN" />
2929

19.6 KB
Loading

app/src/main/kotlin/com/espressodev/gptmap/GmAppState.kt

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,15 @@
11
package com.espressodev.gptmap
22

33
import android.content.res.Resources
4-
import android.util.Log
54
import androidx.compose.material3.SnackbarHostState
65
import androidx.compose.runtime.Stable
76
import androidx.navigation.NavHostController
87
import com.espressodev.gptmap.core.common.network_monitor.NetworkMonitor
98
import com.espressodev.gptmap.core.common.snackbar.SnackbarManager
109
import com.espressodev.gptmap.core.common.snackbar.SnackbarMessage.Companion.toMessage
11-
import com.espressodev.gptmap.core.common.splash_navigation.AfterSplashState
12-
import com.espressodev.gptmap.core.common.splash_navigation.SplashNavigationManager
13-
import com.espressodev.gptmap.feature.map.navigateToMap
1410
import kotlinx.coroutines.CoroutineScope
1511
import kotlinx.coroutines.flow.filterNotNull
1612
import kotlinx.coroutines.launch
17-
import org.junit.After
1813

1914
@Stable
2015
class GmAppState(

app/src/main/kotlin/com/espressodev/gptmap/GmNavHost.kt

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,9 @@ package com.espressodev.gptmap
22

33
import androidx.compose.runtime.Composable
44
import androidx.compose.runtime.LaunchedEffect
5-
import androidx.compose.runtime.getValue
65
import androidx.compose.ui.Modifier
7-
import androidx.lifecycle.compose.collectAsStateWithLifecycle
86
import androidx.navigation.NavHostController
97
import androidx.navigation.compose.NavHost
10-
import com.espressodev.gptmap.core.common.splash_navigation.AfterSplashState
11-
import com.espressodev.gptmap.core.common.splash_navigation.SplashNavigationManager
128
import com.espressodev.gptmap.feature.favourite.favouriteScreen
139
import com.espressodev.gptmap.feature.favourite.navigateToFavourite
1410
import com.espressodev.gptmap.feature.forgot_password.forgotPasswordScreen
@@ -61,7 +57,10 @@ fun GmNavHost(
6157
navigateToMap = navController::navigateToMap
6258
)
6359
forgotPasswordScreen(navigateToLogin = navController::navigateToLogin)
64-
streetViewScreen()
60+
streetViewScreen(
61+
popUp = navController::popBackStack,
62+
navigateToScreenshot = navController::navigateToScreenshot
63+
)
6564
favouriteScreen(
6665
popUp = navController::popBackStack,
6766
navigateToMap = navController::navigateToMap
@@ -76,8 +75,6 @@ fun GmNavHost(
7675
navigateToLogin = navController::navigateToLogin
7776
)
7877
}
79-
80-
navController.SplashNavigationListener()
8178
}
8279

8380
@Composable
@@ -90,11 +87,3 @@ private fun NavHostController.NavigationListener() {
9087
}
9188
}
9289
}
93-
94-
@Composable
95-
private fun NavHostController.SplashNavigationListener() {
96-
val splashNavState by SplashNavigationManager.splashNavigationState.collectAsStateWithLifecycle()
97-
if (splashNavState == AfterSplashState.Map) {
98-
navigateToMap()
99-
}
100-
}

app/src/main/kotlin/com/espressodev/gptmap/MainActivity.kt

Lines changed: 11 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import androidx.activity.enableEdgeToEdge
77
import androidx.activity.viewModels
88
import androidx.compose.runtime.getValue
99
import androidx.compose.runtime.mutableStateOf
10-
import androidx.compose.runtime.remember
1110
import androidx.compose.runtime.setValue
1211
import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
1312
import androidx.lifecycle.Lifecycle
@@ -29,34 +28,27 @@ class MainActivity : ComponentActivity() {
2928
private val viewModel: MainActivityViewModel by viewModels()
3029

3130
override fun onCreate(savedInstanceState: Bundle?) {
32-
installSplashScreen()
31+
val splashScreen = installSplashScreen()
32+
3333
super.onCreate(savedInstanceState)
3434

35-
var isEmailVerified by mutableStateOf(AccountState.Idle)
35+
var isEmailVerified by mutableStateOf(AccountState.Loading)
3636

3737
scopeWithLifecycle {
3838
viewModel.accountService.collect {
39-
isEmailVerified = when (it) {
40-
AccountState.Idle -> {
41-
AccountState.Idle
42-
}
43-
44-
AccountState.UserAlreadySignIn -> {
45-
AccountState.UserAlreadySignIn
46-
}
47-
48-
AccountState.UserNotSignIn -> {
49-
AccountState.UserNotSignIn
50-
}
51-
}
39+
isEmailVerified = it
5240
}
5341
}
5442

43+
splashScreen.setKeepOnScreenCondition {
44+
isEmailVerified == AccountState.Loading
45+
}
46+
5547
enableEdgeToEdge()
5648
setContent {
5749
GptmapTheme {
58-
if (isEmailVerified != AccountState.Idle)
59-
GmApp(networkMonitor, isEmailVerified)
50+
if (isEmailVerified != AccountState.Loading)
51+
GmApp(networkMonitor, isEmailVerified)
6052
}
6153
}
6254
}
@@ -66,4 +58,4 @@ class MainActivity : ComponentActivity() {
6658
lifecycle.repeatOnLifecycle(Lifecycle.State.STARTED, block = block)
6759
}
6860
}
69-
}
61+
}

app/src/main/kotlin/com/espressodev/gptmap/MainActivityViewModel.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import kotlinx.coroutines.tasks.await
1313
import javax.inject.Inject
1414

1515
enum class AccountState {
16-
Idle,
16+
Loading,
1717
UserAlreadySignIn,
1818
UserNotSignIn,
1919
}
@@ -23,7 +23,7 @@ class MainActivityViewModel @Inject constructor(
2323
accountService: AccountService,
2424
realmAccountService: RealmAccountService,
2525
) : ViewModel() {
26-
private val _accountState = MutableStateFlow(AccountState.Idle)
26+
private val _accountState = MutableStateFlow(AccountState.Loading)
2727
val accountService = _accountState.asStateFlow()
2828
init {
2929
viewModelScope.launch {
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
3+
android:duration="1250"
4+
android:interpolator="@android:anim/anticipate_overshoot_interpolator">
5+
<propertyValuesHolder
6+
android:propertyName="scaleX"
7+
android:valueFrom="0.5"
8+
android:valueTo="0.75"
9+
android:valueType="floatType" />
10+
11+
<propertyValuesHolder
12+
android:propertyName="scaleY"
13+
android:valueFrom="0.5"
14+
android:valueTo="0.75"
15+
android:valueType="floatType" />
16+
</objectAnimator>
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
2+
android:width="200dp"
3+
android:height="200dp"
4+
android:viewportWidth="256"
5+
android:viewportHeight="256">
6+
7+
<group
8+
android:name="appIconGroup"
9+
android:pivotX="125"
10+
android:pivotY="125"
11+
android:scaleX="0.75"
12+
android:scaleY="0.75">
13+
<path
14+
android:fillColor="#ffffff"
15+
android:pathData="M170.54,52.69C182.26,59.29 192.05,67.94 199.97,78.7C207.32,88.69 212.08,99.82 214.72,111.89C216.05,117.96 216.63,124.14 216.5,130.35C216.16,147.07 211.76,162.65 202.74,176.78C194.44,189.78 183.45,199.95 169.85,207.29C161.15,211.97 151.92,215.09 142.21,216.74C135.5,217.89 128.74,218.13 121.93,217.63C103.73,216.27 87.59,209.64 73.32,198.43C62.81,190.17 54.66,179.94 48.87,167.86C44.55,158.85 41.8,149.4 40.64,139.47C38.94,124.78 40.83,110.59 46.42,96.9C51.49,84.46 59.11,73.84 69.12,64.88C80.09,55.06 92.68,48.24 106.87,44.42C112.94,42.79 119.14,41.9 125.45,41.63C135.86,41.19 145.93,42.78 155.76,46.11C160.86,47.83 165.77,50 170.54,52.69ZM71.73,162.92C71.03,163.62 70.33,164.34 69.61,165.03C67.48,167.02 65.37,169.04 63.19,170.98C62.31,171.77 62.35,172.44 63.03,173.29C63.68,174.1 64.27,174.97 64.86,175.82C65.98,177.42 65.99,177.44 67.41,176.08C74.35,169.42 81.28,162.74 88.24,156.1C89.28,155.1 90.19,153.95 91.59,153.17C95.54,156.95 99.56,160.61 103.41,164.66C94.81,172.96 86.35,181.14 77.82,189.38C79.35,190.6 80.75,191.64 82.07,192.77C82.77,193.36 83.2,193.3 83.84,192.66C86.58,189.93 89.4,187.27 92.13,184.52C92.92,183.72 93.46,183.79 94.19,184.52C95.9,186.22 97.64,187.89 99.38,189.57C101.57,191.68 103.76,193.79 105.98,195.88C106.74,196.59 106.97,197.16 106.01,197.97C104.68,199.1 103.48,200.38 102.23,201.6C101.88,201.95 101.46,202.25 101.39,202.81C101.89,203.61 102.84,203.52 103.55,203.9C106.39,205.4 108.78,205.14 110.68,202.34C111.25,201.49 111.91,201.6 112.62,202.31C114.06,203.75 115.57,205.13 117.02,206.56C117.68,207.2 118.41,207.6 119.33,207.66C121.61,207.81 123.9,207.99 126.18,208.13C126.57,208.16 127.02,208.29 127.34,207.89C127.31,207.4 126.89,207.2 126.61,206.93C123.51,203.96 120.43,200.96 117.29,198.04C116.45,197.25 116.46,196.68 117.25,195.91C120.51,192.75 123.76,189.57 126.99,186.38C127.56,185.81 127.94,185.81 128.53,186.38C131.79,189.6 135.1,192.77 138.38,195.96C138.73,196.3 139.18,196.58 139.21,196.84C135.59,200.69 132.11,204.39 128.6,208.12C130.83,208.31 133.09,207.75 135.35,207.82C137.65,207.89 139.16,206.74 140.58,205.19C141.45,204.24 142.49,203.43 143.32,202.45C144.12,201.5 144.69,201.69 145.43,202.48C146.14,203.24 146.93,203.92 147.7,204.62C148.01,204.9 148.35,205.25 148.79,205.15C150.84,204.67 152.85,204.08 154.77,203.18C154.49,202.33 153.9,201.91 153.4,201.43C152.2,200.27 151.02,199.09 149.75,198.01C148.89,197.27 148.96,196.68 149.73,195.98C150.37,195.4 151,194.78 151.62,194.17C157.09,188.8 162.57,183.44 168.01,178.04C168.76,177.3 169.28,177.34 169.95,178.09C170.59,178.8 171.31,179.44 172,180.1C174.47,182.47 176.96,184.8 179.39,187.2C180.19,187.99 180.8,188.19 181.6,187.21C182.2,186.47 182.96,185.86 183.62,185.17C184.92,183.82 184.94,183.79 183.64,182.52C180.61,179.54 177.58,176.56 174.49,173.65C173.62,172.83 173.68,172.34 174.5,171.56C178.9,167.36 183.27,163.12 187.6,158.86C188.2,158.28 188.55,158.39 189.05,158.88C189.94,159.75 190.84,160.61 191.75,161.48C193.54,163.19 195.35,164.9 197.28,166.73C198.07,165.12 198.71,163.64 199.5,162.23C200.06,161.22 199.92,160.51 199.09,159.72C196.49,157.25 193.95,154.73 191.38,152.23C187,147.96 182.61,143.69 178.21,139.43C177.6,138.84 177.26,138.36 178.06,137.59C180.9,134.9 183.68,132.14 186.5,129.43C192.23,123.9 197.95,118.38 203.69,112.87C204.5,112.1 204.84,111.32 204.4,110.22C203.77,108.67 203.68,106.92 202.76,105.29C198.9,108.49 195.66,112.13 191.94,115.34C189.11,112.56 186.34,109.86 183.57,107.16C182.99,106.59 183.24,106.15 183.71,105.68C185.47,103.96 187.2,102.22 188.96,100.5C191.54,97.96 194.13,95.42 196.71,92.88C197.02,92.57 197.48,92.24 197.16,91.71C196.21,90.16 195.23,88.62 194.15,86.89C188.41,92.33 182.84,97.62 177.12,103.06C177.02,102.58 176.97,102.46 176.98,102.35C177.33,98.9 177.48,95.42 176.91,92.01C176.49,89.52 177.13,87.82 179.05,86.19C181.61,84.01 183.94,81.55 186.34,79.18C186.78,78.75 187.5,78.3 186.79,77.53C185.63,76.24 184.45,74.95 183.17,73.55C180.34,76.27 177.6,78.9 174.88,81.52C174.31,81.1 174.23,80.58 174.05,80.13C170.46,70.77 164.29,63.54 155.88,58.2C145.26,51.45 133.56,49.53 121.26,50.92C112.71,51.89 104.9,54.95 97.96,60.13C90.32,65.84 84.87,73.11 81.87,82.17C81.35,83.74 80.94,85.34 80.49,86.89C79.88,86.88 79.66,86.49 79.37,86.21C76.53,83.51 73.67,80.83 70.87,78.09C70.16,77.4 69.68,77.37 69.07,78.14C68.44,78.92 67.75,79.65 67.08,80.39C65.76,81.84 65.75,81.93 67.18,83.29C70.85,86.79 74.54,90.29 78.23,93.79C78.87,94.4 79.36,95.02 79.36,96.03C79.36,99.7 79.82,103.32 80.78,106.87C81.04,107.84 81.28,108.82 81.52,109.8C81.45,109.83 81.38,109.87 81.3,109.9C74.35,103.31 67.39,96.72 60.33,90.04C59.44,91.62 58.73,92.98 57.92,94.28C57.3,95.28 57.49,95.96 58.34,96.75C61.39,99.59 64.37,102.5 67.36,105.4C67.88,105.91 68.51,106.35 68.81,107.2C66.38,109.53 63.91,111.82 61.55,114.22C60.8,114.98 60.4,115 59.67,114.26C58.03,112.6 56.33,111 54.6,109.43C53.36,108.3 53.03,108.43 52.61,110.1C52.3,111.3 52.11,112.54 51.71,113.72C51.38,114.71 51.64,115.31 52.37,116C58.3,121.6 64.2,127.25 70.1,132.9C70.54,133.31 71.1,133.66 71.23,134.37C71.08,134.52 70.95,134.67 70.8,134.82C65.25,140.17 59.72,145.53 54.14,150.85C53.41,151.55 53.15,152.18 53.55,153.14C54.07,154.37 54.45,155.65 54.95,156.89C55.42,158.05 55.71,158.12 56.62,157.27C58.05,155.94 59.49,154.6 60.85,153.2C61.42,152.62 61.79,152.57 62.38,153.15C65.36,156.06 68.36,158.94 71.36,161.84C71.63,162.09 71.97,162.31 71.73,162.92Z" />
16+
<path
17+
android:fillColor="#ffffff"
18+
android:pathData="M122.95,58.16C137.94,56.75 150.85,60.71 160.85,72.25C165.52,77.65 168.1,84.07 169.07,91.11C170.51,101.58 167.7,111.19 162.5,120.12C157.31,129.04 151.53,137.6 145.8,146.19C140.65,153.92 135.44,161.6 129.84,169.01C129.4,169.6 128.91,170.15 128.42,170.76C127.69,170.26 127.31,169.61 126.85,169.03C120.81,161.27 115.29,153.15 109.89,144.93C104.86,137.28 99.82,129.63 95.16,121.75C91.07,114.84 87.99,107.48 87.28,99.44C86.47,90.17 88.85,81.61 94.48,74.08C100.68,65.82 109.01,60.91 119.03,58.76C120.28,58.49 121.57,58.36 122.95,58.16ZM148.9,99.51C148.9,97.89 148.92,96.28 148.71,94.66C147.18,82.85 134.95,74.68 123.39,77.72C111.34,80.89 104.08,93.91 109.62,106.29C115.01,118.36 131.07,122.19 141.2,113.72C145.59,110.05 148.16,105.41 148.9,99.51ZM153.24,74.13C152.85,73.81 152.48,73.48 152.07,73.19C151.47,72.75 150.87,72.73 150.23,73.16C149.57,73.61 149.47,74.22 149.59,74.92C149.72,75.63 150.27,76.05 150.76,76.5C154.52,80 156.99,84.25 158.11,89.28C158.3,90.13 158.4,91.01 158.65,91.84C158.93,92.76 159.56,93.35 160.61,93.18C161.61,93.01 161.99,92.31 161.97,91.37C161.96,90.83 161.9,90.29 161.81,89.76C160.73,83.65 157.91,78.48 153.24,74.13ZM96.32,86.18C95.74,87.74 95.34,89.35 95.02,90.98C94.82,92.04 95.39,93.01 96.31,93.18C97.44,93.39 98.12,92.74 98.31,91.77C98.77,89.39 99.54,87.13 100.52,84.92C100.91,84.03 100.53,83.27 99.75,82.79C98.93,82.28 98.24,82.66 97.68,83.33C97.03,84.11 96.78,85.09 96.32,86.18Z" />
19+
<path
20+
android:fillColor="#ffffff"
21+
android:pathData="M147.1,189.6C146.29,190.38 145.52,191.09 144.79,191.83C144.29,192.34 143.88,192.4 143.32,191.87C140.09,188.74 136.85,185.64 133.59,182.54C133.03,182.01 133.11,181.65 133.65,181.13C139.9,175.03 146.13,168.9 152.36,162.78C152.82,162.33 153.23,162.01 153.83,162.59C157.16,165.84 160.51,169.08 163.85,172.33C163.96,172.44 164.01,172.61 164.17,172.87C158.49,178.43 152.82,183.98 147.1,189.6Z" />
22+
<path
23+
android:fillColor="#ffffff"
24+
android:pathData="M181.38,125.38C171.13,135.25 160.84,144.95 150.67,154.99C150.53,154.32 150.91,154 151.13,153.64C157.59,143.15 164.21,132.76 170.2,121.99C172.46,117.91 174.4,113.67 175.52,109.11C175.54,109.04 175.63,109 175.7,108.93C176.15,108.84 176.37,109.2 176.63,109.44C179.87,112.56 183.09,115.7 186.35,118.8C187.09,119.5 187.16,119.95 186.34,120.68C184.65,122.17 183.07,123.77 181.38,125.38Z" />
25+
<path
26+
android:fillColor="#ffffff"
27+
android:pathData="M176.91,147.09C179.07,149.4 181.18,151.63 183.38,153.98C182.74,154.9 181.6,155.75 180.61,156.73C177.03,160.22 173.41,163.65 169.84,167.15C169.15,167.82 168.69,167.87 167.99,167.18C164.98,164.18 161.95,161.21 158.87,158.28C158.05,157.49 158.04,156.99 158.88,156.18C163.31,151.9 167.69,147.56 172.09,143.25C172.17,143.16 172.29,143.12 172.57,142.95C173.97,144.29 175.41,145.66 176.91,147.09Z" />
28+
<path
29+
android:fillColor="#ffffff"
30+
android:pathData="M113.13,174.62C115.96,177.31 118.75,179.91 121.18,182.54C118.74,185.1 116.42,187.54 114.1,189.96C113.66,190.41 113.17,190.8 112.72,191.23C111.51,192.42 111.48,192.46 110.29,191.33C106.28,187.52 102.3,183.67 98.3,179.85C97.78,179.36 97.78,179.01 98.29,178.52C101.19,175.72 104.08,172.9 106.95,170.06C107.55,169.46 107.97,169.58 108.51,170.11C110.01,171.61 111.55,173.08 113.13,174.62Z" />
31+
<path
32+
android:fillColor="#ffffff"
33+
android:pathData="M99.94,144.57C103.08,149.86 106.42,154.93 109.4,160.44C108.49,160.48 108.15,159.96 107.76,159.61C100.39,152.73 93.03,145.85 85.67,138.96C84.31,137.68 82.96,136.37 81.58,135.1C80.96,134.52 80.82,134.06 81.5,133.35C83.71,131.08 86.02,128.92 88.34,126.77C88.48,126.64 88.69,126.57 88.97,126.42C92.63,132.47 96.26,138.48 99.94,144.57Z" />
34+
<path
35+
android:fillColor="#ffffff"
36+
android:pathData="M73.04,154.71C71.03,152.77 69.1,150.88 67.14,149.03C66.45,148.37 66.4,147.88 67.13,147.19C69.92,144.57 72.66,141.91 75.41,139.25C75.78,138.9 76.1,138.63 76.56,139.08C79.82,142.23 83.08,145.38 86.33,148.53C86.38,148.58 86.39,148.68 86.11,148.45C84.2,150.57 82.31,152.71 80.36,154.79C79.45,155.76 78.39,156.58 77.46,157.52C76.92,158.06 76.53,158.04 76,157.51C75.06,156.57 74.07,155.68 73.04,154.71Z" />
37+
<path
38+
android:fillColor="#ffffff"
39+
android:pathData="M83,120.77C83.31,121.16 83.69,121.4 83.78,121.98C81.19,124.44 78.73,127.14 75.99,129.45C75.51,129.45 75.3,129.16 75.07,128.94C72.16,126.15 69.26,123.33 66.32,120.57C65.58,119.87 65.53,119.4 66.31,118.67C68.43,116.68 70.5,114.63 72.54,112.55C73.27,111.8 73.77,111.85 74.49,112.56C77.28,115.3 80.12,117.99 83,120.77Z" />
40+
</group>
41+
</vector>

0 commit comments

Comments
 (0)