diff --git a/app/build.gradle b/app/build.gradle index 337774fada..af7477808c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -19,7 +19,7 @@ android { compileSdk compile_sdk_version minSdkVersion min_sdk_version targetSdkVersion compile_sdk_version - versionCode 114 + versionCode 115 versionName "0.40.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" diff --git a/app/src/main/java/io/horizontalsystems/bankwallet/core/App.kt b/app/src/main/java/io/horizontalsystems/bankwallet/core/App.kt index 7cf9d25ef5..6277ed8edc 100644 --- a/app/src/main/java/io/horizontalsystems/bankwallet/core/App.kt +++ b/app/src/main/java/io/horizontalsystems/bankwallet/core/App.kt @@ -111,6 +111,7 @@ import io.horizontalsystems.core.CoreApp import io.horizontalsystems.core.ICoreApp import io.horizontalsystems.core.security.EncryptionManager import io.horizontalsystems.core.security.KeyStoreManager +import io.horizontalsystems.core.toHexString import io.horizontalsystems.ethereumkit.core.EthereumKit import io.horizontalsystems.hdwalletkit.Mnemonic import io.reactivex.plugins.RxJavaPlugins @@ -513,6 +514,18 @@ class App : CoreApp(), WorkConfiguration.Provider, ImageLoaderFactory { localeAwareContext(this) } + override val isSwapEnabled: Boolean by lazy { + val signatures = listOf( + "b797339fb356afce5160fe49274ee17a1c1816db", // appcenter + "5afb2517b06caac7f108ba9d96ad826f1c4ba30c", // hs + ) + + val applicationSignatures = App.instance.getApplicationSignatures() + applicationSignatures.none { + signatures.contains(it.toHexString()) + } + } + override fun getApplicationSignatures() = try { val signatureList = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { val signingInfo = packageManager.getPackageInfo( diff --git a/app/src/main/java/io/horizontalsystems/bankwallet/modules/balance/BalanceModule.kt b/app/src/main/java/io/horizontalsystems/bankwallet/modules/balance/BalanceModule.kt index fe2f873089..027f44ef3f 100644 --- a/app/src/main/java/io/horizontalsystems/bankwallet/modules/balance/BalanceModule.kt +++ b/app/src/main/java/io/horizontalsystems/bankwallet/modules/balance/BalanceModule.kt @@ -40,7 +40,8 @@ object BalanceModule { App.localStorage, App.wcManager, AddressHandlerFactory(App.appConfigProvider.udnApiKey), - App.priceManager + App.priceManager, + App.instance.isSwapEnabled ) as T } } diff --git a/app/src/main/java/io/horizontalsystems/bankwallet/modules/balance/BalanceViewItemFactory.kt b/app/src/main/java/io/horizontalsystems/bankwallet/modules/balance/BalanceViewItemFactory.kt index f6bab68012..c0eeb4d8dc 100644 --- a/app/src/main/java/io/horizontalsystems/bankwallet/modules/balance/BalanceViewItemFactory.kt +++ b/app/src/main/java/io/horizontalsystems/bankwallet/modules/balance/BalanceViewItemFactory.kt @@ -244,7 +244,7 @@ class BalanceViewItemFactory { failedIconVisible = state is AdapterState.NotSynced, coinIconVisible = state !is AdapterState.NotSynced, badge = wallet.badge, - swapVisible = wallet.token.swappable, + swapVisible = App.instance.isSwapEnabled && wallet.token.swappable, swapEnabled = state is AdapterState.Synced, errorMessage = (state as? AdapterState.NotSynced)?.error?.message, isWatchAccount = watchAccount, diff --git a/app/src/main/java/io/horizontalsystems/bankwallet/modules/balance/BalanceViewModel.kt b/app/src/main/java/io/horizontalsystems/bankwallet/modules/balance/BalanceViewModel.kt index 68c2f9847e..28cf5bdcbb 100644 --- a/app/src/main/java/io/horizontalsystems/bankwallet/modules/balance/BalanceViewModel.kt +++ b/app/src/main/java/io/horizontalsystems/bankwallet/modules/balance/BalanceViewModel.kt @@ -45,7 +45,8 @@ class BalanceViewModel( private val localStorage: ILocalStorage, private val wCManager: WCManager, private val addressHandlerFactory: AddressHandlerFactory, - private val priceManager: PriceManager + private val priceManager: PriceManager, + val isSwapEnabled: Boolean ) : ViewModelUiState(), ITotalBalance by totalBalance { private var balanceViewType = balanceViewTypeManager.balanceViewTypeFlow.value diff --git a/app/src/main/java/io/horizontalsystems/bankwallet/modules/balance/ui/BalanceItems.kt b/app/src/main/java/io/horizontalsystems/bankwallet/modules/balance/ui/BalanceItems.kt index 9a732a7be4..b1828cfe43 100644 --- a/app/src/main/java/io/horizontalsystems/bankwallet/modules/balance/ui/BalanceItems.kt +++ b/app/src/main/java/io/horizontalsystems/bankwallet/modules/balance/ui/BalanceItems.kt @@ -306,16 +306,18 @@ fun BalanceItems( } } ) - HSpacer(8.dp) - ButtonPrimaryCircle( - icon = R.drawable.ic_swap_24, - contentDescription = stringResource(R.string.Swap), - onClick = { - navController.slideFromRight(R.id.multiswap) - - stat(page = StatPage.Balance, event = StatEvent.Open(StatPage.Swap)) - } - ) + if (viewModel.isSwapEnabled) { + HSpacer(8.dp) + ButtonPrimaryCircle( + icon = R.drawable.ic_swap_24, + contentDescription = stringResource(R.string.Swap), + onClick = { + navController.slideFromRight(R.id.multiswap) + + stat(page = StatPage.Balance, event = StatEvent.Open(StatPage.Swap)) + } + ) + } } VSpacer(12.dp) } diff --git a/core/src/main/java/io/horizontalsystems/core/CoreApp.kt b/core/src/main/java/io/horizontalsystems/core/CoreApp.kt index 0806523e2c..a48ead8f23 100644 --- a/core/src/main/java/io/horizontalsystems/core/CoreApp.kt +++ b/core/src/main/java/io/horizontalsystems/core/CoreApp.kt @@ -23,6 +23,7 @@ abstract class CoreApp : Application() { abstract fun localizedContext(): Context abstract fun getApplicationSignatures(): List + abstract val isSwapEnabled: Boolean fun localeAwareContext(base: Context): Context { return LocaleHelper.onAttach(base)