Skip to content
Merged

Dev #16

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
2df027c
feat(app, chats): implement navigation to usersearch
demndevel Nov 4, 2024
95c58fc
feat(app, usersearch, uikit, profile, login): toast instead of crush …
demndevel Nov 6, 2024
37fe47f
fix(app): inverse monochrome app icon colors
demndevel Nov 6, 2024
77ae857
feat(usersearch): implement mock search by messages
demndevel Nov 6, 2024
4722248
refactor(chatssearch): rename module from usersearch to chatssearch
demndevel Nov 6, 2024
09a0653
feat(app): add bare implementation of deeplinks
demndevel Nov 10, 2024
d71fa74
fix, feat(chatssearch): add preview for search state, remove magical …
demndevel Nov 10, 2024
ee3b648
fix(chatssearch): remove global search block when there is no results
demndevel Nov 10, 2024
4110bec
fix(login, profile): use consistent horizontal padding: 14 instead of 24
demndevel Nov 10, 2024
561da22
refactor(uikit), feat(uikit): add new font, feat(chats): implement mo…
demndevel Nov 10, 2024
ab1dde7
fix(chats): change avatar box size
demndevel Nov 11, 2024
691a6e9
fix(chats): remove outdated TODO from ChatListItem
demndevel Nov 11, 2024
b7a61df
feat(chats): implement basic Chat screen implementation with navigation
demndevel Nov 16, 2024
d934903
feat&refactor(uikit, profile, login): implement common AvatarAndBackg…
demndevel Nov 16, 2024
d628f8d
refactor(login): remove unused imports
demndevel Nov 16, 2024
f965423
refactor(domain): value objects refactoring – add createRaw with OptI…
demndevel Nov 16, 2024
dad52b2
feat(uikit): add placeholders and image painter to avatar&background …
demndevel Nov 17, 2024
7f9143b
feat(chats): implement MessageInputField
demndevel Nov 19, 2024
56238b4
feat(chats): manifest and ui fixes accordingly to the ime in chats, a…
demndevel Nov 19, 2024
fd85f55
chore: upgrade libs versions
demndevel Nov 19, 2024
cdf9df9
chore: version bump
demndevel May 9, 2025
7eefe5b
chore, fix: agp version bump & fixes accordingly to new versions
demndevel May 10, 2025
897906f
fix(chats): small color fixes
demndevel May 10, 2025
378bb1a
feat(uikit): implement BlankContentBox
demndevel May 10, 2025
3cb7a90
feat(feed): use BlankContentBox
demndevel May 10, 2025
25eb210
feat(shared): add sharedModule
demndevel May 10, 2025
32f20cd
fix(uikit): use string resources
demndevel May 10, 2025
c030132
fix(uikit): impl ErrorWithButtonContentBox + curious picture set
demndevel May 10, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ plugins {

android {
namespace = "me.floow.app"
compileSdk = 34
compileSdk = 35

defaultConfig {
applicationId = "me.floow.app"
Expand Down Expand Up @@ -77,7 +77,7 @@ dependencies {
implementation(project(":feature:feed"))
implementation(project(":feature:explore"))
implementation(project(":feature:profile"))
implementation(project(":feature:usersearch"))
implementation(project(":feature:chatssearch"))

implementation(libs.androidx.core.splashscreen)

Expand Down
25 changes: 20 additions & 5 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
xmlns:tools="http://schemas.android.com/tools">

<uses-permission android:name="android.permission.INTERNET" />

<application
Expand All @@ -18,19 +19,33 @@
android:name=".MainActivity"
android:exported="true"
android:label="@string/app_name"
android:launchMode="singleTask"
android:theme="@style/Theme.Flow.Starting"
android:launchMode="singleTask">
android:windowSoftInputMode="adjustNothing">
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />

<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />

<data
android:host="floow.me"
android:scheme="https" />
</intent-filter>

<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER"/>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

<intent-filter>
<action android:name="android.intent.action.VIEW" />

<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="com.flowme.flow"/>

<data android:scheme="com.flowme.flow" />
</intent-filter>
</activity>

Expand Down
9 changes: 6 additions & 3 deletions app/src/main/java/me/floow/app/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import androidx.activity.enableEdgeToEdge
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.ui.Modifier
import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
import com.demn.usersearch.di.usersearchModule
import me.floow.chatssearch.di.usersearchModule
import kotlinx.coroutines.CoroutineName
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.launch
Expand All @@ -26,6 +26,7 @@ import me.floow.app.di.mockModule
import me.floow.app.navigation.AuthDestinationsCluster
import me.floow.app.navigation.MainDestinationsCluster
import me.floow.app.ui.App
import me.floow.chats.di.chatsModule
import me.floow.domain.auth.AuthenticationManager
import me.floow.login.di.loginModule
import me.floow.profile.di.profileModule
Expand Down Expand Up @@ -61,7 +62,8 @@ class MainActivity : ComponentActivity() {
mockModule,
loginModule,
profileModule,
usersearchModule
usersearchModule,
chatsModule
)
} else {
modules(
Expand All @@ -74,7 +76,8 @@ class MainActivity : ComponentActivity() {
mockModule,
loginModule,
profileModule,
usersearchModule
usersearchModule,
chatsModule
)
}
}
Expand Down
89 changes: 80 additions & 9 deletions app/src/main/java/me/floow/app/navigation/FlowNavHost.kt
Original file line number Diff line number Diff line change
@@ -1,25 +1,33 @@
package me.floow.app.navigation

import android.content.Context
import android.content.Intent
import android.net.Uri
import android.widget.Toast
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.SideEffect
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
import androidx.navigation.NavHostController
import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
import androidx.navigation.compose.navigation
import androidx.navigation.navDeepLink
import androidx.navigation.toRoute
import com.demn.usersearch.ui.SearchUsersRoute
import me.floow.chats.ui.ChatsRoute
import me.floow.chats.ChatRoute
import me.floow.chats.ChatRouteInitialData
import me.floow.chatssearch.ui.SearchUsersRoute
import me.floow.chats.ChatsRoute
import me.floow.feed.ui.FeedRoute
import me.floow.login.ui.createprofile.CreateProfileRoute
import me.floow.login.ui.login.LoginRoute
import me.floow.profile.ui.edit.EditProfileRoute
import me.floow.profile.ui.edit.EditProfileRouteInitialData
import me.floow.profile.ui.profile.ProfileRoute
import org.koin.androidx.compose.koinViewModel
import org.koin.compose.koinInject

@Composable
fun FlowNavHost(
Expand Down Expand Up @@ -71,12 +79,18 @@ fun FlowNavHost(
startDestination = FeedScreen
) {
composable<FeedScreen> {
FeedRoute(onPostCreateClick = { TODO() }, modifier)
FeedRoute(
onPostCreateClick = {
showNotImplementedToast(context)
},
modifier
)
}

composable<EditProfileScreen> {
val backStackEntry = navController.currentBackStackEntry
val editProfileScreen: EditProfileScreen? = backStackEntry?.toRoute<EditProfileScreen>()
val editProfileScreen: EditProfileScreen? =
backStackEntry?.toRoute<EditProfileScreen>()

EditProfileRoute(
initialData = EditProfileRouteInitialData(
Expand All @@ -95,7 +109,22 @@ fun FlowNavHost(
)
}

composable<ProfileScreen> {
composable<ProfileScreen>(
deepLinks = listOf(
navDeepLink<ProfileScreen>(
basePath = profileDeeplinkUri
)
)
) {
val username = navController.currentBackStackEntry
?.toRoute<ProfileScreen>()?.username

Box(Modifier.fillMaxSize()) {
Text(text = username ?: "no username, invalid input")
}
}

composable<SelfProfileScreen> {
ProfileRoute(
goToProfileEditScreen = { name, username, description ->
navController.navigate(
Expand All @@ -106,7 +135,9 @@ fun FlowNavHost(
)
)
},
goToAddPostScreen = { TODO() },
goToAddPostScreen = {
showNotImplementedToast(context)
},
shareProfile = { url ->
// TODO

Expand All @@ -125,16 +156,56 @@ fun FlowNavHost(
}

composable<ChatsScreen> {
ChatsRoute(modifier)
ChatsRoute(
onChatClick = { chatToNavigate ->
navController.navigate(
ChatScreen(
interlocutorId = chatToNavigate.id,
interlocutorName = chatToNavigate.name.value,
interlocutorAvatarUri = chatToNavigate.avatarUrl.toString()
)
)
},
onSearchClick = {
navController.navigate(SearchUsersScreen)
},
vm = koinInject(),
modifier = modifier
)
}

composable<ChatScreen> {
val backStackEntry = navController.currentBackStackEntry
val chatScreen: ChatScreen? =
backStackEntry?.toRoute<ChatScreen>()

ChatRoute(
initialData = ChatRouteInitialData(
chatInterlocutorId = chatScreen?.interlocutorId ?: -1L,
chatInterlocutorName = chatScreen?.interlocutorName ?: "",
chatInterlocutorAvatarUrl = chatScreen?.interlocutorAvatarUri?.let { Uri.parse(it) }
),
vm = koinViewModel(),
modifier = modifier
)
}

composable<SearchUsersScreen> {
SearchUsersRoute(
onUserPick = { TODO() },
onBackClick = {
navController.popBackStack()
},
onUserPick = {
showNotImplementedToast(context)
},
vm = koinViewModel(),
modifier = modifier
)
}
}
}
}

private fun showNotImplementedToast(context: Context) {
Toast.makeText(context, "Фича ещё разрабатывается…", Toast.LENGTH_SHORT).show()
}
18 changes: 14 additions & 4 deletions app/src/main/java/me/floow/app/navigation/NavigationGraph.kt
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,24 @@ data object LoginScreen : NavigationRoute
@Serializable
data object FeedScreen : NavigationRoute

@Serializable
data class ChatScreen(
val interlocutorId: Long = 0L,
val interlocutorName: String = "",
val interlocutorAvatarUri: String? = null,
) : NavigationRoute

@Serializable
data object ChatsScreen : NavigationRoute

@Serializable
data object SearchUsersScreen : NavigationRoute

@Serializable
data object ProfileScreen : NavigationRoute
data class ProfileScreen(val username: String) : NavigationRoute

@Serializable
data object SelfProfileScreen : NavigationRoute

@Serializable
data class EditProfileScreen(
Expand All @@ -41,7 +51,7 @@ data class EditProfileScreen(

val bottomNavigationItems = listOf(
BottomNavigationItem(
route = FeedScreen,//NavigationItem.Main.Feed.route,
route = FeedScreen,
titleId = R.string.feed_bottom_nav_label,
drawableIconId = me.floow.uikit.R.drawable.feed_icon,
),
Expand All @@ -51,7 +61,7 @@ val bottomNavigationItems = listOf(
drawableIconId = me.floow.uikit.R.drawable.chats_icon,
),
BottomNavigationItem(
route = ProfileScreen,
route = SelfProfileScreen,
titleId = R.string.profile_bottom_nav_label,
drawableIconId = me.floow.uikit.R.drawable.profile_icon,
),
Expand All @@ -60,5 +70,5 @@ val bottomNavigationItems = listOf(
val mainBottomBarNavigationDestinations = listOf(
FeedScreen,
ChatsScreen,
ProfileScreen
SelfProfileScreen
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
package me.floow.app.navigation

const val profileDeeplinkUri = "https://floow.me/"
2 changes: 2 additions & 0 deletions app/src/main/java/me/floow/app/ui/App.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package me.floow.app.ui
import androidx.compose.animation.AnimatedVisibility
import androidx.compose.animation.fadeIn
import androidx.compose.animation.fadeOut
import androidx.compose.foundation.layout.consumeWindowInsets
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.*
Expand Down Expand Up @@ -59,6 +60,7 @@ fun App(
modifier = Modifier
.fillMaxSize()
.padding(innerPadding)
.consumeWindowInsets(innerPadding)
)
}
}
Expand Down
29 changes: 16 additions & 13 deletions app/src/main/res/drawable/ic_launcher_monochrome_foreground.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,21 @@
android:viewportWidth="108"
android:viewportHeight="108">
<path
android:pathData="M64.33,57.5L53.73,29L42.77,34.47L50.02,56.01L41.36,44.53L35,52.65L50.02,63.95L42.77,70.66L57.79,76.13L64.33,78.43L60.61,67.58L59,63.23L64.33,57.5Z"
android:fillColor="#D4D1FF"
android:fillAlpha="100"/>
android:pathData="M55.66,71.47L58.17,72.41L59.64,72.94L57.83,67.48L56.41,63.51C56.12,62.7 56.3,61.79 56.87,61.15L60.66,56.93L60.7,56.95L52.62,34.49L46.83,37.48L52.64,55.37C52.99,56.44 52.53,57.61 51.57,58.13C50.61,58.66 49.42,58.38 48.76,57.48L42.81,49.32L40.37,52.54L42.64,54.37L51.86,61.55C52.39,61.96 52.71,62.59 52.74,63.27C52.77,63.95 52.51,64.61 52.03,65.07L48.27,68.68L55.38,71.36"
android:fillColor="#DFC0B2"
android:fillType="evenOdd"/>
<path
android:pathData="M72.81,66.42L64.33,57.5L59,63.23L60.61,67.58L64.33,78.43L69.82,70.66L72.81,66.42Z"
android:fillColor="#CECBFF"
android:fillAlpha="100"/>
<path
android:pathData="M72.81,66.42L64.33,57.5M72.81,66.42L64.33,78.43M72.81,66.42L69.82,70.66L64.33,78.43M64.33,57.5L53.73,29L42.77,34.47L50.02,56.01L41.36,44.53L35,52.65L50.02,63.95L42.77,70.66L57.79,76.13L64.33,78.43M64.33,57.5L59,63.23L60.61,67.58L64.33,78.43"
android:strokeLineJoin="round"
android:strokeWidth="5"
android:fillColor="#00000000"
android:strokeColor="#35332F"
android:strokeLineCap="round"/>
android:pathData="M61.07,63.27L62.02,65.94L62.04,65.99L63.94,71.71L67.91,65.89L63.26,60.83L61.07,63.27Z"
android:fillColor="#DFC0B2"
android:fillType="evenOdd"/>
<group>
<clip-path
android:pathData="M54.66,29.16C55.25,29.4 55.71,29.88 55.93,30.5L65.18,56.24L72.39,64.09C73.12,64.88 73.21,66.1 72.59,67L65.06,78.03C64.49,78.87 63.45,79.21 62.51,78.87L56.71,76.76H56.69L43.36,71.72C42.63,71.45 42.1,70.8 41.94,70.02C41.79,69.24 42.04,68.43 42.61,67.88L47.09,63.59L35.89,54.86C35.41,54.49 35.1,53.94 35.02,53.32C34.94,52.71 35.11,52.09 35.47,51.6L41.12,44.14C41.55,43.58 42.2,43.25 42.89,43.26C43.36,43.26 43.81,43.42 44.19,43.71L42.02,37.05C41.67,35.96 42.14,34.78 43.13,34.26L52.85,29.24C53.41,28.95 54.07,28.92 54.66,29.16ZM60.7,56.95L52.62,34.49L46.83,37.48L52.64,55.37C52.99,56.44 52.53,57.61 51.57,58.13C50.61,58.66 49.42,58.38 48.76,57.48L42.81,49.32L40.34,52.58L51.86,61.55C52.39,61.96 52.71,62.59 52.74,63.27C52.77,63.95 52.51,64.61 52.03,65.07L48.27,68.68L58.17,72.41L59.64,72.94L57.83,67.48L56.41,63.51C56.12,62.7 56.3,61.79 56.87,61.15L60.66,56.93L60.7,56.95ZM63.94,71.71L62.04,65.99C62.04,65.99 62.03,65.96 62.02,65.94L61.07,63.27L63.26,60.83L67.91,65.89L63.94,71.71Z"
android:fillType="evenOdd"/>
<path
android:pathData="M55.93,30.5L-27,59.93L-26.94,60.09L-26.89,60.26L55.93,30.5ZM65.18,56.24L-17.64,86L-11.63,102.7L0.37,115.77L65.18,56.24ZM72.39,64.09L7.58,123.62L7.67,123.71L7.76,123.81L72.39,64.09ZM72.59,67L0.12,17.08L0.02,17.23L-0.09,17.38L72.59,67ZM65.06,78.03L-7.62,28.41L-7.69,28.52L-7.76,28.62L65.06,78.03ZM62.51,78.87L32.43,161.57L32.5,161.6L32.58,161.62L62.51,78.87ZM56.71,76.76L86.79,-5.94L72.22,-11.24H56.71V76.76ZM56.69,76.76L25.57,159.07L40.61,164.76H56.69V76.76ZM43.36,71.72L74.48,-10.59L74.18,-10.71L73.89,-10.82L43.36,71.72ZM41.94,70.02L-44.48,86.64L-44.37,87.17L-44.27,87.7L41.94,70.02ZM42.61,67.88L-18.25,4.32L-18.37,4.44L-18.49,4.55L42.61,67.88ZM47.09,63.59L107.95,127.15L181.46,56.75L101.19,-5.82L47.09,63.59ZM35.89,54.86L89.99,-14.55L89.8,-14.69L89.61,-14.84L35.89,54.86ZM35.02,53.32L122.3,42.06L122.29,41.97L122.27,41.88L35.02,53.32ZM35.47,51.6L-34.68,-1.53L-35.07,-1.02L-35.45,-0.5L35.47,51.6ZM41.12,44.14L-28.68,-9.45L-28.85,-9.22L-29.03,-8.99L41.12,44.14ZM42.89,43.26L41.61,131.25L42.25,131.26H42.89V43.26ZM44.19,43.71L-9.2,113.67L215.38,285.05L127.86,16.45L44.19,43.71ZM42.02,37.05L-41.77,63.95L-41.71,64.13L-41.65,64.31L42.02,37.05ZM43.13,34.26L2.75,-43.93L2.48,-43.79L2.21,-43.65L43.13,34.26ZM52.85,29.24L93.23,107.43L93.27,107.41L93.32,107.38L52.85,29.24ZM60.7,56.95L21.35,135.66L217.89,233.93L143.51,27.16L60.7,56.95ZM52.62,34.49L135.43,4.7L101.44,-89.76L12.24,-43.7L52.62,34.49ZM46.83,37.48L6.45,-40.71L-59.95,-6.42L-36.87,64.66L46.83,37.48ZM52.64,55.37L-31.06,82.55L-31.03,82.64L-31,82.73L52.64,55.37ZM51.57,58.13L9.66,-19.25L9.35,-19.08L9.04,-18.91L51.57,58.13ZM48.76,57.48L-22.34,109.33L-22.27,109.42L-22.2,109.52L48.76,57.48ZM42.81,49.32L113.92,-2.53L44.16,-98.19L-27.33,-3.82L42.81,49.32ZM40.34,52.58L-29.8,-0.56L-82.25,68.66L-13.72,122.01L40.34,52.58ZM51.86,61.55L-2.2,130.98L-2.09,131.07L-1.98,131.15L51.86,61.55ZM52.03,65.07L-8.86,1.54L-8.89,1.56L-8.92,1.59L52.03,65.07ZM48.27,68.68L-12.68,5.2L-113.32,101.83L17.24,151.03L48.27,68.68ZM58.17,72.41L27.14,154.76L27.73,154.98L28.32,155.19L58.17,72.41ZM59.64,72.94L29.79,155.72L200.15,217.15L143.17,45.25L59.64,72.94ZM57.83,67.48L141.36,39.79L141.04,38.81L140.69,37.84L57.83,67.48ZM56.41,63.51L139.27,33.87L139.26,33.86L139.26,33.85L56.41,63.51ZM56.87,61.15L-8.6,2.35L-8.72,2.49L-8.85,2.62L56.87,61.15ZM60.66,56.93L100.01,-21.78L40.01,-51.78L-4.81,-1.87L60.66,56.93ZM63.94,71.71L-19.57,99.45L36.46,268.15L136.64,121.3L63.94,71.71ZM62.04,65.99L145.55,38.25L145.54,38.21L145.52,38.16L62.04,65.99ZM62.02,65.94L-20.89,95.44L-19.09,100.5L-16.69,105.29L62.02,65.94ZM61.07,63.27L-4.42,4.49L-39.39,43.45L-21.84,92.77L61.07,63.27ZM63.26,60.83L128.05,1.29L62.49,-70.06L-2.23,2.05L63.26,60.83ZM67.91,65.89L140.61,115.48L179.97,57.78L132.71,6.35L67.91,65.89ZM21.5,110.67C-1.49,101.32 -18.94,82.65 -27,59.93L138.86,1.07C130.36,-22.89 111.99,-42.52 87.82,-52.35L21.5,110.67ZM-26.89,60.26L-17.64,86L147.99,26.48L138.74,0.74L-26.89,60.26ZM0.37,115.77L7.58,123.62L137.2,4.56L129.99,-3.29L0.37,115.77ZM7.76,123.81C-19.57,94.24 -22.5,49.91 0.12,17.08L145.06,116.92C168.91,82.29 165.8,35.52 137.02,4.37L7.76,123.81ZM-0.09,17.38L-7.62,28.41L137.74,127.65L145.27,116.62L-0.09,17.38ZM-7.76,28.62C13.95,-3.37 55.01,-17.42 92.44,-3.88L32.58,161.62C71.89,175.84 115.03,161.12 137.88,127.44L-7.76,28.62ZM92.59,-3.83L86.79,-5.94L26.63,159.46L32.43,161.57L92.59,-3.83ZM56.71,-11.24H56.69V164.76H56.71V-11.24ZM87.81,-5.55L74.48,-10.59L12.24,154.03L25.57,159.07L87.81,-5.55ZM73.89,-10.82C103.75,0.23 122.65,25.57 128.15,52.34L-44.27,87.7C-38.46,116.03 -18.49,142.67 12.83,154.26L73.89,-10.82ZM128.36,53.4C133.71,81.27 124.97,110.7 103.71,131.21L-18.49,4.55C-40.89,26.16 -50.14,57.21 -44.48,86.64L128.36,53.4ZM103.47,131.44L107.95,127.15L-13.77,0.03L-18.25,4.32L103.47,131.44ZM101.19,-5.82L89.99,-14.55L-18.21,124.27L-7.01,133L101.19,-5.82ZM89.61,-14.84C108.35,-0.4 119.51,20.44 122.3,42.06L-52.26,64.58C-49.31,87.44 -37.53,109.38 -17.83,124.56L89.61,-14.84ZM122.27,41.88C125.26,64.68 118.9,86.67 106.39,103.7L-35.45,-0.5C-48.68,17.51 -55.38,40.74 -52.23,64.76L122.27,41.88ZM105.62,104.73L111.27,97.27L-29.03,-8.99L-34.68,-1.53L105.62,104.73ZM110.92,97.73C95.46,117.86 70.39,131.67 41.61,131.25L44.17,-44.73C14.01,-45.17 -12.36,-30.7 -28.68,-9.45L110.92,97.73ZM42.89,131.26C22.91,131.26 4.81,124.36 -9.2,113.67L97.58,-26.25C82.81,-37.52 63.81,-44.74 42.89,-44.74V131.26ZM127.86,16.45L125.69,9.79L-41.65,64.31L-39.48,70.97L127.86,16.45ZM125.81,10.15C138.08,48.38 122.19,92.13 84.05,112.17L2.21,-43.65C-37.91,-22.57 -54.74,23.54 -41.77,63.95L125.81,10.15ZM83.51,112.45L93.23,107.43L12.47,-48.95L2.75,-43.93L83.51,112.45ZM93.32,107.38C70.87,119.01 44.62,120.08 21.5,110.67L87.82,-52.35C63.52,-62.24 35.95,-61.11 12.38,-48.9L93.32,107.38ZM143.51,27.16L135.43,4.7L-30.18,64.28L-22.1,86.74L143.51,27.16ZM12.24,-43.7L6.45,-40.71L87.21,115.67L93,112.68L12.24,-43.7ZM-36.87,64.66L-31.06,82.55L136.34,28.19L130.53,10.3L-36.87,64.66ZM-31,82.73C-43.49,44.54 -27.82,1.05 9.66,-19.25L93.48,135.51C132.88,114.17 149.47,68.34 136.28,28.01L-31,82.73ZM9.04,-18.91C48.4,-40.64 95.3,-27.87 119.72,5.44L-22.2,109.52C3.54,144.63 52.82,157.96 94.1,135.17L9.04,-18.91ZM119.86,5.63L113.92,-2.53L-28.29,101.17L-22.34,109.33L119.86,5.63ZM-27.33,-3.82L-29.8,-0.56L110.48,105.72L112.95,102.46L-27.33,-3.82ZM-13.72,122.01L-2.2,130.98L105.92,-7.88L94.4,-16.85L-13.72,122.01ZM-1.98,131.15C-22.54,115.25 -34.1,91.53 -35.17,67.15L140.65,59.39C139.52,33.65 127.32,8.67 105.71,-8.05L-1.98,131.15ZM-35.17,67.15C-36.23,43.25 -27.2,19.11 -8.86,1.54L112.92,128.6C132.22,110.11 141.77,84.65 140.65,59.39L-35.17,67.15ZM-8.92,1.59L-12.68,5.2L109.22,132.16L112.98,128.55L-8.92,1.59ZM17.24,151.03L27.14,154.76L89.2,-9.94L79.3,-13.67L17.24,151.03ZM28.32,155.19L29.79,155.72L89.49,-9.84L88.02,-10.37L28.32,155.19ZM143.17,45.25L141.36,39.79L-25.7,95.17L-23.89,100.63L143.17,45.25ZM140.69,37.84L139.27,33.87L-26.45,93.15L-25.03,97.12L140.69,37.84ZM139.26,33.85C149.89,63.53 143.31,96.41 122.58,119.68L-8.85,2.62C-30.71,27.17 -37.65,61.87 -26.44,93.17L139.26,33.85ZM122.34,119.95L126.13,115.73L-4.81,-1.87L-8.6,2.35L122.34,119.95ZM21.31,135.64L21.35,135.66L100.06,-21.76L100.01,-21.78L21.31,135.64ZM147.45,43.97L145.55,38.25L-21.47,93.73L-19.57,99.45L147.45,43.97ZM62.04,65.99C145.52,38.16 145.52,38.16 145.52,38.16C145.52,38.15 145.52,38.15 145.52,38.15C145.52,38.14 145.51,38.14 145.51,38.13C145.51,38.12 145.51,38.11 145.5,38.1C145.49,38.08 145.49,38.05 145.48,38.03C145.46,37.98 145.45,37.94 145.43,37.89C145.4,37.8 145.37,37.7 145.33,37.59C145.26,37.39 145.18,37.16 145.1,36.92C144.93,36.44 144.71,35.81 144.43,35.07C144.13,34.27 142.84,30.8 140.73,26.59L-16.69,105.29C-18.79,101.1 -20.07,97.65 -20.36,96.87C-20.64,96.15 -20.86,95.53 -21.02,95.05C-21.11,94.81 -21.18,94.59 -21.25,94.38C-21.29,94.28 -21.32,94.18 -21.35,94.09C-21.37,94.04 -21.39,93.99 -21.4,93.95C-21.41,93.93 -21.42,93.9 -21.42,93.88C-21.43,93.87 -21.43,93.86 -21.43,93.85C-21.44,93.84 -21.44,93.84 -21.44,93.83C-21.44,93.83 -21.44,93.83 -21.44,93.82C-21.44,93.82 -21.44,93.82 62.04,65.99ZM144.93,36.44L143.98,33.77L-21.84,92.77L-20.89,95.44L144.93,36.44ZM126.56,122.05L128.75,119.61L-2.23,2.05L-4.42,4.49L126.56,122.05ZM-1.54,120.38L3.11,125.43L132.71,6.35L128.05,1.29L-1.54,120.38ZM-4.79,16.3L-8.76,22.12L136.64,121.3L140.61,115.48L-4.79,16.3Z"
android:strokeAlpha="0.5"
android:fillColor="#DFC0B2"
android:fillAlpha="0.5"/>
</group>
</vector>
Loading
Loading