Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/master' into version/0.39
Browse files Browse the repository at this point in the history
# Conflicts:
#	app/src/main/java/io/horizontalsystems/bankwallet/core/App.kt
#	app/src/main/java/io/horizontalsystems/bankwallet/core/managers/BackgroundStateChangeListener.kt
#	app/src/main/java/io/horizontalsystems/bankwallet/core/managers/LocalStorageManager.kt
#	app/src/main/java/io/horizontalsystems/bankwallet/modules/balance/BalanceService.kt
#	app/src/main/java/io/horizontalsystems/bankwallet/modules/coin/overview/CoinOverviewChartService.kt
#	app/src/main/java/io/horizontalsystems/bankwallet/modules/coin/overview/CoinOverviewService.kt
#	app/src/main/java/io/horizontalsystems/bankwallet/modules/coin/tweets/CoinTweetsService.kt
#	app/src/main/java/io/horizontalsystems/bankwallet/modules/evmnetwork/addrpc/AddRpcViewModel.kt
#	app/src/main/java/io/horizontalsystems/bankwallet/modules/manageaccount/showextendedkey/ShowExtendedKeyFragment.kt
#	app/src/main/java/io/horizontalsystems/bankwallet/modules/market/category/MarketCategoryViewModel.kt
#	app/src/main/java/io/horizontalsystems/bankwallet/modules/market/favorites/MarketFavoritesRepository.kt
#	app/src/main/java/io/horizontalsystems/bankwallet/modules/market/filtersresult/MarketFiltersResultViewModel.kt
#	app/src/main/java/io/horizontalsystems/bankwallet/modules/market/metricspage/MetricsPageViewModel.kt
#	app/src/main/java/io/horizontalsystems/bankwallet/modules/market/tvl/TvlViewModel.kt
#	app/src/main/java/io/horizontalsystems/bankwallet/modules/multiswap/SwapConfirmFragment.kt
#	app/src/main/java/io/horizontalsystems/bankwallet/modules/restoreaccount/restoreblockchains/RestoreBlockchainsService.kt
#	app/src/main/java/io/horizontalsystems/bankwallet/modules/sendevmtransaction/SendEvmTransactionViewModel.kt
#	app/src/main/java/io/horizontalsystems/bankwallet/modules/settings/main/MainSettingsScreen.kt
#	app/src/main/java/io/horizontalsystems/bankwallet/modules/swap/approve/confirmation/SwapApproveConfirmationFragment.kt
#	app/src/main/java/io/horizontalsystems/bankwallet/modules/swap/confirmation/BaseSwapConfirmationFragment.kt
  • Loading branch information
