commit
aafc66f130
4 changed files with 18 additions and 9 deletions
2
.idea/kotlinc.xml
generated
2
.idea/kotlinc.xml
generated
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="KotlinJpsPluginSettings">
|
<component name="KotlinJpsPluginSettings">
|
||||||
<option name="version" value="2.0.20" />
|
<option name="version" value="2.0.21" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
||||||
|
|
@ -4,9 +4,9 @@
|
||||||
[versions]
|
[versions]
|
||||||
# Project
|
# Project
|
||||||
android_gradle_plugin = "8.7.1"
|
android_gradle_plugin = "8.7.1"
|
||||||
kotlin = "2.0.20"
|
kotlin = "2.0.21"
|
||||||
kotlinpoet = "2.0.0"
|
kotlinpoet = "2.0.0"
|
||||||
ksp = "2.0.20-1.0.25"
|
ksp = "2.0.21-1.0.25"
|
||||||
firebaseAppDistribution = "5.0.0"
|
firebaseAppDistribution = "5.0.0"
|
||||||
|
|
||||||
# AndroidX
|
# AndroidX
|
||||||
|
|
@ -29,7 +29,7 @@ compose_bom = "2024.10.00"
|
||||||
composecompiler = "1.5.15"
|
composecompiler = "1.5.15"
|
||||||
|
|
||||||
# Coroutines
|
# Coroutines
|
||||||
coroutines = "1.8.1"
|
coroutines = "1.9.0"
|
||||||
|
|
||||||
# Accompanist
|
# Accompanist
|
||||||
accompanist = "0.36.0"
|
accompanist = "0.36.0"
|
||||||
|
|
@ -37,17 +37,21 @@ accompanist = "0.36.0"
|
||||||
# Test
|
# Test
|
||||||
test_core = "1.6.1"
|
test_core = "1.6.1"
|
||||||
|
|
||||||
|
# Jetbrain
|
||||||
|
datetime = "0.6.1"
|
||||||
|
serialization_json = "1.7.3"
|
||||||
|
|
||||||
#other
|
#other
|
||||||
coil = "2.7.0"
|
coil = "2.7.0"
|
||||||
datetime = "0.6.0"
|
|
||||||
dependencyAnalysis = "2.3.0"
|
|
||||||
serialization_json = "1.6.3"
|
|
||||||
showkase = "1.0.3"
|
showkase = "1.0.3"
|
||||||
appyx = "1.4.0"
|
appyx = "1.4.0"
|
||||||
sqldelight = "2.0.2"
|
sqldelight = "2.0.2"
|
||||||
wysiwyg = "2.37.13"
|
wysiwyg = "2.37.13"
|
||||||
telephoto = "0.13.0"
|
telephoto = "0.13.0"
|
||||||
|
|
||||||
|
# Dependency analysis
|
||||||
|
dependencyAnalysis = "2.3.0"
|
||||||
|
|
||||||
# DI
|
# DI
|
||||||
dagger = "2.52"
|
dagger = "2.52"
|
||||||
anvil = "0.3.3"
|
anvil = "0.3.3"
|
||||||
|
|
@ -162,7 +166,7 @@ coil_test = { module = "io.coil-kt:coil-test", version.ref = "coil" }
|
||||||
compound = { module = "io.element.android:compound-android", version = "0.1.1" }
|
compound = { module = "io.element.android:compound-android", version = "0.1.1" }
|
||||||
datetime = { module = "org.jetbrains.kotlinx:kotlinx-datetime", version.ref = "datetime" }
|
datetime = { module = "org.jetbrains.kotlinx:kotlinx-datetime", version.ref = "datetime" }
|
||||||
serialization_json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "serialization_json" }
|
serialization_json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "serialization_json" }
|
||||||
kotlinx_collections_immutable = "org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.7"
|
kotlinx_collections_immutable = "org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8"
|
||||||
showkase = { module = "com.airbnb.android:showkase", version.ref = "showkase" }
|
showkase = { module = "com.airbnb.android:showkase", version.ref = "showkase" }
|
||||||
showkase_processor = { module = "com.airbnb.android:showkase-processor", version.ref = "showkase" }
|
showkase_processor = { module = "com.airbnb.android:showkase-processor", version.ref = "showkase" }
|
||||||
jsoup = "org.jsoup:jsoup:1.18.1"
|
jsoup = "org.jsoup:jsoup:1.18.1"
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@
|
||||||
|
|
||||||
package io.element.android.libraries.core.coroutine
|
package io.element.android.libraries.core.coroutine
|
||||||
|
|
||||||
|
import kotlinx.coroutines.ExperimentalForInheritanceCoroutinesApi
|
||||||
import kotlinx.coroutines.coroutineScope
|
import kotlinx.coroutines.coroutineScope
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
import kotlinx.coroutines.flow.FlowCollector
|
import kotlinx.coroutines.flow.FlowCollector
|
||||||
|
|
@ -19,6 +20,7 @@ import kotlinx.coroutines.flow.stateIn
|
||||||
* A [StateFlow] that derives its value from a [Flow].
|
* A [StateFlow] that derives its value from a [Flow].
|
||||||
* Useful when you want to apply transformations to a [Flow] and expose it as a [StateFlow].
|
* Useful when you want to apply transformations to a [Flow] and expose it as a [StateFlow].
|
||||||
*/
|
*/
|
||||||
|
@OptIn(ExperimentalForInheritanceCoroutinesApi::class)
|
||||||
class DerivedStateFlow<T>(
|
class DerivedStateFlow<T>(
|
||||||
private val getValue: () -> T,
|
private val getValue: () -> T,
|
||||||
private val flow: Flow<T>
|
private val flow: Flow<T>
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@
|
||||||
package io.element.android.services.analytics.test
|
package io.element.android.services.analytics.test
|
||||||
|
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
|
import androidx.compose.runtime.LaunchedEffect
|
||||||
import im.vector.app.features.analytics.plan.MobileScreen
|
import im.vector.app.features.analytics.plan.MobileScreen
|
||||||
import io.element.android.services.analytics.api.ScreenTracker
|
import io.element.android.services.analytics.api.ScreenTracker
|
||||||
import io.element.android.tests.testutils.lambda.lambdaError
|
import io.element.android.tests.testutils.lambda.lambdaError
|
||||||
|
|
@ -17,6 +18,8 @@ class FakeScreenTracker(
|
||||||
) : ScreenTracker {
|
) : ScreenTracker {
|
||||||
@Composable
|
@Composable
|
||||||
override fun TrackScreen(screen: MobileScreen.ScreenName) {
|
override fun TrackScreen(screen: MobileScreen.ScreenName) {
|
||||||
trackScreenLambda(screen)
|
LaunchedEffect(Unit) {
|
||||||
|
trackScreenLambda(screen)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue