diff --git a/core/designsystem/src/main/res/drawable/icon_arrow_down.xml b/core/designsystem/src/main/res/drawable/icon_arrow_down.xml
index 565681688..2eb360295 100644
--- a/core/designsystem/src/main/res/drawable/icon_arrow_down.xml
+++ b/core/designsystem/src/main/res/drawable/icon_arrow_down.xml
@@ -3,12 +3,10 @@
android:height="20dp"
android:viewportWidth="20"
android:viewportHeight="20">
-
-
-
-
+
diff --git a/core/designsystem/src/main/res/drawable/icon_arrow_left.xml b/core/designsystem/src/main/res/drawable/icon_arrow_left.xml
index 8b7cd18e5..fcc9a317a 100644
--- a/core/designsystem/src/main/res/drawable/icon_arrow_left.xml
+++ b/core/designsystem/src/main/res/drawable/icon_arrow_left.xml
@@ -4,7 +4,9 @@
android:viewportWidth="28"
android:viewportHeight="28">
+ android:pathData="M18,5L10.236,13.734C10.101,13.886 10.101,14.114 10.236,14.266L18,23"
+ android:strokeWidth="2"
+ android:fillColor="#00000000"
+ android:strokeColor="#3C3E48"
+ android:strokeLineCap="round"/>
diff --git a/core/designsystem/src/main/res/drawable/icon_arrow_right.xml b/core/designsystem/src/main/res/drawable/icon_arrow_right.xml
index a9554864c..e1230861b 100644
--- a/core/designsystem/src/main/res/drawable/icon_arrow_right.xml
+++ b/core/designsystem/src/main/res/drawable/icon_arrow_right.xml
@@ -4,8 +4,7 @@
android:viewportWidth="20"
android:viewportHeight="20">
+ android:pathData="M20,19V4.4C20,4.179 19.821,4 19.6,4H5"
+ android:strokeWidth="2"
+ android:fillColor="#00000000"
+ android:strokeColor="#ffffff"
+ android:strokeLineCap="round"/>
+
diff --git a/core/designsystem/src/main/res/drawable/icon_bell.xml b/core/designsystem/src/main/res/drawable/icon_bell.xml
index 3ceabd966..091fc0db0 100644
--- a/core/designsystem/src/main/res/drawable/icon_bell.xml
+++ b/core/designsystem/src/main/res/drawable/icon_bell.xml
@@ -4,6 +4,6 @@
android:viewportWidth="28"
android:viewportHeight="28">
+ android:pathData="M17.374,20.842C17.374,22.586 15.863,24 13.999,24C12.135,24 10.625,22.586 10.625,20.842H17.374ZM23,18.736C23,19.318 22.496,19.789 21.875,19.789H6.125C5.504,19.789 5,19.318 5,18.736V17.684L7.25,15.578V11.368C7.25,8.568 9.197,6.195 11.894,5.367C12.213,4.569 13.034,4 13.999,4C14.964,4 15.785,4.569 16.104,5.367C18.802,6.195 20.75,8.568 20.75,11.368V15.578L23,17.684V18.736Z"
+ android:fillColor="#74788B"/>
diff --git a/core/designsystem/src/main/res/drawable/icon_close.xml b/core/designsystem/src/main/res/drawable/icon_close.xml
index 3df3309a2..f191d450c 100644
--- a/core/designsystem/src/main/res/drawable/icon_close.xml
+++ b/core/designsystem/src/main/res/drawable/icon_close.xml
@@ -1,18 +1,18 @@
+ android:width="28dp"
+ android:height="28dp"
+ android:viewportWidth="28"
+ android:viewportHeight="28">
diff --git a/core/designsystem/src/main/res/drawable/icon_download.xml b/core/designsystem/src/main/res/drawable/icon_download.xml
index 41b405c47..60c76d56f 100644
--- a/core/designsystem/src/main/res/drawable/icon_download.xml
+++ b/core/designsystem/src/main/res/drawable/icon_download.xml
@@ -4,6 +4,21 @@
android:viewportWidth="28"
android:viewportHeight="28">
+ android:pathData="M14,5V17"
+ android:strokeWidth="2"
+ android:fillColor="#00000000"
+ android:strokeColor="#4F525F"
+ android:strokeLineCap="round"/>
+
+
diff --git a/core/designsystem/src/main/res/drawable/icon_heart_filled.xml b/core/designsystem/src/main/res/drawable/icon_heart_filled.xml
new file mode 100644
index 000000000..eba38f71c
--- /dev/null
+++ b/core/designsystem/src/main/res/drawable/icon_heart_filled.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/core/designsystem/src/main/res/drawable/icon_heart_stroke.xml b/core/designsystem/src/main/res/drawable/icon_heart_stroke.xml
deleted file mode 100644
index 1401d4975..000000000
--- a/core/designsystem/src/main/res/drawable/icon_heart_stroke.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
diff --git a/core/designsystem/src/main/res/drawable/icon_heart_stroked.xml b/core/designsystem/src/main/res/drawable/icon_heart_stroked.xml
new file mode 100644
index 000000000..12dbcb598
--- /dev/null
+++ b/core/designsystem/src/main/res/drawable/icon_heart_stroked.xml
@@ -0,0 +1,12 @@
+
+
+
diff --git a/core/designsystem/src/main/res/drawable/icon_plus_primary.xml b/core/designsystem/src/main/res/drawable/icon_plus.xml
similarity index 86%
rename from core/designsystem/src/main/res/drawable/icon_plus_primary.xml
rename to core/designsystem/src/main/res/drawable/icon_plus.xml
index 2ecef4836..9d86f2ad5 100644
--- a/core/designsystem/src/main/res/drawable/icon_plus_primary.xml
+++ b/core/designsystem/src/main/res/drawable/icon_plus.xml
@@ -4,13 +4,13 @@
android:viewportWidth="28"
android:viewportHeight="28">
-
-
diff --git a/core/designsystem/src/main/res/drawable/icon_repeat.xml b/core/designsystem/src/main/res/drawable/icon_repeat.xml
new file mode 100644
index 000000000..910e2ed0a
--- /dev/null
+++ b/core/designsystem/src/main/res/drawable/icon_repeat.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
diff --git a/core/designsystem/src/main/res/drawable/icon_repeat_recommendation.xml b/core/designsystem/src/main/res/drawable/icon_repeat_recommendation.xml
deleted file mode 100644
index 3ac832fea..000000000
--- a/core/designsystem/src/main/res/drawable/icon_repeat_recommendation.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/core/designsystem/src/main/res/drawable/icon_scrap.xml b/core/designsystem/src/main/res/drawable/icon_scrap.xml
deleted file mode 100644
index e0900c7e2..000000000
--- a/core/designsystem/src/main/res/drawable/icon_scrap.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
-
diff --git a/core/designsystem/src/main/res/drawable/icon_scrap_filled.xml b/core/designsystem/src/main/res/drawable/icon_scrap_filled.xml
new file mode 100644
index 000000000..2f2380b74
--- /dev/null
+++ b/core/designsystem/src/main/res/drawable/icon_scrap_filled.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
diff --git a/core/designsystem/src/main/res/drawable/icon_scrap_stroked.xml b/core/designsystem/src/main/res/drawable/icon_scrap_stroked.xml
new file mode 100644
index 000000000..2a6b1caa0
--- /dev/null
+++ b/core/designsystem/src/main/res/drawable/icon_scrap_stroked.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
diff --git a/core/designsystem/src/main/res/drawable/icon_scrap_unselected.xml b/core/designsystem/src/main/res/drawable/icon_scrap_unselected.xml
deleted file mode 100644
index 02527f67d..000000000
--- a/core/designsystem/src/main/res/drawable/icon_scrap_unselected.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
diff --git a/core/designsystem/src/main/res/drawable/icon_torch_off.xml b/core/designsystem/src/main/res/drawable/icon_torch_off.xml
new file mode 100644
index 000000000..2f7005c14
--- /dev/null
+++ b/core/designsystem/src/main/res/drawable/icon_torch_off.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/core/designsystem/src/main/res/drawable/icon_torch_on.xml b/core/designsystem/src/main/res/drawable/icon_torch_on.xml
new file mode 100644
index 000000000..a2b7ff52f
--- /dev/null
+++ b/core/designsystem/src/main/res/drawable/icon_torch_on.xml
@@ -0,0 +1,15 @@
+
+
+
+
diff --git a/core/designsystem/src/main/res/drawable/icon_trash.xml b/core/designsystem/src/main/res/drawable/icon_trash.xml
index 6fd96ee8e..69723778d 100644
--- a/core/designsystem/src/main/res/drawable/icon_trash.xml
+++ b/core/designsystem/src/main/res/drawable/icon_trash.xml
@@ -4,6 +4,19 @@
android:viewportWidth="28"
android:viewportHeight="28">
+ android:pathData="M4.667,7H23.334"
+ android:strokeWidth="2.33333"
+ android:fillColor="#00000000"
+ android:strokeColor="#4F525F"
+ android:strokeLineCap="round"/>
+
+
diff --git a/core/ui/src/main/java/com/neki/android/core/ui/component/AlbumRowComponent.kt b/core/ui/src/main/java/com/neki/android/core/ui/component/AlbumRowComponent.kt
index c48cc51b1..ac9141969 100644
--- a/core/ui/src/main/java/com/neki/android/core/ui/component/AlbumRowComponent.kt
+++ b/core/ui/src/main/java/com/neki/android/core/ui/component/AlbumRowComponent.kt
@@ -111,7 +111,7 @@ private fun FavoriteAlbumThumbnail(
Icon(
modifier = Modifier.size(20.dp),
- imageVector = ImageVector.vectorResource(R.drawable.icon_heart),
+ imageVector = ImageVector.vectorResource(R.drawable.icon_heart_filled),
contentDescription = null,
tint = NekiTheme.colorScheme.white,
)
diff --git a/core/ui/src/main/java/com/neki/android/core/ui/component/FilterBar.kt b/core/ui/src/main/java/com/neki/android/core/ui/component/FilterBar.kt
index eab33be43..a36067187 100644
--- a/core/ui/src/main/java/com/neki/android/core/ui/component/FilterBar.kt
+++ b/core/ui/src/main/java/com/neki/android/core/ui/component/FilterBar.kt
@@ -8,6 +8,7 @@ import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.size
import androidx.compose.foundation.shape.CircleShape
import androidx.compose.material3.Icon
import androidx.compose.material3.Text
@@ -86,6 +87,7 @@ private fun DownIconFilterChip(
else NekiTheme.colorScheme.gray700,
)
Icon(
+ modifier = Modifier.size(20.dp),
imageVector = ImageVector.vectorResource(R.drawable.icon_arrow_down),
contentDescription = null,
tint = NekiTheme.colorScheme.gray400,
diff --git a/feature/archive/impl/src/main/kotlin/com/neki/android/feature/archive/impl/component/SelectablePhotoItem.kt b/feature/archive/impl/src/main/kotlin/com/neki/android/feature/archive/impl/component/SelectablePhotoItem.kt
index f5ce6067b..41e761506 100644
--- a/feature/archive/impl/src/main/kotlin/com/neki/android/feature/archive/impl/component/SelectablePhotoItem.kt
+++ b/feature/archive/impl/src/main/kotlin/com/neki/android/feature/archive/impl/component/SelectablePhotoItem.kt
@@ -66,7 +66,7 @@ internal fun SelectablePhotoItem(
.align(Alignment.TopEnd)
.padding(top = 10.dp, end = 10.dp)
.size(20.dp),
- imageVector = ImageVector.vectorResource(R.drawable.icon_heart),
+ imageVector = ImageVector.vectorResource(R.drawable.icon_heart_filled),
contentDescription = null,
tint = NekiTheme.colorScheme.white,
)
diff --git a/feature/archive/impl/src/main/kotlin/com/neki/android/feature/archive/impl/main/component/AlbumTitleRow.kt b/feature/archive/impl/src/main/kotlin/com/neki/android/feature/archive/impl/main/component/AlbumTitleRow.kt
index 3f3568390..9d3d8e6ad 100644
--- a/feature/archive/impl/src/main/kotlin/com/neki/android/feature/archive/impl/main/component/AlbumTitleRow.kt
+++ b/feature/archive/impl/src/main/kotlin/com/neki/android/feature/archive/impl/main/component/AlbumTitleRow.kt
@@ -44,10 +44,10 @@ internal fun AlbumTitleRow(
color = NekiTheme.colorScheme.gray500,
)
Icon(
+ modifier = Modifier.size(20.dp),
imageVector = ImageVector.vectorResource(R.drawable.icon_arrow_right),
contentDescription = null,
tint = NekiTheme.colorScheme.gray500,
- modifier = Modifier.size(20.dp),
)
}
}
diff --git a/feature/archive/impl/src/main/kotlin/com/neki/android/feature/archive/impl/main/component/ArchiveMainAlbumList.kt b/feature/archive/impl/src/main/kotlin/com/neki/android/feature/archive/impl/main/component/ArchiveMainAlbumList.kt
index f812bff67..51cd6dc99 100644
--- a/feature/archive/impl/src/main/kotlin/com/neki/android/feature/archive/impl/main/component/ArchiveMainAlbumList.kt
+++ b/feature/archive/impl/src/main/kotlin/com/neki/android/feature/archive/impl/main/component/ArchiveMainAlbumList.kt
@@ -250,7 +250,7 @@ private fun AlbumFolder(
) {
Icon(
modifier = Modifier.size(12.dp),
- imageVector = ImageVector.vectorResource(R.drawable.icon_heart),
+ imageVector = ImageVector.vectorResource(R.drawable.icon_heart_filled),
contentDescription = null,
tint = NekiTheme.colorScheme.white,
)
diff --git a/feature/archive/impl/src/main/kotlin/com/neki/android/feature/archive/impl/main/component/ArchiveMainPhotoItem.kt b/feature/archive/impl/src/main/kotlin/com/neki/android/feature/archive/impl/main/component/ArchiveMainPhotoItem.kt
index 375b9d3ee..14b36cc0d 100644
--- a/feature/archive/impl/src/main/kotlin/com/neki/android/feature/archive/impl/main/component/ArchiveMainPhotoItem.kt
+++ b/feature/archive/impl/src/main/kotlin/com/neki/android/feature/archive/impl/main/component/ArchiveMainPhotoItem.kt
@@ -43,7 +43,7 @@ internal fun ArchiveMainPhotoItem(
.align(Alignment.TopEnd)
.padding(top = 10.dp, end = 10.dp)
.size(20.dp),
- imageVector = ImageVector.vectorResource(R.drawable.icon_heart),
+ imageVector = ImageVector.vectorResource(R.drawable.icon_heart_filled),
contentDescription = null,
tint = NekiTheme.colorScheme.white,
)
diff --git a/feature/archive/impl/src/main/kotlin/com/neki/android/feature/archive/impl/main/component/ArchiveMainTitleRow.kt b/feature/archive/impl/src/main/kotlin/com/neki/android/feature/archive/impl/main/component/ArchiveMainTitleRow.kt
index e3a790323..1299f9c18 100644
--- a/feature/archive/impl/src/main/kotlin/com/neki/android/feature/archive/impl/main/component/ArchiveMainTitleRow.kt
+++ b/feature/archive/impl/src/main/kotlin/com/neki/android/feature/archive/impl/main/component/ArchiveMainTitleRow.kt
@@ -48,10 +48,10 @@ internal fun ArchiveMainTitleRow(
color = NekiTheme.colorScheme.gray500,
)
Icon(
+ modifier = Modifier.size(20.dp),
imageVector = ImageVector.vectorResource(R.drawable.icon_arrow_right),
contentDescription = null,
tint = NekiTheme.colorScheme.gray500,
- modifier = Modifier.size(20.dp),
)
}
}
diff --git a/feature/archive/impl/src/main/kotlin/com/neki/android/feature/archive/impl/main/component/ArchiveMainTopBar.kt b/feature/archive/impl/src/main/kotlin/com/neki/android/feature/archive/impl/main/component/ArchiveMainTopBar.kt
index 7b1629d81..443d40050 100644
--- a/feature/archive/impl/src/main/kotlin/com/neki/android/feature/archive/impl/main/component/ArchiveMainTopBar.kt
+++ b/feature/archive/impl/src/main/kotlin/com/neki/android/feature/archive/impl/main/component/ArchiveMainTopBar.kt
@@ -8,6 +8,7 @@ import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.HorizontalDivider
@@ -60,9 +61,10 @@ internal fun ArchiveMainTopBar(
onClick = onClickPlusIcon,
) {
Icon(
- imageVector = ImageVector.vectorResource(R.drawable.icon_plus_primary),
+ modifier = Modifier.size(28.dp),
+ imageVector = ImageVector.vectorResource(R.drawable.icon_plus),
contentDescription = null,
- tint = Color.Unspecified,
+ tint = NekiTheme.colorScheme.primary400,
)
}
diff --git a/feature/archive/impl/src/main/kotlin/com/neki/android/feature/archive/impl/photo_detail/component/PhotoDetailActionBar.kt b/feature/archive/impl/src/main/kotlin/com/neki/android/feature/archive/impl/photo_detail/component/PhotoDetailActionBar.kt
index 842e85689..4ed8f8da4 100644
--- a/feature/archive/impl/src/main/kotlin/com/neki/android/feature/archive/impl/photo_detail/component/PhotoDetailActionBar.kt
+++ b/feature/archive/impl/src/main/kotlin/com/neki/android/feature/archive/impl/photo_detail/component/PhotoDetailActionBar.kt
@@ -9,7 +9,6 @@ import androidx.compose.material3.Icon
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
-import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.res.vectorResource
import androidx.compose.ui.unit.dp
@@ -49,13 +48,16 @@ internal fun PhotoDetailActionBar(
modifier = Modifier
.size(28.dp)
.noRippleClickable { onClickFavorite() },
- imageVector = if (isFavorite) {
- ImageVector.vectorResource(R.drawable.icon_heart)
+ imageVector = ImageVector.vectorResource(
+ if (isFavorite) R.drawable.icon_heart_filled
+ else R.drawable.icon_heart_stroked,
+ ),
+ contentDescription = null,
+ tint = if (isFavorite) {
+ NekiTheme.colorScheme.primary400
} else {
- ImageVector.vectorResource(R.drawable.icon_heart_stroke)
+ NekiTheme.colorScheme.gray700
},
- contentDescription = null,
- tint = Color.Unspecified,
)
}
diff --git a/feature/photo-upload/impl/src/main/java/com/neki/android/feature/photo_upload/impl/qrscan/component/QRScannerContent.kt b/feature/photo-upload/impl/src/main/java/com/neki/android/feature/photo_upload/impl/qrscan/component/QRScannerContent.kt
index 047246e6e..40c3b1513 100644
--- a/feature/photo-upload/impl/src/main/java/com/neki/android/feature/photo_upload/impl/qrscan/component/QRScannerContent.kt
+++ b/feature/photo-upload/impl/src/main/java/com/neki/android/feature/photo_upload/impl/qrscan/component/QRScannerContent.kt
@@ -122,7 +122,7 @@ internal fun QRScannerContent(
modifier = Modifier.size(24.dp),
imageVector = ImageVector.vectorResource(R.drawable.icon_close),
contentDescription = null,
- tint = Color.White,
+ tint = NekiTheme.colorScheme.white,
)
}
}
@@ -170,7 +170,10 @@ internal fun QRScannerContent(
onClick = { onIntent(QRScanIntent.ToggleTorch) },
) {
Icon(
- imageVector = ImageVector.vectorResource(R.drawable.icon_qr_light),
+ imageVector = ImageVector.vectorResource(
+ if (isTorchEnabled) R.drawable.icon_torch_on
+ else R.drawable.icon_torch_off,
+ ),
contentDescription = null,
tint = if (isTorchEnabled) Color.Black else Color.White,
)
diff --git a/feature/pose/impl/src/main/java/com/neki/android/feature/pose/impl/detail/PoseDetailScreen.kt b/feature/pose/impl/src/main/java/com/neki/android/feature/pose/impl/detail/PoseDetailScreen.kt
index 7e2059b8c..113c37264 100644
--- a/feature/pose/impl/src/main/java/com/neki/android/feature/pose/impl/detail/PoseDetailScreen.kt
+++ b/feature/pose/impl/src/main/java/com/neki/android/feature/pose/impl/detail/PoseDetailScreen.kt
@@ -45,6 +45,7 @@ internal fun PoseDetailRoute(
is PoseDetailSideEffect.ShowToast -> {
nekiToast.showToast(sideEffect.message)
}
+
is PoseDetailSideEffect.NotifyScrapChanged -> {
resultEventBus.sendResult(
result = PoseResult.ScrapChanged(sideEffect.poseId, sideEffect.isScrapped),
@@ -94,11 +95,12 @@ internal fun PoseDetailScreen(
) {
Icon(
imageVector = ImageVector.vectorResource(
- if (uiState.pose.isScrapped) R.drawable.icon_scrap
- else R.drawable.icon_scrap_unselected,
+ if (uiState.pose.isScrapped) R.drawable.icon_scrap_filled
+ else R.drawable.icon_scrap_stroked,
),
contentDescription = null,
- tint = NekiTheme.colorScheme.gray500,
+ tint = if (uiState.pose.isScrapped) NekiTheme.colorScheme.gray900
+ else NekiTheme.colorScheme.gray500,
)
}
}
diff --git a/feature/pose/impl/src/main/java/com/neki/android/feature/pose/impl/main/PoseScreen.kt b/feature/pose/impl/src/main/java/com/neki/android/feature/pose/impl/main/PoseScreen.kt
index e752c235f..8f1192cc3 100644
--- a/feature/pose/impl/src/main/java/com/neki/android/feature/pose/impl/main/PoseScreen.kt
+++ b/feature/pose/impl/src/main/java/com/neki/android/feature/pose/impl/main/PoseScreen.kt
@@ -28,7 +28,7 @@ import com.neki.android.core.model.PeopleCount
import com.neki.android.core.model.Pose
import com.neki.android.core.ui.compose.collectWithLifecycle
import com.neki.android.feature.pose.impl.const.PoseConst.POSE_LAYOUT_DEFAULT_TOP_PADDING
-import com.neki.android.feature.pose.impl.main.component.FilterBar
+import com.neki.android.feature.pose.impl.main.component.PoseFilterBar
import com.neki.android.feature.pose.impl.main.component.PeopleCountBottomSheet
import com.neki.android.core.ui.component.LoadingDialog
import com.neki.android.feature.pose.impl.main.component.PoseListContent
@@ -157,7 +157,7 @@ fun PoseContent(
state = lazyState,
onClickItem = onClickPoseItem,
)
- FilterBar(
+ PoseFilterBar(
modifier = Modifier
.onSizeChanged { size ->
if (filterBarHeightPx != 0) return@onSizeChanged
diff --git a/feature/pose/impl/src/main/java/com/neki/android/feature/pose/impl/main/component/FilterBar.kt b/feature/pose/impl/src/main/java/com/neki/android/feature/pose/impl/main/component/FilterBar.kt
deleted file mode 100644
index 621ff146a..000000000
--- a/feature/pose/impl/src/main/java/com/neki/android/feature/pose/impl/main/component/FilterBar.kt
+++ /dev/null
@@ -1,127 +0,0 @@
-package com.neki.android.feature.pose.impl.main.component
-
-import androidx.compose.animation.AnimatedVisibility
-import androidx.compose.animation.expandVertically
-import androidx.compose.animation.shrinkVertically
-import androidx.compose.foundation.background
-import androidx.compose.foundation.layout.Arrangement
-import androidx.compose.foundation.layout.Row
-import androidx.compose.foundation.layout.fillMaxWidth
-import androidx.compose.foundation.layout.padding
-import androidx.compose.foundation.shape.CircleShape
-import androidx.compose.material3.Icon
-import androidx.compose.material3.Text
-import androidx.compose.runtime.Composable
-import androidx.compose.runtime.derivedStateOf
-import androidx.compose.runtime.getValue
-import androidx.compose.runtime.remember
-import androidx.compose.ui.Alignment
-import androidx.compose.ui.Modifier
-import androidx.compose.ui.graphics.vector.ImageVector
-import androidx.compose.ui.res.vectorResource
-import androidx.compose.ui.unit.dp
-import com.neki.android.core.designsystem.ComponentPreview
-import com.neki.android.core.designsystem.R
-import com.neki.android.core.designsystem.modifier.noRippleClickable
-import com.neki.android.core.designsystem.ui.theme.NekiTheme
-import com.neki.android.core.model.PeopleCount
-
-@Composable
-internal fun FilterBar(
- peopleCount: PeopleCount?,
- isScrapSelected: Boolean,
- modifier: Modifier = Modifier,
- visible: Boolean = true,
- onClickPeopleCount: () -> Unit = {},
- onClickScrap: () -> Unit = {},
-) {
- AnimatedVisibility(
- modifier = modifier
- .background(NekiTheme.colorScheme.white)
- .fillMaxWidth(),
- visible = visible,
- enter = expandVertically(),
- exit = shrinkVertically(),
- ) {
- Row(
- modifier = Modifier.padding(vertical = 4.dp, horizontal = 20.dp),
- horizontalArrangement = Arrangement.spacedBy(6.dp),
- verticalAlignment = Alignment.CenterVertically,
- ) {
- PeopleCountFilter(
- peopleCount = peopleCount,
- onClick = onClickPeopleCount,
- )
- ScrapFilter(
- isSelected = isScrapSelected,
- onClick = onClickScrap,
- )
- }
- }
-}
-
-@Composable
-private fun PeopleCountFilter(
- modifier: Modifier = Modifier,
- peopleCount: PeopleCount? = null,
- onClick: () -> Unit = {},
-) {
- val isSelected by remember(peopleCount) { derivedStateOf { peopleCount != null } }
- Row(
- modifier = modifier
- .background(
- shape = CircleShape,
- color = if (isSelected) NekiTheme.colorScheme.gray800
- else NekiTheme.colorScheme.gray50,
- )
- .padding(vertical = 7.dp, horizontal = 12.dp)
- .noRippleClickable(onClick = onClick),
- horizontalArrangement = Arrangement.spacedBy(2.dp),
- verticalAlignment = Alignment.CenterVertically,
- ) {
- Text(
- text = peopleCount?.displayText ?: "인원수",
- style = NekiTheme.typography.body14Medium,
- color = if (isSelected) NekiTheme.colorScheme.white
- else NekiTheme.colorScheme.gray700,
- )
- Icon(
- imageVector = ImageVector.vectorResource(R.drawable.icon_arrow_down),
- contentDescription = null,
- tint = NekiTheme.colorScheme.gray400,
- )
- }
-}
-
-@Composable
-private fun ScrapFilter(
- modifier: Modifier = Modifier,
- isSelected: Boolean = false,
- onClick: () -> Unit = {},
-) {
- Text(
- modifier = modifier
- .background(
- shape = CircleShape,
- color = if (isSelected) NekiTheme.colorScheme.gray800
- else NekiTheme.colorScheme.gray50,
- )
- .padding(vertical = 7.dp, horizontal = 12.dp)
- .noRippleClickable(onClick = onClick),
- text = "스크랩",
- style = NekiTheme.typography.body14Medium,
- color = if (isSelected) NekiTheme.colorScheme.white
- else NekiTheme.colorScheme.gray700,
- )
-}
-
-@ComponentPreview
-@Composable
-private fun FilterBarPreview() {
- NekiTheme {
- FilterBar(
- peopleCount = null,
- isScrapSelected = false,
- )
- }
-}
diff --git a/feature/pose/impl/src/main/java/com/neki/android/feature/pose/impl/main/component/PoseFilterBar.kt b/feature/pose/impl/src/main/java/com/neki/android/feature/pose/impl/main/component/PoseFilterBar.kt
new file mode 100644
index 000000000..cfd8fa773
--- /dev/null
+++ b/feature/pose/impl/src/main/java/com/neki/android/feature/pose/impl/main/component/PoseFilterBar.kt
@@ -0,0 +1,40 @@
+package com.neki.android.feature.pose.impl.main.component
+
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Modifier
+import com.neki.android.core.designsystem.ComponentPreview
+import com.neki.android.core.designsystem.ui.theme.NekiTheme
+import com.neki.android.core.model.PeopleCount
+import com.neki.android.core.ui.component.FilterBar
+
+@Composable
+internal fun PoseFilterBar(
+ peopleCount: PeopleCount?,
+ isScrapSelected: Boolean,
+ modifier: Modifier = Modifier,
+ visible: Boolean = true,
+ onClickPeopleCount: () -> Unit = {},
+ onClickScrap: () -> Unit = {},
+) {
+ FilterBar(
+ isDownIconChipSelected = peopleCount != null,
+ isDefaultChipSelected = isScrapSelected,
+ downIconChipDisplayText = peopleCount?.displayText ?: "인원수",
+ defaultChipDisplayText = "스크랩",
+ modifier = modifier,
+ visible = visible,
+ onClickDownIconChip = onClickPeopleCount,
+ onClickDefaultChip = onClickScrap,
+ )
+}
+
+@ComponentPreview
+@Composable
+private fun PoseFilterBarPreview() {
+ NekiTheme {
+ PoseFilterBar(
+ peopleCount = null,
+ isScrapSelected = false,
+ )
+ }
+}
diff --git a/feature/pose/impl/src/main/java/com/neki/android/feature/pose/impl/main/component/PoseListContent.kt b/feature/pose/impl/src/main/java/com/neki/android/feature/pose/impl/main/component/PoseListContent.kt
index 383c76065..19e11d78a 100644
--- a/feature/pose/impl/src/main/java/com/neki/android/feature/pose/impl/main/component/PoseListContent.kt
+++ b/feature/pose/impl/src/main/java/com/neki/android/feature/pose/impl/main/component/PoseListContent.kt
@@ -94,7 +94,7 @@ private fun PoseItem(
.align(Alignment.TopEnd)
.padding(top = 10.dp, end = 10.dp)
.size(20.dp),
- imageVector = ImageVector.vectorResource(R.drawable.icon_scrap),
+ imageVector = ImageVector.vectorResource(R.drawable.icon_scrap_filled),
contentDescription = null,
tint = NekiTheme.colorScheme.white,
)
diff --git a/feature/pose/impl/src/main/java/com/neki/android/feature/pose/impl/main/component/RecommendationChip.kt b/feature/pose/impl/src/main/java/com/neki/android/feature/pose/impl/main/component/RecommendationChip.kt
index ad1e724d7..35c2c8cbe 100644
--- a/feature/pose/impl/src/main/java/com/neki/android/feature/pose/impl/main/component/RecommendationChip.kt
+++ b/feature/pose/impl/src/main/java/com/neki/android/feature/pose/impl/main/component/RecommendationChip.kt
@@ -4,6 +4,7 @@ import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.size
import androidx.compose.foundation.shape.CircleShape
import androidx.compose.material3.Icon
import androidx.compose.material3.Text
@@ -11,14 +12,13 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
-import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.res.vectorResource
import androidx.compose.ui.unit.dp
import com.neki.android.core.designsystem.ComponentPreview
+import com.neki.android.core.designsystem.R
import com.neki.android.core.designsystem.modifier.clickableSingle
import com.neki.android.core.designsystem.ui.theme.NekiTheme
-import com.neki.android.core.designsystem.R
@Composable
internal fun RecommendationChip(
@@ -35,9 +35,10 @@ internal fun RecommendationChip(
verticalAlignment = Alignment.CenterVertically,
) {
Icon(
- imageVector = ImageVector.vectorResource(R.drawable.icon_repeat_recommendation),
+ modifier = Modifier.size(20.dp),
+ imageVector = ImageVector.vectorResource(R.drawable.icon_repeat),
contentDescription = null,
- tint = Color.Unspecified,
+ tint = NekiTheme.colorScheme.primary400,
)
Text(
text = "랜덤 포즈 추천",
diff --git a/feature/pose/impl/src/main/java/com/neki/android/feature/pose/impl/random/component/RandomPoseFloatingBar.kt b/feature/pose/impl/src/main/java/com/neki/android/feature/pose/impl/random/component/RandomPoseFloatingBar.kt
index 9cf25d328..824f44374 100644
--- a/feature/pose/impl/src/main/java/com/neki/android/feature/pose/impl/random/component/RandomPoseFloatingBar.kt
+++ b/feature/pose/impl/src/main/java/com/neki/android/feature/pose/impl/random/component/RandomPoseFloatingBar.kt
@@ -135,8 +135,8 @@ private fun RandomPoseFloatingBar(
Icon(
modifier = Modifier.size(24.dp),
imageVector = ImageVector.vectorResource(
- if (isScrapped) R.drawable.icon_scrap
- else R.drawable.icon_scrap_unselected,
+ if (isScrapped) R.drawable.icon_scrap_filled
+ else R.drawable.icon_scrap_stroked,
),
contentDescription = "스크랩",
tint = NekiTheme.colorScheme.white,