From d10ca65bba4eea2d066b88837161b68245e47ef0 Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 25 Mar 2022 18:55:51 +0300 Subject: [PATCH 1/4] Updated on 2026-08-14 --- app/src/main/java/com/tangem/tap/domain/TapWalletManager.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/domain/TapWalletManager.kt b/app/src/main/java/com/tangem/tap/domain/TapWalletManager.kt index cb094b7c7a..acbf6e3650 100644 --- a/app/src/main/java/com/tangem/tap/domain/TapWalletManager.kt +++ b/app/src/main/java/com/tangem/tap/domain/TapWalletManager.kt @@ -103,9 +103,11 @@ class TapWalletManager { val toUpdate = currencies.filter { !fiatRatesThrottler.isStillThrottled(it) } toUpdate.forEach { - fiatRatesThrottler.updateThrottlingTo(it) val result = coinMarketCapService.getRate(it.currencySymbol, fiatCurrency) - fiatRatesThrottler.setValue(it, result) + if (result is Result.Success) { + fiatRatesThrottler.updateThrottlingTo(it) + fiatRatesThrottler.setValue(it, result) + } handleFiatRatesResult(listOf(it to result)) } } From c0032b70c8873579af92ee8b5baa9f701819b25c Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 25 Mar 2022 20:08:59 +0400 Subject: [PATCH 2/4] Updated on 2026-08-14 --- app/src/main/assets/tangem-app-config | 2 +- .../main/java/com/tangem/tap/common/shop/shopify/ShopifyShop.kt | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/assets/tangem-app-config b/app/src/main/assets/tangem-app-config index b3fb1483a3..64ae04d208 160000 --- a/app/src/main/assets/tangem-app-config +++ b/app/src/main/assets/tangem-app-config @@ -1 +1 @@ -Subproject commit b3fb1483a37bf1fb7d9da3f9bd9424f693c0ec5b +Subproject commit 64ae04d2086e5a605dd4da3cba4af32a60d46c79 diff --git a/app/src/main/java/com/tangem/tap/common/shop/shopify/ShopifyShop.kt b/app/src/main/java/com/tangem/tap/common/shop/shopify/ShopifyShop.kt index 5fde9c60ff..776374e240 100644 --- a/app/src/main/java/com/tangem/tap/common/shop/shopify/ShopifyShop.kt +++ b/app/src/main/java/com/tangem/tap/common/shop/shopify/ShopifyShop.kt @@ -1,10 +1,12 @@ package com.tangem.tap.common.shop.shopify +import com.squareup.moshi.Json import com.squareup.moshi.JsonClass @JsonClass(generateAdapter = true) data class ShopifyShop( val domain: String, + @Json(name = "storefrontApiKeyAndroid") val storefrontApiKey: String, val merchantID: String, ) \ No newline at end of file From d620010137b7856bf405dac952b08c071613a0f9 Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 25 Mar 2022 20:05:36 +0300 Subject: [PATCH 3/4] Updated on 2026-08-14 --- .../java/com/tangem/tap/TapApplication.kt | 14 +++++++- .../com/tangem/tap/common/images/Picasso.kt | 36 +++++++++++-------- .../tangem/tap/common/redux/LogMiddleware.kt | 3 +- .../tangem/tap/features/home/HomeFragment.kt | 2 +- 4 files changed, 37 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/TapApplication.kt b/app/src/main/java/com/tangem/tap/TapApplication.kt index 74e957f6c3..956063d3f3 100644 --- a/app/src/main/java/com/tangem/tap/TapApplication.kt +++ b/app/src/main/java/com/tangem/tap/TapApplication.kt @@ -35,6 +35,8 @@ val store = Store( middleware = AppState.getMiddleware(), state = AppState() ) +val logConfig = LogConfig() + lateinit var preferencesStorage: PreferencesStorage lateinit var currenciesRepository: CurrenciesRepository lateinit var walletConnectRepository: WalletConnectRepository @@ -99,4 +101,14 @@ class TapApplication : Application() { val analyticsHandler = GlobalAnalyticsHandler.createDefaultAnalyticHandlers(this) store.dispatch(GlobalAction.SetAnanlyticHandlers(analyticsHandler)) } -} \ No newline at end of file +} + +data class LogConfig( + // disables both [internal, http] + val picasso: Boolean = false, + val picassoInternal: Boolean = true, + val picassoHttp: Boolean = true, + + val storeAction: Boolean = false, + +) \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/common/images/Picasso.kt b/app/src/main/java/com/tangem/tap/common/images/Picasso.kt index 9220859e8b..f5d02a19fe 100644 --- a/app/src/main/java/com/tangem/tap/common/images/Picasso.kt +++ b/app/src/main/java/com/tangem/tap/common/images/Picasso.kt @@ -3,6 +3,7 @@ package com.tangem.tap.common.images import android.app.Application import com.squareup.picasso.OkHttp3Downloader import com.squareup.picasso.Picasso +import com.tangem.tap.logConfig import com.tangem.wallet.BuildConfig import okhttp3.Cache import okhttp3.CacheControl @@ -18,35 +19,38 @@ class PicassoHelper { fun initPicassoWithCaching(application: Application) { val picasso = Picasso.Builder(application) - .downloader(OkHttp3Downloader(getOkHttpForPicasso(application))) - .build() - picasso.isLoggingEnabled = BuildConfig.DEBUG + .downloader(OkHttp3Downloader(getOkHttpForPicasso(application))) + .build() + picasso.isLoggingEnabled = logIsEnabled() picasso.setIndicatorsEnabled(BuildConfig.DEBUG) Picasso.setSingletonInstance(picasso) } private fun getOkHttpForPicasso(application: Application): OkHttpClient { - val okHttpBuilder = OkHttpClient.Builder() - okHttpBuilder.cache(Cache(File(application.filesDir, "artworks"), Long.MAX_VALUE)) - okHttpBuilder.callTimeout(15000, TimeUnit.MILLISECONDS) + return OkHttpClient.Builder().apply { + cache(Cache(File(application.filesDir, "artworks"), Long.MAX_VALUE)) + callTimeout(15000, TimeUnit.MILLISECONDS) - okHttpBuilder.addInterceptor { chain -> - val cacheControl = CacheControl.Builder() + if (logIsEnabled()) { + addDebugInterceptors(this) + } + + addInterceptor { chain -> + val cacheControl = CacheControl.Builder() .maxStale(KEEP_CACHE_MAX_DAYS, TimeUnit.DAYS) .build() - val origRequest = chain.request() - val neverExpireRequest = origRequest.newBuilder() + val origRequest = chain.request() + val neverExpireRequest = origRequest.newBuilder() .cacheControl(cacheControl) .build() - chain.proceed(neverExpireRequest) - } - addDebugInterceptors(okHttpBuilder) + chain.proceed(neverExpireRequest) + } + }.build() - return okHttpBuilder.build() } private fun addDebugInterceptors(okHttpBuilder: OkHttpClient.Builder) { - if (!BuildConfig.DEBUG) return + if (!BuildConfig.DEBUG || !logConfig.picasso) return val picassoInterceptor = HttpLoggingInterceptor(PicassoOkHttpLogger()).apply { level = HttpLoggingInterceptor.Level.BODY @@ -54,6 +58,8 @@ class PicassoHelper { okHttpBuilder.addInterceptor(picassoInterceptor) } + private fun logIsEnabled(): Boolean = BuildConfig.DEBUG && logConfig.picasso + } } diff --git a/app/src/main/java/com/tangem/tap/common/redux/LogMiddleware.kt b/app/src/main/java/com/tangem/tap/common/redux/LogMiddleware.kt index 15ea778fed..5e5daf10c8 100644 --- a/app/src/main/java/com/tangem/tap/common/redux/LogMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/common/redux/LogMiddleware.kt @@ -1,5 +1,6 @@ package com.tangem.tap.common.redux +import com.tangem.tap.logConfig import org.rekotlin.Middleware import timber.log.Timber @@ -9,7 +10,7 @@ import timber.log.Timber val logMiddleware: Middleware = { dispatch, appState -> { nextDispatch -> { action -> - Timber.d("Dispatch action: $action") + if (logConfig.storeAction) Timber.d("Dispatch action: $action") nextDispatch(action) } } diff --git a/app/src/main/java/com/tangem/tap/features/home/HomeFragment.kt b/app/src/main/java/com/tangem/tap/features/home/HomeFragment.kt index 9e98fe16f5..19bbd08320 100644 --- a/app/src/main/java/com/tangem/tap/features/home/HomeFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/home/HomeFragment.kt @@ -43,7 +43,7 @@ class HomeFragment : Fragment(R.layout.fragment_home), StoreSubscriber Date: Fri, 25 Mar 2022 20:08:06 +0300 Subject: [PATCH 4/4] Updated on 2026-08-14 --- app/src/main/java/com/tangem/tap/TapApplication.kt | 4 ++-- app/src/main/java/com/tangem/tap/common/images/Picasso.kt | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/TapApplication.kt b/app/src/main/java/com/tangem/tap/TapApplication.kt index 956063d3f3..7dbd7c7b3d 100644 --- a/app/src/main/java/com/tangem/tap/TapApplication.kt +++ b/app/src/main/java/com/tangem/tap/TapApplication.kt @@ -105,10 +105,10 @@ class TapApplication : Application() { data class LogConfig( // disables both [internal, http] - val picasso: Boolean = false, + val picasso: Boolean = BuildConfig.DEBUG, val picassoInternal: Boolean = true, val picassoHttp: Boolean = true, - val storeAction: Boolean = false, + val storeAction: Boolean = BuildConfig.DEBUG, ) \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/common/images/Picasso.kt b/app/src/main/java/com/tangem/tap/common/images/Picasso.kt index f5d02a19fe..81c52ca693 100644 --- a/app/src/main/java/com/tangem/tap/common/images/Picasso.kt +++ b/app/src/main/java/com/tangem/tap/common/images/Picasso.kt @@ -50,8 +50,6 @@ class PicassoHelper { } private fun addDebugInterceptors(okHttpBuilder: OkHttpClient.Builder) { - if (!BuildConfig.DEBUG || !logConfig.picasso) return - val picassoInterceptor = HttpLoggingInterceptor(PicassoOkHttpLogger()).apply { level = HttpLoggingInterceptor.Level.BODY }