From 0a1634bb833b9ead6d5e53cf6a96a830265e0d56 Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Fri, 22 Apr 2022 20:29:00 +0530 Subject: [PATCH] all: migrate from drawables to generated ImageVectors --- .../msfjarvis/claw/android/ui/LobstersApp.kt | 7 +- .../ui/decorations/ClawNavigationBar.kt | 6 +- .../main/res/drawable/ic_whatshot_24dp.xml | 9 --- .../dev/msfjarvis/claw/common/res/drawable.kt | 14 ---- .../res/drawable/ic_favorite_24dp.xml | 9 --- .../res/drawable/ic_favorite_border_24dp.xml | 9 --- .../res/drawable/ic_insert_comment_24dp.xml | 9 --- .../androidMain/res/drawable/ic_web_24dp.xml | 9 --- .../claw/common/comments/CommentEntry.kt | 4 +- .../claw/common/posts/LobstersCard.kt | 8 +-- .../msfjarvis/claw/common/res/ClawIcons.kt | 19 ++++++ .../claw/common/res/clawicons/CommentIcon.kt | 63 ++++++++++++++++++ .../claw/common/res/clawicons/FlameIcon.kt | 52 +++++++++++++++ .../common/res/clawicons/HeartBorderIcon.kt | 56 ++++++++++++++++ .../claw/common/res/clawicons/HeartIcon.kt | 45 +++++++++++++ .../claw/common/res/clawicons/WebIcon.kt | 65 +++++++++++++++++++ .../dev/msfjarvis/claw/common/res/drawable.kt | 13 ---- .../kotlin/dev/msfjarvis/claw/common/util.kt | 3 + .../dev/msfjarvis/claw/common/res/drawable.kt | 13 ---- 19 files changed, 314 insertions(+), 99 deletions(-) delete mode 100644 android/src/main/res/drawable/ic_whatshot_24dp.xml delete mode 100644 common/src/androidMain/kotlin/dev/msfjarvis/claw/common/res/drawable.kt delete mode 100644 common/src/androidMain/res/drawable/ic_favorite_24dp.xml delete mode 100644 common/src/androidMain/res/drawable/ic_favorite_border_24dp.xml delete mode 100644 common/src/androidMain/res/drawable/ic_insert_comment_24dp.xml delete mode 100644 common/src/androidMain/res/drawable/ic_web_24dp.xml create mode 100644 common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/ClawIcons.kt create mode 100644 common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/clawicons/CommentIcon.kt create mode 100644 common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/clawicons/FlameIcon.kt create mode 100644 common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/clawicons/HeartBorderIcon.kt create mode 100644 common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/clawicons/HeartIcon.kt create mode 100644 common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/clawicons/WebIcon.kt delete mode 100644 common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/drawable.kt create mode 100644 common/src/commonMain/kotlin/dev/msfjarvis/claw/common/util.kt delete mode 100644 common/src/desktopMain/kotlin/dev/msfjarvis/claw/common/res/drawable.kt diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/LobstersApp.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/LobstersApp.kt index fee5cb69..0a9ee6f0 100644 --- a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/LobstersApp.kt +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/LobstersApp.kt @@ -21,7 +21,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalConfiguration import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalUriHandler -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.lifecycle.viewmodel.compose.viewModel @@ -42,10 +41,10 @@ import dev.msfjarvis.claw.android.ui.lists.HottestPosts import dev.msfjarvis.claw.android.ui.navigation.Destinations import dev.msfjarvis.claw.android.viewmodel.ClawViewModel import dev.msfjarvis.claw.api.LobstersApi -import dev.msfjarvis.claw.common.R as commonR import dev.msfjarvis.claw.common.comments.CommentsPage import dev.msfjarvis.claw.common.comments.HTMLConverter import dev.msfjarvis.claw.common.comments.LocalHTMLConverter +import dev.msfjarvis.claw.common.res.ClawIcons import dev.msfjarvis.claw.common.theme.LobstersTheme import dev.msfjarvis.claw.common.urllauncher.UrlLauncher import kotlinx.coroutines.launch @@ -85,12 +84,12 @@ fun LobstersApp( NavigationItem( label = "Hottest", route = Destinations.Hottest.getRoute(), - icon = painterResource(R.drawable.ic_whatshot_24dp), + icon = ClawIcons.Flame, ) { coroutineScope.launch { networkListState.animateScrollToItem(index = 0) } }, NavigationItem( label = "Saved", route = Destinations.Saved.getRoute(), - icon = painterResource(commonR.drawable.ic_favorite_24dp), + icon = ClawIcons.Heart, ) { coroutineScope.launch { savedListState.animateScrollToItem(index = 0) } }, ) diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/decorations/ClawNavigationBar.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/decorations/ClawNavigationBar.kt index 3c796c2d..217991e1 100644 --- a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/decorations/ClawNavigationBar.kt +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/decorations/ClawNavigationBar.kt @@ -7,7 +7,7 @@ import androidx.compose.material3.NavigationBarItem import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.painter.Painter +import androidx.compose.ui.graphics.vector.ImageVector import androidx.navigation.NavController import dev.msfjarvis.claw.android.ui.navigation.Destinations import dev.msfjarvis.claw.android.ui.slideInAnimation @@ -29,7 +29,7 @@ fun ClawNavigationBar( NavigationBar(modifier = modifier) { items.forEach { navItem -> NavigationBarItem( - icon = { Icon(painter = navItem.icon, contentDescription = navItem.label) }, + icon = { Icon(imageVector = navItem.icon, contentDescription = navItem.label) }, label = { Text(text = navItem.label) }, selected = navController.currentDestination?.route == navItem.route, onClick = { @@ -51,6 +51,6 @@ fun ClawNavigationBar( class NavigationItem( val label: String, val route: String, - val icon: Painter, + val icon: ImageVector, val listStateResetCallback: () -> Unit, ) diff --git a/android/src/main/res/drawable/ic_whatshot_24dp.xml b/android/src/main/res/drawable/ic_whatshot_24dp.xml deleted file mode 100644 index 531de533..00000000 --- a/android/src/main/res/drawable/ic_whatshot_24dp.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/common/src/androidMain/kotlin/dev/msfjarvis/claw/common/res/drawable.kt b/common/src/androidMain/kotlin/dev/msfjarvis/claw/common/res/drawable.kt deleted file mode 100644 index e93e6314..00000000 --- a/common/src/androidMain/kotlin/dev/msfjarvis/claw/common/res/drawable.kt +++ /dev/null @@ -1,14 +0,0 @@ -package dev.msfjarvis.claw.common.res - -import androidx.compose.runtime.Composable -import androidx.compose.ui.res.painterResource -import dev.msfjarvis.claw.common.R - -actual val commentIcon - @Composable get() = painterResource(R.drawable.ic_insert_comment_24dp) -actual val heartIcon - @Composable get() = painterResource(R.drawable.ic_favorite_24dp) -actual val heartBorderIcon - @Composable get() = painterResource(R.drawable.ic_favorite_border_24dp) -actual val webIcon - @Composable get() = painterResource(R.drawable.ic_web_24dp) diff --git a/common/src/androidMain/res/drawable/ic_favorite_24dp.xml b/common/src/androidMain/res/drawable/ic_favorite_24dp.xml deleted file mode 100644 index 88b91493..00000000 --- a/common/src/androidMain/res/drawable/ic_favorite_24dp.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/common/src/androidMain/res/drawable/ic_favorite_border_24dp.xml b/common/src/androidMain/res/drawable/ic_favorite_border_24dp.xml deleted file mode 100644 index 68b4759e..00000000 --- a/common/src/androidMain/res/drawable/ic_favorite_border_24dp.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/common/src/androidMain/res/drawable/ic_insert_comment_24dp.xml b/common/src/androidMain/res/drawable/ic_insert_comment_24dp.xml deleted file mode 100644 index c8057e91..00000000 --- a/common/src/androidMain/res/drawable/ic_insert_comment_24dp.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/common/src/androidMain/res/drawable/ic_web_24dp.xml b/common/src/androidMain/res/drawable/ic_web_24dp.xml deleted file mode 100644 index d9911a76..00000000 --- a/common/src/androidMain/res/drawable/ic_web_24dp.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/comments/CommentEntry.kt b/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/comments/CommentEntry.kt index 21509f78..7c30a0ee 100644 --- a/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/comments/CommentEntry.kt +++ b/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/comments/CommentEntry.kt @@ -38,7 +38,7 @@ import dev.msfjarvis.claw.common.posts.PostActions import dev.msfjarvis.claw.common.posts.PostTitle import dev.msfjarvis.claw.common.posts.Submitter import dev.msfjarvis.claw.common.posts.TagRow -import dev.msfjarvis.claw.common.res.webIcon +import dev.msfjarvis.claw.common.res.ClawIcons import dev.msfjarvis.claw.model.Comment import dev.msfjarvis.claw.model.LobstersPostDetails @@ -104,7 +104,7 @@ fun PostLink( ) { Row(modifier = Modifier.padding(16.dp), horizontalArrangement = Arrangement.spacedBy(16.dp)) { Icon( - painter = webIcon, + imageVector = ClawIcons.Web, contentDescription = null, tint = MaterialTheme.colorScheme.onSecondary, ) diff --git a/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/posts/LobstersCard.kt b/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/posts/LobstersCard.kt index 92174ba6..94ebddbd 100644 --- a/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/posts/LobstersCard.kt +++ b/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/posts/LobstersCard.kt @@ -38,9 +38,7 @@ import androidx.compose.ui.semantics.Role import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import com.google.accompanist.flowlayout.FlowRow -import dev.msfjarvis.claw.common.res.commentIcon -import dev.msfjarvis.claw.common.res.heartBorderIcon -import dev.msfjarvis.claw.common.res.heartIcon +import dev.msfjarvis.claw.common.res.ClawIcons import dev.msfjarvis.claw.common.ui.Divider import dev.msfjarvis.claw.common.ui.NetworkImage import dev.msfjarvis.claw.database.local.SavedPost @@ -160,7 +158,7 @@ fun SaveButton( Crossfade(targetState = isSaved) { saved -> Box(modifier = modifier.padding(12.dp)) { Icon( - painter = if (saved) heartIcon else heartBorderIcon, + imageVector = if (saved) ClawIcons.Heart else ClawIcons.HeartBorder, tint = MaterialTheme.colorScheme.secondary, contentDescription = if (saved) "Remove from saved posts" else "Add to saved posts", modifier = Modifier.align(Alignment.Center) @@ -192,7 +190,7 @@ fun CommentsButton( }, ) { Icon( - painter = commentIcon, + imageVector = ClawIcons.Comment, tint = MaterialTheme.colorScheme.secondary, contentDescription = "Open comments", modifier = Modifier.align(Alignment.Center), diff --git a/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/ClawIcons.kt b/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/ClawIcons.kt new file mode 100644 index 00000000..0e34d3b8 --- /dev/null +++ b/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/ClawIcons.kt @@ -0,0 +1,19 @@ +package dev.msfjarvis.claw.common.res + +import dev.msfjarvis.claw.common.res.clawicons.commentIcon +import dev.msfjarvis.claw.common.res.clawicons.flameIcon +import dev.msfjarvis.claw.common.res.clawicons.heartBorderIcon +import dev.msfjarvis.claw.common.res.clawicons.heartIcon +import dev.msfjarvis.claw.common.res.clawicons.webIcon + +object ClawIcons { + val Comment = commentIcon + + val Flame = flameIcon + + val Heart = heartIcon + + val HeartBorder = heartBorderIcon + + val Web = webIcon +} diff --git a/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/clawicons/CommentIcon.kt b/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/clawicons/CommentIcon.kt new file mode 100644 index 00000000..f1d4eede --- /dev/null +++ b/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/clawicons/CommentIcon.kt @@ -0,0 +1,63 @@ +package dev.msfjarvis.claw.common.res.clawicons + +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.PathFillType.Companion.NonZero +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.StrokeCap.Companion.Butt +import androidx.compose.ui.graphics.StrokeJoin.Companion.Miter +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.ImageVector.Builder +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.unit.dp +import dev.msfjarvis.claw.common.unsafeLazy + +internal val commentIcon: ImageVector by unsafeLazy { + Builder( + name = "CommentIcon", + defaultWidth = 24.0.dp, + defaultHeight = 24.0.dp, + viewportWidth = 24.0f, + viewportHeight = 24.0f + ) + .apply { + path( + fill = SolidColor(Color(0xFF000000)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(20.0f, 2.0f) + lineTo(4.0f, 2.0f) + curveToRelative(-1.1f, 0.0f, -2.0f, 0.9f, -2.0f, 2.0f) + verticalLineToRelative(12.0f) + curveToRelative(0.0f, 1.1f, 0.9f, 2.0f, 2.0f, 2.0f) + horizontalLineToRelative(14.0f) + lineToRelative(4.0f, 4.0f) + lineTo(22.0f, 4.0f) + curveToRelative(0.0f, -1.1f, -0.9f, -2.0f, -2.0f, -2.0f) + close() + moveTo(18.0f, 14.0f) + lineTo(6.0f, 14.0f) + verticalLineToRelative(-2.0f) + horizontalLineToRelative(12.0f) + verticalLineToRelative(2.0f) + close() + moveTo(18.0f, 11.0f) + lineTo(6.0f, 11.0f) + lineTo(6.0f, 9.0f) + horizontalLineToRelative(12.0f) + verticalLineToRelative(2.0f) + close() + moveTo(18.0f, 8.0f) + lineTo(6.0f, 8.0f) + lineTo(6.0f, 6.0f) + horizontalLineToRelative(12.0f) + verticalLineToRelative(2.0f) + close() + } + } + .build() +} diff --git a/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/clawicons/FlameIcon.kt b/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/clawicons/FlameIcon.kt new file mode 100644 index 00000000..b71fd2e5 --- /dev/null +++ b/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/clawicons/FlameIcon.kt @@ -0,0 +1,52 @@ +package dev.msfjarvis.claw.common.res.clawicons + +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.PathFillType.Companion.NonZero +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.StrokeCap.Companion.Butt +import androidx.compose.ui.graphics.StrokeJoin.Companion.Miter +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.ImageVector.Builder +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.unit.dp +import dev.msfjarvis.claw.common.unsafeLazy + +internal val flameIcon: ImageVector by unsafeLazy { + Builder( + name = "FlameIcon", + defaultWidth = 24.0.dp, + defaultHeight = 24.0.dp, + viewportWidth = 24.0f, + viewportHeight = 24.0f + ) + .apply { + path( + fill = SolidColor(Color(0xFF000000)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(13.5f, 0.67f) + reflectiveCurveToRelative(0.74f, 2.65f, 0.74f, 4.8f) + curveToRelative(0.0f, 2.06f, -1.35f, 3.73f, -3.41f, 3.73f) + curveToRelative(-2.07f, 0.0f, -3.63f, -1.67f, -3.63f, -3.73f) + lineToRelative(0.03f, -0.36f) + curveTo(5.21f, 7.51f, 4.0f, 10.62f, 4.0f, 14.0f) + curveToRelative(0.0f, 4.42f, 3.58f, 8.0f, 8.0f, 8.0f) + reflectiveCurveToRelative(8.0f, -3.58f, 8.0f, -8.0f) + curveTo(20.0f, 8.61f, 17.41f, 3.8f, 13.5f, 0.67f) + close() + moveTo(11.71f, 19.0f) + curveToRelative(-1.78f, 0.0f, -3.22f, -1.4f, -3.22f, -3.14f) + curveToRelative(0.0f, -1.62f, 1.05f, -2.76f, 2.81f, -3.12f) + curveToRelative(1.77f, -0.36f, 3.6f, -1.21f, 4.62f, -2.58f) + curveToRelative(0.39f, 1.29f, 0.59f, 2.65f, 0.59f, 4.04f) + curveToRelative(0.0f, 2.65f, -2.15f, 4.8f, -4.8f, 4.8f) + close() + } + } + .build() +} diff --git a/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/clawicons/HeartBorderIcon.kt b/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/clawicons/HeartBorderIcon.kt new file mode 100644 index 00000000..ee5f61e5 --- /dev/null +++ b/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/clawicons/HeartBorderIcon.kt @@ -0,0 +1,56 @@ +package dev.msfjarvis.claw.common.res.clawicons + +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.PathFillType.Companion.NonZero +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.StrokeCap.Companion.Butt +import androidx.compose.ui.graphics.StrokeJoin.Companion.Miter +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.ImageVector.Builder +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.unit.dp +import dev.msfjarvis.claw.common.unsafeLazy + +internal val heartBorderIcon: ImageVector by unsafeLazy { + Builder( + name = "HeartBorder", + defaultWidth = 24.0.dp, + defaultHeight = 24.0.dp, + viewportWidth = 24.0f, + viewportHeight = 24.0f + ) + .apply { + path( + fill = SolidColor(Color(0xFF000000)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(16.5f, 3.0f) + curveToRelative(-1.74f, 0.0f, -3.41f, 0.81f, -4.5f, 2.09f) + curveTo(10.91f, 3.81f, 9.24f, 3.0f, 7.5f, 3.0f) + curveTo(4.42f, 3.0f, 2.0f, 5.42f, 2.0f, 8.5f) + curveToRelative(0.0f, 3.78f, 3.4f, 6.86f, 8.55f, 11.54f) + lineTo(12.0f, 21.35f) + lineToRelative(1.45f, -1.32f) + curveTo(18.6f, 15.36f, 22.0f, 12.28f, 22.0f, 8.5f) + curveTo(22.0f, 5.42f, 19.58f, 3.0f, 16.5f, 3.0f) + close() + moveTo(12.1f, 18.55f) + lineToRelative(-0.1f, 0.1f) + lineToRelative(-0.1f, -0.1f) + curveTo(7.14f, 14.24f, 4.0f, 11.39f, 4.0f, 8.5f) + curveTo(4.0f, 6.5f, 5.5f, 5.0f, 7.5f, 5.0f) + curveToRelative(1.54f, 0.0f, 3.04f, 0.99f, 3.57f, 2.36f) + horizontalLineToRelative(1.87f) + curveTo(13.46f, 5.99f, 14.96f, 5.0f, 16.5f, 5.0f) + curveToRelative(2.0f, 0.0f, 3.5f, 1.5f, 3.5f, 3.5f) + curveToRelative(0.0f, 2.89f, -3.14f, 5.74f, -7.9f, 10.05f) + close() + } + } + .build() +} diff --git a/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/clawicons/HeartIcon.kt b/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/clawicons/HeartIcon.kt new file mode 100644 index 00000000..c2b25190 --- /dev/null +++ b/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/clawicons/HeartIcon.kt @@ -0,0 +1,45 @@ +package dev.msfjarvis.claw.common.res.clawicons + +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.PathFillType.Companion.NonZero +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.StrokeCap.Companion.Butt +import androidx.compose.ui.graphics.StrokeJoin.Companion.Miter +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.ImageVector.Builder +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.unit.dp +import dev.msfjarvis.claw.common.unsafeLazy + +internal val heartIcon: ImageVector by unsafeLazy { + Builder( + name = "HeartIcon", + defaultWidth = 24.0.dp, + defaultHeight = 24.0.dp, + viewportWidth = 24.0f, + viewportHeight = 24.0f + ) + .apply { + path( + fill = SolidColor(Color(0xFF000000)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(12.0f, 21.35f) + lineToRelative(-1.45f, -1.32f) + curveTo(5.4f, 15.36f, 2.0f, 12.28f, 2.0f, 8.5f) + curveTo(2.0f, 5.42f, 4.42f, 3.0f, 7.5f, 3.0f) + curveToRelative(1.74f, 0.0f, 3.41f, 0.81f, 4.5f, 2.09f) + curveTo(13.09f, 3.81f, 14.76f, 3.0f, 16.5f, 3.0f) + curveTo(19.58f, 3.0f, 22.0f, 5.42f, 22.0f, 8.5f) + curveToRelative(0.0f, 3.78f, -3.4f, 6.86f, -8.55f, 11.54f) + lineTo(12.0f, 21.35f) + close() + } + } + .build() +} diff --git a/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/clawicons/WebIcon.kt b/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/clawicons/WebIcon.kt new file mode 100644 index 00000000..cfb28e1a --- /dev/null +++ b/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/clawicons/WebIcon.kt @@ -0,0 +1,65 @@ +package dev.msfjarvis.claw.common.res.clawicons + +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.PathFillType.Companion.NonZero +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.StrokeCap.Companion.Butt +import androidx.compose.ui.graphics.StrokeJoin.Companion.Miter +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.ImageVector.Builder +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.unit.dp +import dev.msfjarvis.claw.common.unsafeLazy + +internal val webIcon: ImageVector by unsafeLazy { + Builder( + name = "WebIcon", + defaultWidth = 24.0.dp, + defaultHeight = 24.0.dp, + viewportWidth = 24.0f, + viewportHeight = 24.0f + ) + .apply { + path( + fill = SolidColor(Color(0xFF000000)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(12.0f, 2.0f) + curveTo(6.48f, 2.0f, 2.0f, 6.48f, 2.0f, 12.0f) + reflectiveCurveToRelative(4.48f, 10.0f, 10.0f, 10.0f) + reflectiveCurveToRelative(10.0f, -4.48f, 10.0f, -10.0f) + reflectiveCurveTo(17.52f, 2.0f, 12.0f, 2.0f) + close() + moveTo(4.0f, 12.0f) + curveToRelative(0.0f, -0.61f, 0.08f, -1.21f, 0.21f, -1.78f) + lineTo(8.99f, 15.0f) + verticalLineToRelative(1.0f) + curveToRelative(0.0f, 1.1f, 0.9f, 2.0f, 2.0f, 2.0f) + verticalLineToRelative(1.93f) + curveTo(7.06f, 19.43f, 4.0f, 16.07f, 4.0f, 12.0f) + close() + moveTo(17.89f, 17.4f) + curveToRelative(-0.26f, -0.81f, -1.0f, -1.4f, -1.9f, -1.4f) + horizontalLineToRelative(-1.0f) + verticalLineToRelative(-3.0f) + curveToRelative(0.0f, -0.55f, -0.45f, -1.0f, -1.0f, -1.0f) + horizontalLineToRelative(-6.0f) + verticalLineToRelative(-2.0f) + horizontalLineToRelative(2.0f) + curveToRelative(0.55f, 0.0f, 1.0f, -0.45f, 1.0f, -1.0f) + lineTo(10.99f, 7.0f) + horizontalLineToRelative(2.0f) + curveToRelative(1.1f, 0.0f, 2.0f, -0.9f, 2.0f, -2.0f) + verticalLineToRelative(-0.41f) + curveTo(17.92f, 5.77f, 20.0f, 8.65f, 20.0f, 12.0f) + curveToRelative(0.0f, 2.08f, -0.81f, 3.98f, -2.11f, 5.4f) + close() + } + } + .build() +} diff --git a/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/drawable.kt b/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/drawable.kt deleted file mode 100644 index 6bdb7e25..00000000 --- a/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/drawable.kt +++ /dev/null @@ -1,13 +0,0 @@ -package dev.msfjarvis.claw.common.res - -import androidx.compose.runtime.Composable -import androidx.compose.ui.graphics.painter.Painter - -expect val commentIcon: Painter - @Composable get -expect val heartIcon: Painter - @Composable get -expect val heartBorderIcon: Painter - @Composable get -expect val webIcon: Painter - @Composable get diff --git a/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/util.kt b/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/util.kt new file mode 100644 index 00000000..fa1c756d --- /dev/null +++ b/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/util.kt @@ -0,0 +1,3 @@ +package dev.msfjarvis.claw.common + +fun unsafeLazy(initializer: () -> T) = lazy(LazyThreadSafetyMode.NONE, initializer) diff --git a/common/src/desktopMain/kotlin/dev/msfjarvis/claw/common/res/drawable.kt b/common/src/desktopMain/kotlin/dev/msfjarvis/claw/common/res/drawable.kt deleted file mode 100644 index 141eaa56..00000000 --- a/common/src/desktopMain/kotlin/dev/msfjarvis/claw/common/res/drawable.kt +++ /dev/null @@ -1,13 +0,0 @@ -package dev.msfjarvis.claw.common.res - -import androidx.compose.runtime.Composable -import androidx.compose.ui.res.painterResource - -actual val commentIcon - @Composable get() = painterResource("ic_insert_comment_24dp.xml") -actual val heartIcon - @Composable get() = painterResource("ic_favorite_24dp.xml") -actual val heartBorderIcon - @Composable get() = painterResource("ic_favorite_border_24dp.xml") -actual val webIcon - @Composable get() = painterResource("ic_web_24dp.xml")