diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index fe5c523f..820912b5 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -26,18 +26,6 @@
android:shell="true"
tools:targetApi="29" />
-
-
-
-
-
-
-
diff --git a/app/src/zcashtestnet/res/values/strings.xml b/app/src/zcashtestnet/res/values/strings.xml
deleted file mode 100644
index 89d75f73..00000000
--- a/app/src/zcashtestnet/res/values/strings.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
- Testnet
-
diff --git a/configuration-api-lib/src/commonMain/kotlin/co/electriccoin/zcash/configuration/api/MergingConfigurationProvider.kt b/configuration-api-lib/src/commonMain/kotlin/co/electriccoin/zcash/configuration/api/MergingConfigurationProvider.kt
index f2a8fa8c..dcd8c30b 100644
--- a/configuration-api-lib/src/commonMain/kotlin/co/electriccoin/zcash/configuration/api/MergingConfigurationProvider.kt
+++ b/configuration-api-lib/src/commonMain/kotlin/co/electriccoin/zcash/configuration/api/MergingConfigurationProvider.kt
@@ -6,6 +6,7 @@ import kotlinx.collections.immutable.PersistentList
import kotlinx.collections.immutable.toPersistentList
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.combine
+import kotlinx.coroutines.flow.flowOf
import kotlinx.datetime.Instant
class MergingConfigurationProvider(private val configurationProviders: PersistentList) : ConfigurationProvider {
@@ -14,8 +15,12 @@ class MergingConfigurationProvider(private val configurationProviders: Persisten
}
override fun getConfigurationFlow(): Flow {
- return combine(configurationProviders.map { it.getConfigurationFlow() }) { configurations ->
- MergingConfiguration(configurations.toList().toPersistentList())
+ return if (configurationProviders.isEmpty()) {
+ flowOf(MergingConfiguration(emptyList().toPersistentList()))
+ } else {
+ combine(configurationProviders.map { it.getConfigurationFlow() }) { configurations ->
+ MergingConfiguration(configurations.toList().toPersistentList())
+ }
}
}
diff --git a/configuration-api-lib/src/commonTest/kotlin/co/electriccoin/zcash/configuration/api/MergingConfigurationProviderTest.kt b/configuration-api-lib/src/commonTest/kotlin/co/electriccoin/zcash/configuration/api/MergingConfigurationProviderTest.kt
index ee5a6a63..17edf856 100644
--- a/configuration-api-lib/src/commonTest/kotlin/co/electriccoin/zcash/configuration/api/MergingConfigurationProviderTest.kt
+++ b/configuration-api-lib/src/commonTest/kotlin/co/electriccoin/zcash/configuration/api/MergingConfigurationProviderTest.kt
@@ -5,6 +5,7 @@ import co.electriccoin.zcash.configuration.model.map.StringConfiguration
import co.electriccoin.zcash.configuration.test.fixture.BooleanDefaultEntryFixture
import kotlinx.collections.immutable.persistentListOf
import kotlinx.collections.immutable.persistentMapOf
+import kotlinx.collections.immutable.toPersistentList
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.first
@@ -41,6 +42,18 @@ class MergingConfigurationProviderTest {
assertTrue(BooleanDefaultEntryFixture.newTrueEntry().getValue(configurationProvider.getConfigurationFlow().first()))
}
+ @Test
+ @OptIn(ExperimentalCoroutinesApi::class)
+ fun getFlow_empty() = runTest {
+ val configurationProvider = MergingConfigurationProvider(
+ emptyList().toPersistentList()
+ )
+
+ val firstMergedConfiguration = configurationProvider.getConfigurationFlow().first()
+
+ assertTrue(BooleanDefaultEntryFixture.newTrueEntry().getValue(firstMergedConfiguration))
+ }
+
@Test
@OptIn(ExperimentalCoroutinesApi::class)
fun getUpdatedAt_newest() = runTest {
diff --git a/docs/testing/Testing.md b/docs/testing/Testing.md
index a0777100..bb5d1fb6 100644
--- a/docs/testing/Testing.md
+++ b/docs/testing/Testing.md
@@ -62,8 +62,8 @@ commits of that date. Generate tests results with the Android Studio run configu
Starting 1 tests on Pixel 6 - 13
BasicStartupBenchmark_startup
- timeToFullDisplayMs min 288,1, median 305,6, max 339,1
- timeToInitialDisplayMs min 288,1, median 305,6, max 339,1
+ timeToFullDisplayMs min 288.1, median 305.6, max 339.1
+ timeToInitialDisplayMs min 288.1, median 305.6, max 339.1
Traces: Iteration 0 1 2 3 4
BUILD SUCCESSFUL in 32s
@@ -78,4 +78,33 @@ commits of that date. Generate tests results with the Android Studio run configu
Traces: Iteration 0 1 2 3 4
BUILD SUCCESSFUL in 41s
+ ```
+
+#### Feb 27, 2023:
+
+- APP version: `0.1 (1)`
+- SDK version: `1.14.0-beta01-SNAPSHOT`
+- Git branch: `main`
+- Device:
+ - Pixel 6 - Android 13:
+ ```
+ Starting 1 tests on Pixel 6 - 13
+
+ BasicStartupBenchmark_startup
+ timeToFullDisplayMs min 259.2, median 265.3, max 302.4
+ timeToInitialDisplayMs min 259.2, median 265.3, max 302.4
+ Traces: Iteration 0 1 2 3 4
+
+ BUILD SUCCESSFUL in 1m 59s
+ ```
+ - Pixel 3a - Android 12:
+ ```
+ Starting 1 tests on Pixel 3a - 12
+
+ BasicStartupBenchmark_startup
+ timeToFullDisplayMs min 632.2, median 730.8, max 785.6
+ timeToInitialDisplayMs min 632.2, median 730.8, max 785.6
+ Traces: Iteration 0 1 2 3 4
+
+ BUILD SUCCESSFUL in 43s
```
\ No newline at end of file
diff --git a/gradle.properties b/gradle.properties
index 9b06eb4c..e7a4534b 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -126,7 +126,7 @@ ANDROIDX_CORE_VERSION=1.9.0
ANDROIDX_ESPRESSO_VERSION=3.5.1
ANDROIDX_LIFECYCLE_VERSION=2.6.0-alpha04
ANDROIDX_NAVIGATION_COMPOSE_VERSION=2.5.3
-ANDROIDX_PROFILE_INSTALLER_VERSION=1.3.0-alpha03
+ANDROIDX_PROFILE_INSTALLER_VERSION=1.3.0-beta01
ANDROIDX_SECURITY_CRYPTO_VERSION=1.1.0-alpha04
ANDROIDX_SPLASH_SCREEN_VERSION=1.0.0
ANDROIDX_TEST_JUNIT_VERSION=1.1.5