Skip to content

Commit fb3d25e

Browse files
authored
Merge pull request #1017 from soramitsu/staging
staging
2 parents 84095ae + f145460 commit fb3d25e

File tree

9 files changed

+56
-34
lines changed

9 files changed

+56
-34
lines changed

app/src/main/java/jp/co/soramitsu/app/root/di/RootFeatureModule.kt

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ import dagger.Module
44
import dagger.Provides
55
import dagger.hilt.InstallIn
66
import dagger.hilt.components.SingletonComponent
7+
import javax.inject.Named
8+
import jp.co.soramitsu.account.api.domain.PendulumPreInstalledAccountsScenario
79
import jp.co.soramitsu.app.root.domain.RootInteractor
8-
import jp.co.soramitsu.common.data.storage.Preferences
910
import jp.co.soramitsu.core.updater.UpdateSystem
1011
import jp.co.soramitsu.wallet.impl.domain.interfaces.WalletRepository
11-
import javax.inject.Named
1212

1313
@InstallIn(SingletonComponent::class)
1414
@Module
@@ -17,11 +17,13 @@ class RootFeatureModule {
1717
@Provides
1818
fun provideRootInteractor(
1919
walletRepository: WalletRepository,
20-
@Named("BalancesUpdateSystem") walletUpdateSystem: UpdateSystem
20+
@Named("BalancesUpdateSystem") walletUpdateSystem: UpdateSystem,
21+
pendulumPreInstalledAccountsScenario: PendulumPreInstalledAccountsScenario
2122
): RootInteractor {
2223
return RootInteractor(
2324
walletUpdateSystem,
24-
walletRepository
25+
walletRepository,
26+
pendulumPreInstalledAccountsScenario
2527
)
2628
}
2729
}

app/src/main/java/jp/co/soramitsu/app/root/domain/RootInteractor.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package jp.co.soramitsu.app.root.domain
22

3+
import jp.co.soramitsu.account.api.domain.PendulumPreInstalledAccountsScenario
34
import jp.co.soramitsu.common.domain.model.toDomain
45
import jp.co.soramitsu.common.utils.inBackground
56
import jp.co.soramitsu.core.updater.UpdateSystem
@@ -11,7 +12,8 @@ import kotlinx.coroutines.flow.flowOf
1112

