From f7a4c999f7a714f47d79e935597dfc4970d598c3 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Wed, 22 Jan 2025 15:49:41 +0100 Subject: [PATCH] Replace our firstIfSingle extension with singleOrNull from the Kotlin library. --- .../impl/banner/KnockRequestsBannerPresenter.kt | 3 +-- .../impl/banner/KnockRequestsBannerState.kt | 5 ++--- .../android/libraries/core/extensions/List.kt | 15 --------------- 3 files changed, 3 insertions(+), 20 deletions(-) delete mode 100644 libraries/core/src/main/kotlin/io/element/android/libraries/core/extensions/List.kt diff --git a/features/knockrequests/impl/src/main/kotlin/io/element/android/features/knockrequests/impl/banner/KnockRequestsBannerPresenter.kt b/features/knockrequests/impl/src/main/kotlin/io/element/android/features/knockrequests/impl/banner/KnockRequestsBannerPresenter.kt index 9139620916..204a9dc4d6 100644 --- a/features/knockrequests/impl/src/main/kotlin/io/element/android/features/knockrequests/impl/banner/KnockRequestsBannerPresenter.kt +++ b/features/knockrequests/impl/src/main/kotlin/io/element/android/features/knockrequests/impl/banner/KnockRequestsBannerPresenter.kt @@ -18,7 +18,6 @@ import io.element.android.features.knockrequests.impl.data.KnockRequestPresentab import io.element.android.features.knockrequests.impl.data.KnockRequestsService import io.element.android.libraries.architecture.Presenter import io.element.android.libraries.core.coroutine.mapState -import io.element.android.libraries.core.extensions.firstIfSingle import kotlinx.collections.immutable.toImmutableList import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.delay @@ -79,7 +78,7 @@ class KnockRequestsBannerPresenter @Inject constructor( knockRequests: List, displayAcceptError: MutableState, ) = launch { - val knockRequest = knockRequests.firstIfSingle() + val knockRequest = knockRequests.singleOrNull() if (knockRequest != null) { knockRequestsService.acceptKnockRequest(knockRequest, optimistic = true) .onFailure { diff --git a/features/knockrequests/impl/src/main/kotlin/io/element/android/features/knockrequests/impl/banner/KnockRequestsBannerState.kt b/features/knockrequests/impl/src/main/kotlin/io/element/android/features/knockrequests/impl/banner/KnockRequestsBannerState.kt index 4243c65c49..1912891afa 100644 --- a/features/knockrequests/impl/src/main/kotlin/io/element/android/features/knockrequests/impl/banner/KnockRequestsBannerState.kt +++ b/features/knockrequests/impl/src/main/kotlin/io/element/android/features/knockrequests/impl/banner/KnockRequestsBannerState.kt @@ -12,7 +12,6 @@ import androidx.compose.ui.res.pluralStringResource import androidx.compose.ui.res.stringResource import io.element.android.features.knockrequests.impl.R import io.element.android.features.knockrequests.impl.data.KnockRequestPresentable -import io.element.android.libraries.core.extensions.firstIfSingle import kotlinx.collections.immutable.ImmutableList data class KnockRequestsBannerState( @@ -22,8 +21,8 @@ data class KnockRequestsBannerState( val canAccept: Boolean, val eventSink: (KnockRequestsBannerEvents) -> Unit, ) { - val subtitle = knockRequests.firstIfSingle()?.userId?.value - val reason = knockRequests.firstIfSingle()?.reason + val subtitle = knockRequests.singleOrNull()?.userId?.value + val reason = knockRequests.singleOrNull()?.reason @Composable fun formattedTitle(): String { diff --git a/libraries/core/src/main/kotlin/io/element/android/libraries/core/extensions/List.kt b/libraries/core/src/main/kotlin/io/element/android/libraries/core/extensions/List.kt deleted file mode 100644 index a092826a76..0000000000 --- a/libraries/core/src/main/kotlin/io/element/android/libraries/core/extensions/List.kt +++ /dev/null @@ -1,15 +0,0 @@ -/* - * Copyright 2024 New Vector Ltd. - * - * SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial - * Please see LICENSE files in the repository root for full details. - */ - -package io.element.android.libraries.core.extensions - -/** - * Returns the first element if the list contains exactly one element, otherwise returns null. - */ -inline fun List.firstIfSingle(): T? { - return if (size == 1) first() else null -}