Skip to content

πŸ”€ :: (#804) new λ””μžμΈ μ‹œμŠ€ν…œ 적용#805

Merged
uson1004 merged 6 commits intodevelopfrom
feature/804-new-λ””μžμΈ-μ‹œμŠ€ν…œ-적용
Dec 7, 2025

Hidden character warning

The head ref may contain hidden characters: "feature/804-new-\ub514\uc790\uc778-\uc2dc\uc2a4\ud15c-\uc801\uc6a9"
Merged

πŸ”€ :: (#804) new λ””μžμΈ μ‹œμŠ€ν…œ 적용#805
uson1004 merged 6 commits intodevelopfrom
feature/804-new-λ””μžμΈ-μ‹œμŠ€ν…œ-적용

Conversation

@uson1004
Copy link
Member

@uson1004 uson1004 commented Dec 7, 2025

κ°œμš”

λ³€κ²½λœ λ””μžμΈ μ‹œμŠ€ν…œμ„ μ μš©ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

μž‘μ—…μ‚¬ν•­

  • 폰트 적용
  • 컬러 적용

μΆ”κ°€ 둜 ν•  말

Summary by CodeRabbit

  • New Features

    • Comprehensive design system: theming, color palettes and typography with light/dark support.
    • Material 3 support and extended material icons for richer UI components.
    • Widgets updated with explicit light/dark color providers.
  • UX / Reliability

    • App now exposes an update-failure state to better surface update errors.
  • Infrastructure

    • Added product flavor support for dev and prod builds.

✏️ Tip: You can customize this high-level summary in your review settings.

@uson1004 uson1004 requested review from a team, Copilot and parkuiery December 7, 2025 14:18
@uson1004 uson1004 self-assigned this Dec 7, 2025
@uson1004 uson1004 added the feat μƒˆλ‘œμš΄ κΈ°λŠ₯을 μΆ”κ°€ ν•  경우 label Dec 7, 2025
@uson1004 uson1004 linked an issue Dec 7, 2025 that may be closed by this pull request
@coderabbitai
Copy link

coderabbitai bot commented Dec 7, 2025

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

Walkthrough

Introduces product flavor support (dev/prod) across modules, adds a Compose-based design system (colors, typography, theme) with dev/prod variants, moves widget glance color schemes into flavors, adds material3 dependencies, removes mainViewModel from DmsApp call, and adds an update-failure StateFlow in MainActivityViewModel.

Changes

Cohort / File(s) Change Summary
Product Flavor Configuration
core/design-system/build.gradle.kts, core/notification/build.gradle.kts, core/ui/build.gradle.kts, core/widget/build.gradle.kts, feature/build.gradle.kts
Adds flavor dimension environment and dev/prod product flavors to Android Gradle configuration across modules.
App Layer
app/src/prod/kotlin/team/aliens/dms/android/app/MainActivity.kt, app/src/prod/kotlin/team/aliens/dms/android/app/MainActivityViewModel.kt
Removes mainViewModel argument from DmsApp invocation in MainActivity; introduces private _isUpdateFailed: MutableStateFlow<Boolean> and public isUpdateFailed: StateFlow<Boolean> in MainActivityViewModel for update-failure tracking.
Design System β€” Colors (Dev)
core/design-system/src/dev/java/team/aliens/dms/android/core/designsystem/Colors.kt
Adds Colors class with observable color tokens, DmsColor sealed class with Light/Dark palettes, lightColors()/darkColors() helpers, and LocalColors composition local.
Design System β€” Theme
core/design-system/src/dev/java/team/aliens/dms/android/core/designsystem/Theme.kt, core/design-system/src/prod/java/team/aliens/dms/android/core/designsystem/Theme.kt
Adds DmsTheme composable and DmsTheme object accessors; prod variant aligns MaterialTheme typography with DmsTheme.typography via a MaterialTypography alias and local wiring.
Design System β€” Typography (Dev)
core/design-system/src/dev/java/team/aliens/dms/android/core/designsystem/Typography.kt
Adds immutable Typography class, notoSansFontFamily, extension properties mapping new naming scheme (headlineB/M, titleB/M, etc.) to standard slots, and LocalTypography composition local.
Widget Color Schemes (Flavor split)
core/widget/src/main/java/team/aliens/dms/android/core/widget/designsystem/DmsWidgetGlanceColorScheme.kt (removed), core/widget/src/dev/designsystem/DmsWidgetGlanceColorScheme.kt, core/widget/src/prod/designsystem/DmsWidgetGlanceColorScheme.kt
Removes main glance color scheme file; adds flavor-specific glance color providers for dev and prod exposing light/dark ColorProviders.
Dependencies / Versions
gradle/libs.versions.toml
Adds material3 = "1.4.0" and declares androidx-compose-material3 and androidx-compose-material-icons-extended library entries.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • Pay attention to: color token completeness and light/dark parity in Colors and Widget schemes; correctness of CompositionLocal wiring in Theme files; typography mapping consistency and font fallback; StateFlow usage and lifecycle in MainActivityViewModel; flavor configuration consistency across build files.

Possibly related PRs

Suggested labels

setting

Suggested reviewers

  • parkuiery

Poem

🐰 I hopped through flavors, light and prod,
Colors and fonts stitched by paw and nod,
StateFlows hum to track a tiny plight,
Widgets glow in morning and in night,
A rabbit cheers: the theme set looks just right! ✨

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
βœ… Passed checks (2 passed)
Check name Status Explanation
Description Check βœ… Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check βœ… Passed The PR title references issue #804 and indicates applying a new design system with font and color changes, which aligns with the extensive design system additions (Colors.kt, Theme.kt, Typography.kt, flavor configurations) and related modifications across multiple modules.
✨ Finishing touches
  • πŸ“ Generate docstrings
πŸ§ͺ Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feature/804-new-λ””μžμΈ-μ‹œμŠ€ν…œ-적용

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❀️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR applies a new design system to the DMS Android application, implementing updated fonts and colors. The changes introduce product flavors (dev/prod) across multiple modules to support environment-specific design system implementations, add Material3 dependencies, and include a new meal widget feature with Glance support.

Key changes:

  • Added Material3 and extended icons dependencies for enhanced UI components
  • Implemented environment-specific product flavors (dev/prod) across core and feature modules
  • Created separate design system implementations for dev and prod environments with distinct color schemes and typography
  • Introduced a new meal widget with work manager integration for periodic updates

Reviewed changes

Copilot reviewed 15 out of 25 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
gradle/libs.versions.toml Added Material3 1.4.0 and extended icons dependencies
feature/build.gradle.kts Added dev/prod product flavors and extended icons dependency
core/widget/build.gradle.kts Added dev/prod product flavors for widget module
core/ui/build.gradle.kts Added dev/prod product flavors for UI module
core/notification/build.gradle.kts Added dev/prod product flavors for notification module
core/design-system/build.gradle.kts Added dev/prod product flavors and Material3 dependency
core/design-system/src/prod/java/.../Typography.kt Implemented prod typography with Noto Sans font family and 12 style variants
core/design-system/src/prod/java/.../Colors.kt Implemented prod color scheme with comprehensive light/dark mode support
core/design-system/src/prod/java/.../Theme.kt Updated prod theme to integrate MaterialTheme with custom typography
core/design-system/src/dev/java/.../Typography.kt Implemented dev typography with updated design system properties and extension functions
core/design-system/src/dev/java/.../Colors.kt Implemented dev color scheme with DmsColor sealed class for light/dark modes
core/design-system/src/dev/java/.../Theme.kt Created dev theme with Material3 color scheme integration
core/widget/src/dev/designsystem/DmsWidgetGlanceColorScheme.kt Added dev widget color scheme with fully qualified imports
core/widget/src/prod/designsystem/DmsWidgetGlanceColorScheme.kt Added prod widget color scheme with fully qualified imports
core/widget/src/main/.../DmsWidgetGlanceColorScheme.kt Removed main widget color scheme (moved to flavor-specific sources)
core/widget/src/dev/meal/*.kt Implemented meal widget components with Glance, WorkManager, and DataStore support
app/src/prod/kotlin/.../MainActivity.kt Removed mainViewModel parameter from DmsApp call
app/src/prod/kotlin/.../MainActivityViewModel.kt Added missing flow imports for StateFlow implementation

πŸ’‘ Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

lineHeight = 19.1.sp,
),
bodyM: TextStyle = TextStyle(
fontWeight = FontWeight.Bold,
Copy link

Copilot AI Dec 7, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The bodyM parameter has an incorrect font weight of FontWeight.Bold. According to the naming convention (M for Medium), it should use FontWeight.Medium to be consistent with other "M" suffixed styles.

Suggested change
fontWeight = FontWeight.Bold,
fontWeight = FontWeight.Medium,

Copilot uses AI. Check for mistakes.
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🧹 Nitpick comments (3)
core/widget/src/dev/designsystem/DmsWidgetGlanceColorScheme.kt (1)

25-61: Simplify by removing redundant fully qualified names.

The color constants are already imported at the top of the file (lines 6-23), but the code uses fully qualified names throughout the color scheme definitions. This reduces readability and increases line length unnecessarily.

Apply this diff to use the imported names directly:

 private val LightColorScheme = androidx.compose.material3.lightColorScheme(
-    primary = team.aliens.dms.android.core.designsystem.PrimaryDefault,
-    onPrimary = team.aliens.dms.android.core.designsystem.Gray1,
-    primaryContainer = team.aliens.dms.android.core.designsystem.PrimaryLighten2,
-    onPrimaryContainer = team.aliens.dms.android.core.designsystem.PrimaryDarken2,
-    error = team.aliens.dms.android.core.designsystem.ErrorDefault,
-    onError = team.aliens.dms.android.core.designsystem.Gray1,
-    errorContainer = team.aliens.dms.android.core.designsystem.ErrorLighten2,
-    onErrorContainer = team.aliens.dms.android.core.designsystem.ErrorDarken2,
-    background = team.aliens.dms.android.core.designsystem.Gray2,
-    onBackground = team.aliens.dms.android.core.designsystem.Gray10,
-    inverseSurface = team.aliens.dms.android.core.designsystem.Gray7,
-    inverseOnSurface = team.aliens.dms.android.core.designsystem.Gray3,
-    surface = team.aliens.dms.android.core.designsystem.Gray1,
-    onSurface = team.aliens.dms.android.core.designsystem.Gray9,
-    surfaceVariant = team.aliens.dms.android.core.designsystem.Gray6,
-    onSurfaceVariant = team.aliens.dms.android.core.designsystem.Gray5,
+    primary = PrimaryDefault,
+    onPrimary = Gray1,
+    primaryContainer = PrimaryLighten2,
+    onPrimaryContainer = PrimaryDarken2,
+    error = ErrorDefault,
+    onError = Gray1,
+    errorContainer = ErrorLighten2,
+    onErrorContainer = ErrorDarken2,
+    background = Gray2,
+    onBackground = Gray10,
+    inverseSurface = Gray7,
+    inverseOnSurface = Gray3,
+    surface = Gray1,
+    onSurface = Gray9,
+    surfaceVariant = Gray6,
+    onSurfaceVariant = Gray5,
 )
 
 private val DarkColorScheme = androidx.compose.material3.darkColorScheme(
-    primary = team.aliens.dms.android.core.designsystem.PrimaryDefault,
-    onPrimary = team.aliens.dms.android.core.designsystem.Gray1,
-    primaryContainer = team.aliens.dms.android.core.designsystem.PrimaryLighten1,
-    onPrimaryContainer = team.aliens.dms.android.core.designsystem.PrimaryDarken2,
-    error = team.aliens.dms.android.core.designsystem.ErrorDefault,
-    onError = team.aliens.dms.android.core.designsystem.Gray1,
-    errorContainer = team.aliens.dms.android.core.designsystem.ErrorLighten1,
-    onErrorContainer = team.aliens.dms.android.core.designsystem.ErrorDarken2,
-    background = team.aliens.dms.android.core.designsystem.Gray9,
-    onBackground = team.aliens.dms.android.core.designsystem.Gray1,
-    inverseSurface = team.aliens.dms.android.core.designsystem.Gray3,
-    inverseOnSurface = team.aliens.dms.android.core.designsystem.Gray7,
-    surface = team.aliens.dms.android.core.designsystem.Gray8,
-    onSurface = team.aliens.dms.android.core.designsystem.Gray2,
-    surfaceVariant = team.aliens.dms.android.core.designsystem.Gray4,
-    onSurfaceVariant = team.aliens.dms.android.core.designsystem.Gray5,
+    primary = PrimaryDefault,
+    onPrimary = Gray1,
+    primaryContainer = PrimaryLighten1,
+    onPrimaryContainer = PrimaryDarken2,
+    error = ErrorDefault,
+    onError = Gray1,
+    errorContainer = ErrorLighten1,
+    onErrorContainer = ErrorDarken2,
+    background = Gray9,
+    onBackground = Gray1,
+    inverseSurface = Gray3,
+    inverseOnSurface = Gray7,
+    surface = Gray8,
+    onSurface = Gray2,
+    surfaceVariant = Gray4,
+    onSurfaceVariant = Gray5,
 )
core/widget/src/prod/designsystem/DmsWidgetGlanceColorScheme.kt (1)

25-61: Redundant fully qualified names.

The imports (lines 6-23) are declared but unused; the code uses fully qualified names instead. Use the imports directly for cleaner code.

 private val LightColorScheme = androidx.compose.material3.lightColorScheme(
-    primary = team.aliens.dms.android.core.designsystem.PrimaryDefault,
-    onPrimary = team.aliens.dms.android.core.designsystem.Gray1,
-    primaryContainer = team.aliens.dms.android.core.designsystem.PrimaryLighten2,
+    primary = PrimaryDefault,
+    onPrimary = Gray1,
+    primaryContainer = PrimaryLighten2,
     // ... apply same pattern to all other color assignments
 )
core/design-system/src/dev/java/team/aliens/dms/android/core/designsystem/Typography.kt (1)

248-263: Extension properties create new TextStyle instances on each access.

sLabelB and sLabelM extension properties allocate a new TextStyle on every getter call. This is fine for infrequent use but consider caching if performance becomes a concern.

πŸ“œ Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

πŸ“₯ Commits

Reviewing files that changed from the base of the PR and between 61238f1 and 73e30b8.

πŸ“’ Files selected for processing (15)
  • app/src/prod/kotlin/team/aliens/dms/android/app/MainActivity.kt (0 hunks)
  • app/src/prod/kotlin/team/aliens/dms/android/app/MainActivityViewModel.kt (1 hunks)
  • core/design-system/build.gradle.kts (2 hunks)
  • core/design-system/src/dev/java/team/aliens/dms/android/core/designsystem/Colors.kt (1 hunks)
  • core/design-system/src/dev/java/team/aliens/dms/android/core/designsystem/Theme.kt (1 hunks)
  • core/design-system/src/dev/java/team/aliens/dms/android/core/designsystem/Typography.kt (1 hunks)
  • core/design-system/src/prod/java/team/aliens/dms/android/core/designsystem/Theme.kt (2 hunks)
  • core/notification/build.gradle.kts (1 hunks)
  • core/ui/build.gradle.kts (1 hunks)
  • core/widget/build.gradle.kts (1 hunks)
  • core/widget/src/dev/designsystem/DmsWidgetGlanceColorScheme.kt (1 hunks)
  • core/widget/src/main/java/team/aliens/dms/android/core/widget/designsystem/DmsWidgetGlanceColorScheme.kt (0 hunks)
  • core/widget/src/prod/designsystem/DmsWidgetGlanceColorScheme.kt (1 hunks)
  • feature/build.gradle.kts (2 hunks)
  • gradle/libs.versions.toml (2 hunks)
πŸ’€ Files with no reviewable changes (2)
  • app/src/prod/kotlin/team/aliens/dms/android/app/MainActivity.kt
  • core/widget/src/main/java/team/aliens/dms/android/core/widget/designsystem/DmsWidgetGlanceColorScheme.kt
🧰 Additional context used
🧬 Code graph analysis (2)
core/design-system/src/prod/java/team/aliens/dms/android/core/designsystem/Theme.kt (1)
core/design-system/src/main/java/team/aliens/dms/android/core/designsystem/Toast.kt (2)
  • ToastLayout (151-167)
  • rememberToastState (143-149)
core/design-system/src/dev/java/team/aliens/dms/android/core/designsystem/Theme.kt (3)
core/design-system/src/dev/java/team/aliens/dms/android/core/designsystem/Colors.kt (2)
  • darkColors (273-312)
  • lightColors (232-271)
core/design-system/src/prod/java/team/aliens/dms/android/core/designsystem/Colors.kt (2)
  • darkColors (240-279)
  • lightColors (199-238)
core/design-system/src/main/java/team/aliens/dms/android/core/designsystem/Toast.kt (2)
  • ToastLayout (151-167)
  • rememberToastState (143-149)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: Agent
  • GitHub Check: build
πŸ”‡ Additional comments (16)
app/src/prod/kotlin/team/aliens/dms/android/app/MainActivityViewModel.kt (1)

4-26: LGTM! Clean StateFlow implementation for update failure tracking.

The implementation follows Android best practices:

  • Proper encapsulation with private mutable state and public read-only exposure
  • Thread-safe state management using StateFlow
  • Clear consume pattern for handling the failure state

The boolean flag approach is well-suited for this use case where the state needs to be set, observed, and then reset after handling.

core/notification/build.gradle.kts (1)

42-52: LGTM! Flavor configuration aligns with project-wide strategy.

The addition of the "environment" flavor dimension with dev and prod flavors is consistent with the flavor setup across other modules in this PR.

core/design-system/build.gradle.kts (1)

46-56: LGTM! Design system module properly configured.

The flavor configuration is consistent with the project-wide strategy, and the Material3 dependency addition supports the new design system implementation.

Also applies to: 75-75

core/ui/build.gradle.kts (1)

45-55: LGTM! Flavor configuration is consistent.

The environment flavor dimension setup aligns with the project-wide flavor strategy.

core/widget/build.gradle.kts (1)

44-54: LGTM! Flavor configuration is consistent.

The environment flavor dimension setup aligns with the project-wide flavor strategy.

core/design-system/src/prod/java/team/aliens/dms/android/core/designsystem/Theme.kt (1)

5-5: LGTM! Typography mapping is comprehensive.

The introduction of MaterialTypography alias and the mapping of custom typography roles (headline1/2/3, title1/2/3, body1/2/3, button, caption, overline) to Material 3 typography slots is well-structured and provides proper integration between the custom design system and Material Theme.

Also applies to: 25-47

feature/build.gradle.kts (1)

47-57: LGTM! Feature module properly configured for new design system.

The flavor configuration is consistent with the project-wide strategy, and the addition of material-icons-extended dependency supports the enhanced iconography requirements of the new design system.

Also applies to: 88-88

gradle/libs.versions.toml (1)

50-50: Material3 version 1.4.0 is current and appropriate.

The specified version is the latest stable release as of December 2025 and aligns with the December 2025 Jetpack Compose BOM (2025.12.00). No compatibility concerns identified.

core/widget/src/prod/designsystem/DmsWidgetGlanceColorScheme.kt (1)

63-68: LGTM!

The DmsWidgetGlanceColorScheme object correctly exposes ColorProviders for Glance widgets with both light and dark theme support.

core/design-system/src/dev/java/team/aliens/dms/android/core/designsystem/Theme.kt (3)

14-72: LGTM!

The light and dark color schemes are well-structured with comprehensive Material 3 color slot mappings, including secondary, tertiary, outline, and surfaceTint colors.


74-117: LGTM!

The DmsTheme composable correctly:

  • Selects color scheme based on system theme
  • Provides custom colors, shapes, and typography via CompositionLocalProvider
  • Maps custom typography to Material 3 typography slots
  • Wraps content with ToastLayout for toast support

119-135: LGTM!

The DmsTheme object provides proper read-only composable accessors to the current theme values via composition locals.

core/design-system/src/dev/java/team/aliens/dms/android/core/designsystem/Typography.kt (1)

194-225: LGTM!

The notoSansFontFamily is well-defined with comprehensive font weight variants (Black, Bold, Light, Medium, Normal, Thin).

core/design-system/src/dev/java/team/aliens/dms/android/core/designsystem/Colors.kt (3)

214-222: Duplicate color values in dark theme.

red200 and red300 share the same value (0xFFFE0F0F), and blue200 and blue300 share the same value (0xFF0F6EFE). Verify this is intentional.


11-76: LGTM!

The Colors class follows the standard Compose pattern for observable color schemes using mutableStateOf with structuralEqualityPolicy() and internal setters.


232-314: LGTM!

The lightColors() and darkColors() factory functions provide sensible defaults from DmsColor tokens, and LocalColors is correctly initialized.

Comment on lines +119 to +137
override fun toString(): String = "Colors(" +
"primary=$primary, " +
"onPrimary=$onPrimary, " +
"primaryContainer=$primaryContainer, " +
"onPrimaryContainer=$onPrimaryContainer, " +
"error=$error, " +
"onError=$onError, " +
"errorContainer=$errorContainer, " +
"onErrorContainer=$onErrorContainer, " +
"background=$background, " +
"onBackground=$onBackground, " +
"backgroundVariant=$backgroundVariant, " +
"onBackgroundVariant=$onBackgroundVariant, " +
"surface=$surface, " +
"onSurface=$onSurface, " +
"surfaceVariant=$surfaceVariant, " +
"onSurfaceVariant=$onSurfaceVariant, " +
")"
}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟑 Minor

toString() is missing icon and line properties.

The toString() method omits the icon, line, and isLight properties that are part of the class.

         "surfaceVariant=$surfaceVariant, " +
         "onSurfaceVariant=$onSurfaceVariant, " +
+        "icon=$icon, " +
+        "line=$line, " +
+        "isLight=$isLight" +
         ")"
πŸ“ Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
override fun toString(): String = "Colors(" +
"primary=$primary, " +
"onPrimary=$onPrimary, " +
"primaryContainer=$primaryContainer, " +
"onPrimaryContainer=$onPrimaryContainer, " +
"error=$error, " +
"onError=$onError, " +
"errorContainer=$errorContainer, " +
"onErrorContainer=$onErrorContainer, " +
"background=$background, " +
"onBackground=$onBackground, " +
"backgroundVariant=$backgroundVariant, " +
"onBackgroundVariant=$onBackgroundVariant, " +
"surface=$surface, " +
"onSurface=$onSurface, " +
"surfaceVariant=$surfaceVariant, " +
"onSurfaceVariant=$onSurfaceVariant, " +
")"
}
override fun toString(): String = "Colors(" +
"primary=$primary, " +
"onPrimary=$onPrimary, " +
"primaryContainer=$primaryContainer, " +
"onPrimaryContainer=$onPrimaryContainer, " +
"error=$error, " +
"onError=$onError, " +
"errorContainer=$errorContainer, " +
"onErrorContainer=$onErrorContainer, " +
"background=$background, " +
"onBackground=$onBackground, " +
"backgroundVariant=$backgroundVariant, " +
"onBackgroundVariant=$onBackgroundVariant, " +
"surface=$surface, " +
"onSurface=$onSurface, " +
"surfaceVariant=$surfaceVariant, " +
"onSurfaceVariant=$onSurfaceVariant, " +
"icon=$icon, " +
"line=$line, " +
"isLight=$isLight" +
")"
}
πŸ€– Prompt for AI Agents
In
core/design-system/src/dev/java/team/aliens/dms/android/core/designsystem/Colors.kt
around lines 119 to 137, the toString() implementation omits the icon, line, and
isLight properties; update the returned string to include "icon=$icon, " and
"line=$line, " and "isLight=$isLight" (placed appropriately with the other
properties) so the string representation includes all class fields and maintains
the same comma/spacing style as the existing entries.

Comment on lines +88 to +97
sLabelB: TextStyle = TextStyle(
fontWeight = FontWeight.Bold,
fontSize = 10.sp,
lineHeight = 11.9.sp,
),
sLabelM: TextStyle = TextStyle(
fontWeight = FontWeight.Medium,
fontSize = 10.sp,
lineHeight = 11.9.sp,
),
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟑 Minor

Unused constructor parameters sLabelB and sLabelM.

The secondary constructor accepts sLabelB and sLabelM parameters but they are not mapped to any primary constructor properties. These styles are effectively discarded.

Either remove the unused parameters or add corresponding properties to the primary constructor if these styles are needed.

πŸ€– Prompt for AI Agents
In
core/design-system/src/dev/java/team/aliens/dms/android/core/designsystem/Typography.kt
around lines 88 to 97, the secondary constructor defines sLabelB and sLabelM
parameters that are never assigned to any primary-constructor properties and are
thus discarded; fix this by either removing those parameters from the secondary
constructor if the styles are not required, or (preferred if they are needed)
add corresponding properties to the primary constructor (with type TextStyle and
matching names) and ensure the secondary constructor passes its sLabelB and
sLabelM values to those primary properties so the styles are stored and used.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

♻️ Duplicate comments (1)
core/design-system/src/dev/java/team/aliens/dms/android/core/designsystem/Typography.kt (1)

88-97: Unused constructor parameters (duplicate issue).

The sLabelB and sLabelM parameters are accepted by the secondary constructor but are never passed to the primary constructor (lines 98-111), making them effectively unused. While lines 249-263 provide these styles as dev-only extension properties, accepting unused constructor parameters is misleading.

🧹 Nitpick comments (1)
core/design-system/src/dev/java/team/aliens/dms/android/core/designsystem/Typography.kt (1)

249-263: Consider caching sLabelB and sLabelM for consistency and performance.

Unlike the other typography styles that are stored in the Typography instance, sLabelB and sLabelM are computed on every access, creating new TextStyle instances each time. While this might be acceptable for infrequent access, it's inconsistent with the design pattern used for other styles and could cause unnecessary allocations if these properties are accessed frequently (e.g., during recomposition).

Consider either:

  1. Adding sLabelB and sLabelM as properties in the primary constructor (storing them like other styles), or
  2. Document that these are intentionally computed fresh for dev-only debugging purposes
πŸ“œ Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

πŸ“₯ Commits

Reviewing files that changed from the base of the PR and between 73e30b8 and 950eba0.

πŸ“’ Files selected for processing (1)
  • core/design-system/src/dev/java/team/aliens/dms/android/core/designsystem/Typography.kt (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: build

@uson1004 uson1004 merged commit df67c6b into develop Dec 7, 2025
1 of 2 checks passed
@uson1004 uson1004 deleted the feature/804-new-λ””μžμΈ-μ‹œμŠ€ν…œ-적용 branch December 7, 2025 14:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feat μƒˆλ‘œμš΄ κΈ°λŠ₯을 μΆ”κ°€ ν•  경우

Projects

None yet

Development

Successfully merging this pull request may close these issues.

new λ””μžμΈ μ‹œμŠ€ν…œ 적용

2 participants