Update: Replace ActionStates' Material icons with Phosphor

This commit is contained in:
machiav3lli 2022-10-04 02:19:01 +02:00
parent 1f97ce605f
commit b377067793
8 changed files with 441 additions and 21 deletions

View File

@ -6,18 +6,18 @@ import android.content.pm.PermissionInfo
import android.net.Uri import android.net.Uri
import androidx.annotation.DrawableRes import androidx.annotation.DrawableRes
import androidx.annotation.StringRes import androidx.annotation.StringRes
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.rounded.Close
import androidx.compose.material.icons.rounded.Delete
import androidx.compose.material.icons.rounded.Download
import androidx.compose.material.icons.rounded.Favorite
import androidx.compose.material.icons.rounded.FavoriteBorder
import androidx.compose.material.icons.rounded.Launch
import androidx.compose.material.icons.rounded.Share
import androidx.compose.material.icons.rounded.Tune
import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.graphics.vector.ImageVector
import com.machiav3lli.fdroid.R import com.machiav3lli.fdroid.R
import com.machiav3lli.fdroid.content.Preferences import com.machiav3lli.fdroid.content.Preferences
import com.machiav3lli.fdroid.ui.compose.icons.Phosphor
import com.machiav3lli.fdroid.ui.compose.icons.phosphor.ArrowSquareOut
import com.machiav3lli.fdroid.ui.compose.icons.phosphor.Download
import com.machiav3lli.fdroid.ui.compose.icons.phosphor.HeartStraight
import com.machiav3lli.fdroid.ui.compose.icons.phosphor.HeartStraightFill
import com.machiav3lli.fdroid.ui.compose.icons.phosphor.ShareNetwork
import com.machiav3lli.fdroid.ui.compose.icons.phosphor.SlidersHorizontal
import com.machiav3lli.fdroid.ui.compose.icons.phosphor.TrashSimple
import com.machiav3lli.fdroid.ui.compose.icons.phosphor.X
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable
import kotlinx.serialization.decodeFromString import kotlinx.serialization.decodeFromString
import kotlinx.serialization.encodeToString import kotlinx.serialization.encodeToString
@ -99,7 +99,7 @@ sealed interface ComponentState {
sealed class DownloadState( sealed class DownloadState(
@StringRes override val textId: Int, @StringRes override val textId: Int,
override val icon: ImageVector = Icons.Rounded.Close override val icon: ImageVector = Phosphor.X
) : ComponentState { ) : ComponentState {
object Pending : DownloadState(R.string.pending) object Pending : DownloadState(R.string.pending)
@ -112,19 +112,19 @@ sealed class DownloadState(
sealed class ActionState( sealed class ActionState(
@StringRes override val textId: Int, @StringRes override val textId: Int,
override val icon: ImageVector = Icons.Rounded.Download override val icon: ImageVector = Phosphor.Download
) : ComponentState { ) : ComponentState {
object Install : ActionState(R.string.install, Icons.Rounded.Download) object Install : ActionState(R.string.install, Phosphor.Download)
object Update : ActionState(R.string.update, Icons.Rounded.Download) object Update : ActionState(R.string.update, Phosphor.Download)
object Uninstall : ActionState(R.string.uninstall, Icons.Rounded.Delete) object Uninstall : ActionState(R.string.uninstall, Phosphor.TrashSimple)
object Launch : ActionState(R.string.launch, Icons.Rounded.Launch) object Launch : ActionState(R.string.launch, Phosphor.ArrowSquareOut)
object Details : ActionState(R.string.details, Icons.Rounded.Tune) object Details : ActionState(R.string.details, Phosphor.SlidersHorizontal)
object Share : ActionState(R.string.share, Icons.Rounded.Share) object Share : ActionState(R.string.share, Phosphor.ShareNetwork)
class Cancel(@StringRes stateId: Int) : ActionState(stateId, Icons.Rounded.Close) class Cancel(@StringRes stateId: Int) : ActionState(stateId, Phosphor.X)
object NoAction : ActionState(R.string.no_action_possible, Icons.Rounded.Close) object NoAction : ActionState(R.string.no_action_possible, Phosphor.X)
object Bookmark : ActionState(R.string.favorite_add, Icons.Rounded.FavoriteBorder) object Bookmark : ActionState(R.string.favorite_add, Phosphor.HeartStraight)
object Bookmarked : ActionState(R.string.favorite_remove, Icons.Rounded.Favorite) object Bookmarked : ActionState(R.string.favorite_remove, Phosphor.HeartStraightFill)
} }
open class LinkType( open class LinkType(

View File

@ -0,0 +1,66 @@
package com.machiav3lli.fdroid.ui.compose.icons.phosphor
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 com.machiav3lli.fdroid.ui.compose.icons.Phosphor
val Phosphor.ArrowSquareOut: ImageVector
get() {
if (_arrow_square_out != null) {
return _arrow_square_out!!
}
_arrow_square_out = Builder(
name = "Arrow-square-out",
defaultWidth = 32.0.dp,
defaultHeight = 32.0.dp,
viewportWidth = 256.0f,
viewportHeight = 256.0f,
).apply {
path(
fill = SolidColor(Color(0xFF000000)), stroke = null, strokeLineWidth = 0.0f,
strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = 4.0f,
pathFillType = NonZero
) {
moveTo(224.0f, 100.0f)
arcToRelative(8.0f, 8.0f, 0.0f, false, true, -16.0f, 0.0f)
lineTo(208.0f, 59.3f)
lineToRelative(-58.4f, 58.4f)
arcTo(8.0f, 8.0f, 0.0f, false, true, 144.0f, 120.0f)
arcToRelative(8.3f, 8.3f, 0.0f, false, true, -5.7f, -2.3f)
arcToRelative(8.0f, 8.0f, 0.0f, false, true, 0.0f, -11.3f)
lineTo(196.7f, 48.0f)
lineTo(156.0f, 48.0f)
arcToRelative(8.0f, 8.0f, 0.0f, false, true, 0.0f, -16.0f)
horizontalLineToRelative(60.0f)
arcToRelative(8.0f, 8.0f, 0.0f, false, true, 8.0f, 8.0f)
close()
moveTo(184.0f, 136.0f)
arcToRelative(8.0f, 8.0f, 0.0f, false, false, -8.0f, 8.0f)
verticalLineToRelative(64.0f)
lineTo(48.0f, 208.0f)
lineTo(48.0f, 80.0f)
horizontalLineToRelative(64.0f)
arcToRelative(8.0f, 8.0f, 0.0f, false, false, 0.0f, -16.0f)
lineTo(48.0f, 64.0f)
arcTo(16.0f, 16.0f, 0.0f, false, false, 32.0f, 80.0f)
lineTo(32.0f, 208.0f)
arcToRelative(16.0f, 16.0f, 0.0f, false, false, 16.0f, 16.0f)
lineTo(176.0f, 224.0f)
arcToRelative(16.0f, 16.0f, 0.0f, false, false, 16.0f, -16.0f)
lineTo(192.0f, 144.0f)
arcTo(8.0f, 8.0f, 0.0f, false, false, 184.0f, 136.0f)
close()
}
}
.build()
return _arrow_square_out!!
}
private var _arrow_square_out: ImageVector? = null

View File

@ -0,0 +1,65 @@
package com.machiav3lli.fdroid.ui.compose.icons.phosphor
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 com.machiav3lli.fdroid.ui.compose.icons.Phosphor
val Phosphor.HeartStraight: ImageVector
get() {
if (_heart_straight != null) {
return _heart_straight!!
}
_heart_straight = Builder(
name = "Heart-straight",
defaultWidth = 32.0.dp,
defaultHeight = 32.0.dp,
viewportWidth = 256.0f,
viewportHeight = 256.0f,
).apply {
path(
fill = SolidColor(Color(0xFF000000)), stroke = null, strokeLineWidth = 0.0f,
strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = 4.0f,
pathFillType = NonZero
) {
moveTo(128.0f, 222.2f)
arcToRelative(15.6f, 15.6f, 0.0f, false, true, -11.3f, -4.7f)
lineTo(33.6f, 134.4f)
arcToRelative(59.9f, 59.9f, 0.0f, false, true, 2.3f, -87.0f)
arcTo(57.7f, 57.7f, 0.0f, false, true, 79.0f, 32.8f)
arcToRelative(64.3f, 64.3f, 0.0f, false, true, 41.5f, 18.9f)
lineToRelative(7.5f, 7.4f)
lineToRelative(9.6f, -9.5f)
arcToRelative(59.9f, 59.9f, 0.0f, false, true, 87.0f, 2.3f)
arcTo(57.7f, 57.7f, 0.0f, false, true, 239.2f, 95.0f)
arcToRelative(64.3f, 64.3f, 0.0f, false, true, -18.9f, 41.5f)
lineToRelative(-81.0f, 81.0f)
horizontalLineToRelative(0.0f)
arcTo(15.6f, 15.6f, 0.0f, false, true, 128.0f, 222.2f)
close()
moveTo(75.0f, 48.7f)
arcTo(42.5f, 42.5f, 0.0f, false, false, 46.6f, 59.2f)
arcToRelative(44.0f, 44.0f, 0.0f, false, false, -1.7f, 63.9f)
lineToRelative(88.8f, 88.8f)
lineToRelative(-5.7f, -5.7f)
lineToRelative(81.0f, -81.0f)
curveToRelative(17.5f, -17.4f, 19.1f, -45.5f, 3.8f, -62.6f)
arcToRelative(44.0f, 44.0f, 0.0f, false, false, -63.9f, -1.7f)
lineTo(133.7f, 76.1f)
arcToRelative(8.1f, 8.1f, 0.0f, false, true, -11.4f, 0.0f)
lineTo(109.2f, 63.0f)
arcTo(48.4f, 48.4f, 0.0f, false, false, 75.0f, 48.7f)
close()
}
}
.build()
return _heart_straight!!
}
private var _heart_straight: ImageVector? = null

View File

@ -0,0 +1,49 @@
package com.machiav3lli.fdroid.ui.compose.icons.phosphor
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 com.machiav3lli.fdroid.ui.compose.icons.Phosphor
public val Phosphor.HeartStraightFill: ImageVector
get() {
if (_heart_straight_fill != null) {
return _heart_straight_fill!!
}
_heart_straight_fill = Builder(
name = "Heart-straight-fill",
defaultWidth = 32.0.dp,
defaultHeight = 32.0.dp,
viewportWidth = 256.0f,
viewportHeight = 256.0f
).apply {
path(
fill = SolidColor(Color(0xFF000000)), stroke = null, strokeLineWidth = 0.0f,
strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = 4.0f,
pathFillType = NonZero
) {
moveTo(224.6f, 51.9f)
arcToRelative(59.5f, 59.5f, 0.0f, false, false, -43.0f, -19.9f)
arcToRelative(60.5f, 60.5f, 0.0f, false, false, -44.0f, 17.6f)
lineTo(128.0f, 59.1f)
lineToRelative(-7.5f, -7.4f)
curveTo(97.2f, 28.3f, 59.2f, 26.3f, 35.9f, 47.4f)
arcToRelative(59.9f, 59.9f, 0.0f, false, false, -2.3f, 87.0f)
lineToRelative(83.1f, 83.1f)
arcToRelative(15.9f, 15.9f, 0.0f, false, false, 22.6f, 0.0f)
lineToRelative(81.0f, -81.0f)
curveTo(243.7f, 113.2f, 245.6f, 75.2f, 224.6f, 51.9f)
close()
}
}
.build()
return _heart_straight_fill!!
}
private var _heart_straight_fill: ImageVector? = null

View File

@ -0,0 +1,62 @@
package com.machiav3lli.fdroid.ui.compose.icons.phosphor
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 com.machiav3lli.fdroid.ui.compose.icons.Phosphor
val Phosphor.ShareNetwork: ImageVector
get() {
if (_share_network != null) {
return _share_network!!
}
_share_network = Builder(
name = "Share-network",
defaultWidth = 32.0.dp,
defaultHeight = 32.0.dp,
viewportWidth = 256.0f,
viewportHeight = 256.0f,
).apply {
path(
fill = SolidColor(Color(0xFF000000)), stroke = null, strokeLineWidth = 0.0f,
strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = 4.0f,
pathFillType = NonZero
) {
moveTo(176.0f, 160.0f)
arcToRelative(39.7f, 39.7f, 0.0f, false, false, -28.6f, 12.1f)
lineToRelative(-46.1f, -29.6f)
arcToRelative(40.3f, 40.3f, 0.0f, false, false, 0.0f, -29.0f)
lineToRelative(46.1f, -29.6f)
arcTo(40.0f, 40.0f, 0.0f, true, false, 136.0f, 56.0f)
arcToRelative(41.0f, 41.0f, 0.0f, false, false, 2.7f, 14.5f)
lineTo(92.6f, 100.1f)
arcToRelative(40.0f, 40.0f, 0.0f, true, false, 0.0f, 55.8f)
lineToRelative(46.1f, 29.6f)
arcTo(41.0f, 41.0f, 0.0f, false, false, 136.0f, 200.0f)
arcToRelative(40.0f, 40.0f, 0.0f, true, false, 40.0f, -40.0f)
close()
moveTo(176.0f, 32.0f)
arcToRelative(24.0f, 24.0f, 0.0f, true, true, -24.0f, 24.0f)
arcTo(24.1f, 24.1f, 0.0f, false, true, 176.0f, 32.0f)
close()
moveTo(64.0f, 152.0f)
arcToRelative(24.0f, 24.0f, 0.0f, true, true, 24.0f, -24.0f)
arcTo(24.1f, 24.1f, 0.0f, false, true, 64.0f, 152.0f)
close()
moveTo(176.0f, 224.0f)
arcToRelative(24.0f, 24.0f, 0.0f, true, true, 24.0f, -24.0f)
arcTo(24.1f, 24.1f, 0.0f, false, true, 176.0f, 224.0f)
close()
}
}
.build()
return _share_network!!
}
private var _share_network: ImageVector? = null

View File

@ -0,0 +1,65 @@
package com.machiav3lli.fdroid.ui.compose.icons.phosphor
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 com.machiav3lli.fdroid.ui.compose.icons.Phosphor
val Phosphor.SlidersHorizontal: ImageVector
get() {
if (_sliders_horizontal != null) {
return _sliders_horizontal!!
}
_sliders_horizontal = Builder(
name = "Sliders-horizontal",
defaultWidth = 32.0.dp,
defaultHeight = 32.0.dp,
viewportWidth = 256.0f,
viewportHeight = 256.0f,
).apply {
path(
fill = SolidColor(Color(0xFF000000)), stroke = null, strokeLineWidth = 0.0f,
strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = 4.0f,
pathFillType = NonZero
) {
moveTo(216.0f, 164.0f)
lineTo(194.8f, 164.0f)
arcToRelative(28.0f, 28.0f, 0.0f, false, false, -53.6f, 0.0f)
lineTo(40.0f, 164.0f)
arcToRelative(8.0f, 8.0f, 0.0f, false, false, 0.0f, 16.0f)
lineTo(141.2f, 180.0f)
arcToRelative(28.0f, 28.0f, 0.0f, false, false, 53.6f, 0.0f)
lineTo(216.0f, 180.0f)
arcToRelative(8.0f, 8.0f, 0.0f, false, false, 0.0f, -16.0f)
close()
moveTo(168.0f, 184.0f)
arcToRelative(12.0f, 12.0f, 0.0f, true, true, 12.0f, -12.0f)
arcTo(12.0f, 12.0f, 0.0f, false, true, 168.0f, 184.0f)
close()
moveTo(40.0f, 92.0f)
lineTo(77.2f, 92.0f)
arcToRelative(28.0f, 28.0f, 0.0f, false, false, 53.6f, 0.0f)
lineTo(216.0f, 92.0f)
arcToRelative(8.0f, 8.0f, 0.0f, false, false, 0.0f, -16.0f)
lineTo(130.8f, 76.0f)
arcToRelative(28.0f, 28.0f, 0.0f, false, false, -53.6f, 0.0f)
lineTo(40.0f, 76.0f)
arcToRelative(8.0f, 8.0f, 0.0f, false, false, 0.0f, 16.0f)
close()
moveTo(104.0f, 72.0f)
arcTo(12.0f, 12.0f, 0.0f, true, true, 92.0f, 84.0f)
arcTo(12.0f, 12.0f, 0.0f, false, true, 104.0f, 72.0f)
close()
}
}
.build()
return _sliders_horizontal!!
}
private var _sliders_horizontal: ImageVector? = null

View File

@ -0,0 +1,61 @@
package com.machiav3lli.fdroid.ui.compose.icons.phosphor
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 com.machiav3lli.fdroid.ui.compose.icons.Phosphor
val Phosphor.TrashSimple: ImageVector
get() {
if (_trash_simple != null) {
return _trash_simple!!
}
_trash_simple = Builder(
name = "Trash-simple",
defaultWidth = 32.0.dp,
defaultHeight = 32.0.dp,
viewportWidth = 256.0f,
viewportHeight = 256.0f,
).apply {
path(
fill = SolidColor(Color(0xFF000000)), stroke = null, strokeLineWidth = 0.0f,
strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = 4.0f,
pathFillType = NonZero
) {
moveTo(216.0f, 48.0f)
horizontalLineTo(40.0f)
arcToRelative(8.0f, 8.0f, 0.0f, false, false, 0.0f, 16.0f)
horizontalLineToRelative(8.0f)
verticalLineTo(208.0f)
arcToRelative(16.0f, 16.0f, 0.0f, false, false, 16.0f, 16.0f)
horizontalLineTo(192.0f)
arcToRelative(16.0f, 16.0f, 0.0f, false, false, 16.0f, -16.0f)
verticalLineTo(64.0f)
horizontalLineToRelative(8.0f)
arcToRelative(8.0f, 8.0f, 0.0f, false, false, 0.0f, -16.0f)
close()
moveTo(192.0f, 208.0f)
horizontalLineTo(64.0f)
verticalLineTo(64.0f)
horizontalLineTo(192.0f)
close()
moveTo(80.0f, 24.0f)
arcToRelative(8.0f, 8.0f, 0.0f, false, true, 8.0f, -8.0f)
horizontalLineToRelative(80.0f)
arcToRelative(8.0f, 8.0f, 0.0f, false, true, 0.0f, 16.0f)
horizontalLineTo(88.0f)
arcTo(8.0f, 8.0f, 0.0f, false, true, 80.0f, 24.0f)
close()
}
}
.build()
return _trash_simple!!
}
private var _trash_simple: ImageVector? = null

View File

@ -0,0 +1,52 @@
package com.machiav3lli.fdroid.ui.compose.icons.phosphor
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 com.machiav3lli.fdroid.ui.compose.icons.Phosphor
val Phosphor.X: ImageVector
get() {
if (_x != null) {
return _x!!
}
_x = Builder(
name = "X",
defaultWidth = 32.0.dp,
defaultHeight = 32.0.dp,
viewportWidth = 256.0f,
viewportHeight = 256.0f,
).apply {
path(
fill = SolidColor(Color(0xFF000000)), stroke = null, strokeLineWidth = 0.0f,
strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = 4.0f,
pathFillType = NonZero
) {
moveTo(205.7f, 194.3f)
arcToRelative(8.1f, 8.1f, 0.0f, false, true, 0.0f, 11.4f)
arcToRelative(8.2f, 8.2f, 0.0f, false, true, -11.4f, 0.0f)
lineTo(128.0f, 139.3f)
lineTo(61.7f, 205.7f)
arcToRelative(8.2f, 8.2f, 0.0f, false, true, -11.4f, 0.0f)
arcToRelative(8.1f, 8.1f, 0.0f, false, true, 0.0f, -11.4f)
lineTo(116.7f, 128.0f)
lineTo(50.3f, 61.7f)
arcTo(8.1f, 8.1f, 0.0f, false, true, 61.7f, 50.3f)
lineTo(128.0f, 116.7f)
lineToRelative(66.3f, -66.4f)
arcToRelative(8.1f, 8.1f, 0.0f, false, true, 11.4f, 11.4f)
lineTo(139.3f, 128.0f)
close()
}
}
.build()
return _x!!
}
private var _x: ImageVector? = null