common: switch to generating icons code at build-time

This commit is contained in:
Harsh Shandilya 2022-04-22 21:57:10 +05:30
parent d4f09b98e4
commit bfdb86d2e5
No known key found for this signature in database
GPG key ID: 366D7BBAD1031E80
21 changed files with 43 additions and 370 deletions

View file

@ -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.vector.ImageVector
import androidx.compose.ui.graphics.painter.Painter
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(imageVector = navItem.icon, contentDescription = navItem.label) },
icon = { Icon(painter = 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: ImageVector,
val icon: Painter,
val listStateResetCallback: () -> Unit,
)

View file

@ -24,7 +24,8 @@ tasks.withType<JavaCompile>().configureEach {
tasks.withType<KotlinCompile>().configureEach {
kotlinOptions {
allWarningsAsErrors = true
// TODO: Re-enable once warnings from Aurora-generated code are fixed
allWarningsAsErrors = false
jvmTarget = JavaVersion.VERSION_11.toString()
freeCompilerArgs = freeCompilerArgs + additionalCompilerArgs
languageVersion = "1.5"

View file

@ -11,7 +11,7 @@ spotless {
kotlin {
ktfmt(KTFMT_VERSION).googleStyle()
target("**/*.kt")
targetExclude("**/build/")
targetExclude("**/build/", "**/gen/")
}
kotlinGradle {
ktfmt(KTFMT_VERSION).googleStyle()

View file

@ -9,6 +9,7 @@ buildscript {
}
dependencies {
classpath(libs.r8)
classpath(libs.svg.transcoder)
classpath(libs.javapoet)
}
}

View file

@ -2,14 +2,27 @@
@file:Suppress("DSL_SCOPE_VIOLATION", "UnstableApiUsage")
import org.jetbrains.compose.compose
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import org.pushingpixels.aurora.tools.svgtranscoder.gradle.TranscodeTask
plugins {
kotlin("multiplatform")
alias(libs.plugins.compose)
id("dev.msfjarvis.claw.kotlin-common")
id("dev.msfjarvis.claw.android-library")
id("org.pushing-pixels.aurora.tools.svgtranscoder.gradle")
}
val transcodeTask =
tasks.register<TranscodeTask>("transcodeSvgs") {
inputDirectory = file("src/commonMain/svgs/")
outputDirectory = file("src/gen/kotlin/dev/msfjarvis/claw/common/res/clawicons")
outputPackageName = "dev.msfjarvis.claw.common.res.clawicons"
transcode()
}
tasks.withType<KotlinCompile>().configureEach { dependsOn(transcodeTask) }
kotlin {
android()
jvm("desktop")
@ -26,6 +39,7 @@ kotlin {
implementation(libs.compose.richtext.material)
implementation(libs.compose.richtext.ui)
}
kotlin.srcDir("src/gen/kotlin/")
}
sourceSets["androidMain"].apply {
dependencies {

View file

@ -104,7 +104,7 @@ fun PostLink(
) {
Row(modifier = Modifier.padding(16.dp), horizontalArrangement = Arrangement.spacedBy(16.dp)) {
Icon(
imageVector = ClawIcons.Web,
painter = ClawIcons.Web,
contentDescription = null,
tint = MaterialTheme.colorScheme.onSecondary,
)

View file

@ -158,7 +158,7 @@ fun SaveButton(
Crossfade(targetState = isSaved) { saved ->
Box(modifier = modifier.padding(12.dp)) {
Icon(
imageVector = if (saved) ClawIcons.Heart else ClawIcons.HeartBorder,
painter = 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)
@ -190,7 +190,7 @@ fun CommentsButton(
},
) {
Icon(
imageVector = ClawIcons.Comment,
painter = ClawIcons.Comment,
tint = MaterialTheme.colorScheme.secondary,
contentDescription = "Open comments",
modifier = Modifier.align(Alignment.Center),

View file

@ -1,22 +1,22 @@
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.newIcon
import dev.msfjarvis.claw.common.res.clawicons.webIcon
import dev.msfjarvis.claw.common.res.clawicons.comment_black_24dp
import dev.msfjarvis.claw.common.res.clawicons.favorite_black_24dp
import dev.msfjarvis.claw.common.res.clawicons.favorite_border_black_24dp
import dev.msfjarvis.claw.common.res.clawicons.new_releases_black_24dp
import dev.msfjarvis.claw.common.res.clawicons.public_black_24dp
import dev.msfjarvis.claw.common.res.clawicons.whatshot_black_24dp
object ClawIcons {
val Comment = commentIcon
val Comment = comment_black_24dp()
val Flame = flameIcon
val Flame = whatshot_black_24dp()
val Heart = heartIcon
val Heart = favorite_black_24dp()
val HeartBorder = heartBorderIcon
val HeartBorder = favorite_border_black_24dp()
val New = newIcon
val New = new_releases_black_24dp()
val Web = webIcon
val Web = public_black_24dp()
}

View file

@ -1,63 +0,0 @@
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()
}

View file

@ -1,52 +0,0 @@
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()
}

View file

@ -1,56 +0,0 @@
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()
}

View file

@ -1,45 +0,0 @@
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()
}

View file

@ -1,69 +0,0 @@
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
val newIcon: ImageVector by unsafeLazy {
Builder(
name = "NewIcon",
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(23.0f, 12.0f)
lineToRelative(-2.44f, -2.78f)
lineToRelative(0.34f, -3.68f)
lineToRelative(-3.61f, -0.82f)
lineToRelative(-1.89f, -3.18f)
lineTo(12.0f, 3.0f)
lineTo(8.6f, 1.54f)
lineTo(6.71f, 4.72f)
lineToRelative(-3.61f, 0.81f)
lineToRelative(0.34f, 3.68f)
lineTo(1.0f, 12.0f)
lineToRelative(2.44f, 2.78f)
lineToRelative(-0.34f, 3.69f)
lineToRelative(3.61f, 0.82f)
lineToRelative(1.89f, 3.18f)
lineTo(12.0f, 21.0f)
lineToRelative(3.4f, 1.46f)
lineToRelative(1.89f, -3.18f)
lineToRelative(3.61f, -0.82f)
lineToRelative(-0.34f, -3.68f)
lineTo(23.0f, 12.0f)
close()
moveTo(13.0f, 17.0f)
horizontalLineToRelative(-2.0f)
verticalLineToRelative(-2.0f)
horizontalLineToRelative(2.0f)
verticalLineToRelative(2.0f)
close()
moveTo(13.0f, 13.0f)
horizontalLineToRelative(-2.0f)
lineTo(11.0f, 7.0f)
horizontalLineToRelative(2.0f)
verticalLineToRelative(6.0f)
close()
}
}
.build()
}

View file

@ -1,65 +0,0 @@
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()
}

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M21.99 4c0-1.1-.89-2-1.99-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h14l4 4-.01-18zM20 4v13.17L18.83 16H4V4h16zM6 12h12v2H6zm0-3h12v2H6zm0-3h12v2H6z"/></svg>

After

Width:  |  Height:  |  Size: 301 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z"/></svg>

After

Width:  |  Height:  |  Size: 333 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M16.5 3c-1.74 0-3.41.81-4.5 2.09C10.91 3.81 9.24 3 7.5 3 4.42 3 2 5.42 2 8.5c0 3.78 3.4 6.86 8.55 11.54L12 21.35l1.45-1.32C18.6 15.36 22 12.28 22 8.5 22 5.42 19.58 3 16.5 3zm-4.4 15.55l-.1.1-.1-.1C7.14 14.24 4 11.39 4 8.5 4 6.5 5.5 5 7.5 5c1.54 0 3.04.99 3.57 2.36h1.87C13.46 5.99 14.96 5 16.5 5c2 0 3.5 1.5 3.5 3.5 0 2.89-3.14 5.74-7.9 10.05z"/></svg>

After

Width:  |  Height:  |  Size: 502 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M23 12l-2.44-2.78.34-3.68-3.61-.82-1.89-3.18L12 3 8.6 1.54 6.71 4.72l-3.61.81.34 3.68L1 12l2.44 2.78-.34 3.69 3.61.82 1.89 3.18L12 21l3.4 1.46 1.89-3.18 3.61-.82-.34-3.68L23 12zm-4.51 2.11l.26 2.79-2.74.62-1.43 2.41L12 18.82l-2.58 1.11-1.43-2.41-2.74-.62.26-2.8L3.66 12l1.85-2.12-.26-2.78 2.74-.61 1.43-2.41L12 5.18l2.58-1.11 1.43 2.41 2.74.62-.26 2.79L20.34 12l-1.85 2.11zM11 15h2v2h-2zm0-8h2v6h-2z"/></svg>

After

Width:  |  Height:  |  Size: 558 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM4 12c0-.61.08-1.21.21-1.78L8.99 15v1c0 1.1.9 2 2 2v1.93C7.06 19.43 4 16.07 4 12zm13.89 5.4c-.26-.81-1-1.4-1.9-1.4h-1v-3c0-.55-.45-1-1-1h-6v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41C17.92 5.77 20 8.65 20 12c0 2.08-.81 3.98-2.11 5.4z"/></svg>

After

Width:  |  Height:  |  Size: 460 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M11.57 13.16c-1.36.28-2.17 1.16-2.17 2.41 0 1.34 1.11 2.42 2.49 2.42 2.05 0 3.71-1.66 3.71-3.71 0-1.07-.15-2.12-.46-3.12-.79 1.07-2.2 1.72-3.57 2zM13.5.67s.74 2.65.74 4.8c0 2.06-1.35 3.73-3.41 3.73-2.07 0-3.63-1.67-3.63-3.73l.03-.36C5.21 7.51 4 10.62 4 14c0 4.42 3.58 8 8 8s8-3.58 8-8C20 8.61 17.41 3.8 13.5.67zM12 20c-3.31 0-6-2.69-6-6 0-1.53.3-3.04.86-4.43 1.01 1.01 2.41 1.63 3.97 1.63 2.66 0 4.75-1.83 5.28-4.43C17.34 8.97 18 11.44 18 14c0 3.31-2.69 6-6 6z"/></svg>

After

Width:  |  Height:  |  Size: 619 B

View file

@ -49,6 +49,7 @@ multiplatform-paging = "io.github.kuuuurt:multiplatform-paging:0.4.7"
r8 = "com.android.tools:r8:3.3.28"
retrofit-kotlinxSerializationConverter = "com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter:0.8.0"
retrofit-lib = "com.squareup.retrofit2:retrofit:2.9.0"
svg-transcoder = "org.pushing-pixels:aurora-tools-svg-transcoder-gradle-plugin:1.1.0"
sqldelight-androidDriver = { module = "app.cash.sqldelight:android-driver", version.ref = "sqldelight" }
sqldelight-extensions-coroutines = { module = "app.cash.sqldelight:coroutines-extensions-jvm", version.ref = "sqldelight" }
sqldelight-jvmDriver = { module = "app.cash.sqldelight:sqlite-driver", version.ref = "sqldelight" }