1213
class RootInteractor(
1314
private val updateSystem: UpdateSystem,
14-
private val walletRepository: WalletRepository
15+
private val walletRepository: WalletRepository,
16+
private val pendulumPreInstalledAccountsScenario: PendulumPreInstalledAccountsScenario
1517
) {
1618

1719
fun runBalancesUpdate(): Flow<Updater.SideEffect> = updateSystem.start().inBackground()
@@ -30,5 +32,5 @@ class RootInteractor(
3032

3133
fun chainRegistrySyncUp() = walletRepository.chainRegistrySyncUp()
3234

33-
suspend fun fetchFeatureToggle() = walletRepository.fetchFeatureToggle()
35+
suspend fun fetchFeatureToggle() = pendulumPreInstalledAccountsScenario.fetchFeatureToggle()
3436
}

app/src/main/java/jp/co/soramitsu/app/root/presentation/RootViewModel.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ class RootViewModel @Inject constructor(
6464

6565
private fun checkAppVersion() {
6666
viewModelScope.launch {
67+
interactor.fetchFeatureToggle()
6768
val appConfigResult = interactor.getRemoteConfig()
6869
when {
6970
appConfigResult.isFailure -> {
@@ -76,7 +77,6 @@ class RootViewModel @Inject constructor(
7677
}
7778

7879
else -> {
79-
interactor.fetchFeatureToggle()
8080
runBalancesUpdate()
8181
}
8282
}

build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ apply plugin: "detekt-setup"
44
buildscript {
55
ext {
66
// App version
7-
versionName = '3.0.1'
8-
versionCode = 115
7+
versionName = '3.0.2'
8+
versionCode = 116
99

1010
// SDK and tools
1111
compileSdkVersion = 33

feature-account-api/src/main/java/jp/co/soramitsu/account/api/domain/PendulumPreInstalledAccountsScenario.kt

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,21 @@
11
package jp.co.soramitsu.account.api.domain
22

33
import jp.co.soramitsu.account.api.domain.interfaces.AccountRepository
4-
import jp.co.soramitsu.common.BuildConfig
4+
import jp.co.soramitsu.common.data.network.config.RemoteConfigFetcher
55
import jp.co.soramitsu.common.data.storage.Preferences
66
import jp.co.soramitsu.common.utils.DEFAULT_DERIVATION_PATH
77
import jp.co.soramitsu.core.models.CryptoType
8+
import jp.co.soramitsu.feature_account_api.BuildConfig
89
import jp.co.soramitsu.shared_utils.encrypt.junction.BIP32JunctionDecoder
910
import jp.co.soramitsu.shared_utils.extensions.fromHex
1011

1112
class PendulumPreInstalledAccountsScenario(
1213
private val accountRepository: AccountRepository,
13-
private val preferences: Preferences
14+
private val preferences: Preferences,
15+
private val remoteConfigFetcher: RemoteConfigFetcher,
1416
) {
1517

16-
companion object{
18+
companion object {
1719
private const val PENDULUM_CASE_KEY_PREFIX = "pendulum_mode"
1820
const val PENDULUM_FEATURE_TOGGLE_KEY = "pendulumCaseEnabled"
1921
}
@@ -53,4 +55,13 @@ class PendulumPreInstalledAccountsScenario(
5355
false
5456
))
5557
}
58+
59+
suspend fun fetchFeatureToggle() {
60+
val configResult = kotlin.runCatching {
61+
remoteConfigFetcher.getFeatureToggle()
62+
}.getOrNull() ?: return
63+
64+
val (pendulumCaseEnabled) = configResult
65+
preferences.putBoolean(PENDULUM_FEATURE_TOGGLE_KEY, pendulumCaseEnabled)
66+
}
5667
}

feature-onboarding-impl/src/main/java/jp/co/soramitsu/onboarding/impl/di/OnboardingFeatureModule.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import dagger.hilt.InstallIn
66
import dagger.hilt.components.SingletonComponent
77
import jp.co.soramitsu.account.api.domain.PendulumPreInstalledAccountsScenario
88
import jp.co.soramitsu.account.api.domain.interfaces.AccountRepository
9+
import jp.co.soramitsu.common.data.network.config.RemoteConfigFetcher
910
import jp.co.soramitsu.common.data.storage.Preferences
1011
import jp.co.soramitsu.onboarding.api.domain.OnboardingInteractor
1112
import jp.co.soramitsu.onboarding.impl.domain.OnboardingInteractorImpl
@@ -22,7 +23,8 @@ class OnboardingFeatureModule {
2223
@Provides
2324
fun provideImportPreInstalledAccount(
2425
accountRepository: AccountRepository,
25-
preferences: Preferences
26+
preferences: Preferences,
27+
remoteConfigFetcher: RemoteConfigFetcher
2628
) =
27-
PendulumPreInstalledAccountsScenario(accountRepository, preferences)
29+
PendulumPreInstalledAccountsScenario(accountRepository, preferences, remoteConfigFetcher)
2830
}

feature-splash/src/main/java/jp/co/soramitsu/splash/presentation/SplashViewModel.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package jp.co.soramitsu.splash.presentation
33
import androidx.lifecycle.viewModelScope
44
import dagger.hilt.android.lifecycle.HiltViewModel
55
import javax.inject.Inject
6+
import jp.co.soramitsu.account.api.domain.PendulumPreInstalledAccountsScenario
67
import jp.co.soramitsu.account.api.domain.interfaces.AccountRepository
78
import jp.co.soramitsu.common.base.BaseViewModel
89
import jp.co.soramitsu.common.domain.GetEducationalStoriesUseCase
@@ -18,7 +19,8 @@ class SplashViewModel @Inject constructor(
1819
private val router: SplashRouter,
1920
private val repository: AccountRepository,
2021
shouldShowEducationalStoriesUseCase: ShouldShowEducationalStoriesUseCase,
21-
private val getEducationalStories: GetEducationalStoriesUseCase
22+
private val getEducationalStories: GetEducationalStoriesUseCase,
23+
private val pendulumPreInstalledAccountsScenario: PendulumPreInstalledAccountsScenario
2224
) : BaseViewModel() {
2325

2426
private var shouldShowEducationalStories by shouldShowEducationalStoriesUseCase
@@ -47,6 +49,7 @@ class SplashViewModel @Inject constructor(
4749

4850
fun openInitialDestination() {
4951
viewModelScope.launch {
52+
pendulumPreInstalledAccountsScenario.fetchFeatureToggle()
5053
if (repository.isAccountSelected()) {
5154
if (repository.isCodeSet()) {
5255
router.openInitialCheckPincode()

feature-wallet-api/src/main/java/jp/co/soramitsu/wallet/impl/domain/interfaces/WalletRepository.kt

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
package jp.co.soramitsu.wallet.impl.domain.interfaces
22

3+
import java.math.BigDecimal
4+
import java.math.BigInteger
35
import jp.co.soramitsu.account.api.domain.model.MetaAccount
46
import jp.co.soramitsu.common.data.network.config.AppConfigRemote
57
import jp.co.soramitsu.common.data.network.runtime.binding.EqAccountInfo
68
import jp.co.soramitsu.common.data.network.runtime.binding.EqOraclePricePoint
79
import jp.co.soramitsu.coredb.model.AssetUpdateItem
810
import jp.co.soramitsu.coredb.model.PhishingLocal
911
import jp.co.soramitsu.runtime.multiNetwork.chain.model.Chain
12+
import jp.co.soramitsu.runtime.multiNetwork.chain.model.ChainId
1013
import jp.co.soramitsu.shared_utils.runtime.AccountId
1114
import jp.co.soramitsu.shared_utils.runtime.extrinsic.ExtrinsicBuilder
1215
import jp.co.soramitsu.wallet.impl.domain.model.Asset
@@ -15,9 +18,6 @@ import jp.co.soramitsu.wallet.impl.domain.model.Fee
1518
import jp.co.soramitsu.wallet.impl.domain.model.Transfer
1619
import jp.co.soramitsu.wallet.impl.domain.model.TransferValidityStatus
1720
import kotlinx.coroutines.flow.Flow
18-
import java.math.BigDecimal
19-
import java.math.BigInteger
20-
import jp.co.soramitsu.runtime.multiNetwork.chain.model.ChainId
2121
import jp.co.soramitsu.core.models.Asset as CoreAsset
2222

2323
interface WalletRepository {
@@ -28,9 +28,19 @@ interface WalletRepository {
2828

2929
suspend fun syncAssetsRates(currencyId: String)
3030

31-
fun assetFlow(metaId: Long, accountId: AccountId, chainAsset: CoreAsset, minSupportedVersion: String?): Flow<Asset>
31+
fun assetFlow(
32+
metaId: Long,
33+
accountId: AccountId,
34+
chainAsset: CoreAsset,
35+
minSupportedVersion: String?
36+
): Flow<Asset>
3237

33-
suspend fun getAsset(metaId: Long, accountId: AccountId, chainAsset: CoreAsset, minSupportedVersion: String?): Asset?
38+
suspend fun getAsset(
39+
metaId: Long,
40+
accountId: AccountId,
41+
chainAsset: CoreAsset,
42+
minSupportedVersion: String?
43+
): Asset?
3444

3545
suspend fun updateAssetHidden(
3646
metaId: Long,
@@ -93,7 +103,10 @@ interface WalletRepository {
93103
suspend fun getSingleAssetPriceCoingecko(priceId: String, currency: String): BigDecimal?
94104
suspend fun getControllerAccount(chainId: ChainId, accountId: AccountId): AccountId?
95105
suspend fun getStashAccount(chainId: ChainId, accountId: AccountId): AccountId?
96-
suspend fun fetchFeatureToggle()
97106

98-
suspend fun getTotalBalance(chainAsset: jp.co.soramitsu.core.models.Asset, chain: Chain, accountId: ByteArray): BigInteger
107+
suspend fun getTotalBalance(
108+
chainAsset: jp.co.soramitsu.core.models.Asset,
109+
chain: Chain,
110+
accountId: ByteArray
111+
): BigInteger
99112
}

feature-wallet-impl/src/main/java/jp/co/soramitsu/wallet/impl/data/repository/WalletRepositoryImpl.kt

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package jp.co.soramitsu.wallet.impl.data.repository
33
import com.opencsv.CSVReaderHeaderAware
44
import java.math.BigDecimal
55
import java.math.BigInteger
6-
import jp.co.soramitsu.account.api.domain.PendulumPreInstalledAccountsScenario
76
import jp.co.soramitsu.account.api.domain.interfaces.AccountRepository
87
import jp.co.soramitsu.account.api.domain.model.MetaAccount
98
import jp.co.soramitsu.account.api.domain.model.accountId
@@ -13,9 +12,9 @@ import jp.co.soramitsu.common.data.network.HttpExceptionHandler
1312
import jp.co.soramitsu.common.data.network.coingecko.CoingeckoApi
1413
import jp.co.soramitsu.common.data.network.config.AppConfigRemote
1514
import jp.co.soramitsu.common.data.network.config.RemoteConfigFetcher
16-
import jp.co.soramitsu.common.data.storage.Preferences
1715
import jp.co.soramitsu.common.data.secrets.v2.KeyPairSchema
1816
import jp.co.soramitsu.common.data.secrets.v2.MetaAccountSecrets
17+
import jp.co.soramitsu.common.data.storage.Preferences
1918
import jp.co.soramitsu.common.domain.GetAvailableFiatCurrencies
2019
import jp.co.soramitsu.common.mixin.api.UpdatesMixin
2120
import jp.co.soramitsu.common.mixin.api.UpdatesProviderUi
@@ -520,15 +519,5 @@ class WalletRepositoryImpl(
520519
override suspend fun getStashAccount(chainId: ChainId, accountId: AccountId): AccountId? {
521520
return substrateSource.getStashAccount(chainId, accountId)
522521
}
523-
524-
override suspend fun fetchFeatureToggle() {
525-
val configResult = kotlin.runCatching {
526-
remoteConfigFetcher.getFeatureToggle()
527-
}.getOrNull() ?: return
528-
529-
val (pendulumCaseEnabled) = configResult
530-
531-
preferences.putBoolean(PendulumPreInstalledAccountsScenario.PENDULUM_FEATURE_TOGGLE_KEY, pendulumCaseEnabled)
532-
}
533522
}
534523

0 commit comments

Comments
 (0)