diff --git a/app/src/main/java/com/afternote/afternote_fe/MainActivity.kt b/app/src/main/java/com/afternote/afternote_fe/MainActivity.kt
index 63264448c..73988804f 100644
--- a/app/src/main/java/com/afternote/afternote_fe/MainActivity.kt
+++ b/app/src/main/java/com/afternote/afternote_fe/MainActivity.kt
@@ -22,9 +22,9 @@ class MainActivity : FragmentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
val splashScreen = installSplashScreen()
super.onCreate(savedInstanceState)
+ enableEdgeToEdge()
if (BuildConfig.DEBUG && intent.getBooleanExtra(EXTRA_DEBUG_START_TIMELETTER, false)) {
- enableEdgeToEdge()
setContent {
AfternoteTheme {
AppNavigation(startDestination = Route.TimeLetter)
@@ -38,8 +38,6 @@ class MainActivity : FragmentActivity() {
viewModel.startRoute.value == null
}
- enableEdgeToEdge()
-
setContent {
AfternoteTheme {
val startRoute by viewModel.startRoute.collectAsStateWithLifecycle()
diff --git a/config/detekt/detekt.yml b/config/detekt/detekt.yml
deleted file mode 100644
index 4cd023476..000000000
--- a/config/detekt/detekt.yml
+++ /dev/null
@@ -1,16 +0,0 @@
-naming:
- FunctionNaming:
- active: true
- functionPattern: '[a-z][a-zA-Z0-9]*'
- excludeClassPattern: '$^'
- # @Composable 함수는 PascalCase 컨벤션을 따르므로 이 규칙에서 제외.
- ignoreAnnotated:
- - 'Composable'
-
-style:
- UnusedPrivateMember:
- active: true
- # @Preview composable은 IDE 프리뷰 전용이라 호출부가 없어도 사용되는 것으로 간주.
- ignoreAnnotated:
- - 'Preview'
- - 'PreviewParameter'
diff --git a/core/ui/build.gradle.kts b/core/ui/build.gradle.kts
index b3bd3795f..0bb00e329 100644
--- a/core/ui/build.gradle.kts
+++ b/core/ui/build.gradle.kts
@@ -15,7 +15,6 @@ dependencies {
implementation(projects.core.common)
implementation(libs.coil.compose)
implementation(libs.coil.network.okhttp)
- implementation(libs.androidx.compose.material.icons.core)
// Compose Preview Screenshot Testing (#241)
screenshotTestImplementation(libs.screenshot.validation.api)
diff --git a/feature/afternote/presentation/build.gradle.kts b/feature/afternote/presentation/build.gradle.kts
index bd4ed7667..c81c3c189 100644
--- a/feature/afternote/presentation/build.gradle.kts
+++ b/feature/afternote/presentation/build.gradle.kts
@@ -20,7 +20,6 @@ dependencies {
implementation(projects.core.model)
implementation(projects.core.common)
implementation(projects.core.ui)
- implementation(libs.androidx.compose.material.icons.core)
implementation(libs.coil.network.okhttp)
implementation(libs.coil.compose)
implementation(libs.androidx.activity.compose)
diff --git a/feature/afternote/presentation/src/main/kotlin/com/afternote/feature/afternote/presentation/receiver/detail/MemorialReceivedDetailScreen.kt b/feature/afternote/presentation/src/main/kotlin/com/afternote/feature/afternote/presentation/receiver/detail/MemorialReceivedDetailScreen.kt
index fab6330dc..9599a495a 100644
--- a/feature/afternote/presentation/src/main/kotlin/com/afternote/feature/afternote/presentation/receiver/detail/MemorialReceivedDetailScreen.kt
+++ b/feature/afternote/presentation/src/main/kotlin/com/afternote/feature/afternote/presentation/receiver/detail/MemorialReceivedDetailScreen.kt
@@ -19,8 +19,6 @@ import androidx.compose.foundation.layout.statusBarsPadding
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.shape.CircleShape
import androidx.compose.foundation.shape.RoundedCornerShape
-import androidx.compose.material.icons.Icons
-import androidx.compose.material.icons.filled.PlayArrow
import androidx.compose.material3.Icon
import androidx.compose.material3.Scaffold
import androidx.compose.material3.Text
@@ -216,7 +214,7 @@ private fun ReceiverVideoSection(
contentAlignment = Alignment.Center,
) {
Icon(
- imageVector = Icons.Default.PlayArrow,
+ painter = painterResource(R.drawable.feature_afternote_ic_play_arrow),
contentDescription = "Play",
tint = AfternoteDesign.colors.white,
modifier =
diff --git a/feature/afternote/presentation/src/main/kotlin/com/afternote/feature/afternote/presentation/receiver/summary/TopHeader.kt b/feature/afternote/presentation/src/main/kotlin/com/afternote/feature/afternote/presentation/receiver/summary/TopHeader.kt
index 93747589e..b84abb9f6 100644
--- a/feature/afternote/presentation/src/main/kotlin/com/afternote/feature/afternote/presentation/receiver/summary/TopHeader.kt
+++ b/feature/afternote/presentation/src/main/kotlin/com/afternote/feature/afternote/presentation/receiver/summary/TopHeader.kt
@@ -3,15 +3,14 @@ package com.afternote.feature.afternote.presentation.receiver.summary
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width
-import androidx.compose.material.icons.Icons
-import androidx.compose.material.icons.filled.Person
-import androidx.compose.material.icons.filled.Settings
import androidx.compose.material3.Icon
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
+import androidx.compose.ui.res.painterResource
import androidx.compose.ui.unit.dp
import com.afternote.core.ui.theme.AfternoteDesign
import com.afternote.core.ui.topbar.DetailTopBar
+import com.afternote.feature.afternote.presentation.R
@Composable
fun TopHeader(modifier: Modifier = Modifier) {
@@ -20,14 +19,14 @@ fun TopHeader(modifier: Modifier = Modifier) {
title = "AFTERNOTE",
actions = {
Icon(
- imageVector = Icons.Default.Person,
+ painter = painterResource(R.drawable.feature_afternote_ic_person),
contentDescription = null,
modifier = Modifier.size(24.dp),
tint = AfternoteDesign.colors.gray9,
)
Spacer(modifier = Modifier.width(16.dp))
Icon(
- imageVector = Icons.Default.Settings,
+ painter = painterResource(R.drawable.feature_afternote_ic_settings),
contentDescription = null,
modifier = Modifier.size(24.dp),
tint = AfternoteDesign.colors.gray9,
diff --git a/feature/afternote/presentation/src/main/kotlin/com/afternote/feature/afternote/presentation/shared/detail/song/SearchableSongList.kt b/feature/afternote/presentation/src/main/kotlin/com/afternote/feature/afternote/presentation/shared/detail/song/SearchableSongList.kt
index c59a98647..9d0172852 100644
--- a/feature/afternote/presentation/src/main/kotlin/com/afternote/feature/afternote/presentation/shared/detail/song/SearchableSongList.kt
+++ b/feature/afternote/presentation/src/main/kotlin/com/afternote/feature/afternote/presentation/shared/detail/song/SearchableSongList.kt
@@ -25,8 +25,6 @@ import androidx.compose.foundation.text.KeyboardOptions
import androidx.compose.foundation.text.input.TextFieldLineLimits
import androidx.compose.foundation.text.input.TextFieldState
import androidx.compose.foundation.text.input.rememberTextFieldState
-import androidx.compose.material.icons.Icons
-import androidx.compose.material.icons.filled.Search
import androidx.compose.material3.Icon
import androidx.compose.material3.Scaffold
import androidx.compose.material3.Text
@@ -44,6 +42,7 @@ import androidx.compose.ui.draw.shadow
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.SolidColor
import androidx.compose.ui.platform.LocalFocusManager
+import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.input.ImeAction
@@ -539,7 +538,7 @@ private fun SongSearchTextField(
}
Spacer(modifier = Modifier.width(8.dp))
Icon(
- imageVector = Icons.Default.Search,
+ painter = painterResource(R.drawable.feature_afternote_ic_search),
contentDescription = stringResource(R.string.song_search_label),
tint = AfternoteDesign.colors.gray9,
modifier = Modifier.size(24.dp),
diff --git a/feature/afternote/presentation/src/main/res/drawable/feature_afternote_ic_person.xml b/feature/afternote/presentation/src/main/res/drawable/feature_afternote_ic_person.xml
new file mode 100644
index 000000000..deebb3d40
--- /dev/null
+++ b/feature/afternote/presentation/src/main/res/drawable/feature_afternote_ic_person.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
diff --git a/feature/afternote/presentation/src/main/res/drawable/feature_afternote_ic_play_arrow.xml b/feature/afternote/presentation/src/main/res/drawable/feature_afternote_ic_play_arrow.xml
new file mode 100644
index 000000000..95e40a5c5
--- /dev/null
+++ b/feature/afternote/presentation/src/main/res/drawable/feature_afternote_ic_play_arrow.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
diff --git a/feature/afternote/presentation/src/main/res/drawable/feature_afternote_ic_search.xml b/feature/afternote/presentation/src/main/res/drawable/feature_afternote_ic_search.xml
new file mode 100644
index 000000000..8f3b3b48a
--- /dev/null
+++ b/feature/afternote/presentation/src/main/res/drawable/feature_afternote_ic_search.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
diff --git a/feature/afternote/presentation/src/main/res/drawable/feature_afternote_ic_settings.xml b/feature/afternote/presentation/src/main/res/drawable/feature_afternote_ic_settings.xml
new file mode 100644
index 000000000..7279c4da9
--- /dev/null
+++ b/feature/afternote/presentation/src/main/res/drawable/feature_afternote_ic_settings.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
diff --git a/feature/afternote/presentation/src/screenshotTestDebug/reference/com/afternote/feature/afternote/presentation/receiver/playlist/MemorialPlaylistScreenScreenshotTestKt/memorialPlaylistScreenScreenshot_748aa731_0.png b/feature/afternote/presentation/src/screenshotTestDebug/reference/com/afternote/feature/afternote/presentation/receiver/playlist/MemorialPlaylistScreenScreenshotTestKt/memorialPlaylistScreenScreenshot_748aa731_0.png
index 54a1c8c41..4809373d1 100644
Binary files a/feature/afternote/presentation/src/screenshotTestDebug/reference/com/afternote/feature/afternote/presentation/receiver/playlist/MemorialPlaylistScreenScreenshotTestKt/memorialPlaylistScreenScreenshot_748aa731_0.png and b/feature/afternote/presentation/src/screenshotTestDebug/reference/com/afternote/feature/afternote/presentation/receiver/playlist/MemorialPlaylistScreenScreenshotTestKt/memorialPlaylistScreenScreenshot_748aa731_0.png differ
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index 4d231a7c1..23cd5a860 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -65,7 +65,6 @@ androidx-compose-ui-tooling-preview = { group = "androidx.compose.ui", name = "u
androidx-compose-ui-test-manifest = { group = "androidx.compose.ui", name = "ui-test-manifest" }
androidx-compose-ui-test-junit4 = { group = "androidx.compose.ui", name = "ui-test-junit4" }
androidx-compose-material3 = { group = "androidx.compose.material3", name = "material3" }
-androidx-compose-material-icons-core = { group = "androidx.compose.material", name = "material-icons-core" }
androidx-compose-material-icons-extended = { group = "androidx.compose.material", name = "material-icons-extended" }
androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" }
material = { group = "com.google.android.material", name = "material", version.ref = "material" }