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" }