Repository: wordpress-mobile/WordPress-Android (language: kotlin)

Issue:
Domain Dashboard Card: Remove related code
With the inclusion of Plans related card, Domain Dashboard Card is no longer needed:

- [ ] Remove dashboard card UI code
- [ ] Remove the feature flag
- [ ] Remove presentation criteria


Discussion hints:
Hey @staskus 

reminder: please make sure to remove the remote flags/local flags related to this as well. 

Pull request: Domain dashboard card: Remove feature flag
Fixes #18725 

Removing domain dashboard card, and clean up all related as it is superseded by Plans project.

To test:

- Launch JP app
- `Go` to Me -> Debug settings
- `Verify` no dashboard_card_domain feature flag is present
- `Go` to Home
- `Verify` **Home**, **Menu** options on dashboard all work as before


## Regression Notes
1. Potential unintended areas of impact
N/A

2. What I did to test those areas of impact (or what existing automated tests I relied on)
N/A

3. What automated tests I added (or what prevented me from doing so)
Existing unit tests

PR submission checklist:

- [x] I have completed the Regression Notes.
- [x] I have considered adding accessibility improvements for my changes.
- [x] I have considered if this change warrants user-facing release notes and have added them to `RELEASE-NOTES.txt` if necessary.


Test command: ./gradlew :WordPress:testWordpressVanillaDebugUnitTest --tests "org.wordpress.android.e2e.DashboardTests" --tests "org.wordpress.android.ui.mysite.cards.dashboard.CardsBuilderTest" --tests "org.wordpress.android.ui.mysite.cards.dashboard.domain.DashboardDomainCardBuilderTest" --tests "org.wordpress.android.ui.mysite.MySiteViewModelTest" --tests "org.wordpress.android.ui.mysite.MySiteSourceManagerTest" --tests "org.wordpress.android.ui.mysite.cards.dashboard.domain.DashboardCardDomainSourceTest" --tests "org.wordpress.android.ui.mysite.cards.CardsBuilderTest"

