From b7161f11ccb542f03386303efc41bc93217830b7 Mon Sep 17 00:00:00 2001 From: Sylwester Zielinski Date: Wed, 8 Feb 2023 14:23:20 +0100 Subject: [PATCH] Add SimpleSharedFlow --- app/build.gradle.kts | 2 +- .../common/core/SingleEventSharedFlow.kt | 40 +++++++++++++++++++ navigation/build.gradle.kts | 2 +- settings.gradle.kts | 2 +- 4 files changed, 43 insertions(+), 3 deletions(-) create mode 100644 core/src/main/java/no/nordicsemi/android/common/core/SingleEventSharedFlow.kt diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 29c21cc0..8b8c8341 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -54,5 +54,5 @@ dependencies { implementation(libs.androidx.hilt.navigation.compose) // debugImplementation because LeakCanary should only run in debug builds. - debugImplementation("com.squareup.leakcanary:leakcanary-android:2.10") + debugImplementation(libs.leakcanary) } diff --git a/core/src/main/java/no/nordicsemi/android/common/core/SingleEventSharedFlow.kt b/core/src/main/java/no/nordicsemi/android/common/core/SingleEventSharedFlow.kt new file mode 100644 index 00000000..68a97e59 --- /dev/null +++ b/core/src/main/java/no/nordicsemi/android/common/core/SingleEventSharedFlow.kt @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2022, Nordic Semiconductor + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its contributors may be + * used to endorse or promote products derived from this software without specific prior + * written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, + * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package no.nordicsemi.android.common.core + +import kotlinx.coroutines.channels.BufferOverflow +import kotlinx.coroutines.flow.MutableSharedFlow + +fun simpleSharedFlow() = MutableSharedFlow( + extraBufferCapacity = 1, + onBufferOverflow = BufferOverflow.DROP_OLDEST +) diff --git a/navigation/build.gradle.kts b/navigation/build.gradle.kts index 0fa2169c..eacf2e2b 100644 --- a/navigation/build.gradle.kts +++ b/navigation/build.gradle.kts @@ -33,7 +33,7 @@ plugins { alias(libs.plugins.nordic.library.compose) alias(libs.plugins.nordic.hilt) alias(libs.plugins.nordic.nexus) - id("kotlin-parcelize") + alias(libs.plugins.kotlin.parcelize) } group = "no.nordicsemi.android.common" diff --git a/settings.gradle.kts b/settings.gradle.kts index 6c0ab755..9b5c6ff3 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -48,7 +48,7 @@ dependencyResolutionManagement { } versionCatalogs { create("libs") { - from("no.nordicsemi.android.gradle:version-catalog:1.2.7") + from("no.nordicsemi.android.gradle:version-catalog:1.2.8") } } }