1
0
Fork 0
mirror of https://github.com/anyproto/anytype-kotlin.git synced 2025-06-08 13:57:10 +09:00

Tech | Experimental flavour config provider (#1680)

This commit is contained in:
Evgenii Kozlov 2021-07-26 15:27:23 +03:00 committed by GitHub
parent 898d17f960
commit 2580f179dc
Signed by: github
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 31 additions and 3 deletions

View file

@ -4,7 +4,9 @@ import android.content.Context
import android.content.SharedPreferences
import androidx.security.crypto.EncryptedSharedPreferences
import androidx.security.crypto.MasterKeys
import com.anytypeio.anytype.data.auth.config.FlavourConfigMemoryCache
import com.anytypeio.anytype.BuildConfig
import com.anytypeio.anytype.data.auth.config.DefaultFlavourConfigProvider
import com.anytypeio.anytype.data.auth.config.ExperimentalFlavourConfigProvider
import com.anytypeio.anytype.data.auth.repo.*
import com.anytypeio.anytype.data.auth.repo.block.BlockDataRepository
import com.anytypeio.anytype.data.auth.repo.block.BlockDataStoreFactory
@ -235,5 +237,10 @@ object DataModule {
@JvmStatic
@Provides
@Singleton
fun provideFlavourConfigProvider(): FlavourConfigProvider = FlavourConfigMemoryCache()
fun provideFlavourConfigProvider(): FlavourConfigProvider {
return if (BuildConfig.FLAVOR == "experimental")
ExperimentalFlavourConfigProvider()
else
DefaultFlavourConfigProvider()
}
}

View file

@ -3,7 +3,10 @@ package com.anytypeio.anytype.data.auth.config
import com.anytypeio.anytype.core_models.FlavourConfig
import com.anytypeio.anytype.domain.config.FlavourConfigProvider
class FlavourConfigMemoryCache : FlavourConfigProvider {
/**
* Flavour-config provider for real-world application.
*/
class DefaultFlavourConfigProvider : FlavourConfigProvider {
private var config: FlavourConfig = FlavourConfig(
enableDataView = false,
@ -20,4 +23,22 @@ class FlavourConfigMemoryCache : FlavourConfigProvider {
enableChannelSwitch = enableChannelSwitch
)
}
}
/**
* Flavour-config provider mostly for development purposes.
*/
class ExperimentalFlavourConfigProvider : FlavourConfigProvider {
private var config: FlavourConfig = FlavourConfig(
enableDataView = true,
enableDebug = true,
enableChannelSwitch = true
)
override fun get(): FlavourConfig = config
override fun set(enableDataView: Boolean, enableDebug: Boolean, enableChannelSwitch: Boolean) {
// Ignoring real config.
}
}