Fix patch:
diff --git a/WordPress/build.gradle b/WordPress/build.gradle
index c846fb90b3df..ed92e54a0051 100644
--- a/WordPress/build.gradle
+++ b/WordPress/build.gradle
@@ -146,7 +146,6 @@ android {
         buildConfigField "boolean", "JETPACK_INSTALL_FULL_PLUGIN", "false"
         buildConfigField "boolean", "ENABLE_BLAZE_FEATURE", "false"
         buildConfigField "boolean", "WP_INDIVIDUAL_PLUGIN_OVERLAY", "false"
-        buildConfigField "boolean", "DASHBOARD_CARD_DOMAIN", "false"
         buildConfigField "boolean", "DASHBOARD_CARD_FREE_TO_PAID_PLANS", "false"
         buildConfigField "boolean", "SITE_EDITOR_MVP", "false"
         buildConfigField "boolean", "JETPACK_SOCIAL", "false"
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/mysite/MySiteCardAndItem.kt b/WordPress/src/main/java/org/wordpress/android/ui/mysite/MySiteCardAndItem.kt
index 40076c8a1b2a..412a4fd78acd 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/mysite/MySiteCardAndItem.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/mysite/MySiteCardAndItem.kt
@@ -56,7 +56,6 @@ sealed class MySiteCardAndItem(open val type: Type, open val activeQuickStartIte
         PROMOTE_WITH_BLAZE_CARD,
         DASHBOARD_DOMAIN_TRANSFER_CARD,
         BLAZE_CAMPAIGNS_CARD,
-        DASHBOARD_DOMAIN_CARD,
         DASHBOARD_PLANS_CARD,
         PAGES_CARD_ERROR,
         PAGES_CARD,
@@ -370,14 +369,6 @@ sealed class MySiteCardAndItem(open val type: Type, open val activeQuickStartIte
                     }
                 }
 
-                data class DashboardDomainCard(
-                    val title: UiString?,
-                    val subtitle: UiString?,
-                    val onClick: ListItemInteraction,
-                    val onHideMenuItemClick: ListItemInteraction,
-                    val onMoreMenuClick: ListItemInteraction,
-                ) : DashboardCard(dashboardCardType = DashboardCardType.DASHBOARD_DOMAIN_CARD)
-
                 data class DashboardPlansCard(
                     val title: UiString?,
                     val subtitle: UiString?,
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/mysite/MySiteCardAndItemBuilderParams.kt b/WordPress/src/main/java/org/wordpress/android/ui/mysite/MySiteCardAndItemBuilderParams.kt
index 6992e13b2fb7..e236a9775b61 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/mysite/MySiteCardAndItemBuilderParams.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/mysite/MySiteCardAndItemBuilderParams.kt
@@ -66,7 +66,6 @@ sealed class MySiteCardAndItemBuilderParams {
         val bloggingPromptCardBuilderParams: BloggingPromptCardBuilderParams,
         val domainTransferCardBuilderParams: DomainTransferCardBuilderParams? = null,
         val blazeCardBuilderParams: BlazeCardBuilderParams? = null,
-        val dashboardCardDomainBuilderParams: DashboardCardDomainBuilderParams,
         val dashboardCardPlansBuilderParams: DashboardCardPlansBuilderParams,
         val pagesCardBuilderParams: PagesCardBuilderParams,
         val activityCardBuilderParams: ActivityCardBuilderParams
@@ -192,13 +191,6 @@ sealed class MySiteCardAndItemBuilderParams {
         val onMoreMenuClick: () -> Unit
     ) : MySiteCardAndItemBuilderParams()
 
-    data class DashboardCardDomainBuilderParams(
-        val isEligible: Boolean = false,
-        val onClick: () -> Unit,
-        val onHideMenuItemClick: () -> Unit,
-        val onMoreMenuClick: () -> Unit
-    ) : MySiteCardAndItemBuilderParams()
-
     data class DashboardCardPlansBuilderParams(
         val isEligible: Boolean = false,
         val onClick: () -> Unit,
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/mysite/MySiteSourceManager.kt b/WordPress/src/main/java/org/wordpress/android/ui/mysite/MySiteSourceManager.kt
index a369bc346ed1..d60d4f399d6c 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/mysite/MySiteSourceManager.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/mysite/MySiteSourceManager.kt
@@ -9,7 +9,6 @@ import org.wordpress.android.ui.mysite.MySiteUiState.PartialState
 import org.wordpress.android.ui.mysite.cards.blaze.BlazeCardSource
 import org.wordpress.android.ui.mysite.cards.dashboard.CardsSource
 import org.wordpress.android.ui.mysite.cards.dashboard.bloggingprompts.BloggingPromptCardSource
-import org.wordpress.android.ui.mysite.cards.dashboard.domain.DashboardCardDomainSource
 import org.wordpress.android.ui.mysite.cards.domainregistration.DomainRegistrationSource
 import org.wordpress.android.ui.mysite.cards.quickstart.QuickStartCardSource
 import javax.inject.Inject
@@ -25,7 +24,6 @@ class MySiteSourceManager @Inject constructor(
     private val bloggingPromptCardSource: BloggingPromptCardSource,
     blazeCardSource: BlazeCardSource,
     private val selectedSiteRepository: SelectedSiteRepository,
-    dashboardCardDomainSource: DashboardCardDomainSource,
     private val jetpackFeatureRemovalPhaseHelper: JetpackFeatureRemovalPhaseHelper
 ) {
     private val mySiteSources: List<MySiteSource<*>> = listOf(
@@ -38,7 +36,6 @@ class MySiteSourceManager @Inject constructor(
         cardsSource,
         bloggingPromptCardSource,
         blazeCardSource,
-        dashboardCardDomainSource,
     )
 
     private val showDashboardCards: Boolean
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/mysite/MySiteUiState.kt b/WordPress/src/main/java/org/wordpress/android/ui/mysite/MySiteUiState.kt
index c36dbfb6a552..914e9b5bc875 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/mysite/MySiteUiState.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/mysite/MySiteUiState.kt
@@ -27,15 +27,12 @@ data class MySiteUiState(
     val cardsUpdate: CardsUpdate? = null,
     val bloggingPromptsUpdate: BloggingPromptUpdate? = null,
     val blazeCardUpdate: PartialState.BlazeCardUpdate? = null,
-    val hasSiteCustomDomains: Boolean? = null
 ) {
     sealed class PartialState {
         data class CurrentAvatarUrl(val url: String) : PartialState()
         data class SelectedSite(val site: SiteModel?) : PartialState()
         data class ShowSiteIconProgressBar(val showSiteIconProgressBar: Boolean) : PartialState()
         data class DomainCreditAvailable(val isDomainCreditAvailable: Boolean) : PartialState()
-        data class CustomDomainsAvailable(val hasSiteCustomDomains: Boolean?) : PartialState()
-
         data class JetpackCapabilities(val scanAvailable: Boolean, val backupAvailable: Boolean) : PartialState()
         data class QuickStartUpdate(
             val activeTask: QuickStartTask? = null,
@@ -67,9 +64,6 @@ data class MySiteUiState(
             is SelectedSite -> uiState.copy(site = partialState.site)
             is ShowSiteIconProgressBar -> uiState.copy(showSiteIconProgressBar = partialState.showSiteIconProgressBar)
             is DomainCreditAvailable -> uiState.copy(isDomainCreditAvailable = partialState.isDomainCreditAvailable)
-            is PartialState.CustomDomainsAvailable -> uiState.copy(
-                hasSiteCustomDomains = partialState.hasSiteCustomDomains
-            )
             is JetpackCapabilities -> uiState.copy(
                 scanAvailable = partialState.scanAvailable,
                 backupAvailable = partialState.backupAvailable
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/mysite/MySiteViewModel.kt b/WordPress/src/main/java/org/wordpress/android/ui/mysite/MySiteViewModel.kt
index 1e4bf2396500..97eb3f8cc02f 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/mysite/MySiteViewModel.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/mysite/MySiteViewModel.kt
@@ -59,7 +59,6 @@ import org.wordpress.android.ui.mysite.MySiteCardAndItem.JetpackBadge
 import org.wordpress.android.ui.mysite.MySiteCardAndItem.SiteInfoHeaderCard
 import org.wordpress.android.ui.mysite.MySiteCardAndItem.Type
 import org.wordpress.android.ui.mysite.MySiteCardAndItemBuilderParams.BloggingPromptCardBuilderParams
-import org.wordpress.android.ui.mysite.MySiteCardAndItemBuilderParams.DashboardCardDomainBuilderParams
 import org.wordpress.android.ui.mysite.MySiteCardAndItemBuilderParams.DashboardCardPlansBuilderParams
 import org.wordpress.android.ui.mysite.MySiteCardAndItemBuilderParams.DashboardCardsBuilderParams
 import org.wordpress.android.ui.mysite.MySiteCardAndItemBuilderParams.DomainRegistrationCardBuilderParams
@@ -83,7 +82,6 @@ import org.wordpress.android.ui.mysite.cards.DomainRegistrationCardShownTracker
 import org.wordpress.android.ui.mysite.cards.dashboard.CardsTracker
 import org.wordpress.android.ui.mysite.cards.dashboard.activity.ActivityLogCardViewModelSlice
 import org.wordpress.android.ui.mysite.cards.dashboard.bloggingprompts.BloggingPromptsCardAnalyticsTracker
-import org.wordpress.android.ui.mysite.cards.dashboard.domain.DashboardCardDomainUtils
 import org.wordpress.android.ui.mysite.cards.dashboard.domaintransfer.DomainTransferCardViewModel
 import org.wordpress.android.ui.mysite.cards.dashboard.pages.PagesCardViewModelSlice
 import org.wordpress.android.ui.mysite.cards.dashboard.plans.PlansCardUtils
@@ -197,7 +195,6 @@ class MySiteViewModel @Inject constructor(
     private val bloggingPromptsCardTrackHelper: BloggingPromptsCardTrackHelper,
     private val getShowJetpackFullPluginInstallOnboardingUseCase: GetShowJetpackFullPluginInstallOnboardingUseCase,
     private val jetpackInstallFullPluginShownTracker: JetpackInstallFullPluginShownTracker,
-    private val dashboardCardDomainUtils: DashboardCardDomainUtils,
     private val dashboardCardPlansUtils: PlansCardUtils,
     private val jetpackFeatureRemovalPhaseHelper: JetpackFeatureRemovalPhaseHelper,
     private val wpJetpackIndividualPluginHelper: WPJetpackIndividualPluginHelper,
@@ -354,8 +351,7 @@ class MySiteViewModel @Inject constructor(
                     scanAvailable,
                     cardsUpdate,
                     bloggingPromptsUpdate,
-                    blazeCardUpdate,
-                    hasSiteCustomDomains
+                    blazeCardUpdate
                 )
                 selectDefaultTabIfNeeded()
                 trackCardsAndItemsShownIfNeeded(state)
@@ -372,8 +368,6 @@ class MySiteViewModel @Inject constructor(
 
             bloggingPromptsCardTrackHelper.onSiteChanged(site?.id)
 
-            dashboardCardDomainUtils.onSiteChanged(site?.id, state as? SiteSelected)
-
             dashboardCardPlansUtils.onSiteChanged(site?.id, state as? SiteSelected)
 
             domainTransferCardViewModel.onSiteChanged(site?.id, state as? SiteSelected)
@@ -405,8 +399,7 @@ class MySiteViewModel @Inject constructor(
         scanAvailable: Boolean,
         cardsUpdate: CardsUpdate?,
         bloggingPromptUpdate: BloggingPromptUpdate?,
-        blazeCardUpdate: BlazeCardUpdate?,
-        hasSiteCustomDomains: Boolean?
+        blazeCardUpdate: BlazeCardUpdate?
     ): SiteSelected {
         val siteItems = buildSiteSelectedState(
             site,
@@ -417,8 +410,7 @@ class MySiteViewModel @Inject constructor(
             scanAvailable,
             cardsUpdate,
             bloggingPromptUpdate,
-            blazeCardUpdate,
-            hasSiteCustomDomains
+            blazeCardUpdate
         )
 
         val siteInfoCardBuilderParams = SiteInfoCardBuilderParams(
@@ -505,8 +497,7 @@ class MySiteViewModel @Inject constructor(
         scanAvailable: Boolean,
         cardsUpdate: CardsUpdate?,
         bloggingPromptUpdate: BloggingPromptUpdate?,
-        blazeCardUpdate: BlazeCardUpdate?,
-        hasSiteCustomDomains: Boolean?
+        blazeCardUpdate: BlazeCardUpdate?
     ): Map<MySiteTabType, List<MySiteCardAndItem>> {
         val infoItem = siteItemsBuilder.build(
             InfoItemBuilderParams(
@@ -594,14 +585,6 @@ class MySiteViewModel @Inject constructor(
                     uiModel.value?.state as? SiteSelected
                 ),
                 blazeCardBuilderParams = blazeCardViewModelSlice.getBlazeCardBuilderParams(blazeCardUpdate),
-                dashboardCardDomainBuilderParams = DashboardCardDomainBuilderParams(
-                    isEligible = dashboardCardDomainUtils.shouldShowCard(
-                        site, isDomainCreditAvailable, hasSiteCustomDomains
-                    ),
-                    onClick = this::onDashboardCardDomainClick,
-                    onHideMenuItemClick = this::onDashboardCardDomainHideMenuItemClick,
-                    onMoreMenuClick = this::onDashboardCardDomainMoreMenuClick
-                ),
                 dashboardCardPlansBuilderParams = DashboardCardPlansBuilderParams(
                     isEligible = dashboardCardPlansUtils.shouldShowCard(site),
                     onClick = this::onDashboardCardPlansClick,
@@ -1018,7 +1001,6 @@ class MySiteViewModel @Inject constructor(
         checkAndShowJetpackFullPluginInstallOnboarding()
         checkAndShowQuickStartNotice()
         bloggingPromptsCardTrackHelper.onResume(currentTab)
-        dashboardCardDomainUtils.onResume(currentTab, uiModel.value?.state as? SiteSelected)
         dashboardCardPlansUtils.onResume(currentTab, uiModel.value?.state as? SiteSelected)
     }
 
@@ -1426,24 +1408,6 @@ class MySiteViewModel @Inject constructor(
         _onOpenJetpackInstallFullPluginOnboarding.postValue(Event(Unit))
     }
 
-    private fun onDashboardCardDomainMoreMenuClick() {
-        dashboardCardDomainUtils.trackDashboardCardDomainMoreMenuTapped(uiModel.value?.state as? SiteSelected)
-    }
-
-    private fun onDashboardCardDomainClick() {
-        val selectedSite = requireNotNull(selectedSiteRepository.getSelectedSite())
-        dashboardCardDomainUtils.trackDashboardCardDomainTapped(uiModel.value?.state as? SiteSelected)
-        _onNavigation.value = Event(SiteNavigationAction.OpenPaidDomainSearch(selectedSite))
-    }
-
-    private fun onDashboardCardDomainHideMenuItemClick() {
-        dashboardCardDomainUtils.trackDashboardCardDomainHiddenByUser(uiModel.value?.state as? SiteSelected)
-        selectedSiteRepository.getSelectedSite()?.let {
-            dashboardCardDomainUtils.hideCard(it.siteId)
-        }
-        refresh()
-    }
-
     private fun onDashboardCardPlansClick() {
         val selectedSite = requireNotNull(selectedSiteRepository.getSelectedSite())
         dashboardCardPlansUtils.trackCardTapped(uiModel.value?.state as? SiteSelected)
@@ -1541,7 +1505,6 @@ class MySiteViewModel @Inject constructor(
             .forEach { jetpackFeatureCardShownTracker.trackShown(it.type) }
         siteSelected.cardAndItems.filterIsInstance<JetpackInstallFullPluginCard>()
             .forEach { jetpackInstallFullPluginShownTracker.trackShown(it.type, quickStartRepository.currentTab) }
-        dashboardCardDomainUtils.trackDashboardCardDomainShown(viewModelScope, siteSelected)
         dashboardCardPlansUtils.trackCardShown(viewModelScope, siteSelected)
     }
 
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/dashboard/CardsAdapter.kt b/WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/dashboard/CardsAdapter.kt
index b127d5b9b973..c61857046f58 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/dashboard/CardsAdapter.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/dashboard/CardsAdapter.kt
@@ -6,7 +6,6 @@ import androidx.recyclerview.widget.DiffUtil.Callback
 import androidx.recyclerview.widget.RecyclerView.Adapter
 import org.wordpress.android.ui.mysite.MySiteCardAndItem.Card.DashboardCards.DashboardCard
 import org.wordpress.android.ui.mysite.MySiteCardAndItem.Card.DashboardCards.DashboardCard.ActivityCard
-import org.wordpress.android.ui.mysite.MySiteCardAndItem.Card.DashboardCards.DashboardCard.DashboardDomainCard
 import org.wordpress.android.ui.mysite.MySiteCardAndItem.Card.DashboardCards.DashboardCard.DomainTransferCardModel
 import org.wordpress.android.ui.mysite.MySiteCardAndItem.Card.DashboardCards.DashboardCard.DashboardPlansCard
 import org.wordpress.android.ui.mysite.MySiteCardAndItem.Card.DashboardCards.DashboardCard.BlazeCard.PromoteWithBlazeCard
@@ -29,7 +28,6 @@ import org.wordpress.android.ui.mysite.cards.dashboard.error.ErrorWithinCardView
 import org.wordpress.android.ui.mysite.cards.dashboard.pages.PagesCardViewHolder
 import org.wordpress.android.ui.mysite.cards.dashboard.posts.PostCardViewHolder
 import org.wordpress.android.ui.mysite.cards.dashboard.todaysstats.TodaysStatsCardViewHolder
-import org.wordpress.android.ui.mysite.cards.dashboard.domain.DashboardDomainCardViewHolder
 import org.wordpress.android.ui.mysite.cards.dashboard.domaintransfer.DomainTransferCardViewHolder
 import org.wordpress.android.ui.mysite.cards.dashboard.plans.PlansCardViewHolder
 import org.wordpress.android.ui.utils.UiHelpers
@@ -62,7 +60,6 @@ class CardsAdapter(
             DashboardCardType.DASHBOARD_DOMAIN_TRANSFER_CARD.ordinal -> DomainTransferCardViewHolder(parent)
             DashboardCardType.PROMOTE_WITH_BLAZE_CARD.ordinal -> PromoteWithBlazeCardViewHolder(parent, uiHelpers)
             DashboardCardType.BLAZE_CAMPAIGNS_CARD.ordinal -> BlazeCampaignsCardViewHolder(parent)
-            DashboardCardType.DASHBOARD_DOMAIN_CARD.ordinal -> DashboardDomainCardViewHolder(parent, uiHelpers)
             DashboardCardType.DASHBOARD_PLANS_CARD.ordinal -> PlansCardViewHolder(parent, uiHelpers)
             DashboardCardType.PAGES_CARD.ordinal -> PagesCardViewHolder(parent, uiHelpers)
             DashboardCardType.ACTIVITY_CARD.ordinal -> ActivityCardViewHolder(parent, uiHelpers)
@@ -82,7 +79,6 @@ class CardsAdapter(
             is DomainTransferCardViewHolder -> holder.bind(items[position] as DomainTransferCardModel)
             is PromoteWithBlazeCardViewHolder -> holder.bind(items[position] as PromoteWithBlazeCard)
             is BlazeCampaignsCardViewHolder -> holder.bind(items[position] as BlazeCampaignsCardModel)
-            is DashboardDomainCardViewHolder -> holder.bind(items[position] as DashboardDomainCard)
             is PlansCardViewHolder -> holder.bind(items[position] as DashboardPlansCard)
             is PagesCardViewHolder -> holder.bind(items[position] as PagesCard)
             is ActivityCardViewHolder -> holder.bind(items[position] as ActivityCard)
@@ -115,7 +111,6 @@ class CardsAdapter(
                 oldItem is BloggingPromptCardWithData && newItem is BloggingPromptCardWithData -> true
                 oldItem is PromoteWithBlazeCard && newItem is PromoteWithBlazeCard -> true
                 oldItem is BlazeCampaignsCardModel && newItem is BlazeCampaignsCardModel -> true
-                oldItem is DashboardDomainCard && newItem is DashboardDomainCard -> true
                 oldItem is DomainTransferCardModel && newItem is DomainTransferCardModel -> true
                 oldItem is DashboardPlansCard && newItem is DashboardPlansCard -> true
                 oldItem is PagesCard && newItem is PagesCard -> true
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/dashboard/CardsBuilder.kt b/WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/dashboard/CardsBuilder.kt
index d391e0754a48..1fe10275289c 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/dashboard/CardsBuilder.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/dashboard/CardsBuilder.kt
@@ -10,7 +10,6 @@ import org.wordpress.android.ui.mysite.cards.dashboard.bloggingprompts.BloggingP
 import org.wordpress.android.ui.mysite.cards.dashboard.pages.PagesCardBuilder
 import org.wordpress.android.ui.mysite.cards.dashboard.posts.PostCardBuilder
 import org.wordpress.android.ui.mysite.cards.dashboard.todaysstats.TodaysStatsCardBuilder
-import org.wordpress.android.ui.mysite.cards.dashboard.domain.DashboardDomainCardBuilder
 import org.wordpress.android.ui.mysite.cards.dashboard.domaintransfer.DomainTransferCardBuilder
 import org.wordpress.android.ui.mysite.cards.dashboard.plans.PlansCardBuilder
 import org.wordpress.android.ui.utils.ListItemInteraction
@@ -22,7 +21,6 @@ class CardsBuilder @Inject constructor(
     private val bloggingPromptCardBuilder: BloggingPromptCardBuilder,
     private val domainTransferCardBuilder: DomainTransferCardBuilder,
     private val blazeCardBuilder: BlazeCardBuilder,
-    private val dashboardDomainCardBuilder: DashboardDomainCardBuilder,
     private val plansCardBuilder: PlansCardBuilder,
     private val pagesCardBuilder: PagesCardBuilder,
     private val activityCardBuilder: ActivityCardBuilder
@@ -49,10 +47,6 @@ class CardsBuilder @Inject constructor(
                     add(blazeCardBuilder.build(dashboardCardsBuilderParams.blazeCardBuilderParams))
                 }
 
-                dashboardDomainCardBuilder.build(dashboardCardsBuilderParams.dashboardCardDomainBuilderParams)?.let {
-                    add(it)
-                }
-
                 plansCardBuilder.build(dashboardCardsBuilderParams.dashboardCardPlansBuilderParams)?.let {
                     add(it)
                 }
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/dashboard/CardsShownTracker.kt b/WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/dashboard/CardsShownTracker.kt
index 1b2b3268efc8..34328a8a0354 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/dashboard/CardsShownTracker.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/dashboard/CardsShownTracker.kt
@@ -5,7 +5,6 @@ import org.wordpress.android.ui.blaze.BlazeFlowSource
 import org.wordpress.android.ui.mysite.MySiteCardAndItem.Card.DashboardCards
 import org.wordpress.android.ui.mysite.MySiteCardAndItem.Card.DashboardCards.DashboardCard
 import org.wordpress.android.ui.mysite.MySiteCardAndItem.Card.DashboardCards.DashboardCard.BloggingPromptCard.BloggingPromptCardWithData
-import org.wordpress.android.ui.mysite.MySiteCardAndItem.Card.DashboardCards.DashboardCard.DashboardDomainCard
 import org.wordpress.android.ui.mysite.MySiteCardAndItem.Card.DashboardCards.DashboardCard.DomainTransferCardModel
 import org.wordpress.android.ui.mysite.MySiteCardAndItem.Card.DashboardCards.DashboardCard.DashboardPlansCard
 import org.wordpress.android.ui.mysite.MySiteCardAndItem.Card.DashboardCards.DashboardCard.ErrorCard
@@ -92,12 +91,6 @@ class CardsShownTracker @Inject constructor(
                 BlazeSubtype.CAMPAIGNS.label
             )
         )
-        is DashboardDomainCard -> trackCardShown(
-            Pair(
-                card.dashboardCardType.toTypeValue().label,
-                Type.DASHBOARD_CARD_DOMAIN.label
-            )
-        )
         is DashboardPlansCard -> trackCardShown(
             Pair(
                 card.dashboardCardType.toTypeValue().label,
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/dashboard/CardsTracker.kt b/WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/dashboard/CardsTracker.kt
index 69c2df9cc719..41fe5f1eda5e 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/dashboard/CardsTracker.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/dashboard/CardsTracker.kt
@@ -28,7 +28,6 @@ class CardsTracker @Inject constructor(
         BLAZE_CAMPAIGNS("blaze_campaigns"),
         PAGES("pages"),
         ACTIVITY("activity_log"),
-        DASHBOARD_CARD_DOMAIN("dashboard_card_domain"),
         DASHBOARD_CARD_PLANS("dashboard_card_plans"),
         DASHBOARD_CARD_DOMAIN_TRANSFER("dashboard_card_domain_transfer"),
     }
@@ -137,7 +136,6 @@ fun DashboardCardType.toTypeValue(): Type {
         DashboardCardType.PROMOTE_WITH_BLAZE_CARD -> Type.PROMOTE_WITH_BLAZE
         DashboardCardType.DASHBOARD_DOMAIN_TRANSFER_CARD -> Type.DASHBOARD_CARD_DOMAIN_TRANSFER
         DashboardCardType.BLAZE_CAMPAIGNS_CARD -> Type.BLAZE_CAMPAIGNS
-        DashboardCardType.DASHBOARD_DOMAIN_CARD -> Type.DASHBOARD_CARD_DOMAIN
         DashboardCardType.DASHBOARD_PLANS_CARD -> Type.DASHBOARD_CARD_PLANS
         DashboardCardType.PAGES_CARD -> Type.PAGES
         DashboardCardType.PAGES_CARD_ERROR -> Type.ERROR
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/dashboard/domain/DashboardCardDomainSource.kt b/WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/dashboard/domain/DashboardCardDomainSource.kt
deleted file mode 100644
index d572aca2c64f..000000000000
--- a/WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/dashboard/domain/DashboardCardDomainSource.kt
+++ /dev/null
@@ -1,135 +0,0 @@
-package org.wordpress.android.ui.mysite.cards.dashboard.domain
-
-import androidx.lifecycle.LiveData
-import androidx.lifecycle.MediatorLiveData
-import androidx.lifecycle.MutableLiveData
-import kotlinx.coroutines.CoroutineDispatcher
-import kotlinx.coroutines.CoroutineScope
-import kotlinx.coroutines.delay
-import kotlinx.coroutines.flow.map
-import kotlinx.coroutines.launch
-import org.wordpress.android.fluxc.model.DomainModel
-import org.wordpress.android.fluxc.model.SiteModel
-import org.wordpress.android.fluxc.model.asDomainModel
-import org.wordpress.android.fluxc.store.SiteStore
-import org.wordpress.android.fluxc.utils.AppLogWrapper
-import org.wordpress.android.modules.BG_THREAD
-import org.wordpress.android.ui.mysite.MySiteSource
-import org.wordpress.android.ui.mysite.MySiteUiState
-import org.wordpress.android.ui.mysite.SelectedSiteRepository
-import org.wordpress.android.util.AppLog
-import javax.inject.Inject
-import javax.inject.Named
-
-const val REFRESH_DELAY = 500L
-
-class DashboardCardDomainSource @Inject constructor(
-    @param:Named(BG_THREAD) private val bgDispatcher: CoroutineDispatcher,
-    private val selectedSiteRepository: SelectedSiteRepository,
-    private val siteStore: SiteStore,
-    private val domainUtils: DashboardCardDomainUtils,
-    private val appLogWrapper: AppLogWrapper
-) : MySiteSource.MySiteRefreshSource<MySiteUiState.PartialState.CustomDomainsAvailable> {
-    override val refresh = MutableLiveData(false)
-
-    override fun build(
-        coroutineScope: CoroutineScope,
-        siteLocalId: Int
-    ): LiveData<MySiteUiState.PartialState.CustomDomainsAvailable> {
-        val result = MediatorLiveData<MySiteUiState.PartialState.CustomDomainsAvailable>()
-        if (shouldFetchDomains(siteLocalId)) {
-            result.getDomainsAndPost(coroutineScope, siteLocalId)
-        }
-        result.addSource(refresh) { result.refreshData(coroutineScope, siteLocalId, refresh.value) }
-        refresh()
-        return result
-    }
-
-    private fun MediatorLiveData<MySiteUiState.PartialState.CustomDomainsAvailable>.getDomainsAndPost(
-        coroutineScope: CoroutineScope,
-        siteLocalId: Int
-    ) {
-        val selectedSite = selectedSiteRepository.getSelectedSite()
-        if (selectedSite != null && selectedSite.id == siteLocalId) {
-            coroutineScope.launch(bgDispatcher) {
-                siteStore.getSiteDomains(siteLocalId)
-                    .map {
-                        if (it.isEmpty()) {
-                            buildErrorState()
-                        } else {
-                            buildState(it)
-                        }
-                    }
-                    .collect { result -> postValue(result) }
-            }
-        } else {
-            postState(buildErrorState())
-        }
-    }
-
-    private fun shouldFetchDomains(siteLocalId: Int): Boolean {
-        val selectedSite = selectedSiteRepository.getSelectedSite()
-        if (selectedSite != null && selectedSite.id == siteLocalId) {
-            // By assuming that "isDomainCreditAvailable" and "hasSiteDomain" are false, we are checking other cases for
-            // "shouldShowCard". If "shouldShowCard" still returns false, then we do not need to fetch domains.
-            val isDomainCreditAvailable = false
-            val hasSiteDomain = false
-
-            return domainUtils.shouldShowCard(selectedSite, isDomainCreditAvailable, hasSiteDomain)
-        }
-        return false
-    }
-
-    private fun MediatorLiveData<MySiteUiState.PartialState.CustomDomainsAvailable>.refreshData(
-        coroutineScope: CoroutineScope,
-        siteLocalId: Int,
-        isRefresh: Boolean? = null
-    ) {
-        val selectedSite = selectedSiteRepository.getSelectedSite()
-        when (isRefresh) {
-            null, true -> refreshData(coroutineScope, siteLocalId, selectedSite)
-            false -> Unit // Do nothing
-        }
-    }
-
-    private fun MediatorLiveData<MySiteUiState.PartialState.CustomDomainsAvailable>.refreshData(
-        coroutineScope: CoroutineScope,
-        siteLocalId: Int,
-        selectedSite: SiteModel?
-    ) {
-        if (selectedSite == null || selectedSite.id != siteLocalId || !shouldFetchDomains(siteLocalId)) {
-            postState(buildErrorState())
-        } else {
-            fetchDomainsAndPost(coroutineScope, selectedSite)
-        }
-    }
-
-    private fun MediatorLiveData<MySiteUiState.PartialState.CustomDomainsAvailable>.fetchDomainsAndPost(
-        coroutineScope: CoroutineScope,
-        selectedSite: SiteModel
-    ) {
-        coroutineScope.launch(bgDispatcher) {
-            delay(REFRESH_DELAY) // This is necessary to wait response of "getDomainsAndPost()"
-            val result = siteStore.fetchSiteDomains(selectedSite)
-            val domains = result.domains?.map { it.asDomainModel() }
-
-            if (result.isError) {
-                appLogWrapper.e(
-                    AppLog.T.DOMAIN_REGISTRATION,
-                    "An error occurred while fetching domains: ${result.error.message}"
-                )
-                // If there is error, don't post any state and trust getDomainsAndPost()
-            } else {
-                postState(buildState(domains))
-            }
-        }
-    }
-
-    private fun buildState(domainModels: List<DomainModel>?) = if (domainModels.isNullOrEmpty()) {
-        MySiteUiState.PartialState.CustomDomainsAvailable(false)
-    } else {
-        MySiteUiState.PartialState.CustomDomainsAvailable(domainUtils.hasCustomDomain(domainModels))
-    }
-
-    private fun buildErrorState() = MySiteUiState.PartialState.CustomDomainsAvailable(null)
-}
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/dashboard/domain/DashboardCardDomainUtils.kt b/WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/dashboard/domain/DashboardCardDomainUtils.kt
deleted file mode 100644
index 6d294e2dda61..000000000000
--- a/WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/dashboard/domain/DashboardCardDomainUtils.kt
+++ /dev/null
@@ -1,166 +0,0 @@
-package org.wordpress.android.ui.mysite.cards.dashboard.domain
-
-import kotlinx.coroutines.CoroutineDispatcher
-import kotlinx.coroutines.CoroutineScope
-import kotlinx.coroutines.Job
-import kotlinx.coroutines.delay
-import kotlinx.coroutines.launch
-import org.wordpress.android.analytics.AnalyticsTracker
-import org.wordpress.android.fluxc.model.DomainModel
-import org.wordpress.android.fluxc.model.SiteModel
-import org.wordpress.android.modules.BG_THREAD
-import org.wordpress.android.ui.mysite.MySiteCardAndItem.Card.DashboardCards
-import org.wordpress.android.ui.mysite.MySiteCardAndItem.Card.DashboardCards.DashboardCard.DashboardDomainCard
-import org.wordpress.android.ui.mysite.MySiteViewModel.State.SiteSelected
-import org.wordpress.android.ui.mysite.tabs.MySiteTabType
-import org.wordpress.android.ui.prefs.AppPrefsWrapper
-import org.wordpress.android.util.BuildConfigWrapper
-import org.wordpress.android.util.analytics.AnalyticsTrackerWrapper
-import org.wordpress.android.util.config.DashboardCardDomainFeatureConfig
-import org.wordpress.android.util.config.DashboardCardFreeToPaidPlansFeatureConfig
-import java.util.concurrent.atomic.AtomicBoolean
-import java.util.concurrent.atomic.AtomicReference
-import javax.inject.Inject
-import javax.inject.Named
-
-class DashboardCardDomainUtils @Inject constructor(
-    private val appPrefsWrapper: AppPrefsWrapper,
-    private val dashboardCardDomainFeatureConfig: DashboardCardDomainFeatureConfig,
-    private val plansFreeToPaidFeatureConfig: DashboardCardFreeToPaidPlansFeatureConfig,
-    private val buildConfigWrapper: BuildConfigWrapper,
-    private val analyticsTrackerWrapper: AnalyticsTrackerWrapper,
-    @Named(BG_THREAD) private val bgDispatcher: CoroutineDispatcher
-) {
-    private var dashboardUpdateDebounceJob: Job? = null
-
-    private val domainCardVisible = AtomicReference<Boolean?>(null)
-    private val waitingToTrack = AtomicBoolean(false)
-    private val currentSite = AtomicReference<Int?>(null)
-
-    fun shouldShowCard(
-        siteModel: SiteModel,
-        isDomainCreditAvailable: Boolean,
-        hasSiteCustomDomains: Boolean?
-    ): Boolean {
-        return isDashboardCardDomainEnabled() &&
-                !isDashboardCardDomainHiddenByUser(siteModel.siteId) &&
-                (siteModel.isWPCom || siteModel.isWPComAtomic) &&
-                siteModel.isAdmin &&
-                !siteModel.isWpForTeamsSite &&
-                hasSiteCustomDomains == false &&
-                !isDomainCreditAvailable
-    }
-
-    fun hideCard(siteId: Long) {
-        appPrefsWrapper.setShouldHideDashboardDomainCard(siteId, true)
-    }
-
-    fun trackDashboardCardDomainShown(scope: CoroutineScope, siteSelected: SiteSelected?) {
-        // cancel any existing job (debouncing mechanism)
-        dashboardUpdateDebounceJob?.cancel()
-
-        dashboardUpdateDebounceJob = scope.launch(bgDispatcher) {
-            val isVisible = siteSelected
-                ?.dashboardCardsAndItems
-                ?.filterIsInstance<DashboardCards>()
-                ?.firstOrNull()
-                ?.cards
-                ?.any {
-                        card -> card is DashboardDomainCard
-                } ?: false
-
-            // add a delay (debouncing mechanism)
-            delay(CARD_VISIBLE_DEBOUNCE)
-
-            domainCardVisible.set(isVisible)
-            if (isVisible && waitingToTrack.getAndSet(false)) {
-                trackDomainCardShown(positionIndex(siteSelected))
-            }
-        }.also {
-            it.invokeOnCompletion { cause ->
-                // only set the job to null if it wasn't cancelled since cancellation is part of debouncing
-                if (cause == null) dashboardUpdateDebounceJob = null
-            }
-        }
-    }
-
-    fun onResume(currentTab: MySiteTabType, siteSelected: SiteSelected?) {
-        if (currentTab == MySiteTabType.DASHBOARD) {
-            onDashboardRefreshed(siteSelected)
-        } else {
-            // moved away from dashboard, no longer waiting to track
-            waitingToTrack.set(false)
-        }
-    }
-
-    fun onSiteChanged(siteId: Int?, siteSelected: SiteSelected?) {
-        if (currentSite.getAndSet(siteId) != siteId) {
-            domainCardVisible.set(null)
-            onDashboardRefreshed(siteSelected)
-        }
-    }
-
-    fun trackDashboardCardDomainTapped(siteSelected: SiteSelected?) {
-        analyticsTrackerWrapper.track(
-            AnalyticsTracker.Stat.DASHBOARD_CARD_DOMAIN_TAPPED,
-            mapOf(POSITION_INDEX to positionIndex(siteSelected))
-        )
-    }
-
-    fun trackDashboardCardDomainMoreMenuTapped(siteSelected: SiteSelected?) {
-        analyticsTrackerWrapper.track(
-            AnalyticsTracker.Stat.DASHBOARD_CARD_DOMAIN_MORE_MENU_TAPPED,
-            mapOf(POSITION_INDEX to positionIndex(siteSelected))
-        )
-    }
-    fun trackDashboardCardDomainHiddenByUser(siteSelected: SiteSelected?) {
-        analyticsTrackerWrapper.track(
-            AnalyticsTracker.Stat.DASHBOARD_CARD_DOMAIN_HIDDEN,
-            mapOf(POSITION_INDEX to positionIndex(siteSelected))
-        )
-    }
-
-    private fun trackDomainCardShown(positionIndex: Int) {
-        analyticsTrackerWrapper.track(
-            AnalyticsTracker.Stat.DASHBOARD_CARD_DOMAIN_SHOWN,
-            mapOf(POSITION_INDEX to  positionIndex)
-        )
-    }
-
-    private fun isDashboardCardDomainHiddenByUser(siteId: Long): Boolean {
-        return appPrefsWrapper.getShouldHideDashboardDomainCard(siteId)
-    }
-
-    private fun isDashboardCardDomainEnabled(): Boolean {
-        return buildConfigWrapper.isJetpackApp &&
-                !plansFreeToPaidFeatureConfig.isEnabled() &&
-                dashboardCardDomainFeatureConfig.isEnabled()
-    }
-
-    private fun positionIndex(siteSelected: SiteSelected?): Int {
-        return siteSelected
-            ?.dashboardCardsAndItems
-            ?.filterIsInstance<DashboardCards>()
-            ?.firstOrNull()
-            ?.cards
-            ?.indexOfFirst {
-                it is DashboardDomainCard
-            } ?: -1
-    }
-
-    private fun onDashboardRefreshed(siteSelected: SiteSelected?) {
-        domainCardVisible.get()?.let { isVisible ->
-            if (isVisible) trackDomainCardShown(positionIndex(siteSelected))
-            waitingToTrack.set(false)
-        } ?: run {
-            waitingToTrack.set(true)
-        }
-    }
-
-    fun hasCustomDomain(domains: List<DomainModel>?) = domains?.any { !it.wpcomDomain } == true
-
-    companion object {
-        const val POSITION_INDEX = "position_index"
-        private const val CARD_VISIBLE_DEBOUNCE = 500L
-    }
-}
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/dashboard/domain/DashboardDomainCardBuilder.kt b/WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/dashboard/domain/DashboardDomainCardBuilder.kt
deleted file mode 100644
index 4e85aeb5d0d2..000000000000
--- a/WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/dashboard/domain/DashboardDomainCardBuilder.kt
+++ /dev/null
@@ -1,24 +0,0 @@
-package org.wordpress.android.ui.mysite.cards.dashboard.domain
-
-import org.wordpress.android.R
-import org.wordpress.android.ui.mysite.MySiteCardAndItem.Card.DashboardCards.DashboardCard.DashboardDomainCard
-import org.wordpress.android.ui.mysite.MySiteCardAndItemBuilderParams.DashboardCardDomainBuilderParams
-import org.wordpress.android.ui.utils.ListItemInteraction
-import org.wordpress.android.ui.utils.UiString
-import javax.inject.Inject
-
-class DashboardDomainCardBuilder @Inject constructor() {
-    fun build(params: DashboardCardDomainBuilderParams):DashboardDomainCard? {
-        return if (params.isEligible) {
-            DashboardDomainCard(
-                title = UiString.UiStringRes(R.string.dashboard_card_domain_title),
-                subtitle = UiString.UiStringRes(R.string.dashboard_card_domain_sub_title),
-                onClick = ListItemInteraction.create(params.onClick),
-                onHideMenuItemClick = ListItemInteraction.create(params.onHideMenuItemClick),
-                onMoreMenuClick = ListItemInteraction.create(params.onMoreMenuClick)
-            )
-        } else {
-            null
-        }
-    }
-}
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/dashboard/domain/DashboardDomainCardViewHolder.kt b/WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/dashboard/domain/DashboardDomainCardViewHolder.kt
deleted file mode 100644
index 74b569a12033..000000000000
--- a/WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/dashboard/domain/DashboardDomainCardViewHolder.kt
+++ /dev/null
@@ -1,51 +0,0 @@
-package org.wordpress.android.ui.mysite.cards.dashboard.domain
-
-import android.view.View
-import android.view.ViewGroup
-import androidx.appcompat.widget.PopupMenu
-import org.wordpress.android.R
-import org.wordpress.android.databinding.DashboardCardDomainBinding
-import org.wordpress.android.ui.mysite.MySiteCardAndItem.Card.DashboardCards.DashboardCard.DashboardDomainCard
-import org.wordpress.android.ui.mysite.cards.dashboard.CardViewHolder
-import org.wordpress.android.ui.utils.ListItemInteraction
-import org.wordpress.android.ui.utils.UiHelpers
-import org.wordpress.android.util.extensions.viewBinding
-
-class DashboardDomainCardViewHolder(
-    parent: ViewGroup,
-    private val uiHelpers: UiHelpers
-) : CardViewHolder<DashboardCardDomainBinding>(
-    parent.viewBinding(DashboardCardDomainBinding::inflate)
-) {
-    fun bind(card: DashboardDomainCard) = with(binding) {
-        uiHelpers.setTextOrHide(dashboardCardDomainTitle, card.title)
-        dashboardCardDomainCta.setOnClickListener { card.onClick.click() }
-        dashboardDomainCardMore.setOnClickListener {
-            showMoreMenu(
-                card.onHideMenuItemClick,
-                card.onMoreMenuClick,
-                dashboardDomainCardMore,
-            )
-        }
-    }
-
-    private fun showMoreMenu(
-        onHideMenuItemClick: ListItemInteraction,
-        onMoreMenuClick: ListItemInteraction,
-        anchor: View
-    ) {
-        onMoreMenuClick.click()
-        val popupMenu = PopupMenu(itemView.context, anchor)
-        popupMenu.setOnMenuItemClickListener {
-            when (it.itemId) {
-                R.id.dashboard_card_domain_menu_item_hide_this -> {
-                    onHideMenuItemClick.click()
-                    return@setOnMenuItemClickListener true
-                }
-                else -> return@setOnMenuItemClickListener true
-            }
-        }
-        popupMenu.inflate(R.menu.dashboard_card_domain_menu)
-        popupMenu.show()
-    }
-}
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/prefs/AppPrefs.java b/WordPress/src/main/java/org/wordpress/android/ui/prefs/AppPrefs.java
index 45f5b4e17338..344527fd9f2c 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/prefs/AppPrefs.java
+++ b/WordPress/src/main/java/org/wordpress/android/ui/prefs/AppPrefs.java
@@ -187,7 +187,6 @@ public enum DeletablePrefKey implements PrefKey {
         SHOULD_SHOW_JETPACK_FULL_PLUGIN_INSTALL_ONBOARDING,
         SHOULD_HIDE_DASHBOARD_DOMAIN_TRANSFER_CARD,
         SHOULD_HIDE_PROMOTE_WITH_BLAZE_CARD,
-        SHOULD_HIDE_DASHBOARD_DOMAIN_CARD,
         SHOULD_HIDE_DASHBOARD_PLANS_CARD,
 
         // Jetpack Individual Plugin overlay for WordPress app
@@ -1650,18 +1649,6 @@ public static void setShouldHidePromoteWithBlazeCard(long siteId, final boolean
         return DeletablePrefKey.SHOULD_HIDE_PROMOTE_WITH_BLAZE_CARD.name() + siteId;
     }
 
-    public static Boolean getShouldHideDashboardDomainCard(long siteId) {
-        return prefs().getBoolean(getSiteIdHideDashboardDomainCardKey(siteId), false);
-    }
-
-    public static void setShouldHideDashboardDomainCard(long siteId, final boolean isHidden) {
-        prefs().edit().putBoolean(getSiteIdHideDashboardDomainCardKey(siteId), isHidden).apply();
-    }
-
-    @NonNull private static String getSiteIdHideDashboardDomainCardKey(long siteId) {
-        return DeletablePrefKey.SHOULD_HIDE_DASHBOARD_DOMAIN_CARD.name() + siteId;
-    }
-
     public static Boolean getShouldHideDashboardPlansCard(long siteId) {
         return prefs().getBoolean(getSiteIdHideDashboardPlansCardKey(siteId), false);
     }
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/prefs/AppPrefsWrapper.kt b/WordPress/src/main/java/org/wordpress/android/ui/prefs/AppPrefsWrapper.kt
index b9cd2864b81c..b53afd3f20ee 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/prefs/AppPrefsWrapper.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/prefs/AppPrefsWrapper.kt
@@ -343,12 +343,6 @@ class AppPrefsWrapper @Inject constructor() {
     fun setShouldHideBlazeCard(siteId: Long, isHidden: Boolean) =
         AppPrefs.setShouldHidePromoteWithBlazeCard(siteId, isHidden)
 
-    fun getShouldHideDashboardDomainCard(siteId: Long): Boolean =
-        AppPrefs.getShouldHideDashboardDomainCard(siteId)
-
-    fun setShouldHideDashboardDomainCard(siteId: Long, isHidden: Boolean) =
-        AppPrefs.setShouldHideDashboardDomainCard(siteId, isHidden)
-
     fun getShouldHideDashboardPlansCard(siteId: Long): Boolean =
         AppPrefs.getShouldHideDashboardPlansCard(siteId)
 
diff --git a/WordPress/src/main/java/org/wordpress/android/util/config/DasboardCardDomainFeatureConfig.kt b/WordPress/src/main/java/org/wordpress/android/util/config/DasboardCardDomainFeatureConfig.kt
deleted file mode 100644
index d685aacfed93..000000000000
--- a/WordPress/src/main/java/org/wordpress/android/util/config/DasboardCardDomainFeatureConfig.kt
+++ /dev/null
@@ -1,16 +0,0 @@
-package org.wordpress.android.util.config
-
-import org.wordpress.android.BuildConfig
-import org.wordpress.android.annotation.Feature
-import javax.inject.Inject
-
-private const val DASHBOARD_CARD_DOMAIN_REMOTE_FIELD = "dashboard_card_domain"
-
-@Feature(DASHBOARD_CARD_DOMAIN_REMOTE_FIELD, false)
-class DashboardCardDomainFeatureConfig @Inject constructor(
-    appConfig: AppConfig
-) : FeatureConfig(
-    appConfig,
-    BuildConfig.DASHBOARD_CARD_DOMAIN,
-    DASHBOARD_CARD_DOMAIN_REMOTE_FIELD
-)
diff --git a/WordPress/src/main/res/layout/dashboard_card_domain.xml b/WordPress/src/main/res/layout/dashboard_card_domain.xml
deleted file mode 100644
index 91f5e31f64cb..000000000000
--- a/WordPress/src/main/res/layout/dashboard_card_domain.xml
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<com.google.android.material.card.MaterialCardView xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    android:id="@+id/dashboard_card_domain_cta"
-    style="@style/WordPress.CardView.Unelevated"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:foreground="?attr/selectableItemBackground">
-
-        <androidx.constraintlayout.widget.ConstraintLayout
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_margin="@dimen/margin_extra_large">
-
-            <ImageView
-                android:id="@+id/dashboard_domain_card_more"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:background="?attr/selectableItemBackgroundBorderless"
-                android:contentDescription="@string/content_description_more"
-                android:src="@drawable/ic_more_vert_white_24dp"
-                app:layout_constraintEnd_toEndOf="parent"
-                app:layout_constraintTop_toTopOf="parent"
-                app:tint="?attr/wpColorOnSurfaceMedium" />
-
-            <com.google.android.material.textview.MaterialTextView
-                android:id="@+id/dashboard_card_domain_title"
-                style="@style/DashboardCardSubtitle"
-                android:textAlignment="viewStart"
-                android:layout_width="0dp"
-                android:layout_height="wrap_content"
-                android:text="@string/dashboard_card_domain_title"
-                app:layout_constraintEnd_toStartOf="@+id/dashboard_domain_card_more"
-                app:layout_constraintStart_toStartOf="parent"
-                app:layout_constraintTop_toTopOf="parent" />
-
-            <ImageView
-                android:id="@+id/dashboard_card_domain_image"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:paddingTop="@dimen/margin_extra_small_large"
-                android:importantForAccessibility="no"
-                android:scaleType="centerCrop"
-                android:src="@drawable/browser_address_bar"
-                app:layout_constraintEnd_toEndOf="parent"
-                app:layout_constraintStart_toStartOf="parent"
-                app:layout_constraintTop_toBottomOf="@+id/dashboard_card_domain_title" />
-
-            <com.google.android.material.textview.MaterialTextView
-                android:id="@+id/dashboard_card_domain_sub_title"
-                style="@style/DashboardCardDetail"
-                android:textAlignment="viewStart"
-                android:layout_width="0dp"
-                android:layout_height="wrap_content"
-                android:layout_marginTop="@dimen/margin_114dp"
-                android:text="@string/dashboard_card_domain_sub_title"
-                app:layout_constraintBottom_toBottomOf="parent"
-                app:layout_constraintEnd_toEndOf="parent"
-                app:layout_constraintStart_toStartOf="parent"
-                app:layout_constraintTop_toTopOf="@id/dashboard_card_domain_image" />
-        </androidx.constraintlayout.widget.ConstraintLayout>
-</com.google.android.material.card.MaterialCardView>
-
diff --git a/WordPress/src/main/res/menu/dashboard_card_domain_menu.xml b/WordPress/src/main/res/menu/dashboard_card_domain_menu.xml
deleted file mode 100644
index a756ae665608..000000000000
--- a/WordPress/src/main/res/menu/dashboard_card_domain_menu.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<menu xmlns:android="http://schemas.android.com/apk/res/android">
-    <item
-        android:id="@+id/dashboard_card_domain_menu_item_hide_this"
-        android:title="@string/dashboard_card_domain_more_menu_hide_this"
-        android:icon="@drawable/ic_not_visible_white_24dp"/>
-</menu>
diff --git a/WordPress/src/main/res/values/strings.xml b/WordPress/src/main/res/values/strings.xml
index 3fcaae57e33b..502b4b9e2689 100644
--- a/WordPress/src/main/res/values/strings.xml
+++ b/WordPress/src/main/res/values/strings.xml
@@ -4521,11 +4521,6 @@ translators: %s: Select control option value e.g: "Auto, 25%". -->
     <string name="jetpack_full_plugin_install_onboarding_contact_support_button">Contact support</string>
     <string name="jetpack_full_plugin_install_onboarding_dismiss_button_content_description">Close</string>
 
-    <!-- Dashboard Card Domain-->
-    <string name="dashboard_card_domain_title">Find a custom domain</string>
-    <string name="dashboard_card_domain_sub_title">Stake your claim on your corner of the web with a site address that\'s easy to find, share, and follow.</string>
-    <string name="dashboard_card_domain_more_menu_hide_this" translatable="false">@string/my_site_dashboard_card_more_menu_hide_card</string>
-
     <!-- Dashboard Card Domain Transfer-->
     <string name="domain_transfer_card_title">News</string>
     <string name="domain_transfer_card_sub_title">Reclaim Your Google Domains</string>
diff --git a/libs/analytics/src/main/java/org/wordpress/android/analytics/AnalyticsTracker.java b/libs/analytics/src/main/java/org/wordpress/android/analytics/AnalyticsTracker.java
index 18e0622633f3..41ad22835433 100644
--- a/libs/analytics/src/main/java/org/wordpress/android/analytics/AnalyticsTracker.java
+++ b/libs/analytics/src/main/java/org/wordpress/android/analytics/AnalyticsTracker.java
@@ -1046,10 +1046,6 @@ public enum Stat {
         WP_JETPACK_INDIVIDUAL_PLUGIN_OVERLAY_SHOWN,
         WP_JETPACK_INDIVIDUAL_PLUGIN_OVERLAY_DISMISSED,
         WP_JETPACK_INDIVIDUAL_PLUGIN_OVERLAY_PRIMARY_TAPPED,
-        DASHBOARD_CARD_DOMAIN_SHOWN,
-        DASHBOARD_CARD_DOMAIN_TAPPED,
-        DASHBOARD_CARD_DOMAIN_MORE_MENU_TAPPED,
-        DASHBOARD_CARD_DOMAIN_HIDDEN,
         DASHBOARD_CARD_PLANS_SHOWN,
         DASHBOARD_CARD_PLANS_TAPPED,
         DASHBOARD_CARD_PLANS_MORE_MENU_TAPPED,
diff --git a/libs/analytics/src/main/java/org/wordpress/android/analytics/AnalyticsTrackerNosara.java b/libs/analytics/src/main/java/org/wordpress/android/analytics/AnalyticsTrackerNosara.java
index 6feea39cc5fe..4368ceb9a795 100644
--- a/libs/analytics/src/main/java/org/wordpress/android/analytics/AnalyticsTrackerNosara.java
+++ b/libs/analytics/src/main/java/org/wordpress/android/analytics/AnalyticsTrackerNosara.java
@@ -2578,14 +2578,6 @@ public static String getEventNameForStat(AnalyticsTracker.Stat stat) {
                 return "wp_individual_site_overlay_dismissed";
             case WP_JETPACK_INDIVIDUAL_PLUGIN_OVERLAY_PRIMARY_TAPPED:
                 return "wp_individual_site_overlay_primary_tapped";
-            case DASHBOARD_CARD_DOMAIN_SHOWN:
-                return "direct_domains_purchase_dashboard_card_shown";
-            case DASHBOARD_CARD_DOMAIN_TAPPED:
-                return "direct_domains_purchase_dashboard_card_tapped";
-            case DASHBOARD_CARD_DOMAIN_MORE_MENU_TAPPED:
-                return "direct_domains_purchase_dashboard_card_menu_tapped";
-            case DASHBOARD_CARD_DOMAIN_HIDDEN:
-                return "direct_domains_purchase_dashboard_card_hidden";
             case DASHBOARD_CARD_PLANS_SHOWN:
                 return "free_to_paid_plan_dashboard_card_shown";
             case DASHBOARD_CARD_PLANS_TAPPED:


Test patch:
diff --git a/WordPress/src/androidTest/java/org/wordpress/android/e2e/pages/DomainsScreen.kt b/WordPress/src/androidTest/java/org/wordpress/android/e2e/pages/DomainsScreen.kt
deleted file mode 100644
index a218f46451c9..000000000000
--- a/WordPress/src/androidTest/java/org/wordpress/android/e2e/pages/DomainsScreen.kt
+++ /dev/null
@@ -1,26 +0,0 @@
-package org.wordpress.android.e2e.pages
-
-import androidx.test.espresso.Espresso
-import androidx.test.espresso.ViewInteraction
-import androidx.test.espresso.assertion.ViewAssertions
-import androidx.test.espresso.matcher.ViewMatchers
-import org.hamcrest.Matchers
-import org.wordpress.android.R
-import org.wordpress.android.support.WPSupportUtils
-
-class DomainsScreen {
-    fun assertDomainsScreenLoaded(): DomainsScreen {
-        WPSupportUtils.waitForElementToBeDisplayedWithoutFailure(R.id.toolbar_domain)
-        domainsScreenHeader.check(ViewAssertions.matches(ViewMatchers.isCompletelyDisplayed()))
-        return this
-    }
-
-    companion object {
-        var domainsScreenHeader: ViewInteraction = Espresso.onView(
-            Matchers.allOf(
-                ViewMatchers.withId(R.id.toolbar_domain),
-                ViewMatchers.hasDescendant(ViewMatchers.withText(R.string.register_domain)),
-            )
-        )
-    }
-}
diff --git a/WordPress/src/androidTest/java/org/wordpress/android/e2e/pages/MySitesPage.kt b/WordPress/src/androidTest/java/org/wordpress/android/e2e/pages/MySitesPage.kt
index fb0b807eb2a2..d768369798d2 100644
--- a/WordPress/src/androidTest/java/org/wordpress/android/e2e/pages/MySitesPage.kt
+++ b/WordPress/src/androidTest/java/org/wordpress/android/e2e/pages/MySitesPage.kt
@@ -286,45 +286,6 @@ class MySitesPage {
         WPSupportUtils.clickOn(elementID)
     }
 
-    // "Domains" Dashboard Card
-
-    fun scrollToDomainsCard(): MySitesPage {
-        return scrollToCard(R.id.dashboard_card_domain_cta)
-    }
-
-    fun tapDomainsCard(): DomainsScreen {
-        tapCard(R.id.dashboard_card_domain_cta)
-        return DomainsScreen()
-    }
-
-    fun assertDomainsCard(): MySitesPage {
-        Espresso.onView(
-            Matchers.allOf(
-                ViewMatchers.withId(R.id.dashboard_card_domain_cta),
-                ViewMatchers.isDescendantOfA(ViewMatchers.withId(R.id.dashboard_cards)),
-                ViewMatchers.hasDescendant(ViewMatchers.withId(R.id.dashboard_domain_card_more)),
-                ViewMatchers.hasDescendant(ViewMatchers.withId(R.id.dashboard_card_domain_image)),
-
-                ViewMatchers.hasDescendant(
-                    Matchers.allOf(
-                        ViewMatchers.withText(R.string.dashboard_card_domain_title),
-                        ViewMatchers.withId(R.id.dashboard_card_domain_title),
-                    )
-                ),
-
-                ViewMatchers.hasDescendant(
-                    Matchers.allOf(
-                        ViewMatchers.withText(R.string.dashboard_card_domain_sub_title),
-                        ViewMatchers.withId(R.id.dashboard_card_domain_sub_title),
-                    )
-                )
-            )
-        )
-            .check(ViewAssertions.matches(ViewMatchers.isCompletelyDisplayed()))
-
-        return this
-    }
-
     // "Pages" Dashboard Card
 
     fun scrollToPagesCard(): MySitesPage {
diff --git a/WordPress/src/androidTestJetpack/java/org/wordpress/android/e2e/DashboardTests.kt b/WordPress/src/androidTestJetpack/java/org/wordpress/android/e2e/DashboardTests.kt
index 8288eab440a9..344ebd65a4db 100644
--- a/WordPress/src/androidTestJetpack/java/org/wordpress/android/e2e/DashboardTests.kt
+++ b/WordPress/src/androidTestJetpack/java/org/wordpress/android/e2e/DashboardTests.kt
@@ -16,15 +16,6 @@ class DashboardTests : BaseTest() {
         wpLogin()
     }
 
-    @Test
-    fun e2eDomainsCardNavigation() {
-        MySitesPage()
-            .scrollToDomainsCard()
-            .assertDomainsCard()
-            .tapDomainsCard()
-            .assertDomainsScreenLoaded()
-    }
-
     @Test
     fun e2ePagesCardNavigation() {
         MySitesPage()
diff --git a/WordPress/src/test/java/org/wordpress/android/ui/mysite/MySiteSourceManagerTest.kt b/WordPress/src/test/java/org/wordpress/android/ui/mysite/MySiteSourceManagerTest.kt
index 3d67abcb19a9..7631d94c4136 100644
--- a/WordPress/src/test/java/org/wordpress/android/ui/mysite/MySiteSourceManagerTest.kt
+++ b/WordPress/src/test/java/org/wordpress/android/ui/mysite/MySiteSourceManagerTest.kt
@@ -20,7 +20,6 @@ import org.wordpress.android.ui.mysite.MySiteUiState.PartialState.SelectedSite
 import org.wordpress.android.ui.mysite.cards.blaze.BlazeCardSource
 import org.wordpress.android.ui.mysite.cards.dashboard.CardsSource
 import org.wordpress.android.ui.mysite.cards.dashboard.bloggingprompts.BloggingPromptCardSource
-import org.wordpress.android.ui.mysite.cards.dashboard.domain.DashboardCardDomainSource
 import org.wordpress.android.ui.mysite.cards.domainregistration.DomainRegistrationSource
 import org.wordpress.android.ui.mysite.cards.quickstart.QuickStartCardSource
 
@@ -58,9 +57,6 @@ class MySiteSourceManagerTest : BaseUnitTest() {
     @Mock
     lateinit var blazeCardSource: BlazeCardSource
 
-    @Mock
-    lateinit var dashboardCardDomainSource: DashboardCardDomainSource
-
     @Mock
     lateinit var selectedSiteRepository: SelectedSiteRepository
 
@@ -96,7 +92,6 @@ class MySiteSourceManagerTest : BaseUnitTest() {
             bloggingPromptCardSource,
             blazeCardSource,
             selectedSiteRepository,
-            dashboardCardDomainSource,
             jetpackFeatureRemovalPhaseHelper
         )
 
diff --git a/WordPress/src/test/java/org/wordpress/android/ui/mysite/MySiteViewModelTest.kt b/WordPress/src/test/java/org/wordpress/android/ui/mysite/MySiteViewModelTest.kt
index 7950c9d30663..ed4d48b20043 100644
--- a/WordPress/src/test/java/org/wordpress/android/ui/mysite/MySiteViewModelTest.kt
+++ b/WordPress/src/test/java/org/wordpress/android/ui/mysite/MySiteViewModelTest.kt
@@ -100,7 +100,6 @@ import org.wordpress.android.ui.mysite.cards.dashboard.CardsTracker
 import org.wordpress.android.ui.mysite.cards.dashboard.activity.ActivityLogCardViewModelSlice
 import org.wordpress.android.ui.mysite.cards.dashboard.bloggingprompts.BloggingPromptAttribution
 import org.wordpress.android.ui.mysite.cards.dashboard.bloggingprompts.BloggingPromptsCardAnalyticsTracker
-import org.wordpress.android.ui.mysite.cards.dashboard.domain.DashboardCardDomainUtils
 import org.wordpress.android.ui.mysite.cards.dashboard.domaintransfer.DomainTransferCardViewModel
 import org.wordpress.android.ui.mysite.cards.dashboard.pages.PagesCardViewModelSlice
 import org.wordpress.android.ui.mysite.cards.dashboard.plans.PlansCardUtils
@@ -300,9 +299,6 @@ class MySiteViewModelTest : BaseUnitTest() {
     @Mock
     lateinit var pagesCardViewModelSlice: PagesCardViewModelSlice
 
-    @Mock
-    lateinit var dashboardCardDomainUtils: DashboardCardDomainUtils
-
     @Mock
     lateinit var plansCardUtils: PlansCardUtils
 
@@ -532,7 +528,6 @@ class MySiteViewModelTest : BaseUnitTest() {
             bloggingPromptsCardTrackHelper,
             getShowJetpackFullPluginInstallOnboardingUseCase,
             jetpackInstallFullPluginShownTracker,
-            dashboardCardDomainUtils,
             plansCardUtils,
             jetpackFeatureRemovalPhaseHelper,
             wpJetpackIndividualPluginHelper,
diff --git a/WordPress/src/test/java/org/wordpress/android/ui/mysite/cards/CardsBuilderTest.kt b/WordPress/src/test/java/org/wordpress/android/ui/mysite/cards/CardsBuilderTest.kt
index be0de7f6e358..9c4b60f044a4 100644
--- a/WordPress/src/test/java/org/wordpress/android/ui/mysite/cards/CardsBuilderTest.kt
+++ b/WordPress/src/test/java/org/wordpress/android/ui/mysite/cards/CardsBuilderTest.kt
@@ -22,7 +22,6 @@ import org.wordpress.android.ui.mysite.MySiteCardAndItem.Card.QuickStartCard.Qui
 import org.wordpress.android.ui.mysite.MySiteCardAndItemBuilderParams.ActivityCardBuilderParams
 import org.wordpress.android.ui.mysite.MySiteCardAndItemBuilderParams.BlazeCardBuilderParams
 import org.wordpress.android.ui.mysite.MySiteCardAndItemBuilderParams.BloggingPromptCardBuilderParams
-import org.wordpress.android.ui.mysite.MySiteCardAndItemBuilderParams.DashboardCardDomainBuilderParams
 import org.wordpress.android.ui.mysite.MySiteCardAndItemBuilderParams.DashboardCardPlansBuilderParams
 import org.wordpress.android.ui.mysite.MySiteCardAndItemBuilderParams.DashboardCardsBuilderParams
 import org.wordpress.android.ui.mysite.MySiteCardAndItemBuilderParams.DomainRegistrationCardBuilderParams
@@ -144,7 +143,6 @@ class CardsBuilderTest {
     private fun buildCards(
         activeTask: QuickStartTask? = null,
         isDomainCreditAvailable: Boolean = false,
-        isEligibleForDomainCard: Boolean = false,
         isEligibleForPlansCard: Boolean = false,
         isQuickStartInProgress: Boolean = false,
         isMySiteTabsEnabled: Boolean = false,
@@ -180,12 +178,6 @@ class CardsBuilderTest {
                     mock(),
                     mock()
                 ),
-                dashboardCardDomainBuilderParams = DashboardCardDomainBuilderParams(
-                    isEligible = isEligibleForDomainCard,
-                    mock(),
-                    mock(),
-                    mock()
-                ),
                 dashboardCardPlansBuilderParams = DashboardCardPlansBuilderParams(
                     isEligible = isEligibleForPlansCard,
                     mock(),
diff --git a/WordPress/src/test/java/org/wordpress/android/ui/mysite/cards/dashboard/CardsBuilderTest.kt b/WordPress/src/test/java/org/wordpress/android/ui/mysite/cards/dashboard/CardsBuilderTest.kt
index 8eb1ebfe0d3b..a26d045b87bd 100644
--- a/WordPress/src/test/java/org/wordpress/android/ui/mysite/cards/dashboard/CardsBuilderTest.kt
+++ b/WordPress/src/test/java/org/wordpress/android/ui/mysite/cards/dashboard/CardsBuilderTest.kt
@@ -16,7 +16,6 @@ import org.wordpress.android.ui.mysite.MySiteCardAndItem.Card.DashboardCards
 import org.wordpress.android.ui.mysite.MySiteCardAndItem.Card.DashboardCards.DashboardCard.ActivityCard.ActivityCardWithItems
 import org.wordpress.android.ui.mysite.MySiteCardAndItem.Card.DashboardCards.DashboardCard.BloggingPromptCard
 import org.wordpress.android.ui.mysite.MySiteCardAndItem.Card.DashboardCards.DashboardCard.BloggingPromptCard.BloggingPromptCardWithData
-import org.wordpress.android.ui.mysite.MySiteCardAndItem.Card.DashboardCards.DashboardCard.DashboardDomainCard
 import org.wordpress.android.ui.mysite.MySiteCardAndItem.Card.DashboardCards.DashboardCard.DashboardPlansCard
 import org.wordpress.android.ui.mysite.MySiteCardAndItem.Card.DashboardCards.DashboardCard.ErrorCard
 import org.wordpress.android.ui.mysite.MySiteCardAndItem.Card.DashboardCards.DashboardCard.PostCard.PostCardWithPostItems
@@ -24,7 +23,6 @@ import org.wordpress.android.ui.mysite.MySiteCardAndItem.Card.DashboardCards.Das
 import org.wordpress.android.ui.mysite.MySiteCardAndItem.Card.DashboardCards.DashboardCard.BlazeCard.PromoteWithBlazeCard
 import org.wordpress.android.ui.mysite.MySiteCardAndItem.Card.DashboardCards.DashboardCard.TodaysStatsCard.TodaysStatsCardWithData
 import org.wordpress.android.ui.mysite.MySiteCardAndItemBuilderParams
-import org.wordpress.android.ui.mysite.MySiteCardAndItemBuilderParams.DashboardCardDomainBuilderParams
 import org.wordpress.android.ui.mysite.MySiteCardAndItemBuilderParams.DashboardCardPlansBuilderParams
 import org.wordpress.android.ui.mysite.MySiteCardAndItemBuilderParams.BloggingPromptCardBuilderParams
 import org.wordpress.android.ui.mysite.MySiteCardAndItemBuilderParams.DashboardCardsBuilderParams
@@ -39,7 +37,6 @@ import org.wordpress.android.ui.mysite.cards.dashboard.pages.PagesCardBuilder
 import org.wordpress.android.ui.mysite.cards.dashboard.posts.PostCardBuilder
 import org.wordpress.android.ui.mysite.cards.dashboard.posts.PostCardType.DRAFT
 import org.wordpress.android.ui.mysite.cards.dashboard.todaysstats.TodaysStatsCardBuilder
-import org.wordpress.android.ui.mysite.cards.dashboard.domain.DashboardDomainCardBuilder
 import org.wordpress.android.ui.mysite.cards.dashboard.domaintransfer.DomainTransferCardBuilder
 import org.wordpress.android.ui.mysite.cards.dashboard.plans.PlansCardBuilder
 import org.wordpress.android.ui.utils.UiString.UiStringText
@@ -59,9 +56,6 @@ class CardsBuilderTest : BaseUnitTest() {
     @Mock
     lateinit var blazeCardBuilder: BlazeCardBuilder
 
-    @Mock
-    lateinit var dashboardDomainCardBuilder: DashboardDomainCardBuilder
-
     @Mock
     lateinit var dashboardPlansCardBuilder: PlansCardBuilder
 
@@ -84,7 +78,6 @@ class CardsBuilderTest : BaseUnitTest() {
             bloggingPromptCardsBuilder,
             mDomainTransferCardBuilder,
             blazeCardBuilder,
-            dashboardDomainCardBuilder,
             dashboardPlansCardBuilder,
             pagesCardBuilder,
             activityCardBuilder
@@ -193,20 +186,6 @@ class CardsBuilderTest : BaseUnitTest() {
         assertThat(cards.findPromoteWithBlazeCard()).isNotNull
     }
 
-    @Test
-    fun `given is not eligible for domain, when cards are built, then domain card is not built`() {
-        val cards = buildDashboardCards(isEligibleForDomainCard = false)
-
-        assertThat(cards.findDashboardDomainCard()).isNull()
-    }
-
-    @Test
-    fun `given is eligible for domain, when cards are built, then domain card is built`() {
-        val cards = buildDashboardCards(isEligibleForDomainCard = true)
-
-        assertThat(cards.findDashboardDomainCard()).isNotNull
-    }
-
     /* PLANS CARD */
     @Test
     fun `when is eligible for plans card, then plans card is built`() {
@@ -262,9 +241,6 @@ class CardsBuilderTest : BaseUnitTest() {
     private fun DashboardCards.findPromoteWithBlazeCard() =
         this.cards.find { it is PromoteWithBlazeCard } as? PromoteWithBlazeCard
 
-    private fun DashboardCards.findDashboardDomainCard() =
-        this.cards.find { it is DashboardDomainCard } as? DashboardDomainCard
-
     private fun DashboardCards.findDashboardPlansCard() =
         this.cards.find { it is DashboardPlansCard } as? DashboardPlansCard
 
@@ -282,8 +258,6 @@ class CardsBuilderTest : BaseUnitTest() {
 
     private val promoteWithBlazeCard = mock<PromoteWithBlazeCard>()
 
-    private val dashboardDomainCard = mock<DashboardDomainCard>()
-
     private val dashboardPlansCard = mock<DashboardPlansCard>()
 
     private val pagesCard = mock<PagesCardWithData>()
@@ -307,7 +281,6 @@ class CardsBuilderTest : BaseUnitTest() {
         showErrorCard: Boolean = false,
         isEligibleForDomainTransferCard: Boolean = false,
         isEligibleForBlaze: Boolean = false,
-        isEligibleForDomainCard: Boolean = false,
         isEligibleForPlansCard: Boolean = false,
         hasPagesCard: Boolean = false,
         hasActivityCard: Boolean = false
@@ -318,8 +291,6 @@ class CardsBuilderTest : BaseUnitTest() {
         doAnswer { if (hasBlogginPrompt) blogingPromptCard else null }.whenever(bloggingPromptCardsBuilder).build(any())
         doAnswer { if (isEligibleForBlaze) promoteWithBlazeCard else null }.whenever(blazeCardBuilder)
             .build(any())
-        doAnswer { if (isEligibleForDomainCard) dashboardDomainCard else null }.whenever(dashboardDomainCardBuilder)
-            .build(any())
         doAnswer { if (isEligibleForPlansCard) dashboardPlansCard else null }.whenever(dashboardPlansCardBuilder)
             .build(any())
         doAnswer { if (hasPagesCard) pagesCard else null }.whenever(pagesCardBuilder).build(any())
@@ -340,9 +311,6 @@ class CardsBuilderTest : BaseUnitTest() {
                     mock(),
                     mock()
                 ),
-                dashboardCardDomainBuilderParams = DashboardCardDomainBuilderParams(
-                    isEligibleForDomainCard, mock(), mock(), mock()
-                ),
                 dashboardCardPlansBuilderParams = DashboardCardPlansBuilderParams(
                     isEligibleForPlansCard, mock(), mock(), mock()
                 ),
diff --git a/WordPress/src/test/java/org/wordpress/android/ui/mysite/cards/dashboard/domain/DashboardCardDomainSourceTest.kt b/WordPress/src/test/java/org/wordpress/android/ui/mysite/cards/dashboard/domain/DashboardCardDomainSourceTest.kt
deleted file mode 100644
index 839ac37db1c9..000000000000
--- a/WordPress/src/test/java/org/wordpress/android/ui/mysite/cards/dashboard/domain/DashboardCardDomainSourceTest.kt
+++ /dev/null
@@ -1,108 +0,0 @@
-package org.wordpress.android.ui.mysite.cards.dashboard.domain
-
-import kotlinx.coroutines.ExperimentalCoroutinesApi
-import kotlinx.coroutines.flow.flowOf
-import kotlinx.coroutines.test.advanceUntilIdle
-import org.junit.Before
-import org.junit.Test
-import org.mockito.Mock
-import org.mockito.kotlin.any
-import org.mockito.kotlin.eq
-import org.mockito.kotlin.mock
-import org.mockito.kotlin.verify
-import org.mockito.kotlin.verifyNoInteractions
-import org.mockito.kotlin.whenever
-import org.wordpress.android.BaseUnitTest
-import org.wordpress.android.fluxc.model.SiteModel
-import org.wordpress.android.fluxc.model.asDomainModel
-import org.wordpress.android.fluxc.network.rest.wpcom.site.Domain
-import org.wordpress.android.fluxc.store.SiteStore
-import org.wordpress.android.ui.mysite.MySiteUiState
-import org.wordpress.android.ui.mysite.SelectedSiteRepository
-import kotlin.test.assertNull
-
-@ExperimentalCoroutinesApi
-class DashboardCardDomainSourceTest : BaseUnitTest() {
-    @Mock
-    private lateinit var siteStore: SiteStore
-
-    @Mock
-    private lateinit var selectedSiteRepository: SelectedSiteRepository
-
-    @Mock
-    private lateinit var dashboardCardDomainUtils: DashboardCardDomainUtils
-
-    private lateinit var cardDomainSource: DashboardCardDomainSource
-
-    @Before
-    fun setUp() {
-        whenever(siteStore.getSiteDomains(SITE_LOCAL_ID)).thenReturn(flowOf(listOf(Domain().asDomainModel())))
-        whenever(selectedSiteRepository.getSelectedSite()).thenReturn(SITE_MODEL)
-
-        cardDomainSource = DashboardCardDomainSource(
-            testDispatcher(),
-            selectedSiteRepository,
-            siteStore,
-            dashboardCardDomainUtils,
-            mock()
-        )
-    }
-
-    @Test
-    fun `given shouldShowCard true, when build is invoked, then start collecting domain from store (database)`() =
-        test {
-            whenever(dashboardCardDomainUtils.shouldShowCard(eq(SITE_MODEL), any(), any())).thenReturn(true)
-
-            cardDomainSource.build(testScope(), SITE_LOCAL_ID).observeForever { }
-
-            verify(siteStore).getSiteDomains(SITE_LOCAL_ID)
-        }
-
-    @Test
-    fun `given shouldShowCard false, when build is invoked, then do not collect domain from store`() =
-        test {
-            whenever(dashboardCardDomainUtils.shouldShowCard(eq(SITE_MODEL), any(), any())).thenReturn(false)
-
-            cardDomainSource.build(testScope(), SITE_LOCAL_ID).observeForever { }
-
-            verifyNoInteractions(siteStore)
-        }
-
-    @Test
-    fun `given shouldShowCard true, when build is invoked, then domains are fetched from store (network)`() = test {
-        whenever(dashboardCardDomainUtils.shouldShowCard(eq(SITE_MODEL), any(), any())).thenReturn(true)
-
-        cardDomainSource.build(testScope(), SITE_LOCAL_ID).observeForever { }
-        advanceUntilIdle()
-
-        verify(siteStore).fetchSiteDomains(SITE_MODEL)
-    }
-
-    @Test
-    fun `given shouldShowCard false, when build is invoked, then hasSiteCustomDomains is null`() = test {
-        whenever(dashboardCardDomainUtils.shouldShowCard(eq(SITE_MODEL), any(), any())).thenReturn(false)
-        cardDomainSource.refresh.observeForever { }
-
-        val result = mutableListOf<MySiteUiState.PartialState.CustomDomainsAvailable>()
-        cardDomainSource.build(testScope(), SITE_LOCAL_ID).observeForever { it?.let { result.add(it) } }
-
-        assertNull(result.first().hasSiteCustomDomains)
-    }
-
-    @Test
-    fun `given shouldShowCard true, when build is invoked on site not eligible, then hasSiteCustomDomains is null`() =
-        test {
-            val invalidSiteLocalId = 2
-            val result = mutableListOf<MySiteUiState.PartialState.CustomDomainsAvailable>()
-            cardDomainSource.refresh.observeForever { }
-
-            cardDomainSource.build(testScope(), invalidSiteLocalId).observeForever { it?.let { result.add(it) } }
-
-            assertNull(result.first().hasSiteCustomDomains)
-        }
-
-    companion object {
-        private const val SITE_LOCAL_ID = 1
-        private val SITE_MODEL = SiteModel().apply { id = SITE_LOCAL_ID }
-    }
-}
diff --git a/WordPress/src/test/java/org/wordpress/android/ui/mysite/cards/dashboard/domain/DashboardDomainCardBuilderTest.kt b/WordPress/src/test/java/org/wordpress/android/ui/mysite/cards/dashboard/domain/DashboardDomainCardBuilderTest.kt
deleted file mode 100644
index 91a83cd60027..000000000000
--- a/WordPress/src/test/java/org/wordpress/android/ui/mysite/cards/dashboard/domain/DashboardDomainCardBuilderTest.kt
+++ /dev/null
@@ -1,61 +0,0 @@
-package org.wordpress.android.ui.mysite.cards.dashboard.domain
-
-import org.junit.Assert
-import org.junit.Before
-import org.junit.Test
-import org.wordpress.android.R
-import org.wordpress.android.ui.mysite.MySiteCardAndItemBuilderParams
-import org.wordpress.android.ui.utils.UiString
-
-class DashboardDomainCardBuilderTest {
-    private lateinit var builder: DashboardDomainCardBuilder
-
-    @Before
-    fun setUp() {
-        builder = DashboardDomainCardBuilder()
-    }
-    @Test
-    fun `when is eligible for domain, then return the DashboardDomainCard`() {
-        // Arrange
-        val params = MySiteCardAndItemBuilderParams.DashboardCardDomainBuilderParams(
-            isEligible = true,
-            onClick = { },
-            onHideMenuItemClick = { },
-            onMoreMenuClick = { }
-        )
-
-        // Act
-        val result = builder.build(params)
-
-        // Assert
-        Assert.assertNotNull(result)
-        Assert.assertEquals(
-            R.string.dashboard_card_domain_title,
-            (result!!.title as UiString.UiStringRes).stringRes
-        )
-        Assert.assertEquals(
-            R.string.dashboard_card_domain_sub_title,
-            (result.subtitle as UiString.UiStringRes).stringRes
-        )
-        Assert.assertNotNull(result.onClick)
-        Assert.assertNotNull(result.onHideMenuItemClick)
-        Assert.assertNotNull(result.onMoreMenuClick)
-    }
-
-    @Test
-    fun `when is not eligible for blaze, then return null`() {
-        // Arrange
-        val params = MySiteCardAndItemBuilderParams.DashboardCardDomainBuilderParams(
-            isEligible = false,
-            onClick = { },
-            onHideMenuItemClick = { },
-            onMoreMenuClick = { }
-        )
-
-        // Act
-        val result = builder.build(params)
-
-        // Assert
-        Assert.assertNull(result)
-    }
-}
diff --git a/libs/mocks/src/main/assets/mocks/mappings/wpcom/mobile/feature-flags.json b/libs/mocks/src/main/assets/mocks/mappings/wpcom/mobile/feature-flags.json
index 5a2ef3db1bb5..fceb98ec7b9f 100644
--- a/libs/mocks/src/main/assets/mocks/mappings/wpcom/mobile/feature-flags.json
+++ b/libs/mocks/src/main/assets/mocks/mappings/wpcom/mobile/feature-flags.json
@@ -26,7 +26,6 @@
   "response": {
     "status": 200,
     "jsonBody": {
-      "dashboard_card_domain": true,
       "dashboard_card_activity_log": true,
       "dashboard_card_pages": true
     }