Skip to content

Commit d3b6848

Browse files
committed
Moving viewState emit to main thread so there is no extra delays
1 parent d2f4c15 commit d3b6848

File tree

1 file changed

+8
-9
lines changed
  • subscriptions/subscriptions-impl/src/main/java/com/duckduckgo/subscriptions/impl/settings/views

1 file changed

+8
-9
lines changed

subscriptions/subscriptions-impl/src/main/java/com/duckduckgo/subscriptions/impl/settings/views/ProSettingViewModel.kt

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ class ProSettingViewModel @Inject constructor(
100100
subscriptionsManager.subscriptionStatus
101101
.distinctUntilChanged()
102102
.onEach { subscriptionStatus ->
103-
withContext(dispatcherProvider.io()) {
103+
val newViewState = withContext(dispatcherProvider.io()) {
104104
val offer = subscriptionsManager.getSubscriptionOffer().firstOrNull()
105105
val region = when (offer?.planId) {
106106
MONTHLY_PLAN_ROW, YEARLY_PLAN_ROW -> SubscriptionRegion.ROW
@@ -113,16 +113,15 @@ class ProSettingViewModel @Inject constructor(
113113
feature == DuckAiPlus.value
114114
} ?: false
115115

116-
_viewState.emit(
117-
viewState.value.copy(
118-
status = subscriptionStatus,
119-
region = region,
120-
duckAiPlusAvailable = duckAiAvailable,
121-
freeTrialEligible = subscriptionsManager.isFreeTrialEligible(),
122-
blackFridayOfferAvailable = subscriptionsManager.blackFridayOfferAvailable(),
123-
),
116+
viewState.value.copy(
117+
status = subscriptionStatus,
118+
region = region,
119+
duckAiPlusAvailable = duckAiAvailable,
120+
freeTrialEligible = subscriptionsManager.isFreeTrialEligible(),
121+
blackFridayOfferAvailable = subscriptionsManager.blackFridayOfferAvailable(),
124122
)
125123
}
124+
_viewState.emit(newViewState)
126125
}.launchIn(viewModelScope)
127126
}
128127

0 commit comments

Comments
 (0)