Skip to content

Commit 2fd1136

Browse files
author
jenkins-mobile
committed
Release 6.4.1
1 parent 7b830bc commit 2fd1136

17 files changed

+50
-190
lines changed

.version

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
6.4.0
1+
6.4.1

.version_code

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
6040000
1+
6040100

CHANGELOG.md

+6
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@
55
### NEXT_VERSION_DESCRIPTION_BEGIN
66
### NEXT_VERSION_DESCRIPTION_END
77

8+
## [6.4.1] (12-10-2021)
9+
10+
- Fixed proguard rules for packages
11+
- Updated auth-sdk library
12+
- Replaced <fragment> FragmentContainerView
13+
814
## [6.4.0] (29-09-2021)
915

1016
- Added getting static data in the config

build.gradle

+4-4
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,13 @@ allprojects {
2828
applyFromFileIfExists('buildInternal.gradle')
2929

3030
buildscript {
31-
ext.kotlin_version = '1.3.72'
31+
ext.kotlin_version = '1.4.32'
3232
ext.dokka_version = '0.9.17'
3333
ext.okhttp_version = '4.3.1'
3434
ext.mockito_version = '2.19.0'
3535
ext.espresso_version = '3.0.1'
3636
ext.gson_version = '2.8.6'
37-
ext.yoo_sdk_auth_version = '1.3.12'
37+
ext.yoo_sdk_auth_version = '1.3.23'
3838
ext.ui_lib_version = '1.27.0'
3939
ext.march_lib_version = "1.0.4"
4040
ext.junit = '4.13'
@@ -47,7 +47,7 @@ buildscript {
4747
ext.espresso_web = '3.3.0'
4848
ext.androidx_junit = '1.1.2'
4949

50-
ext.target_sdk_version = 29
50+
ext.target_sdk_version = 30
5151

5252
repositories {
5353
google()
@@ -60,7 +60,7 @@ buildscript {
6060
}
6161

6262
dependencies {
63-
classpath 'com.android.tools.build:gradle:4.1.3'
63+
classpath 'com.android.tools.build:gradle:4.2.2'
6464
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
6565
classpath "org.jetbrains.dokka:dokka-android-gradle-plugin:$dokka_version"
6666
classpath 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.6'

gradle/wrapper/gradle-wrapper.properties

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@
1919
# OTHER DEALINGS IN THE SOFTWARE.
2020
#
2121

22-
#Thu Jul 01 18:28:53 MSK 2021
22+
#Mon Oct 04 15:46:42 MSK 2021
2323
distributionBase=GRADLE_USER_HOME
2424
distributionPath=wrapper/dists
2525
zipStoreBase=GRADLE_USER_HOME
2626
zipStorePath=wrapper/dists
27-
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip
27+
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip

library/build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ ext {
3232

3333
android {
3434
compileSdkVersion target_sdk_version
35-
buildToolsVersion "30.0.3"
35+
buildToolsVersion "30.0.2"
3636

3737
resourcePrefix 'ym_'
3838

library/proguard-rules.pro

+3
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@
3434
-keep class ru.yoomoney.sdk.kassa.payments.ui.** { *; }
3535
-keep class androidx.lifecycle.ViewModelKeyedFactory { *; }
3636

37+
-keeppackagenames ru.yoomoney.sdk.kassa.payments.**
38+
-keeppackagenames ru.yoomoney.sdk.kassa.payments
39+
3740
-dontwarn javax.annotation.Nullable
3841
-dontwarn org.conscrypt.OpenSSLProvider
3942
-dontwarn org.conscrypt.Conscrypt

library/src/main/AndroidManifest.xml

+4
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@
2525
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
2626
<uses-permission android:name="android.permission.INTERNET" />
2727

28+
<queries>
29+
<package android:name="ru.sberbankmobile" />
30+
</queries>
31+
2832
<application>
2933
<activity
3034
android:name="ru.yoomoney.sdk.kassa.payments.utils.WebViewActivity"

library/src/main/java/ru/yoomoney/sdk/kassa/payments/contract/di/ContractModule.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ import ru.yoomoney.sdk.kassa.payments.checkoutParameters.PaymentParameters
3434
import ru.yoomoney.sdk.kassa.payments.checkoutParameters.TestParameters
3535
import ru.yoomoney.sdk.kassa.payments.di.TokenStorageModule
3636
import ru.yoomoney.sdk.kassa.payments.di.ViewModelKey
37-
import ru.yoomoney.sdk.kassa.payments.tmx.ProfilingTool
3837
import ru.yoomoney.sdk.kassa.payments.tmx.TmxSessionIdStorage
3938
import ru.yoomoney.sdk.kassa.payments.secure.TokensStorage
4039
import ru.yoomoney.sdk.kassa.payments.contract.Contract
@@ -72,6 +71,7 @@ import ru.yoomoney.sdk.kassa.payments.model.GetConfirmation
7271
import ru.yoomoney.sdk.kassa.payments.paymentOptionList.ConfigUseCase
7372
import ru.yoomoney.sdk.kassa.payments.paymentOptionList.ShopPropertiesRepository
7473
import ru.yoomoney.sdk.kassa.payments.utils.getSberbankPackage
74+
import ru.yoomoney.sdk.tmx.TmxProfiler
7575

7676
@Module
7777
internal class ContractModule {
@@ -83,7 +83,7 @@ internal class ContractModule {
8383
httpClient: CheckoutOkHttpClient,
8484
tokensStorage: TokensStorage,
8585
paymentParameters: PaymentParameters,
86-
profilingTool: ProfilingTool,
86+
profiler: TmxProfiler,
8787
tmxSessionIdStorage: TmxSessionIdStorage,
8888
configUseCase: ConfigUseCase
8989
): TokenizeRepository {
@@ -96,7 +96,7 @@ internal class ContractModule {
9696
httpClient = lazy { httpClient },
9797
shopToken = paymentParameters.clientApplicationKey,
9898
paymentAuthTokenRepository = tokensStorage,
99-
profilingTool = profilingTool,
99+
profiler = profiler,
100100
tmxSessionIdStorage = tmxSessionIdStorage,
101101
configUseCase = configUseCase,
102102
merchantCustomerId = paymentParameters.customerId

library/src/main/java/ru/yoomoney/sdk/kassa/payments/di/CoreModule.kt

+3-6
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,6 @@ import ru.yoomoney.sdk.kassa.payments.checkoutParameters.PaymentParameters
3131
import ru.yoomoney.sdk.kassa.payments.checkoutParameters.TestParameters
3232
import ru.yoomoney.sdk.kassa.payments.payment.PaymentMethodRepository
3333
import ru.yoomoney.sdk.kassa.payments.payment.PaymentMethodRepositoryImpl
34-
import ru.yoomoney.sdk.kassa.payments.tmx.ProfilingTool
35-
import ru.yoomoney.sdk.kassa.payments.tmx.ThreatMetrixProfilingTool
3634
import ru.yoomoney.sdk.kassa.payments.tmx.TmxSessionIdStorage
3735
import ru.yoomoney.sdk.kassa.payments.navigation.AppRouter
3836
import ru.yoomoney.sdk.kassa.payments.navigation.Router
@@ -45,6 +43,7 @@ import ru.yoomoney.sdk.kassa.payments.model.GetConfirmation
4543
import ru.yoomoney.sdk.kassa.payments.model.PaymentOption
4644
import ru.yoomoney.sdk.kassa.payments.utils.DEFAULT_REDIRECT_URL
4745
import ru.yoomoney.sdk.kassa.payments.utils.getSberbankPackage
46+
import ru.yoomoney.sdk.tmx.TmxProfiler
4847
import javax.inject.Singleton
4948

5049
@Module
@@ -89,10 +88,8 @@ internal class CoreModule {
8988

9089
@Provides
9190
@Singleton
92-
fun profilingTool(context: Context): ProfilingTool {
93-
return ThreatMetrixProfilingTool().apply {
94-
init(context.applicationContext)
95-
}
91+
fun tmxProfiler(context: Context): TmxProfiler {
92+
return TmxProfiler.create(context)
9693
}
9794

9895
@Provides

library/src/main/java/ru/yoomoney/sdk/kassa/payments/payment/tokenize/ApiV3TokenizeRepository.kt

+8-22
Original file line numberDiff line numberDiff line change
@@ -33,34 +33,20 @@ import ru.yoomoney.sdk.kassa.payments.model.PaymentOption
3333
import ru.yoomoney.sdk.kassa.payments.model.PaymentOptionInfo
3434
import ru.yoomoney.sdk.kassa.payments.model.Result
3535
import ru.yoomoney.sdk.kassa.payments.paymentAuth.PaymentAuthTokenRepository
36-
import ru.yoomoney.sdk.kassa.payments.tmx.ProfilingTool
3736
import ru.yoomoney.sdk.kassa.payments.tmx.TmxSessionIdStorage
3837
import ru.yoomoney.sdk.kassa.payments.paymentOptionList.ConfigUseCase
39-
import java.util.concurrent.Semaphore
38+
import ru.yoomoney.sdk.tmx.TmxProfiler
4039

4140
internal class ApiV3TokenizeRepository(
4241
private val hostProvider: HostProvider,
4342
private val httpClient: Lazy<CheckoutOkHttpClient>,
4443
private val shopToken: String,
4544
private val paymentAuthTokenRepository: PaymentAuthTokenRepository,
4645
private val tmxSessionIdStorage: TmxSessionIdStorage,
47-
private val profilingTool: ProfilingTool,
46+
private val profiler: TmxProfiler,
4847
private val configUseCase: ConfigUseCase,
4948
private val merchantCustomerId: String?
50-
) : TokenizeRepository, ProfilingTool.SessionIdListener {
51-
52-
private var tmxSessionId: String? = null
53-
private val semaphore = Semaphore(0)
54-
55-
override fun onProfilingSessionId(sessionId: String) {
56-
tmxSessionId = sessionId
57-
semaphore.release()
58-
}
59-
60-
override fun onProfilingError(status: String) {
61-
tmxSessionId = status
62-
semaphore.release()
63-
}
49+
) : TokenizeRepository {
6450

6551
override fun getToken(
6652
paymentOption: PaymentOption,
@@ -83,9 +69,7 @@ internal class ApiV3TokenizeRepository(
8369
savePaymentInstrument = savePaymentInstrument,
8470
merchantCustomerId = merchantCustomerId
8571
)
86-
tmxSessionId = null
8772
tmxSessionIdStorage.tmxSessionId = null
88-
8973
return httpClient.value.execute(tokenRequest)
9074
}
9175

@@ -113,10 +97,12 @@ internal class ApiV3TokenizeRepository(
11397
}
11498

11599
private fun acquireTmxSessionId(): String? {
116-
tmxSessionId = tmxSessionIdStorage.tmxSessionId
100+
val tmxSessionId = tmxSessionIdStorage.tmxSessionId
117101
if (tmxSessionId.isNullOrEmpty()) {
118-
profilingTool.requestSessionId(this)
119-
semaphore.acquire()
102+
return when (val result = profiler.profile()) {
103+
is TmxProfiler.Result.Success -> result.sessionId
104+
is TmxProfiler.Result.Fail -> result.description
105+
}
120106
}
121107
return tmxSessionId
122108
}

library/src/main/java/ru/yoomoney/sdk/kassa/payments/paymentAuth/ApiV3PaymentAuthRepository.kt

+8-22
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ import android.os.Build
2525
import ru.yoomoney.sdk.kassa.payments.checkoutParameters.Amount
2626
import ru.yoomoney.sdk.kassa.payments.extensions.CheckoutOkHttpClient
2727
import ru.yoomoney.sdk.kassa.payments.model.AuthCheckApiMethodException
28-
import ru.yoomoney.sdk.kassa.payments.tmx.ProfilingTool
2928
import ru.yoomoney.sdk.kassa.payments.tmx.TmxSessionIdStorage
3029
import ru.yoomoney.sdk.kassa.payments.secure.TokensStorage
3130
import ru.yoomoney.sdk.kassa.payments.extensions.execute
@@ -42,25 +41,22 @@ import ru.yoomoney.sdk.kassa.payments.model.CurrentUser
4241
import ru.yoomoney.sdk.kassa.payments.model.ErrorCode
4342
import ru.yoomoney.sdk.kassa.payments.model.Result
4443
import ru.yoomoney.sdk.kassa.payments.model.map
44+
import ru.yoomoney.sdk.tmx.TmxProfiler
4545
import java.lang.IllegalStateException
46-
import java.util.concurrent.Semaphore
4746

4847
internal class ApiV3PaymentAuthRepository(
4948
private val hostProvider: HostProvider,
5049
private val httpClient: Lazy<CheckoutOkHttpClient>,
5150
private val tokensStorage: TokensStorage,
5251
private val shopToken: String,
5352
private val tmxSessionIdStorage: TmxSessionIdStorage,
54-
private val profilingTool: ProfilingTool,
53+
private val profiler: TmxProfiler,
5554
private val selectAppropriateAuthType: (AuthType, Array<AuthTypeState>) -> AuthTypeState
56-
) : PaymentAuthTypeRepository, ProcessPaymentAuthRepository, ProfilingTool.SessionIdListener,
57-
SmsSessionRetryRepository {
55+
) : PaymentAuthTypeRepository, ProcessPaymentAuthRepository, SmsSessionRetryRepository {
5856

5957
private var processId: String? = null
6058
private var authContextId: String? = null
6159
private var authType: AuthType = AuthType.UNKNOWN
62-
private var tmxSessionId: String? = null
63-
private val tmxSessionIdSemaphore = Semaphore(0)
6460

6561
override fun getPaymentAuthToken(
6662
currentUser: CurrentUser,
@@ -164,15 +160,15 @@ internal class ApiV3PaymentAuthRepository(
164160
amount: Amount,
165161
multipleUsage: Boolean
166162
): Result<CheckoutTokenIssueInitResponse> {
167-
tmxSessionId = tmxSessionIdStorage.tmxSessionId
163+
var tmxSessionId = tmxSessionIdStorage.tmxSessionId
168164

169165
if (tmxSessionId.isNullOrEmpty()) {
170-
profilingTool.requestSessionId(this)
171-
tmxSessionIdSemaphore.acquire()
166+
tmxSessionId = when(val result = profiler.profile()) {
167+
is TmxProfiler.Result.Success -> result.sessionId
168+
is TmxProfiler.Result.Fail -> result.description
169+
}
172170
}
173171

174-
tmxSessionId ?: return Result.Fail(IllegalStateException())
175-
176172
val request = CheckoutTokenIssueInitRequest(
177173
instanceName = Build.MANUFACTURER + ", " + Build.MODEL,
178174
singleAmountMax = amount,
@@ -209,14 +205,4 @@ internal class ApiV3PaymentAuthRepository(
209205
val userAuthToken: String = tokensStorage.userAuthToken ?: return Result.Fail(IllegalStateException())
210206
return authSessionGenerate(userAuthToken)
211207
}
212-
213-
override fun onProfilingSessionId(sessionId: String) {
214-
tmxSessionId = sessionId
215-
tmxSessionIdSemaphore.release()
216-
}
217-
218-
override fun onProfilingError(status: String) {
219-
tmxSessionId = status
220-
tmxSessionIdSemaphore.release()
221-
}
222208
}

library/src/main/java/ru/yoomoney/sdk/kassa/payments/paymentAuth/di/PaymentAuthModule.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ import ru.yoomoney.sdk.kassa.payments.di.ViewModelKey
3131
import ru.yoomoney.sdk.kassa.payments.extensions.CheckoutOkHttpClient
3232
import ru.yoomoney.sdk.kassa.payments.http.HostProvider
3333
import ru.yoomoney.sdk.kassa.payments.metrics.ErrorReporter
34-
import ru.yoomoney.sdk.kassa.payments.tmx.ProfilingTool
3534
import ru.yoomoney.sdk.kassa.payments.tmx.TmxSessionIdStorage
3635
import ru.yoomoney.sdk.kassa.payments.secure.TokensStorage
3736
import ru.yoomoney.sdk.kassa.payments.metrics.Reporter
@@ -55,6 +54,7 @@ import ru.yoomoney.sdk.kassa.payments.paymentAuth.SmsSessionRetryRepository
5554
import ru.yoomoney.sdk.march.Out
5655
import ru.yoomoney.sdk.march.RuntimeViewModel
5756
import ru.yoomoney.sdk.march.input
57+
import ru.yoomoney.sdk.tmx.TmxProfiler
5858
import javax.inject.Singleton
5959

6060
@Module
@@ -67,15 +67,15 @@ internal class PaymentAuthModule {
6767
hostProvider: HostProvider,
6868
tokensStorage: TokensStorage,
6969
paymentParameters: PaymentParameters,
70-
profilingTool: ProfilingTool,
70+
profiler: TmxProfiler,
7171
tmxSessionIdStorage: TmxSessionIdStorage
7272
): ApiV3PaymentAuthRepository {
7373
return ApiV3PaymentAuthRepository(
7474
httpClient = lazy { httpClient },
7575
tokensStorage = tokensStorage,
7676
shopToken = paymentParameters.clientApplicationKey,
7777
tmxSessionIdStorage = tmxSessionIdStorage,
78-
profilingTool = profilingTool,
78+
profiler = profiler,
7979
selectAppropriateAuthType = SelectAppropriateAuthType(),
8080
hostProvider = hostProvider
8181
)

library/src/main/java/ru/yoomoney/sdk/kassa/payments/tmx/ProfilingTool.kt

-64
This file was deleted.

0 commit comments

Comments
 (0)