diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 7817290795..e72316ffd3 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -156,8 +156,6 @@ dependencies {
implementation(deps.appsflyer)
implementation(deps.amplitude)
implementation(deps.kotsonGson)
- implementation(deps.zendesk.chat)
- implementation(deps.zendesk.messaging)
implementation(deps.spongecastle.core)
implementation(deps.lottie)
implementation(deps.shopify.buy) {
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c1b1d65718..3eb4bc059b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -141,10 +141,6 @@
android:name="com.tangem.tap.common.qrCodeScan.ScanQrCodeActivity"
android:theme="@style/AppTheme" />
-
-
diff --git a/app/src/main/java/com/tangem/tap/TapApplication.kt b/app/src/main/java/com/tangem/tap/TapApplication.kt
index 2f6e54f690..1f50712ace 100644
--- a/app/src/main/java/com/tangem/tap/TapApplication.kt
+++ b/app/src/main/java/com/tangem/tap/TapApplication.kt
@@ -338,7 +338,7 @@ internal class TapApplication : Application(), ImageLoaderFactory {
private fun initWithConfigDependency(config: Config) {
shopService = TangemShopService(this, config.shopify!!)
initAnalytics(this, config)
- initFeedbackManager(this, preferencesStorage, foregroundActivityObserver, store)
+ initFeedbackManager(this, foregroundActivityObserver, store)
}
private fun initAnalytics(application: Application, config: Config) {
@@ -360,7 +360,6 @@ internal class TapApplication : Application(), ImageLoaderFactory {
private fun initFeedbackManager(
context: Context,
- preferencesStorage: PreferencesDataSource,
foregroundActivityObserver: ForegroundActivityObserver,
store: Store,
) {
@@ -399,7 +398,7 @@ internal class TapApplication : Application(), ImageLoaderFactory {
val feedbackManager = FeedbackManager(
infoHolder = additionalFeedbackInfo,
logCollector = tangemLogCollector,
- chatManager = ChatManager(preferencesStorage, foregroundActivityObserver),
+ chatManager = ChatManager(foregroundActivityObserver),
)
store.dispatch(GlobalAction.SetFeedbackManager(feedbackManager))
}
diff --git a/app/src/main/java/com/tangem/tap/common/chat/ChatManager.kt b/app/src/main/java/com/tangem/tap/common/chat/ChatManager.kt
index 693113b27a..5bbe3fc679 100644
--- a/app/src/main/java/com/tangem/tap/common/chat/ChatManager.kt
+++ b/app/src/main/java/com/tangem/tap/common/chat/ChatManager.kt
@@ -1,39 +1,23 @@
package com.tangem.tap.common.chat
import android.content.Context
-import android.os.Build
-import com.tangem.data.source.preferences.PreferencesDataSource
import com.tangem.datasource.config.models.ChatConfig
import com.tangem.datasource.config.models.SprinklrConfig
-import com.tangem.datasource.config.models.ZendeskConfig
import com.tangem.tap.ForegroundActivityObserver
import com.tangem.tap.common.chat.opener.ChatOpener
import com.tangem.tap.common.chat.opener.implementation.SprinklrChatOpener
-import com.tangem.tap.common.chat.opener.implementation.ZendeskChatOpener
import java.io.File
-class ChatManager(
- private val preferencesStorage: PreferencesDataSource,
- private val foregroundActivityObserver: ForegroundActivityObserver,
-) {
+class ChatManager(private val foregroundActivityObserver: ForegroundActivityObserver) {
private val openers = mutableMapOf()
fun open(config: ChatConfig, createLogsFile: (Context) -> File?, createFeedbackFile: (Context) -> File?) {
val opener = openers.getOrPut(config) {
when (config) {
is SprinklrConfig -> SprinklrChatOpener(config, foregroundActivityObserver)
- is ZendeskConfig -> ZendeskChatOpener(getZendeskUserId(), config, foregroundActivityObserver)
}
}
opener.open(createFeedbackFile, createLogsFile)
}
-
- private fun getZendeskUserId(): String {
- if (preferencesStorage.zendeskFirstLaunchTime == null) {
- preferencesStorage.zendeskFirstLaunchTime = System.currentTimeMillis()
- }
-
- return "${preferencesStorage.zendeskFirstLaunchTime}${Build.MODEL}".hashCode().toString()
- }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/tangem/tap/common/chat/opener/implementation/ZendeskChatOpener.kt b/app/src/main/java/com/tangem/tap/common/chat/opener/implementation/ZendeskChatOpener.kt
deleted file mode 100644
index a65749ce62..0000000000
--- a/app/src/main/java/com/tangem/tap/common/chat/opener/implementation/ZendeskChatOpener.kt
+++ /dev/null
@@ -1,87 +0,0 @@
-package com.tangem.tap.common.chat.opener.implementation
-
-import android.content.Context
-import com.tangem.core.analytics.Analytics
-import com.tangem.datasource.config.models.ZendeskConfig
-import com.tangem.domain.common.LogConfig
-import com.tangem.tap.ForegroundActivityObserver
-import com.tangem.tap.common.chat.opener.ChatOpener
-import com.tangem.tap.withForegroundActivity
-import com.tangem.wallet.R
-import com.zendesk.logger.Logger
-import timber.log.Timber
-import zendesk.chat.*
-import zendesk.configurations.Configuration
-import zendesk.messaging.MessagingActivity
-import java.io.File
-
-internal class ZendeskChatOpener(
- private val userId: String,
- private val config: ZendeskConfig,
- private val foregroundActivityObserver: ForegroundActivityObserver,
-) : ChatOpener {
-
- private var isInitialized = false
- private var isFilesSent = false
-
- override fun open(createFeedbackFile: (Context) -> File?, createLogsFile: (Context) -> File?) {
- foregroundActivityObserver.withForegroundActivity { activity ->
- initZendeskIfNeeded(activity.applicationContext)
- setChatVisitorInfo()
- showMessagingActivity(activity)
- sendFeedbackFile(createFeedbackFile(activity))
- sendLogsFile(createLogsFile(activity))
- }
- }
-
- private fun initZendeskIfNeeded(context: Context) {
- if (isInitialized) return
- isInitialized = true
-
- Chat.INSTANCE.init(context, config.accountKey, config.appId)
- Logger.setLoggable(LogConfig.zendesk)
- }
-
- private fun setChatVisitorInfo() {
- val visitorInfo = VisitorInfo.builder().withName("User $userId").build()
-
- Chat.INSTANCE.chatProvidersConfiguration =
- ChatProvidersConfiguration.builder().withVisitorInfo(visitorInfo).build()
- }
-
- private fun sendFeedbackFile(feedbackFile: File?) {
- if (isInitialized && feedbackFile != null && !isFilesSent) {
- Chat.INSTANCE.providers()?.chatProvider()?.sendFile(feedbackFile) { _, bytesUploaded, _ ->
- Timber.d("Log file sent", "bytesUploaded: $bytesUploaded")
- }
- isFilesSent = true
- }
- }
-
- private fun sendLogsFile(logsFile: File?) {
- if (isInitialized && logsFile != null && !isFilesSent) {
- Chat.INSTANCE.providers()?.chatProvider()?.sendFile(logsFile) { _, bytesUploaded, _ ->
- Timber.d("Log file sent", "bytesUploaded: $bytesUploaded")
- }
- isFilesSent = true
- }
- }
-
- private fun showMessagingActivity(context: Context) {
- Analytics.send(com.tangem.tap.common.analytics.events.Chat.ScreenOpened())
- MessagingActivity.builder()
- .withMultilineResponseOptionsEnabled(false)
- .withBotLabelStringRes(R.string.chat_bot_name)
- .withBotAvatarDrawable(R.mipmap.ic_launcher)
- .withEngines(ChatEngine.engine())
- .show(context, buildChatConfig())
- }
-
- private fun buildChatConfig(): Configuration {
- return ChatConfiguration.builder()
- .withOfflineFormEnabled(true)
- .withAgentAvailabilityEnabled(true)
- .withPreChatFormEnabled(false)
- .build()
- }
-}
\ No newline at end of file
diff --git a/app/src/main/res/values-v29/zendesk_styles.xml b/app/src/main/res/values-v29/zendesk_styles.xml
deleted file mode 100644
index 764f632e87..0000000000
--- a/app/src/main/res/values-v29/zendesk_styles.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/app/src/main/res/values/zendesk_styles.xml b/app/src/main/res/values/zendesk_styles.xml
deleted file mode 100644
index 2513114d19..0000000000
--- a/app/src/main/res/values/zendesk_styles.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
diff --git a/core/datasource/src/main/java/com/tangem/datasource/config/ConfigManagerImpl.kt b/core/datasource/src/main/java/com/tangem/datasource/config/ConfigManagerImpl.kt
index 2a1e34d105..6bf2505649 100644
--- a/core/datasource/src/main/java/com/tangem/datasource/config/ConfigManagerImpl.kt
+++ b/core/datasource/src/main/java/com/tangem/datasource/config/ConfigManagerImpl.kt
@@ -102,7 +102,6 @@ internal class ConfigManagerImpl @Inject constructor() : ConfigManager {
appsFlyerDevKey = configValues.appsFlyer.appsFlyerDevKey,
amplitudeApiKey = configValues.amplitudeApiKey,
shopify = configValues.shopifyShop,
- zendesk = configValues.zendesk,
sprinklr = configValues.sprinklr,
swapReferrerAccount = configValues.swapReferrerAccount,
walletConnectProjectId = configValues.walletConnectProjectId,
diff --git a/core/datasource/src/main/java/com/tangem/datasource/config/models/ChatConfig.kt b/core/datasource/src/main/java/com/tangem/datasource/config/models/ChatConfig.kt
index 2ab45d66bc..067c8572f3 100644
--- a/core/datasource/src/main/java/com/tangem/datasource/config/models/ChatConfig.kt
+++ b/core/datasource/src/main/java/com/tangem/datasource/config/models/ChatConfig.kt
@@ -5,26 +5,9 @@ import com.squareup.moshi.JsonClass
sealed interface ChatConfig
-@JsonClass(generateAdapter = true)
-data class ZendeskConfig(
- @Json(name = "zendeskApiKey")
- val apiKey: String,
- @Json(name = "zendeskAppId")
- val appId: String,
- @Json(name = "zendeskClientId")
- val clientId: String,
- @Json(name = "zendeskAccountKey")
- val accountKey: String,
- @Json(name = "zendeskUrl")
- val url: String,
-) : ChatConfig
-
@JsonClass(generateAdapter = true)
data class SprinklrConfig(
- @Json(name = "appID")
- val appId: String,
- @Json(name = "apiKey")
- val apiKey: String,
- @Json(name = "environment")
- val environment: String,
+ @Json(name = "appID") val appId: String,
+ @Json(name = "apiKey") val apiKey: String,
+ @Json(name = "environment") val environment: String,
) : ChatConfig
\ No newline at end of file
diff --git a/core/datasource/src/main/java/com/tangem/datasource/config/models/Config.kt b/core/datasource/src/main/java/com/tangem/datasource/config/models/Config.kt
index f8fe099745..2980e22216 100644
--- a/core/datasource/src/main/java/com/tangem/datasource/config/models/Config.kt
+++ b/core/datasource/src/main/java/com/tangem/datasource/config/models/Config.kt
@@ -15,7 +15,6 @@ data class Config(
@Deprecated("Not relevant since version 3.23")
val isCreatingTwinCardsAllowed: Boolean = false,
val shopify: ShopifyShop? = null,
- val zendesk: ZendeskConfig? = null,
val sprinklr: SprinklrConfig? = null,
val swapReferrerAccount: SwapReferrerAccount? = null,
val walletConnectProjectId: String = "",
diff --git a/core/datasource/src/main/java/com/tangem/datasource/config/models/JsonModels.kt b/core/datasource/src/main/java/com/tangem/datasource/config/models/JsonModels.kt
index 93210485ef..77d2c0808f 100644
--- a/core/datasource/src/main/java/com/tangem/datasource/config/models/JsonModels.kt
+++ b/core/datasource/src/main/java/com/tangem/datasource/config/models/JsonModels.kt
@@ -31,7 +31,6 @@ class ConfigValueModel(
val infuraProjectId: String?,
val appsFlyer: AppsFlyer,
val shopifyShop: ShopifyShop?,
- val zendesk: ZendeskConfig?,
val sprinklr: SprinklrConfig?,
val tronGridApiKey: String,
val amplitudeApiKey: String,
diff --git a/data/source/preferences/src/main/kotlin/com/tangem/data/source/preferences/PreferencesDataSource.kt b/data/source/preferences/src/main/kotlin/com/tangem/data/source/preferences/PreferencesDataSource.kt
index 218863ac9a..5da77acb5b 100644
--- a/data/source/preferences/src/main/kotlin/com/tangem/data/source/preferences/PreferencesDataSource.kt
+++ b/data/source/preferences/src/main/kotlin/com/tangem/data/source/preferences/PreferencesDataSource.kt
@@ -42,10 +42,6 @@ class PreferencesDataSource @Inject internal constructor(applicationContext: Con
toppedUpWalletStorage = ToppedUpWalletStorage(preferences, moshiConverter)
}
- var zendeskFirstLaunchTime: Long?
- get() = preferences.getLong(ZENDESK_FIRST_LAUNCH_KEY, 0).takeIf { it != 0L }
- set(value) = preferences.edit { putLong(ZENDESK_FIRST_LAUNCH_KEY, value ?: 0) }
-
var sprinklrFirstLaunchTime: Long?
get() = preferences.getLong(SPRINKLR_FIRST_LAUNCH_KEY, 0).takeIf { it != 0L }
set(value) = preferences.edit { putLong(SPRINKLR_FIRST_LAUNCH_KEY, value ?: 0) }
@@ -93,7 +89,6 @@ class PreferencesDataSource @Inject internal constructor(applicationContext: Con
private const val PREFERENCES_NAME = "tapPrefs"
private const val TWINS_ONBOARDING_SHOWN_KEY = "twinsOnboardingShown"
private const val APP_LAUNCH_COUNT_KEY = "launchCount"
- private const val ZENDESK_FIRST_LAUNCH_KEY = "chatFirstLaunchKey"
private const val SPRINKLR_FIRST_LAUNCH_KEY = "sprinklrFirstLaunch"
private const val SAVE_WALLET_DIALOG_SHOWN_KEY = "saveUserWalletShown"
private const val SAVE_ACCESS_CODES_KEY = "saveAccessCodes"
diff --git a/domain/legacy/src/main/java/com/tangem/domain/common/LogConfig.kt b/domain/legacy/src/main/java/com/tangem/domain/common/LogConfig.kt
index 6ad07afbf2..2e115068d1 100644
--- a/domain/legacy/src/main/java/com/tangem/domain/common/LogConfig.kt
+++ b/domain/legacy/src/main/java/com/tangem/domain/common/LogConfig.kt
@@ -5,7 +5,6 @@ import com.tangem.domain.features.BuildConfig
object LogConfig {
const val imageLoader: Boolean = false
val storeAction: Boolean = BuildConfig.DEBUG
- const val zendesk: Boolean = false
val network: NetworkLogConfig = NetworkLogConfig
val analyticsHandlers: AnalyticsHandlersLogConfig = AnalyticsHandlersLogConfig
}
diff --git a/gradle/dependencies.toml b/gradle/dependencies.toml
index 5955bdfd13..758d9fa77f 100644
--- a/gradle/dependencies.toml
+++ b/gradle/dependencies.toml
@@ -67,8 +67,6 @@ spongycastleCryptoCore = "1.58.0.0"
timber = "4.7.1"
viewBindingDelegate = "1.5.9"
xmlShimmer = "1.1.3"
-zendeskChat = "3.3.5"
-zendeskMessaging = "5.2.4"
zxingQrBarcodeScanner = "1.9.8"
zxingQrCode = "3.5.1"
mviCore = "1.3.1"
@@ -219,8 +217,6 @@ retrofit-moshi = { module = "com.squareup.retrofit2:converter-moshi", version.re
timber = { module = "com.jakewharton.timber:timber", version.ref = "timber" }
viewBindingDelegate = { module = "com.github.kirich1409:viewbindingpropertydelegate-noreflection", version.ref = "viewBindingDelegate" }
xmlShimmer = { module = "com.github.skydoves:androidveil", version.ref = "xmlShimmer" }
-zendesk-chat = { module = "com.zendesk:chat", version.ref = "zendeskChat" }
-zendesk-messaging = { module = "com.zendesk:messaging", version.ref = "zendeskMessaging" }
zxing-qrBarcodeScanner = { module = "me.dm7.barcodescanner:zxing", version.ref = "zxingQrBarcodeScanner" }
zxing-qrCore = { module = "com.google.zxing:core", version.ref = "zxingQrCode" }
mviCore-watcher = { module = "com.github.badoo.mvicore:mvicore-diff", version.ref = "mviCore" }
diff --git a/settings.gradle.kts b/settings.gradle.kts
index df1029f7b1..e2478e48b5 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -39,7 +39,6 @@ dependencyResolutionManagement {
}
}
maven("https://jitpack.io")
- maven("https://zendesk.jfrog.io/zendesk/repo")
maven("https://clients-nexus.sprinklr.com/")
}