mirror of
https://github.com/anyproto/anytype-kotlin.git
synced 2025-06-08 05:47:05 +09:00
GO-3753 App | Tech | Refact app params and metrics API interaction (#1605)
This commit is contained in:
parent
d0edde4726
commit
7d616cfff3
27 changed files with 139 additions and 122 deletions
|
@ -0,0 +1,35 @@
|
|||
package com.anytypeio.anytype.app
|
||||
|
||||
import android.content.Context
|
||||
import com.anytypeio.anytype.BuildConfig
|
||||
import com.anytypeio.anytype.core_models.Command
|
||||
import com.anytypeio.anytype.domain.platform.InitialParamsProvider
|
||||
|
||||
class DefaultInitialParamsProvider(context: Context) : InitialParamsProvider {
|
||||
|
||||
override val workDir = context.filesDir.absolutePath
|
||||
override val defaultLogLevel =
|
||||
"common.commonspace.headsync=INFO;core.block.editor.spaceview=INFO;*=WARN"
|
||||
|
||||
override fun getVersion(): String {
|
||||
return if (BuildConfig.DEBUG)
|
||||
BuildConfig.VERSION_NAME + DEV_PREFIX
|
||||
else {
|
||||
return BuildConfig.VERSION_NAME
|
||||
}
|
||||
}
|
||||
|
||||
override fun getPlatform(): String = PLATFORM_NAME
|
||||
|
||||
companion object {
|
||||
const val PLATFORM_NAME = "android"
|
||||
const val DEV_PREFIX = "-dev"
|
||||
}
|
||||
|
||||
override fun toCommand() = Command.SetInitialParams(
|
||||
version = getVersion(),
|
||||
platform = getPlatform(),
|
||||
workDir = workDir,
|
||||
defaultLogLevel = defaultLogLevel
|
||||
)
|
||||
}
|
|
@ -1,21 +0,0 @@
|
|||
package com.anytypeio.anytype.app
|
||||
|
||||
import com.anytypeio.anytype.BuildConfig
|
||||
import com.anytypeio.anytype.domain.platform.MetricsProvider
|
||||
|
||||
class DefaultMetricsProvider : MetricsProvider {
|
||||
override fun getVersion(): String {
|
||||
return if (BuildConfig.DEBUG)
|
||||
BuildConfig.VERSION_NAME + DEV_PREFIX
|
||||
else {
|
||||
return BuildConfig.VERSION_NAME
|
||||
}
|
||||
}
|
||||
|
||||
override fun getPlatform(): String = PLATFORM_NAME
|
||||
|
||||
companion object {
|
||||
const val PLATFORM_NAME = "android"
|
||||
const val DEV_PREFIX = "-dev"
|
||||
}
|
||||
}
|
|
@ -15,7 +15,7 @@ import com.anytypeio.anytype.domain.config.UserSettingsRepository
|
|||
import com.anytypeio.anytype.domain.device.PathProvider
|
||||
import com.anytypeio.anytype.domain.misc.LocaleProvider
|
||||
import com.anytypeio.anytype.domain.notifications.SystemNotificationService
|
||||
import com.anytypeio.anytype.domain.platform.MetricsProvider
|
||||
import com.anytypeio.anytype.domain.platform.InitialParamsProvider
|
||||
import com.anytypeio.anytype.domain.subscriptions.GlobalSubscriptionManager
|
||||
import com.anytypeio.anytype.domain.theme.GetTheme
|
||||
import com.anytypeio.anytype.domain.wallpaper.ObserveWallpaper
|
||||
|
@ -97,7 +97,7 @@ object MainEntryModule {
|
|||
authRepository: AuthRepository,
|
||||
pathProvider: PathProvider,
|
||||
configStorage: ConfigStorage,
|
||||
metricsProvider: MetricsProvider,
|
||||
initialParamsProvider: InitialParamsProvider,
|
||||
awaitAccountStartManager: AwaitAccountStartManager,
|
||||
spaceManager: SpaceManager,
|
||||
settingsRepository: UserSettingsRepository
|
||||
|
@ -105,7 +105,7 @@ object MainEntryModule {
|
|||
repository = authRepository,
|
||||
pathProvider = pathProvider,
|
||||
configStorage = configStorage,
|
||||
metricsProvider = metricsProvider,
|
||||
initialParamsProvider = initialParamsProvider,
|
||||
awaitAccountStartManager = awaitAccountStartManager,
|
||||
spaceManager = spaceManager,
|
||||
settings = settingsRepository
|
||||
|
|
|
@ -25,7 +25,7 @@ import com.anytypeio.anytype.domain.misc.UrlBuilder
|
|||
import com.anytypeio.anytype.domain.multiplayer.UserPermissionProvider
|
||||
import com.anytypeio.anytype.domain.page.CreateObject
|
||||
import com.anytypeio.anytype.domain.page.CreateObjectByTypeAndTemplate
|
||||
import com.anytypeio.anytype.domain.platform.MetricsProvider
|
||||
import com.anytypeio.anytype.domain.platform.InitialParamsProvider
|
||||
import com.anytypeio.anytype.domain.search.RelationsSubscriptionManager
|
||||
import com.anytypeio.anytype.domain.spaces.SpaceDeletedStatusWatcher
|
||||
import com.anytypeio.anytype.domain.subscriptions.GlobalSubscriptionManager
|
||||
|
@ -77,7 +77,7 @@ object SplashModule {
|
|||
pathProvider: PathProvider,
|
||||
configStorage: ConfigStorage,
|
||||
spaceManager: SpaceManager,
|
||||
metricsProvider: MetricsProvider,
|
||||
initialParamsProvider: InitialParamsProvider,
|
||||
userSettings: UserSettingsRepository,
|
||||
awaitAccountStartManager: AwaitAccountStartManager
|
||||
): LaunchAccount = LaunchAccount(
|
||||
|
@ -85,7 +85,7 @@ object SplashModule {
|
|||
pathProvider = pathProvider,
|
||||
configStorage = configStorage,
|
||||
spaceManager = spaceManager,
|
||||
metricsProvider = metricsProvider,
|
||||
initialParamsProvider = initialParamsProvider,
|
||||
settings = userSettings,
|
||||
awaitAccountStartManager = awaitAccountStartManager
|
||||
)
|
||||
|
@ -193,7 +193,7 @@ interface SplashDependencies : ComponentDependencies {
|
|||
fun userSettingsRepository(): UserSettingsRepository
|
||||
fun dispatchers(): AppCoroutineDispatchers
|
||||
fun crashReporter(): CrashReporter
|
||||
fun metricsProvider(): MetricsProvider
|
||||
fun metricsProvider(): InitialParamsProvider
|
||||
fun spaceManager(): SpaceManager
|
||||
fun spaceStatusWatcher(): SpaceDeletedStatusWatcher
|
||||
fun localeProvider(): LocaleProvider
|
||||
|
|
|
@ -17,7 +17,7 @@ import com.anytypeio.anytype.domain.debugging.DebugGoroutines
|
|||
import com.anytypeio.anytype.domain.device.PathProvider
|
||||
import com.anytypeio.anytype.domain.misc.LocaleProvider
|
||||
import com.anytypeio.anytype.domain.multiplayer.UserPermissionProvider
|
||||
import com.anytypeio.anytype.domain.platform.MetricsProvider
|
||||
import com.anytypeio.anytype.domain.platform.InitialParamsProvider
|
||||
import com.anytypeio.anytype.domain.spaces.SpaceDeletedStatusWatcher
|
||||
import com.anytypeio.anytype.domain.subscriptions.GlobalSubscriptionManager
|
||||
import com.anytypeio.anytype.domain.workspace.SpaceManager
|
||||
|
@ -87,7 +87,7 @@ interface OnboardingMnemonicLoginDependencies : ComponentDependencies {
|
|||
fun pathProvider(): PathProvider
|
||||
fun crashReporter(): CrashReporter
|
||||
fun configStorage(): ConfigStorage
|
||||
fun metricsProvider(): MetricsProvider
|
||||
fun metricsProvider(): InitialParamsProvider
|
||||
fun spaceStatusWatcher(): SpaceDeletedStatusWatcher
|
||||
fun localeProvider(): LocaleProvider
|
||||
fun awaitAccountStartManager(): AwaitAccountStartManager
|
||||
|
|
|
@ -16,7 +16,7 @@ import com.anytypeio.anytype.domain.device.PathProvider
|
|||
import com.anytypeio.anytype.domain.misc.LocaleProvider
|
||||
import com.anytypeio.anytype.domain.multiplayer.UserPermissionProvider
|
||||
import com.anytypeio.anytype.domain.`object`.ImportGetStartedUseCase
|
||||
import com.anytypeio.anytype.domain.platform.MetricsProvider
|
||||
import com.anytypeio.anytype.domain.platform.InitialParamsProvider
|
||||
import com.anytypeio.anytype.domain.search.RelationsSubscriptionManager
|
||||
import com.anytypeio.anytype.domain.spaces.SpaceDeletedStatusWatcher
|
||||
import com.anytypeio.anytype.domain.subscriptions.GlobalSubscriptionManager
|
||||
|
@ -61,14 +61,14 @@ object OnboardingSoulCreationModule {
|
|||
fun provideCreateAccountUseCase(
|
||||
authRepository: AuthRepository,
|
||||
configStorage: ConfigStorage,
|
||||
metricsProvider: MetricsProvider,
|
||||
initialParamsProvider: InitialParamsProvider,
|
||||
awaitAccountStartManager: AwaitAccountStartManager,
|
||||
spaceManager: SpaceManager,
|
||||
dispatchers: AppCoroutineDispatchers
|
||||
): CreateAccount = CreateAccount(
|
||||
repository = authRepository,
|
||||
configStorage = configStorage,
|
||||
metricsProvider = metricsProvider,
|
||||
initialParamsProvider = initialParamsProvider,
|
||||
dispatcher = dispatchers,
|
||||
awaitAccountStartManager = awaitAccountStartManager,
|
||||
spaceManager = spaceManager
|
||||
|
@ -111,7 +111,7 @@ interface OnboardingSoulCreationDependencies : ComponentDependencies {
|
|||
fun userSettings(): UserSettingsRepository
|
||||
fun relationsSubscriptionManager(): RelationsSubscriptionManager
|
||||
fun pathProvider(): PathProvider
|
||||
fun metricsProvider(): MetricsProvider
|
||||
fun metricsProvider(): InitialParamsProvider
|
||||
fun crashReporter(): CrashReporter
|
||||
fun spaceManager(): SpaceManager
|
||||
fun spaceStatusWatcher(): SpaceDeletedStatusWatcher
|
||||
|
|
|
@ -5,7 +5,7 @@ import android.content.SharedPreferences
|
|||
import androidx.security.crypto.EncryptedSharedPreferences
|
||||
import androidx.security.crypto.MasterKeys
|
||||
import com.anytypeio.anytype.app.DefaultAppActionManager
|
||||
import com.anytypeio.anytype.app.DefaultMetricsProvider
|
||||
import com.anytypeio.anytype.app.DefaultInitialParamsProvider
|
||||
import com.anytypeio.anytype.core_utils.tools.ThreadInfo
|
||||
import com.anytypeio.anytype.data.auth.repo.AuthCache
|
||||
import com.anytypeio.anytype.data.auth.repo.AuthCacheDataStore
|
||||
|
@ -36,7 +36,7 @@ import com.anytypeio.anytype.domain.misc.AppActionManager
|
|||
import com.anytypeio.anytype.domain.`object`.ObjectTypesProvider
|
||||
import com.anytypeio.anytype.domain.objects.DefaultObjectStore
|
||||
import com.anytypeio.anytype.domain.objects.ObjectStore
|
||||
import com.anytypeio.anytype.domain.platform.MetricsProvider
|
||||
import com.anytypeio.anytype.domain.platform.InitialParamsProvider
|
||||
import com.anytypeio.anytype.domain.unsplash.UnsplashRepository
|
||||
import com.anytypeio.anytype.middleware.EventProxy
|
||||
import com.anytypeio.anytype.middleware.UnsplashMiddleware
|
||||
|
@ -330,7 +330,8 @@ object DataModule {
|
|||
@JvmStatic
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideMetricsProvider(): MetricsProvider = DefaultMetricsProvider()
|
||||
fun provideMetricsProvider(context: Context): InitialParamsProvider =
|
||||
DefaultInitialParamsProvider(context)
|
||||
|
||||
@JvmStatic
|
||||
@Provides
|
||||
|
|
|
@ -25,6 +25,14 @@ sealed class Command {
|
|||
val preferYamuxTransport: Boolean? = null
|
||||
) : Command()
|
||||
|
||||
data class SetInitialParams(
|
||||
val version: String,
|
||||
val platform: String,
|
||||
val workDir: String,
|
||||
val defaultLogLevel: String
|
||||
) : Command()
|
||||
|
||||
|
||||
class UploadFile(
|
||||
val space: SpaceId,
|
||||
val path: String,
|
||||
|
@ -433,7 +441,14 @@ sealed class Command {
|
|||
val value: Any? = null
|
||||
)
|
||||
|
||||
data class ReplaceFilter(val ctx: Id, val dv: Id, val view: Id, val id: Id, val filter: DVFilter)
|
||||
data class ReplaceFilter(
|
||||
val ctx: Id,
|
||||
val dv: Id,
|
||||
val view: Id,
|
||||
val id: Id,
|
||||
val filter: DVFilter
|
||||
)
|
||||
|
||||
data class RemoveFilter(val ctx: Id, val dv: Id, val view: Id, val ids: List<Id>)
|
||||
|
||||
data class AddSort(
|
||||
|
@ -493,10 +508,12 @@ sealed class Command {
|
|||
val name: String,
|
||||
val nameType: NameServiceNameType
|
||||
) : Membership()
|
||||
|
||||
data class ResolveName(
|
||||
val name: String,
|
||||
val nameType: NameServiceNameType
|
||||
) : Membership()
|
||||
|
||||
data class GetPaymentUrl(
|
||||
val tier: Int,
|
||||
val paymentMethod: MembershipPaymentMethod,
|
||||
|
@ -537,8 +554,8 @@ sealed class Command {
|
|||
val dependencies: List<ObjectWrapper.Basic>
|
||||
) {
|
||||
sealed class Source {
|
||||
data class Relation(val key: Key): Source()
|
||||
data class Block(val id: Id): Source()
|
||||
data class Relation(val key: Key) : Source()
|
||||
data class Block(val id: Id) : Source()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -578,34 +595,39 @@ sealed class Command {
|
|||
data class AddMessage(
|
||||
val chat: Id,
|
||||
val message: Chat.Message
|
||||
): ChatCommand()
|
||||
) : ChatCommand()
|
||||
|
||||
data class DeleteMessage(
|
||||
val chat: Id,
|
||||
val msg: Id
|
||||
): ChatCommand()
|
||||
) : ChatCommand()
|
||||
|
||||
data class EditMessage(
|
||||
val chat: Id,
|
||||
val message: Chat.Message
|
||||
): ChatCommand()
|
||||
) : ChatCommand()
|
||||
|
||||
data class GetMessages(
|
||||
val chat: Id,
|
||||
val beforeMessageId: Id,
|
||||
val limit: Int
|
||||
): ChatCommand()
|
||||
) : ChatCommand()
|
||||
|
||||
data class SubscribeLastMessages(
|
||||
val chat: Id,
|
||||
val limit: Int
|
||||
): ChatCommand() {
|
||||
) : ChatCommand() {
|
||||
data class Response(
|
||||
val messages: List<Chat.Message>,
|
||||
val messageCountBefore: Int
|
||||
)
|
||||
}
|
||||
|
||||
data class ToggleMessageReaction(
|
||||
val chat: Id,
|
||||
val msg: Id,
|
||||
val emoji: String
|
||||
): ChatCommand()
|
||||
) : ChatCommand()
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -78,7 +78,7 @@ class AuthCacheDataStore(private val cache: AuthCache) : AuthDataStore {
|
|||
throw UnsupportedOperationException()
|
||||
}
|
||||
|
||||
override suspend fun setMetrics(platform: String, version: String) {
|
||||
override suspend fun setInitialParams(command: Command.SetInitialParams) {
|
||||
throw UnsupportedOperationException()
|
||||
}
|
||||
|
||||
|
|
|
@ -18,11 +18,8 @@ class AuthDataRepository(
|
|||
private val debugConfig: DebugConfig
|
||||
) : AuthRepository {
|
||||
|
||||
override suspend fun setMetrics(platform: String, version: String) {
|
||||
factory.remote.setMetrics(
|
||||
platform = platform,
|
||||
version = version
|
||||
)
|
||||
override suspend fun setInitialParams(command: Command.SetInitialParams) {
|
||||
factory.remote.setInitialParams(command = command)
|
||||
}
|
||||
|
||||
override suspend fun selectAccount(
|
||||
|
|
|
@ -38,7 +38,7 @@ interface AuthDataStore {
|
|||
suspend fun setCurrentAccount(id: String)
|
||||
|
||||
suspend fun getVersion(): String
|
||||
suspend fun setMetrics(platform: String, version: String)
|
||||
suspend fun setInitialParams(command: Command.SetInitialParams)
|
||||
|
||||
suspend fun getNetworkMode(): NetworkModeConfig
|
||||
suspend fun setNetworkMode(modeConfig: NetworkModeConfig)
|
||||
|
|
|
@ -21,5 +21,5 @@ interface AuthRemote {
|
|||
suspend fun convertWallet(entropy: String): String
|
||||
|
||||
suspend fun getVersion(): String
|
||||
suspend fun setMetrics(platform: String, version: String)
|
||||
suspend fun setInitialParams(command: Command.SetInitialParams)
|
||||
}
|
|
@ -78,11 +78,8 @@ class AuthRemoteDataStore(
|
|||
|
||||
override suspend fun getVersion(): String = authRemote.getVersion()
|
||||
|
||||
override suspend fun setMetrics(platform: String, version: String) {
|
||||
authRemote.setMetrics(
|
||||
platform = platform,
|
||||
version = version
|
||||
)
|
||||
override suspend fun setInitialParams(command: Command.SetInitialParams) {
|
||||
authRemote.setInitialParams(command)
|
||||
}
|
||||
|
||||
override suspend fun getNetworkMode(): NetworkModeConfig {
|
||||
|
|
|
@ -7,7 +7,7 @@ import com.anytypeio.anytype.domain.auth.repo.AuthRepository
|
|||
import com.anytypeio.anytype.domain.base.AppCoroutineDispatchers
|
||||
import com.anytypeio.anytype.domain.base.ResultInteractor
|
||||
import com.anytypeio.anytype.domain.config.ConfigStorage
|
||||
import com.anytypeio.anytype.domain.platform.MetricsProvider
|
||||
import com.anytypeio.anytype.domain.platform.InitialParamsProvider
|
||||
import com.anytypeio.anytype.domain.workspace.SpaceManager
|
||||
import javax.inject.Inject
|
||||
|
||||
|
@ -18,17 +18,14 @@ open class CreateAccount @Inject constructor(
|
|||
private val repository: AuthRepository,
|
||||
// TODO rename config storage
|
||||
private val configStorage: ConfigStorage,
|
||||
private val metricsProvider: MetricsProvider,
|
||||
private val initialParamsProvider: InitialParamsProvider,
|
||||
private val awaitAccountStartManager: AwaitAccountStartManager,
|
||||
private val spaceManager: SpaceManager,
|
||||
dispatcher: AppCoroutineDispatchers
|
||||
) : ResultInteractor<CreateAccount.Params, Account>(dispatcher.io) {
|
||||
|
||||
override suspend fun doWork(params: Params): Account {
|
||||
repository.setMetrics(
|
||||
version = metricsProvider.getVersion(),
|
||||
platform = metricsProvider.getPlatform()
|
||||
)
|
||||
repository.setInitialParams(initialParamsProvider.toCommand())
|
||||
|
||||
val networkMode = repository.getNetworkMode()
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ import com.anytypeio.anytype.domain.base.BaseUseCase
|
|||
import com.anytypeio.anytype.domain.config.ConfigStorage
|
||||
import com.anytypeio.anytype.domain.config.UserSettingsRepository
|
||||
import com.anytypeio.anytype.domain.device.PathProvider
|
||||
import com.anytypeio.anytype.domain.platform.MetricsProvider
|
||||
import com.anytypeio.anytype.domain.platform.InitialParamsProvider
|
||||
import com.anytypeio.anytype.domain.workspace.SpaceManager
|
||||
import javax.inject.Inject
|
||||
import kotlin.coroutines.CoroutineContext
|
||||
|
@ -22,17 +22,14 @@ class LaunchAccount @Inject constructor(
|
|||
private val pathProvider: PathProvider,
|
||||
private val configStorage: ConfigStorage,
|
||||
private val spaceManager: SpaceManager,
|
||||
private val metricsProvider: MetricsProvider,
|
||||
private val initialParamsProvider: InitialParamsProvider,
|
||||
private val settings: UserSettingsRepository,
|
||||
private val awaitAccountStartManager: AwaitAccountStartManager,
|
||||
context: CoroutineContext = Dispatchers.IO
|
||||
) : BaseUseCase<Id, BaseUseCase.None>(context) {
|
||||
|
||||
override suspend fun run(params: None) = safe {
|
||||
repository.setMetrics(
|
||||
version = metricsProvider.getVersion(),
|
||||
platform = metricsProvider.getPlatform()
|
||||
)
|
||||
repository.setInitialParams(initialParamsProvider.toCommand())
|
||||
|
||||
val networkMode = repository.getNetworkMode()
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ import com.anytypeio.anytype.domain.base.BaseUseCase
|
|||
import com.anytypeio.anytype.domain.config.ConfigStorage
|
||||
import com.anytypeio.anytype.domain.config.UserSettingsRepository
|
||||
import com.anytypeio.anytype.domain.device.PathProvider
|
||||
import com.anytypeio.anytype.domain.platform.MetricsProvider
|
||||
import com.anytypeio.anytype.domain.platform.InitialParamsProvider
|
||||
import com.anytypeio.anytype.domain.workspace.SpaceManager
|
||||
import javax.inject.Inject
|
||||
|
||||
|
@ -19,7 +19,7 @@ class ResumeAccount @Inject constructor(
|
|||
private val repository: AuthRepository,
|
||||
private val pathProvider: PathProvider,
|
||||
private val configStorage: ConfigStorage,
|
||||
private val metricsProvider: MetricsProvider,
|
||||
private val initialParamsProvider: InitialParamsProvider,
|
||||
private val awaitAccountStartManager: AwaitAccountStartManager,
|
||||
private val settings: UserSettingsRepository,
|
||||
private val spaceManager: SpaceManager
|
||||
|
@ -28,10 +28,7 @@ class ResumeAccount @Inject constructor(
|
|||
override suspend fun run(params: None) = proceedWithResuming()
|
||||
|
||||
private suspend fun proceedWithResuming() = safe {
|
||||
repository.setMetrics(
|
||||
version = metricsProvider.getVersion(),
|
||||
platform = metricsProvider.getPlatform()
|
||||
)
|
||||
repository.setInitialParams(initialParamsProvider.toCommand())
|
||||
val mnemonic = repository.getMnemonic()
|
||||
if (mnemonic.isNullOrBlank()) throw IllegalStateException("Mnemonic is empty")
|
||||
repository.recoverWallet(
|
||||
|
|
|
@ -7,7 +7,7 @@ import com.anytypeio.anytype.domain.account.AwaitAccountStartManager
|
|||
import com.anytypeio.anytype.domain.auth.repo.AuthRepository
|
||||
import com.anytypeio.anytype.domain.base.BaseUseCase
|
||||
import com.anytypeio.anytype.domain.config.ConfigStorage
|
||||
import com.anytypeio.anytype.domain.platform.MetricsProvider
|
||||
import com.anytypeio.anytype.domain.platform.InitialParamsProvider
|
||||
import javax.inject.Inject
|
||||
|
||||
/**
|
||||
|
@ -16,15 +16,12 @@ import javax.inject.Inject
|
|||
class SelectAccount @Inject constructor(
|
||||
private val repository: AuthRepository,
|
||||
private val configStorage: ConfigStorage,
|
||||
private val metricsProvider: MetricsProvider,
|
||||
private val initialParamsProvider: InitialParamsProvider,
|
||||
private val awaitAccountStartManager: AwaitAccountStartManager
|
||||
) : BaseUseCase<StartAccountResult, SelectAccount.Params>() {
|
||||
|
||||
override suspend fun run(params: Params) = safe {
|
||||
repository.setMetrics(
|
||||
version = metricsProvider.getVersion(),
|
||||
platform = metricsProvider.getPlatform()
|
||||
)
|
||||
repository.setInitialParams(initialParamsProvider.toCommand())
|
||||
|
||||
val networkMode = repository.getNetworkMode()
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ import kotlinx.coroutines.flow.Flow
|
|||
|
||||
interface AuthRepository {
|
||||
|
||||
suspend fun setMetrics(platform: String, version: String)
|
||||
suspend fun setInitialParams(command: Command.SetInitialParams)
|
||||
|
||||
/**
|
||||
* Launches an account.
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
package com.anytypeio.anytype.domain.platform
|
||||
|
||||
import com.anytypeio.anytype.core_models.Command
|
||||
|
||||
interface InitialParamsProvider {
|
||||
fun getVersion(): String
|
||||
fun getPlatform(): String
|
||||
val workDir: String
|
||||
val defaultLogLevel: String
|
||||
fun toCommand(): Command.SetInitialParams
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
package com.anytypeio.anytype.domain.platform
|
||||
|
||||
interface MetricsProvider {
|
||||
fun getVersion(): String
|
||||
fun getPlatform(): String
|
||||
}
|
|
@ -10,7 +10,7 @@ import com.anytypeio.anytype.domain.auth.repo.AuthRepository
|
|||
import com.anytypeio.anytype.domain.base.AppCoroutineDispatchers
|
||||
import com.anytypeio.anytype.domain.common.DefaultCoroutineTestRule
|
||||
import com.anytypeio.anytype.domain.config.ConfigStorage
|
||||
import com.anytypeio.anytype.domain.platform.MetricsProvider
|
||||
import com.anytypeio.anytype.domain.platform.InitialParamsProvider
|
||||
import com.anytypeio.anytype.domain.workspace.SpaceManager
|
||||
import com.anytypeio.anytype.test_utils.MockDataFactory
|
||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||
|
@ -40,7 +40,7 @@ class CreateAccountTest {
|
|||
lateinit var dispatchers: AppCoroutineDispatchers
|
||||
|
||||
@Mock
|
||||
lateinit var metricsProvider: MetricsProvider
|
||||
lateinit var initialParamsProvider: InitialParamsProvider
|
||||
|
||||
@Mock
|
||||
lateinit var awaitAccountStartManager: AwaitAccountStartManager
|
||||
|
@ -63,7 +63,7 @@ class CreateAccountTest {
|
|||
createAccount = CreateAccount(
|
||||
repository = repo,
|
||||
configStorage = configStorage,
|
||||
metricsProvider = metricsProvider,
|
||||
initialParamsProvider = initialParamsProvider,
|
||||
dispatcher = dispatchers,
|
||||
awaitAccountStartManager = awaitAccountStartManager,
|
||||
spaceManager = spaceManager
|
||||
|
@ -120,7 +120,7 @@ class CreateAccountTest {
|
|||
verify(repo, times(1)).createAccount(command)
|
||||
verify(repo, times(1)).saveAccount(setup.account)
|
||||
verify(repo, times(1)).setCurrentAccount(setup.account.id)
|
||||
verify(repo, times(1)).setMetrics(
|
||||
verify(repo, times(1)).setInitialParams(
|
||||
platform = platform,
|
||||
version = version
|
||||
)
|
||||
|
@ -131,7 +131,7 @@ class CreateAccountTest {
|
|||
}
|
||||
|
||||
private fun stubMetricsProvider(version: String, platform: String) {
|
||||
metricsProvider.stub {
|
||||
initialParamsProvider.stub {
|
||||
onBlocking {
|
||||
getVersion()
|
||||
} doReturn version
|
||||
|
|
|
@ -8,7 +8,7 @@ import com.anytypeio.anytype.domain.auth.repo.AuthRepository
|
|||
import com.anytypeio.anytype.domain.config.ConfigStorage
|
||||
import com.anytypeio.anytype.domain.config.UserSettingsRepository
|
||||
import com.anytypeio.anytype.domain.device.PathProvider
|
||||
import com.anytypeio.anytype.domain.platform.MetricsProvider
|
||||
import com.anytypeio.anytype.domain.platform.InitialParamsProvider
|
||||
import com.anytypeio.anytype.domain.workspace.SpaceManager
|
||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||
import org.junit.Before
|
||||
|
@ -38,7 +38,7 @@ class ResumeAccountTest {
|
|||
lateinit var pathProvider: PathProvider
|
||||
|
||||
@Mock
|
||||
lateinit var metricsProvider: MetricsProvider
|
||||
lateinit var initialParamsProvider: InitialParamsProvider
|
||||
|
||||
@Mock
|
||||
lateinit var awaitAccountStartManager: AwaitAccountStartManager
|
||||
|
@ -54,7 +54,7 @@ class ResumeAccountTest {
|
|||
repository = repo,
|
||||
configStorage = configStorage,
|
||||
pathProvider = pathProvider,
|
||||
metricsProvider = metricsProvider,
|
||||
initialParamsProvider = initialParamsProvider,
|
||||
awaitAccountStartManager = awaitAccountStartManager,
|
||||
spaceManager = spaceManager,
|
||||
settings = userSettingsRepository
|
||||
|
|
|
@ -13,7 +13,7 @@ import com.anytypeio.anytype.domain.auth.interactor.SelectAccount
|
|||
import com.anytypeio.anytype.domain.auth.repo.AuthRepository
|
||||
import com.anytypeio.anytype.domain.base.Either
|
||||
import com.anytypeio.anytype.domain.config.ConfigStorage
|
||||
import com.anytypeio.anytype.domain.platform.MetricsProvider
|
||||
import com.anytypeio.anytype.domain.platform.InitialParamsProvider
|
||||
import com.anytypeio.anytype.test_utils.MockDataFactory
|
||||
import kotlin.test.assertTrue
|
||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||
|
@ -42,7 +42,7 @@ class StartAccountTest {
|
|||
lateinit var configStorage: ConfigStorage
|
||||
|
||||
@Mock
|
||||
lateinit var metricsProvider: MetricsProvider
|
||||
lateinit var initialParamsProvider: InitialParamsProvider
|
||||
|
||||
@Mock
|
||||
lateinit var awaitAccountStartManager: AwaitAccountStartManager
|
||||
|
@ -60,7 +60,7 @@ class StartAccountTest {
|
|||
selectAccount = SelectAccount(
|
||||
repository = repo,
|
||||
configStorage = configStorage,
|
||||
metricsProvider = metricsProvider,
|
||||
initialParamsProvider = initialParamsProvider,
|
||||
awaitAccountStartManager = awaitAccountStartManager
|
||||
)
|
||||
}
|
||||
|
@ -125,7 +125,7 @@ class StartAccountTest {
|
|||
|
||||
verify(repo, times(1)).setCurrentAccount(account.id)
|
||||
|
||||
verify(repo, times(1)).setMetrics(
|
||||
verify(repo, times(1)).setInitialParams(
|
||||
platform = platform,
|
||||
version = version
|
||||
)
|
||||
|
@ -360,7 +360,7 @@ class StartAccountTest {
|
|||
}
|
||||
|
||||
private fun stubMetricsProvider(version: String, platform: String) {
|
||||
metricsProvider.stub {
|
||||
initialParamsProvider.stub {
|
||||
onBlocking {
|
||||
getVersion()
|
||||
} doReturn version
|
||||
|
|
|
@ -72,10 +72,7 @@ class AuthMiddleware(
|
|||
return middleware.versionGet().version
|
||||
}
|
||||
|
||||
override suspend fun setMetrics(platform: String, version: String) {
|
||||
middleware.metricsSetParameters(
|
||||
platform = platform,
|
||||
version = version
|
||||
)
|
||||
override suspend fun setInitialParams(command: Command.SetInitialParams) {
|
||||
middleware.metricsSetParameters(command)
|
||||
}
|
||||
}
|
|
@ -1581,15 +1581,16 @@ class Middleware @Inject constructor(
|
|||
|
||||
@Throws(Exception::class)
|
||||
fun metricsSetParameters(
|
||||
platform: String,
|
||||
version: String
|
||||
command: Command.SetInitialParams
|
||||
) {
|
||||
val request = Rpc.Initial.SetParameters.Request(
|
||||
platform = platform,
|
||||
version = version
|
||||
platform = command.platform,
|
||||
version = command.version,
|
||||
logLevel = command.defaultLogLevel,
|
||||
workdir = command.workDir
|
||||
)
|
||||
logRequestIfDebug(request)
|
||||
val (response, time) = measureTimedValue { service.metricsSetParameters(request) }
|
||||
val (response, time) = measureTimedValue { service.setInitialParams(request) }
|
||||
logResponseIfDebug(response, time)
|
||||
}
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ interface MiddlewareService {
|
|||
//region APP commands
|
||||
|
||||
@Throws(Exception::class)
|
||||
fun metricsSetParameters(request: Rpc.Initial.SetParameters.Request): Rpc.Initial.SetParameters.Response
|
||||
fun setInitialParams(request: Rpc.Initial.SetParameters.Request): Rpc.Initial.SetParameters.Response
|
||||
|
||||
@Throws(Exception::class)
|
||||
fun versionGet(request: Rpc.App.GetVersion.Request): Rpc.App.GetVersion.Response
|
||||
|
|
|
@ -18,12 +18,6 @@ class MiddlewareServiceImplementation @Inject constructor(
|
|||
featureToggles: FeatureToggles
|
||||
) : MiddlewareService {
|
||||
|
||||
init {
|
||||
if (!featureToggles.isLogFromGoProcess) {
|
||||
Service.setEnv("ANYTYPE_LOG_LEVEL", "*=fatal;anytype*=error")
|
||||
}
|
||||
}
|
||||
|
||||
override fun accountCreate(request: Rpc.Account.Create.Request): Rpc.Account.Create.Response {
|
||||
val encoded = Service.accountCreate(Rpc.Account.Create.Request.ADAPTER.encode(request))
|
||||
val response = Rpc.Account.Create.Response.ADAPTER.decode(encoded)
|
||||
|
@ -1156,8 +1150,9 @@ class MiddlewareServiceImplementation @Inject constructor(
|
|||
}
|
||||
}
|
||||
|
||||
override fun metricsSetParameters(request: Rpc.Initial.SetParameters.Request): Rpc.Initial.SetParameters.Response {
|
||||
val encoded = Service.initialSetParameters(Rpc.Initial.SetParameters.Request.ADAPTER.encode(request))
|
||||
override fun setInitialParams(request: Rpc.Initial.SetParameters.Request): Rpc.Initial.SetParameters.Response {
|
||||
val encoded =
|
||||
Service.initialSetParameters(Rpc.Initial.SetParameters.Request.ADAPTER.encode(request))
|
||||
val response = Rpc.Initial.SetParameters.Response.ADAPTER.decode(encoded)
|
||||
val error = response.error
|
||||
if (error != null && error.code != Rpc.Initial.SetParameters.Response.Error.Code.NULL) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue