From 3681f5c92d84aae67850d224d5e497822b53a15e Mon Sep 17 00:00:00 2001 From: Rinat Nurmukhametov Date: Thu, 17 Mar 2022 12:02:27 +0300 Subject: [PATCH] change documentation + gradle deps --- client-services/build.gradle | 6 ++-- .../touchin/client_services/ServicesUtils.kt | 4 +++ recaptcha/README.md | 30 +++++++++++++++++-- .../ru/touchin/recaptcha/CaptchaManager.kt | 9 ++++-- .../touchin/recaptcha/HuaweiCaptchaClient.kt | 1 + 5 files changed, 42 insertions(+), 8 deletions(-) diff --git a/client-services/build.gradle b/client-services/build.gradle index c55e87e..6799856 100644 --- a/client-services/build.gradle +++ b/client-services/build.gradle @@ -5,7 +5,7 @@ dependencies { implementation "androidx.core:core" implementation "androidx.annotation:annotation" implementation "com.google.android.gms:play-services-base" - implementation "com.huawei.hms:safetydetect" + implementation "com.huawei.hms:base" constraints { implementation("androidx.core:core") { @@ -26,9 +26,9 @@ dependencies { } } - implementation("com.huawei.hms:safetydetect") { + implementation("com.huawei.hms:base") { version { - require '4.0.3.300' + require '6.3.0.303' } } } diff --git a/client-services/src/main/java/ru/touchin/client_services/ServicesUtils.kt b/client-services/src/main/java/ru/touchin/client_services/ServicesUtils.kt index a4566d9..121b736 100644 --- a/client-services/src/main/java/ru/touchin/client_services/ServicesUtils.kt +++ b/client-services/src/main/java/ru/touchin/client_services/ServicesUtils.kt @@ -5,6 +5,10 @@ import com.google.android.gms.common.ConnectionResult import com.google.android.gms.common.GoogleApiAvailability import com.huawei.hms.api.HuaweiApiAvailability +/** + * A class with utils for interacting with Google, Huawei, etc. services + */ + class ServicesUtils { fun getCurrentService(context: Context): MobileService = when { diff --git a/recaptcha/README.md b/recaptcha/README.md index a9b84b7..a437d99 100644 --- a/recaptcha/README.md +++ b/recaptcha/README.md @@ -1,6 +1,32 @@ recaptcha ===== -Модуль содержит класс `RecaptchaController` - служит для проверки используемого сервиса (Huawei или Google) и показа диалога с каптчёй +### Общее описание -Для использования модуля нужно добавить json файл с сервисами в корневую папку проекта +Модуль содержит класс `CaptchaManager` - служит для проверки используемого сервиса (Huawei или Google) и показа диалога с каптчёй +В конструктуре `CaptchaManager` принимает два callback`а: +`onNewTokenReceived` - успешная проверка, возвращает токен +`processThrowable` - ошибка, возвращает `Throwable` + +### Требования + +Для использования модуля нужно добавить json файл с сервисами в корневую папку проекта: +Для Google - google-services.json +Для Huawei - agconnect-services.json + +### Пример + +Во `Fragment` + +```kotlin +val manager = CaptchaManager(onNewTokenReceived = { token -> + viewModel.sendRequest(token) + }, processThrowable = { error -> + showError(error) + }) + +manager.showRecaptchaAlert( + activity = activity, + captchaKey = "6Lc2heYeAAAAAHqe3mp0ylUnvXSY4lYfbRCwsVz_" +) +``` diff --git a/recaptcha/src/main/java/ru/touchin/recaptcha/CaptchaManager.kt b/recaptcha/src/main/java/ru/touchin/recaptcha/CaptchaManager.kt index 2fd00ee..2e5145b 100644 --- a/recaptcha/src/main/java/ru/touchin/recaptcha/CaptchaManager.kt +++ b/recaptcha/src/main/java/ru/touchin/recaptcha/CaptchaManager.kt @@ -5,12 +5,15 @@ import ru.touchin.client_services.MobileService import ru.touchin.client_services.ServicesUtils /** - * onNewTokenReceived - callback на успешную проверку каптчи - * processThrowable - callback на ошибку проверки каптчи + * A class for displaying a dialog with a captcha + * with a check on the current service of the application + * + * @param onNewTokenReceived - callback for a successful captcha check, return token + * @param processThrowable - callback for a captcha check error, return throwable */ class CaptchaManager( - onNewTokenReceived: (String) -> Unit, + private val onNewTokenReceived: (String) -> Unit, private val processThrowable: (Throwable) -> Unit ) { diff --git a/recaptcha/src/main/java/ru/touchin/recaptcha/HuaweiCaptchaClient.kt b/recaptcha/src/main/java/ru/touchin/recaptcha/HuaweiCaptchaClient.kt index 6e860ca..2dd8c20 100644 --- a/recaptcha/src/main/java/ru/touchin/recaptcha/HuaweiCaptchaClient.kt +++ b/recaptcha/src/main/java/ru/touchin/recaptcha/HuaweiCaptchaClient.kt @@ -10,6 +10,7 @@ class HuaweiCaptchaClient( override fun showCaptcha(activity: Activity, captchaKey: String) { val huaweiSafetyDetectClient = SafetyDetect.getClient(activity) + huaweiSafetyDetectClient.initUserDetect() .addOnSuccessListener { huaweiSafetyDetectClient.userDetection(captchaKey)