Skip to content

Commit

Permalink
Merge pull request #303 from Team-HMH/feature/app_add_compose
Browse files Browse the repository at this point in the history
[Feature/app add compose]: 앱 선택 화면만 컴포즈로 마이그레이션 작업
  • Loading branch information
kez-lab authored Feb 1, 2025
2 parents 044e9af + 96c594b commit 82ac949
Show file tree
Hide file tree
Showing 12 changed files with 342 additions and 196 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
package com.hmh.hamyeonham.core.designsystem.compose.theme

import androidx.compose.runtime.Immutable
import androidx.compose.ui.graphics.Color

val Blackground = Color(0xFF17171B)
val Gray8 = Color(0xFF1B1B23)
val Gray7 = Color(0xFF202028)
val Gray6 = Color(0xFF272934)
val Gray5 = Color(0xFF363948)
val Gray4 = Color(0xFF3D3F4D)
val Gray3 = Color(0xFF50505E)
val Gray2 = Color(0xFF8D8D9F)
val Gray1 = Color(0xFFA5A5BB)
val WhiteText = Color(0xFFDBDAE7)

val BluePurpleButton = Color(0xFF3D17D3)
val BluePurpleLine = Color(0xFF461EE7)
val BluePurpleProgress = Color(0xFF4428EC)
val BluePurpleText = Color(0xFF3726F8)

val BluePurpleOpacity70 = Color(0xB33D17D3) // 70% opacity
val BluePurpleOpacity22 = Color(0x382B1DD6) // 22% opacity

val WhiteBtn = Color(0xFFEBECF4)

@Immutable
data class HMHColor(
val blackground: Color,
val gray8: Color,
val gray7: Color,
val gray6: Color,
val gray5: Color,
val gray4: Color,
val gray3: Color,
val gray2: Color,
val gray1: Color,
val whiteText: Color,
val bluePurpleButton: Color,
val bluePurpleLine: Color,
val bluePurpleProgress: Color,
val bluePurpleText: Color,
val bluePurpleOpacity70: Color,
val bluePurpleOpacity22: Color,
val whiteBtn: Color,
)

val hmhColors = HMHColor(
blackground = Blackground,
gray8 = Gray8,
gray7 = Gray7,
gray6 = Gray6,
gray5 = Gray5,
gray4 = Gray4,
gray3 = Gray3,
gray2 = Gray2,
gray1 = Gray1,
whiteText = WhiteText,
bluePurpleButton = BluePurpleButton,
bluePurpleLine = BluePurpleLine,
bluePurpleProgress = BluePurpleProgress,
bluePurpleText = BluePurpleText,
bluePurpleOpacity70 = BluePurpleOpacity70,
bluePurpleOpacity22 = BluePurpleOpacity22,
whiteBtn = WhiteBtn,
)
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package com.hmh.hamyeonham.core.designsystem.ui.theme
package com.hmh.hamyeonham.core.designsystem.compose.theme

import android.app.Activity
import android.content.Context
import android.content.ContextWrapper
import androidx.compose.foundation.isSystemInDarkTheme
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.darkColorScheme
Expand Down Expand Up @@ -45,11 +47,14 @@ fun HMHAndroidTheme(

if (!LocalInspectionMode.current) {
val view = LocalView.current

SideEffect {
val window = (view.context as Activity).window
WindowCompat.getInsetsController(window, view).isAppearanceLightStatusBars = !darkTheme
WindowCompat.getInsetsController(window, view).isAppearanceLightNavigationBars =
!darkTheme
val activity = view.context.findActivity()
val window = activity.window
WindowCompat.getInsetsController(window, view)
.isAppearanceLightStatusBars = false
WindowCompat.getInsetsController(window, view)
.isAppearanceLightNavigationBars = !darkTheme
}
}

Expand All @@ -59,3 +64,12 @@ fun HMHAndroidTheme(
content = content
)
}

internal fun Context.findActivity(): Activity {
var context = this
while (context is ContextWrapper) {
if (context is Activity) return context
context = context.baseContext
}
throw IllegalStateException("Permissions should be called in the context of an Activity")
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.hmh.hamyeonham.core.designsystem.ui.theme
package com.hmh.hamyeonham.core.designsystem.compose.theme

import androidx.compose.material3.Typography
import androidx.compose.ui.text.TextStyle
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package com.hmh.hamyeonham.core.designsystem.compose.ui.component

import androidx.compose.foundation.interaction.MutableInteractionSource
import androidx.compose.material3.Checkbox
import androidx.compose.material3.CheckboxColors
import androidx.compose.material3.CheckboxDefaults
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import com.hmh.hamyeonham.core.designsystem.compose.theme.hmhColors

@Composable
fun HmhCheckBox(
isChecked: Boolean,
onCheckedChange: (Boolean) -> Unit,
modifier: Modifier = Modifier,
colors: CheckboxColors = CheckboxDefaults.colors(
checkmarkColor = hmhColors.whiteText,
checkedColor = hmhColors.bluePurpleLine,
uncheckedColor = hmhColors.gray3,
),
enabled: Boolean = true,
interactionSource: MutableInteractionSource? = null,
) {
Checkbox(
checked = isChecked,
colors = colors,
onCheckedChange = onCheckedChange,
modifier = modifier,
enabled = enabled,
interactionSource = interactionSource
)
}

@Preview
@Composable
fun HmhCheckBoxPreview() {
HmhCheckBox(isChecked = true, onCheckedChange = {})
}

@Preview
@Composable
fun HmhCheckBoxUncheckedPreview() {
HmhCheckBox(isChecked = false, onCheckedChange = {})
}

This file was deleted.

1 change: 1 addition & 0 deletions feature/challenge/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
@Suppress("DSL_SCOPE_VIOLATION") // TODO: Remove once KTIJ-19369 is fixed
plugins {
hmh("feature")
hmh("compose")
}

android {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ sealed interface AppAddEffect {
data object NONE : AppAddEffect
}


@OptIn(FlowPreview::class)
@HiltViewModel
class AppAddViewModel @Inject constructor(
Expand All @@ -45,6 +44,7 @@ class AppAddViewModel @Inject constructor(
val effect = _effect.asSharedFlow()

private val _query = MutableStateFlow("")
val query = _query.asStateFlow()

init {
viewModelScope.launch {
Expand Down

This file was deleted.

Loading

0 comments on commit 82ac949

Please sign in to comment.