From 69234e50efd7f2ee9d29ba5e164dab23124cd17e Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 21 Mar 2024 09:37:32 +0000 Subject: [PATCH] Updated on 2026-08-14 --- .../tap/network/auth/DefaultAppVersionProvider.kt | 11 +++++++++++ .../java/com/tangem/tap/network/auth/di/AuthModule.kt | 8 ++++++++ .../java/com/tangem/datasource/di/NetworkModule.kt | 3 +++ .../java/com/tangem/datasource/utils/RequestHeader.kt | 6 ++++++ .../java/com/tangem/lib/auth/AppVersionProvider.kt | 6 ++++++ 5 files changed, 34 insertions(+) create mode 100644 app/src/main/java/com/tangem/tap/network/auth/DefaultAppVersionProvider.kt create mode 100644 libs/auth/src/main/java/com/tangem/lib/auth/AppVersionProvider.kt diff --git a/app/src/main/java/com/tangem/tap/network/auth/DefaultAppVersionProvider.kt b/app/src/main/java/com/tangem/tap/network/auth/DefaultAppVersionProvider.kt new file mode 100644 index 0000000000..7987d7ce6e --- /dev/null +++ b/app/src/main/java/com/tangem/tap/network/auth/DefaultAppVersionProvider.kt @@ -0,0 +1,11 @@ +package com.tangem.tap.network.auth + +import com.tangem.lib.auth.AppVersionProvider +import com.tangem.wallet.BuildConfig + +internal class DefaultAppVersionProvider : AppVersionProvider { + + override fun getAppVersion(): String { + return BuildConfig.VERSION_NAME + } +} \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/network/auth/di/AuthModule.kt b/app/src/main/java/com/tangem/tap/network/auth/di/AuthModule.kt index fa9aa920a1..0185472a6e 100644 --- a/app/src/main/java/com/tangem/tap/network/auth/di/AuthModule.kt +++ b/app/src/main/java/com/tangem/tap/network/auth/di/AuthModule.kt @@ -2,8 +2,10 @@ package com.tangem.tap.network.auth.di import com.tangem.datasource.config.ConfigManager import com.tangem.datasource.local.userwallet.UserWalletsStore +import com.tangem.lib.auth.AppVersionProvider import com.tangem.lib.auth.AuthProvider import com.tangem.lib.auth.ExpressAuthProvider +import com.tangem.tap.network.auth.DefaultAppVersionProvider import com.tangem.tap.network.auth.DefaultAuthProvider import com.tangem.tap.network.auth.DefaultExpressAuthProvider import com.tangem.tap.proxy.AppStateHolder @@ -34,4 +36,10 @@ class AuthModule { configManager = configManager, ) } + + @Provides + @Singleton + fun provideAppVersionProvider(): AppVersionProvider { + return DefaultAppVersionProvider() + } } \ No newline at end of file diff --git a/core/datasource/src/main/java/com/tangem/datasource/di/NetworkModule.kt b/core/datasource/src/main/java/com/tangem/datasource/di/NetworkModule.kt index eb61db86b2..e52008bbc5 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/di/NetworkModule.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/di/NetworkModule.kt @@ -9,6 +9,7 @@ import com.tangem.datasource.api.tangemTech.TangemTechApi import com.tangem.datasource.utils.RequestHeader.* import com.tangem.datasource.utils.addHeaders import com.tangem.datasource.utils.addLoggers +import com.tangem.lib.auth.AppVersionProvider import com.tangem.lib.auth.ExpressAuthProvider import dagger.Module import dagger.Provides @@ -30,6 +31,7 @@ class NetworkModule { @NetworkMoshi moshi: Moshi, @ApplicationContext context: Context, expressAuthProvider: ExpressAuthProvider, + appVersionProvider: AppVersionProvider, ): TangemExpressApi { val url = if (BuildConfig.ENVIRONMENT == "dev") { DEV_EXPRESS_BASE_URL @@ -43,6 +45,7 @@ class NetworkModule { .client( OkHttpClient.Builder() .addHeaders(Express(expressAuthProvider)) + .addHeaders(AppVersionPlatformHeaders(appVersionProvider)) .addLoggers(context) .build(), ) diff --git a/core/datasource/src/main/java/com/tangem/datasource/utils/RequestHeader.kt b/core/datasource/src/main/java/com/tangem/datasource/utils/RequestHeader.kt index d84b00ac2e..bd725ea0b6 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/utils/RequestHeader.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/utils/RequestHeader.kt @@ -1,5 +1,6 @@ package com.tangem.datasource.utils +import com.tangem.lib.auth.AppVersionProvider import com.tangem.lib.auth.AuthBearerProvider import com.tangem.lib.auth.AuthProvider import com.tangem.lib.auth.ExpressAuthProvider @@ -30,4 +31,9 @@ sealed class RequestHeader(vararg pairs: Pair String>) { class AuthBearerHeader(authBearerProvider: AuthBearerProvider) : RequestHeader( "Authorization" to { "Bearer " + authBearerProvider.getApiKey() }, ) + + class AppVersionPlatformHeaders(appVersionProvider: AppVersionProvider) : RequestHeader( + "version" to { appVersionProvider.getAppVersion() }, + "platform" to { "android" }, + ) } \ No newline at end of file diff --git a/libs/auth/src/main/java/com/tangem/lib/auth/AppVersionProvider.kt b/libs/auth/src/main/java/com/tangem/lib/auth/AppVersionProvider.kt new file mode 100644 index 0000000000..3b8e606e9c --- /dev/null +++ b/libs/auth/src/main/java/com/tangem/lib/auth/AppVersionProvider.kt @@ -0,0 +1,6 @@ +package com.tangem.lib.auth + +interface AppVersionProvider { + + fun getAppVersion(): String +} \ No newline at end of file