File tree Expand file tree Collapse file tree 2 files changed +18
-11
lines changed
features/knockrequests/impl/src/main/kotlin/io/element/android/features/knockrequests/impl/banner
libraries/core/src/main/kotlin/io/element/android/libraries/core/extensions Expand file tree Collapse file tree 2 files changed +18
-11
lines changed Original file line number Diff line number Diff line change @@ -14,6 +14,7 @@ import io.element.android.features.knockrequests.impl.KnockRequest
1414import io.element.android.features.knockrequests.impl.R
1515import io.element.android.features.knockrequests.impl.getBestName
1616import io.element.android.libraries.architecture.AsyncAction
17+ import io.element.android.libraries.core.extensions.firstIfSingle
1718import kotlinx.collections.immutable.ImmutableList
1819
1920data class KnockRequestsBannerState (
@@ -23,17 +24,8 @@ data class KnockRequestsBannerState(
2324 val canAccept : Boolean ,
2425 val eventSink : (KnockRequestsBannerEvents ) -> Unit ,
2526) {
26- val subtitle = if (knockRequests.size == 1 ) {
27- knockRequests.first().userId.value
28- } else {
29- null
30- }
31-
32- val reason = if (knockRequests.size == 1 ) {
33- knockRequests.first().reason
34- } else {
35- null
36- }
27+ val subtitle = knockRequests.firstIfSingle()?.userId?.value
28+ val reason = knockRequests.firstIfSingle()?.reason
3729
3830 @Composable
3931 fun formattedTitle (): String {
Original file line number Diff line number Diff line change 1+ /*
2+ * Copyright 2024 New Vector Ltd.
3+ *
4+ * SPDX-License-Identifier: AGPL-3.0-only
5+ * Please see LICENSE in the repository root for full details.
6+ */
7+
8+ package io.element.android.libraries.core.extensions
9+
10+ /* *
11+ * Returns the first element if the list contains exactly one element, otherwise returns null.
12+ */
13+ inline fun <reified T > List<T>.firstIfSingle (): T ? {
14+ return if (size == 1 ) first() else null
15+ }
You can’t perform that action at this time.
0 commit comments