omurovch committed Apr 30, 2024
2 parents 0859dc9 + ee91f0e commit c93baed
Show file tree
Hide file tree
Showing 134 changed files with 2,434 additions and 245 deletions.
2 changes: 1 addition & 1 deletion app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -272,7 +272,7 @@ dependencies {
implementation 'com.github.horizontalsystems:ethereum-kit-android:f4957a9'
implementation 'com.github.horizontalsystems:blockchain-fee-rate-kit-android:1d3bd49'
implementation 'com.github.horizontalsystems:binance-chain-kit-android:c1509a2'
implementation 'com.github.horizontalsystems:market-kit-android:7b14372'
implementation 'com.github.horizontalsystems:market-kit-android:a0361bf'
implementation 'com.github.horizontalsystems:solana-kit-android:d8bb9f2'
implementation 'com.github.horizontalsystems:tron-kit-android:dc3dca7'
// Zcash SDK
Expand Down
8 changes: 5 additions & 3 deletions app/src/main/java/io/horizontalsystems/bankwallet/core/App.kt
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ import io.horizontalsystems.bankwallet.core.providers.CexProviderManager
import io.horizontalsystems.bankwallet.core.providers.EvmLabelProvider
import io.horizontalsystems.bankwallet.core.providers.FeeRateProvider
import io.horizontalsystems.bankwallet.core.providers.FeeTokenProvider
import io.horizontalsystems.bankwallet.core.stats.StatsManager
import io.horizontalsystems.bankwallet.core.storage.AccountsStorage
import io.horizontalsystems.bankwallet.core.storage.AppDatabase
import io.horizontalsystems.bankwallet.core.storage.BlockchainSettingsStorage
Expand Down Expand Up @@ -189,6 +190,7 @@ class App : CoreApp(), WorkConfiguration.Provider, ImageLoaderFactory {
lateinit var chartIndicatorManager: ChartIndicatorManager
lateinit var backupProvider: BackupProvider
lateinit var spamManager: SpamManager
lateinit var statsManager: StatsManager
}

private val coroutineScope = CoroutineScope(Dispatchers.Default)
Expand Down Expand Up @@ -226,7 +228,6 @@ class App : CoreApp(), WorkConfiguration.Provider, ImageLoaderFactory {
context = this,
hsApiBaseUrl = appConfig.marketApiBaseUrl,
hsApiKey = appConfig.marketApiKey,
appConfigProvider = appConfigProvider,
subscriptionManager = subscriptionManager
)

Expand Down Expand Up @@ -352,7 +353,8 @@ class App : CoreApp(), WorkConfiguration.Provider, ImageLoaderFactory {
pinDbStorage = PinDbStorage(appDatabase.pinDao())
)

backgroundStateChangeListener = BackgroundStateChangeListener(pinComponent).apply {
statsManager = StatsManager(appDatabase.statsDao(), localStorage, marketKit, appConfigProvider)
backgroundStateChangeListener = BackgroundStateChangeListener(pinComponent, statsManager).apply {
backgroundManager.registerListener(this)
}

Expand All @@ -371,7 +373,7 @@ class App : CoreApp(), WorkConfiguration.Provider, ImageLoaderFactory {
MarketFavoritesMenuService(localStorage, marketWidgetManager),
TopNftCollectionsRepository(marketKit),
TopNftCollectionsViewItemFactory(numberFormatter),
TopPlatformsRepository(marketKit, currencyManager, "widget"),
TopPlatformsRepository(marketKit, currencyManager),
currencyManager
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,7 @@ interface ILocalStorage {
var pinRandomized: Boolean
var utxoExpertModeEnabled: Boolean
var rbfEnabled: Boolean
var statsLastSyncTime: Long

val utxoExpertModeEnabledFlow: StateFlow<Boolean>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -356,6 +356,18 @@ val TokenType.order: Int
}


val TokenType.derivation: TokenType.Derivation?
get() = when (this) {
is TokenType.Derived -> this.derivation
else -> null
}

val TokenType.bitcoinCashCoinType: TokenType.AddressType?
get() = when (this) {
is TokenType.AddressTyped -> this.type
else -> null
}

val Coin.imageUrl: String
get() = "https://cdn.blocksdecoded.com/coin-icons/32px/$uid@3x.png"

Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,21 @@
package io.horizontalsystems.bankwallet.core.managers

import android.app.Activity
import io.horizontalsystems.bankwallet.core.stats.StatsManager
import io.horizontalsystems.bankwallet.modules.keystore.KeyStoreActivity
import io.horizontalsystems.bankwallet.modules.lockscreen.LockScreenActivity
import io.horizontalsystems.core.BackgroundManager
import io.horizontalsystems.core.IPinComponent

class BackgroundStateChangeListener(
private val pinComponent: IPinComponent
private val pinComponent: IPinComponent,
private val statsManager: StatsManager
) : BackgroundManager.Listener {

override fun willEnterForeground(activity: Activity) {
pinComponent.willEnterForeground(activity)

statsManager.sendStats()
}

override fun didEnterBackground() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ class LocalStorageManager(
private val PIN_RANDOMIZED = "pin_randomized"
private val UTXO_EXPERT_MODE = "utxo_expert_mode"
private val RBF_ENABLED = "rbf_enabled"
private val STATS_SYNC_TIME = "stats_sync_time"

private val _utxoExpertModeEnabledFlow = MutableStateFlow(false)
override val utxoExpertModeEnabledFlow = _utxoExpertModeEnabledFlow
Expand Down Expand Up @@ -498,4 +499,10 @@ class LocalStorageManager(
set(value) {
preferences.edit().putBoolean(RBF_ENABLED, value).apply()
}

override var statsLastSyncTime: Long
get() = preferences.getLong(STATS_SYNC_TIME, 0)
set(value) {
preferences.edit().putLong(STATS_SYNC_TIME, value).apply()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import android.content.Context
import io.horizontalsystems.bankwallet.core.InvalidAuthTokenException
import io.horizontalsystems.bankwallet.core.NoAuthTokenException
import io.horizontalsystems.bankwallet.core.customCoinPrefix
import io.horizontalsystems.bankwallet.core.providers.AppConfigProvider
import io.horizontalsystems.marketkit.MarketKit
import io.horizontalsystems.marketkit.SyncInfo
import io.horizontalsystems.marketkit.models.BlockchainType
Expand All @@ -25,16 +24,13 @@ class MarketKitWrapper(
context: Context,
hsApiBaseUrl: String,
hsApiKey: String,
appConfigProvider: AppConfigProvider,
private val subscriptionManager: SubscriptionManager
) {
private val marketKit: MarketKit by lazy {
MarketKit.getInstance(
context = context,
hsApiBaseUrl = hsApiBaseUrl,
hsApiKey = hsApiKey,
appVersion = appConfigProvider.appVersion,
appId = appConfigProvider.appId
)
}

Expand Down Expand Up @@ -78,30 +74,30 @@ class MarketKitWrapper(

fun blockchain(uid: String) = marketKit.blockchain(uid)

fun marketInfosSingle(top: Int, currencyCode: String, defi: Boolean, apiTag: String) = marketKit.marketInfosSingle(top, currencyCode, defi, apiTag)
fun marketInfosSingle(top: Int, currencyCode: String, defi: Boolean) = marketKit.marketInfosSingle(top, currencyCode, defi)

fun advancedMarketInfosSingle(top: Int = 250, currencyCode: String) = marketKit.advancedMarketInfosSingle(top, currencyCode)

fun marketInfosSingle(coinUids: List<String>, currencyCode: String, apiTag: String): Single<List<MarketInfo>> =
marketKit.marketInfosSingle(coinUids.removeCustomCoins(), currencyCode, apiTag)
fun marketInfosSingle(coinUids: List<String>, currencyCode: String): Single<List<MarketInfo>> =
marketKit.marketInfosSingle(coinUids.removeCustomCoins(), currencyCode)

fun marketInfosSingle(categoryUid: String, currencyCode: String, apiTag: String) = marketKit.marketInfosSingle(categoryUid, currencyCode, apiTag)
fun marketInfosSingle(categoryUid: String, currencyCode: String) = marketKit.marketInfosSingle(categoryUid, currencyCode)

fun marketInfoOverviewSingle(coinUid: String, currencyCode: String, language: String, apiTag: String) =
marketKit.marketInfoOverviewSingle(coinUid, currencyCode, language, apiTag)
fun marketInfoOverviewSingle(coinUid: String, currencyCode: String, language: String) =
marketKit.marketInfoOverviewSingle(coinUid, currencyCode, language)

fun analyticsSingle(coinUid: String, currencyCode: String, apiTag: String) =
requestWithAuthToken { marketKit.analyticsSingle(it, coinUid, currencyCode, apiTag) }
fun analyticsSingle(coinUid: String, currencyCode: String) =
requestWithAuthToken { marketKit.analyticsSingle(it, coinUid, currencyCode) }

fun analyticsPreviewSingle(coinUid: String, addresses: List<String>, apiTag: String) = marketKit.analyticsPreviewSingle(coinUid, addresses, apiTag)
fun analyticsPreviewSingle(coinUid: String, addresses: List<String>) = marketKit.analyticsPreviewSingle(coinUid, addresses)

fun marketInfoTvlSingle(coinUid: String, currencyCode: String, timePeriod: HsTimePeriod) =
marketKit.marketInfoTvlSingle(coinUid, currencyCode, timePeriod)

fun marketInfoGlobalTvlSingle(chain: String, currencyCode: String, timePeriod: HsTimePeriod) =
marketKit.marketInfoGlobalTvlSingle(chain, currencyCode, timePeriod)

fun defiMarketInfosSingle(currencyCode: String, apiTag: String) = marketKit.defiMarketInfosSingle(currencyCode, apiTag)
fun defiMarketInfosSingle(currencyCode: String) = marketKit.defiMarketInfosSingle(currencyCode)

// Categories

Expand Down Expand Up @@ -234,8 +230,8 @@ class MarketKitWrapper(
fun globalMarketPointsSingle(currencyCode: String, timePeriod: HsTimePeriod) =
marketKit.globalMarketPointsSingle(currencyCode, timePeriod)

fun topPlatformsSingle(currencyCode: String, apiTag: String) =
marketKit.topPlatformsSingle(currencyCode, apiTag)
fun topPlatformsSingle(currencyCode: String) =
marketKit.topPlatformsSingle(currencyCode)

fun topPlatformMarketCapStartTimeSingle(platform: String) =
marketKit.topPlatformMarketCapStartTimeSingle(platform)
Expand All @@ -246,8 +242,8 @@ class MarketKitWrapper(
periodType: HsPeriodType
) = marketKit.topPlatformMarketCapPointsSingle(chain, currencyCode, periodType)

fun topPlatformCoinListSingle(chain: String, currencyCode: String, apiTag: String) =
marketKit.topPlatformMarketInfosSingle(chain, currencyCode, apiTag)
fun topPlatformCoinListSingle(chain: String, currencyCode: String) =
marketKit.topPlatformMarketInfosSingle(chain, currencyCode)

// NFT

Expand All @@ -272,4 +268,10 @@ class MarketKitWrapper(
fun requestPersonalSupport(username: String): Single<Response<Void>> =
requestWithAuthToken { marketKit.requestPersonalSupport(it, username) }

// Stats

fun sendStats(stats: String, appVersion: String, appId: String?): Single<Unit> {
return marketKit.sendStats(stats, appVersion, appId)
}

}
Loading

0 comments on commit c93baed

Please sign in to comment.