diff --git a/core/featuretoggles/src/main/assets/configs/feature_toggles_config.json b/core/featuretoggles/src/main/assets/configs/feature_toggles_config.json index 3c29124728..5191b7778d 100644 --- a/core/featuretoggles/src/main/assets/configs/feature_toggles_config.json +++ b/core/featuretoggles/src/main/assets/configs/feature_toggles_config.json @@ -30,5 +30,9 @@ { "name": "MAIN_ACTION_BUTTONS_ENABLED", "version": "undefined" + }, + { + "name": "ONBOARDING_CODE_REFACTORING_ENABLED", + "version": "undefined" } ] diff --git a/features/onboarding-legacy/.gitignore b/features/onboarding-legacy/.gitignore new file mode 100644 index 0000000000..42afabfd2a --- /dev/null +++ b/features/onboarding-legacy/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/features/onboarding-legacy/build.gradle.kts b/features/onboarding-legacy/build.gradle.kts new file mode 100644 index 0000000000..d82dd86a7d --- /dev/null +++ b/features/onboarding-legacy/build.gradle.kts @@ -0,0 +1,64 @@ +plugins { + alias(deps.plugins.android.library) + alias(deps.plugins.kotlin.android) + alias(deps.plugins.kotlin.kapt) + alias(deps.plugins.kotlin.serialization) + alias(deps.plugins.hilt.android) + id("configuration") +} + +android { + namespace = "com.tangem.feature.onboarding.legacy" +} + +dependencies { + /** Core modules */ + implementation(project(":common")) + implementation(project(":domain:models")) + implementation(project(":core:featuretoggles")) + implementation(project(":core:datasource")) + implementation(project(":core:analytics")) + implementation(projects.core.analytics.models) + implementation(project(":core:utils")) + implementation(project(":core:ui")) + implementation(project(":core:res")) + implementation(project(":data:common")) + + /** Tangem libraries */ + implementation(deps.tangem.card.core) + implementation(deps.tangem.card.android) { + exclude(module = "joda-time") + } + + /** AndroidX libraries */ + implementation(deps.androidx.core.ktx) + implementation(deps.androidx.appCompat) + implementation(deps.androidx.fragment.ktx) + implementation(deps.androidx.constraintLayout) + implementation(deps.androidx.activity.compose) + implementation(deps.lifecycle.runtime.ktx) + implementation(deps.lifecycle.common.java8) + implementation(deps.lifecycle.viewModel.ktx) + + /** Compose libraries */ + implementation(deps.compose.material) + implementation(deps.compose.material3) + implementation(deps.compose.animation) + implementation(deps.compose.foundation) + implementation(deps.compose.ui) + implementation(deps.compose.ui.tooling) + implementation(deps.compose.coil) + implementation(deps.compose.shimmer) + + implementation(deps.tangem.card.core) + + /** Other libraries */ + implementation(deps.compose.shimmer) + implementation(deps.kotlin.immutable.collections) + implementation(deps.kotlin.serialization) + implementation(deps.timber) + + /** DI */ + implementation(deps.hilt.android) + kapt(deps.hilt.kapt) +} \ No newline at end of file diff --git a/features/onboarding-legacy/src/main/kotlin/com/tangem/feature/onboarding/legacy/di/FeatureModule.kt b/features/onboarding-legacy/src/main/kotlin/com/tangem/feature/onboarding/legacy/di/FeatureModule.kt new file mode 100644 index 0000000000..58798b2583 --- /dev/null +++ b/features/onboarding-legacy/src/main/kotlin/com/tangem/feature/onboarding/legacy/di/FeatureModule.kt @@ -0,0 +1,18 @@ +package com.tangem.feature.onboarding.legacy.di + +import com.tangem.feature.onboarding.legacy.featuretoggle.DefaultOnboardingLegacyFeatureToggles +import com.tangem.feature.onboarding.legacy.featuretoggle.OnboardingLegacyFeatureToggles +import dagger.Binds +import dagger.Module +import dagger.hilt.InstallIn +import dagger.hilt.components.SingletonComponent +import javax.inject.Singleton + +@Module +@InstallIn(SingletonComponent::class) +internal interface FeatureModule { + + @Singleton + @Binds + fun provideFeatureToggles(featureToggles: DefaultOnboardingLegacyFeatureToggles): OnboardingLegacyFeatureToggles +} \ No newline at end of file diff --git a/features/onboarding-legacy/src/main/kotlin/com/tangem/feature/onboarding/legacy/featuretoggle/DefaultOnboardingLegacyFeatureToggles.kt b/features/onboarding-legacy/src/main/kotlin/com/tangem/feature/onboarding/legacy/featuretoggle/DefaultOnboardingLegacyFeatureToggles.kt new file mode 100644 index 0000000000..d46fdf1c92 --- /dev/null +++ b/features/onboarding-legacy/src/main/kotlin/com/tangem/feature/onboarding/legacy/featuretoggle/DefaultOnboardingLegacyFeatureToggles.kt @@ -0,0 +1,11 @@ +package com.tangem.feature.onboarding.legacy.featuretoggle + +import com.tangem.core.featuretoggle.manager.FeatureTogglesManager +import javax.inject.Inject + +internal class DefaultOnboardingLegacyFeatureToggles @Inject constructor( + private val featureTogglesManager: FeatureTogglesManager, +) : OnboardingLegacyFeatureToggles { + override val isRewrittenOnboardingCodeInUse: Boolean + get() = featureTogglesManager.isFeatureEnabled("ONBOARDING_CODE_REFACTORING_ENABLED") +} \ No newline at end of file diff --git a/features/onboarding-legacy/src/main/kotlin/com/tangem/feature/onboarding/legacy/featuretoggle/OnboardingLegacyFeatureToggles.kt b/features/onboarding-legacy/src/main/kotlin/com/tangem/feature/onboarding/legacy/featuretoggle/OnboardingLegacyFeatureToggles.kt new file mode 100644 index 0000000000..aa692ec61e --- /dev/null +++ b/features/onboarding-legacy/src/main/kotlin/com/tangem/feature/onboarding/legacy/featuretoggle/OnboardingLegacyFeatureToggles.kt @@ -0,0 +1,5 @@ +package com.tangem.feature.onboarding.legacy.featuretoggle + +interface OnboardingLegacyFeatureToggles { + val isRewrittenOnboardingCodeInUse: Boolean +} \ No newline at end of file diff --git a/settings.gradle.kts b/settings.gradle.kts index f3b70b2d8b..2876b342f6 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -151,6 +151,7 @@ include(":libs:visa") // region Feature modules include(":features:onboarding") +include(":features:onboarding-legacy") include(":features:referral:data") include(":features:referral:domain")