Skip to content

Commit

Permalink
Merge pull request #302 from ParkJong-Hun/feature/#283
Browse files Browse the repository at this point in the history
[세션] 복수의 발표자 대응
  • Loading branch information
taehwandev authored Jun 4, 2024
2 parents 8f6c5ab + 7dc29d8 commit c6c8574
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,12 @@ private fun SessionDetailContent(session: Session) {
HorizontalDivider(thickness = 1.dp, color = MaterialTheme.colorScheme.outline)
Spacer(modifier = Modifier.height(40.dp))

SessionDetailSpeaker(session.speakers.first())
session.speakers.forEach { speaker ->
SessionDetailSpeaker(speaker)
if (speaker != session.speakers.last()) {
Spacer(modifier = Modifier.height(40.dp))
}
}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ import androidx.glance.layout.fillMaxSize
import androidx.glance.layout.height
import androidx.glance.layout.padding
import com.droidknights.app.core.designsystem.theme.KnightsGlanceTheme
import com.droidknights.app.core.model.Session
import com.droidknights.app.widget.DroidKnightsWidgetReceiver.Companion.KEY_SESSION_IDS
import com.droidknights.app.widget.di.WidgetModule
import dagger.hilt.EntryPoints
Expand All @@ -44,14 +43,16 @@ class DroidKnightsWidget : GlanceAppWidget() {
provideContent {
KnightsGlanceTheme {
val state = currentState(stringSetPreferencesKey(KEY_SESSION_IDS))
var list: List<Session> by remember(state) { mutableStateOf(listOf()) }
var widgetSessionCards: List<WidgetSessionCardUiState> by remember(state) {
mutableStateOf(listOf())
}

LaunchedEffect(state) {
list = arrayListOf<Session>().apply {
state?.forEach {
this.add(widgetModule.getSessionUseCase().invoke(it))
}
}
widgetSessionCards = state?.map {
WidgetSessionCardUiState(
session = widgetModule.getSessionUseCase().invoke(it),
)
} ?: emptyList()
}

Column(
Expand All @@ -64,7 +65,7 @@ class DroidKnightsWidget : GlanceAppWidget() {
WidgetTitle()
Spacer(modifier = GlanceModifier.height(16.dp))
LazyColumn {
items(list) {
items(widgetSessionCards) {
WidgetSessionCard(it)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,35 +22,34 @@ import com.droidknights.app.core.model.Session
import kotlinx.datetime.toJavaLocalDateTime

@Composable
internal fun WidgetSessionCard(session: Session) {
internal fun WidgetSessionCard(uiState: WidgetSessionCardUiState) {
val context = LocalContext.current

Box(modifier = GlanceModifier.padding(bottom = 16.dp, end = 16.dp)) {
Column(
modifier = GlanceModifier.padding(16.dp).fillMaxWidth()
.cornerRadius(12.dp).background(GlanceTheme.colors.tertiaryContainer).clickable(
actionStartActivityWithSessionId(context, session.id)
actionStartActivityWithSessionId(context, uiState.session.id)
)
) {
Text(
session.title,
uiState.session.title,
style = TextDefaults.defaultTextStyle.copy(
fontSize = 16.sp,
color = GlanceTheme.colors.onTertiaryContainer
)
)
Row {
Text(
session.toTimeString(),
uiState.session.toTimeString(),
style = TextDefaults.defaultTextStyle.copy(
fontSize = 14.sp,
color = GlanceTheme.colors.onTertiaryContainer
)
)
Spacer(modifier = GlanceModifier.width(4.dp))
Text(
// FIXME : 2명 이상 발표자 있는 case에 대해 정상 동작하도록 수정 필요
session.speakers.first().name,
uiState.speakerLabel,
style = TextDefaults.defaultTextStyle.copy(
fontSize = 14.sp,
color = GlanceTheme.colors.onTertiaryContainer
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.droidknights.app.widget

import androidx.compose.runtime.Immutable
import com.droidknights.app.core.model.Session

@Immutable
data class WidgetSessionCardUiState(
val session: Session,
) {
val speakerLabel: String by lazy { session.speakers.joinToString { it.name } }
}

0 comments on commit c6c8574

Please sign in to comment.