diff --git a/app/build.gradle.kts b/app/build.gradle.kts index e666baaa4d..37e399bc70 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -111,6 +111,7 @@ dependencies { implementation(projects.domain.networks) implementation(projects.domain.quotes) implementation(projects.domain.notifications) + implementation(projects.domain.notifications.toggles) implementation(projects.common) implementation(projects.common.routing) diff --git a/app/src/main/java/com/tangem/tap/di/domain/NotificationsDomainModule.kt b/app/src/main/java/com/tangem/tap/di/domain/NotificationsDomainModule.kt index c6f217e01c..706ef792e1 100644 --- a/app/src/main/java/com/tangem/tap/di/domain/NotificationsDomainModule.kt +++ b/app/src/main/java/com/tangem/tap/di/domain/NotificationsDomainModule.kt @@ -1,10 +1,13 @@ package com.tangem.tap.di.domain +import com.tangem.core.configtoggle.feature.FeatureTogglesManager import com.tangem.domain.notifications.GetApplicationIdUseCase import com.tangem.domain.notifications.GetTronFeeNotificationShowCountUseCase import com.tangem.domain.notifications.IncrementNotificationsShowCountUseCase import com.tangem.domain.notifications.SendPushTokenUseCase import com.tangem.domain.notifications.repository.NotificationsRepository +import com.tangem.domain.notifications.toggles.NotificationsFeatureToggles +import com.tangem.tap.domain.notifications.DefaultNotificationsFeatureToggles import com.tangem.utils.notifications.PushNotificationsTokenProvider import dagger.Module import dagger.Provides @@ -57,4 +60,10 @@ internal object NotificationsDomainModule { notificationsRepository = notificationsRepository, ) } + + @Provides + @Singleton + fun provideNotificationsFeatureToggles(featureTogglesManager: FeatureTogglesManager): NotificationsFeatureToggles { + return DefaultNotificationsFeatureToggles(featureTogglesManager = featureTogglesManager) + } } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/domain/notifications/DefaultNotificationsFeatureToggles.kt b/app/src/main/java/com/tangem/tap/domain/notifications/DefaultNotificationsFeatureToggles.kt new file mode 100644 index 0000000000..5a58923bb9 --- /dev/null +++ b/app/src/main/java/com/tangem/tap/domain/notifications/DefaultNotificationsFeatureToggles.kt @@ -0,0 +1,11 @@ +package com.tangem.tap.domain.notifications + +import com.tangem.core.configtoggle.feature.FeatureTogglesManager +import com.tangem.domain.notifications.toggles.NotificationsFeatureToggles + +internal class DefaultNotificationsFeatureToggles( + private val featureTogglesManager: FeatureTogglesManager, +) : NotificationsFeatureToggles { + override val isNotificationsEnabled: Boolean + get() = featureTogglesManager.isFeatureEnabled("PUSH_NOTIFICATIONS_ENABLED") +} \ No newline at end of file diff --git a/core/config-toggles/src/main/assets/configs/feature_toggles_config.json b/core/config-toggles/src/main/assets/configs/feature_toggles_config.json index 6a3b525e20..4d74917c2a 100644 --- a/core/config-toggles/src/main/assets/configs/feature_toggles_config.json +++ b/core/config-toggles/src/main/assets/configs/feature_toggles_config.json @@ -58,5 +58,9 @@ { "name": "STAKING_LOADING_REFACTORING_ENABLED", "version": "5.25.0" + }, + { + "name": "PUSH_NOTIFICATIONS_ENABLED", + "version": "undefined" } ] diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/models/UserTokensResponse.kt b/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/models/UserTokensResponse.kt index 80e222a51b..ca02c9f581 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/models/UserTokensResponse.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/models/UserTokensResponse.kt @@ -9,6 +9,7 @@ data class UserTokensResponse( @Json(name = "version") val version: Int = 0, @Json(name = "group") val group: GroupType, @Json(name = "sort") val sort: SortType, + @Json(name = "notifyStatus") val notifyStatus: Boolean? = null, @Json(name = "tokens") val tokens: List = emptyList(), ) { @@ -21,6 +22,7 @@ data class UserTokensResponse( @Json(name = "symbol") val symbol: String, @Json(name = "decimals") val decimals: Int, @Json(name = "contractAddress") val contractAddress: String?, + @Json(name = "addresses") val list: List? = null, ) { override fun equals(other: Any?): Boolean { val otherToken = other as? Token ?: return false diff --git a/domain/notifications/build.gradle.kts b/domain/notifications/build.gradle.kts index a81496ca84..1b34deba2f 100644 --- a/domain/notifications/build.gradle.kts +++ b/domain/notifications/build.gradle.kts @@ -16,7 +16,6 @@ dependencies { implementation(projects.domain.wallets.models) implementation(projects.domain.tokens.models) implementation(projects.domain.notifications.models) - implementation(projects.domain.wallets) implementation(projects.libs.crypto) // region DI diff --git a/domain/notifications/toggles/.gitignore b/domain/notifications/toggles/.gitignore new file mode 100644 index 0000000000..42afabfd2a --- /dev/null +++ b/domain/notifications/toggles/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/domain/notifications/toggles/build.gradle.kts b/domain/notifications/toggles/build.gradle.kts new file mode 100644 index 0000000000..7ff7fb7522 --- /dev/null +++ b/domain/notifications/toggles/build.gradle.kts @@ -0,0 +1,4 @@ +plugins { + alias(deps.plugins.kotlin.jvm) + id("configuration") +} \ No newline at end of file diff --git a/domain/notifications/toggles/src/main/java/com/tangem/domain/notifications/toggles/NotificationsFeatureToggles.kt b/domain/notifications/toggles/src/main/java/com/tangem/domain/notifications/toggles/NotificationsFeatureToggles.kt new file mode 100644 index 0000000000..22bbec7d10 --- /dev/null +++ b/domain/notifications/toggles/src/main/java/com/tangem/domain/notifications/toggles/NotificationsFeatureToggles.kt @@ -0,0 +1,5 @@ +package com.tangem.domain.notifications.toggles + +interface NotificationsFeatureToggles { + val isNotificationsEnabled: Boolean +} \ No newline at end of file diff --git a/settings.gradle.kts b/settings.gradle.kts index 385d8b2dc8..80cd025090 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -292,6 +292,7 @@ include(":domain:blockaid") include(":domain:blockaid:models") include(":domain:notifications") include(":domain:notifications:models") +include(":domain:notifications:toggles") // endregion Domain modules // region Data modules